吳逸飛
摘要:DFB 激光器波形發(fā)生調制系統(tǒng)和溫度控制系統(tǒng)中軟件設計在激光器的發(fā)射光波長調制實驗中是極其關鍵的部分,軟件框架的構成以及相關邏輯的使用與運行對控制硬件實現(xiàn)相應功能起到了至關重要的作用。本文中軟件框架的編寫仍用Keil5,并基于STM32F1O3實現(xiàn)一定程度的仿真。下面將介紹下該設計整體所應用的原理、相應的硬件設施以及軟件系統(tǒng)的主要模塊、流程以及相應的程序框架。
關鍵詞:紅外;硬件系統(tǒng);軟件系統(tǒng);波長;溫度
1 引 ?言
隨著工業(yè)生產效率的爆炸式提升,工業(yè)廢氣的排放量也隨之大幅度增長。而應人們對于生活環(huán)境質量的需求提升,控制廢氣中有害成分、對于工業(yè)排放氣體的檢測勢在必行,氣體成分檢測技術已成為一項極為重要的研究課題。于是基于朗伯—比爾定律、紅外光吸收原理進行了DFB激光器調制波長的設計實驗。本文是以DFB激光器的驅動硬件電路方案為依據(jù),設計了軟件驅動系統(tǒng),并進行了一定程度的仿真與測試。
2 基本原理
2.1 ?朗伯—比爾定律
又稱比爾定律。比爾-朗伯定律是吸光光度法、比色分析法和光電比色法的定量基礎。其定義為:在理想狀態(tài)下,對于特定波長的紅外光照射吸收介質,在通過一定厚度的介質后,其吸收了一部分的能量,此時紅外光的光強會減弱。結論是吸收介質的濃度越大,介質越厚,則光束衰減的就更厲害。光被吸收的量正比于光程中產生光吸收的分子數(shù)目。
2.2 ? 紅外吸收式原理
光譜吸收法表明許多氣體分子在紅外波段存在特征吸收。根據(jù)朗伯-比爾定律,特征吸收強度與氣體濃度成正比例關系。
不同的氣體分子吸收紅外光后,所得的吸收光譜不同。DFB激光器就是就是利用發(fā)射不同中心波長的紅外光來檢測多組分氣體分子成分。
3 硬件基礎
系統(tǒng)以 STM32F103VET 單片機為核心控制器。硬件系統(tǒng)主要分為兩個模塊:波形調制模塊和溫度控制模塊,并增加了簡單的控制器芯片保護程序。溫度控制模塊:采用STM32設定所需溫度值,采用DS18B20溫度傳感器進行對溫度的高精度檢測并將發(fā)送給STM32控制器,與設定值送入查問放大器后得到偏差信號。溫度控制器接收到這個信號后,通過內部PID控制進行處理,改變通過TEC電流的方向來控制TEC對激光器加熱或者降溫。
波形調制模塊:STM32控制器通過程序命令控制信號發(fā)生器芯片產生可調的低頻三角波形和高頻正弦波形,再將兩個波形送入加法器形成調制波形信號。將調制信號送入壓控恒流源電路以驅動激光器。
4 軟件系統(tǒng)設計
4.1 ?軟件系統(tǒng)總體結構
基于硬件基礎,軟件系統(tǒng)整體框架結構如圖 4-1 所示。分為五個模塊:波形發(fā)生調制程序、溫度控制程序、顯示程序、中斷程序以及芯片保護程序。
4.2 ?波形發(fā)生調制程序
AD9833具有的數(shù)據(jù)引腳SDATA、時鐘引腳SCLK和幀同步引腳FSY三線結構與單片機相連。單片機傳送數(shù)據(jù)到AD9833的過程如下:在傳輸串行數(shù)據(jù)的時候,F(xiàn)SY引腳必須置于低,它是使能引腳,由電平觸發(fā),內部邏輯就表示一個新的數(shù)據(jù)被載入,即低平有效。這時,在時鐘信號SCLK的下降沿節(jié)拍下通過數(shù)據(jù)引腳SDATA進行16位串行數(shù)據(jù)的傳輸。單片機寫數(shù)據(jù)到AD9833時,高位在前,低位在后。
當控制寄存器中的D15D14=00時,代表可以寫入數(shù)據(jù)到控制寄存器。將D13(B28)=1,代表可以連續(xù)寫入28位數(shù)據(jù)進頻率控制器(頻率寄存器28位),默認為先寫入低14位頻率控制字,再寫入高14位數(shù)據(jù)到頻率寄存器。若D13(B28)=0,則表示28位數(shù)據(jù)將分為兩次寫入頻率寄存器。
根據(jù)時序圖編寫寫入數(shù)據(jù)函數(shù),再根據(jù)AD9833的工作狀態(tài)進行操作。主要程序如下:
void AD9833_GPIO_Config(); //初始化AD9833端口
void AD9833_Init(); ?????//AD9833初始化
void AD9837_ConfigAll(unsigned long nFreq1f,unsigned long nPhase1f,unsigned long nFreq2f,unsigned long nPhase2f,unsigned long nFreqlddrv,unsigned long nPhaseldrv);//設置波形頻率和相位
void AD9837_STARTAll(unsigned short nState); ??//設置顯示的波形
另外,在STM32F103中通過軟件程序也可做到通過軟件編程DA通道直接產生三角以及正弦波形。而后通過加法電路仍可以實現(xiàn)產生目標信號,以正弦波為例,主要程序如下:
void DAC_Mode_Init(); ?//初始化DAC,開始DAC轉換
4.3 ?溫度控制程序
溫度控制的軟件流程如圖 4-3 所示。開始進行系統(tǒng)初始化,接著設定所需要的溫度值。同樣地,為了獲得較高精度的測量溫度值,使用溫度傳感器DS18B20進行激光器的溫度采集。而后在主控制器中獲取溫度傳感器的采集數(shù)據(jù)。將采集樣數(shù)據(jù)進行均值濾波。
4.3.1 溫度傳感器DS18B20
DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號。DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉換時的延時時間由2s 減為750ms。
使用DS18B20溫度傳感器能夠提高系統(tǒng)的溫度檢測精度,而且能夠無需通過A/D通道計算轉化為相應的電壓值,適當減小硬件系統(tǒng)以及軟件系統(tǒng)構建難度。
4.3.2 溫度傳感器DS18B20的溫度獲取
主機控制DS18B20完成溫度轉換必須經過三個步驟:初始化、ROM操作指令、存儲器操作指令。通過DS18B20進行A/D轉化,獲取相應溫度數(shù)據(jù)通過串口傳輸給STM總控制器,主要C語言程序如下:
void SysTick_Init(); ????????//配置系統(tǒng)滴答計時器
void LED_GPIO_Config(void); ????????// LED 端口初始化
void USART_Config(void); ????????//初始化串口1
void DS18B20_Init(void) ????????//初始化DS18B20
void DS18B20_ReadId(u8 ucDs18b20Id); ?// 讀取 DS18B20 的序列號
void DS18B20_GetTemp_MatchRom(u8 ucDs18b20Id)
//打印通過 DS18B20 序列號獲取的溫度值
實驗現(xiàn)象:1、串口打印出序列號和溫度;2、在打印的同時,D3閃爍。
4.3.3 ?D/A 溫度電壓設定
采用STM32單片機內置的12位DAC通道進行設定溫度值,
直接輸送到 LTC2053 芯片的 Pin-2 引腳。同時,可通過程序編寫,溫度值顯示在 OLED 液晶屏上。D/A 溫度設定部分主要的 C 語言程序如下:
void DAc1_Init(void); ????//DAC 通道 1 輸出初始化
void DAc1_Set_Vol(u16 tem)//設置通道 1 輸出與溫度對應的電壓值,tem:0—4096,代表 0—3.3V
4.4 ?中斷按鍵程序
按由于需要控制三角波、正弦波頻率以及溫度的設定,所以在外部加上按鍵,通過中斷控制來控制其設定值。因為STM32F106指南者開發(fā)板上自帶電容式按鍵,無需通過矩陣鍵盤鍵入即可實現(xiàn)外部中斷。其中本文進行了LED燈翻轉外部中斷實驗。
外部中斷按鍵響應的主要C語言程序如下:
void LED_GPIO_Config(void)//LED 端口初始化;
void EXTI_Key_Config(void)//初始化EXTI中斷,掃描中斷和觸發(fā)中斷;
4.5 ?芯片保護程序
由于該系統(tǒng)涉及較多溫度傳感器件,溫度變化較大,且STM32F103芯片對較敏感。于是采用DMA方式,通過查詢手冊得到增設芯片溫度檢測程序,用來實時監(jiān)測溫度保護芯片。其主要C語言程序如下:
void USART_Config(void) ????//串口GPIO配置,工作參數(shù)配置;
void Temp_ADC1_Init(void) ???//獲取芯片溫度;
5 結論
本文通過對于前人的成果以及相關文獻的學習與研究,對于基于 DFB 激光器陣列多頻調制驅動技術的研究更深入一步,實現(xiàn)了軟件系統(tǒng)的多模塊化?;诖?,列軟件部分為五個模塊:波形發(fā)生調制程序、溫度控制程序、顯示程序、中斷程序以及芯片保護程序。通過對軟件框架的編寫與相關邏輯的思考,對課題實驗有了一定的自我解讀,較好的完成了DFB激光器的驅動軟件系統(tǒng)的設計。
參考文獻
[1] 趙海蘭,趙祥偉. 智能溫度傳感器DS18B20的原理與應用 [J]. 現(xiàn)代電子技術. 2003(14).
[2] 曾羽西. 基于 DFB 激光器陣列多頻調制驅動技術的研究 [D]. 青島:中國石油大學,2018:6-14.
[3] 張萍.基于DDS數(shù)字信號發(fā)生器的設計[J].信息化研究,2016,42(05):66-69.