盧 超,李鵬輝
(陜西理工學院物理系,陜西 漢中723000)
在科研實驗、礦產(chǎn)能源開采、家庭住所、各種動物養(yǎng)殖、及衛(wèi)生醫(yī)療等場合經(jīng)常要用到有害氣體報警系統(tǒng),傳統(tǒng)的方法是下位機通過傳感器及AD轉(zhuǎn)換器采集到數(shù)據(jù),然后利用無線模塊將數(shù)據(jù)傳輸給上位機。上位機再通過軟件處理后利用液晶顯示屏和語音芯片進行數(shù)據(jù)顯示及報警等功能,這種方式的缺點是,數(shù)據(jù)傳輸不穩(wěn)定,傳輸距離短,因為無線模塊傳輸距離只有幾十到幾百米,受到場地的影響嚴重。設計一種傳輸網(wǎng)絡化、系統(tǒng)穩(wěn)定性好、使用方便、用戶界面友好、造價低廉且測量準確的有害氣體監(jiān)測儀器,基于單片機和Labview的測試系統(tǒng),對被測區(qū)每個位置的有害氣體濃度情況進行網(wǎng)上的實時監(jiān)測,一旦出現(xiàn)異?,F(xiàn)象便于及時分析和處理,將會有效地提高事故的預見性和工作效率,有著重要的實際推廣價值和理論研究意義[1]。
總體結構框圖如圖1所示。系統(tǒng)主要包有害氣體信息采集,模擬/數(shù)字信號轉(zhuǎn)換,數(shù)據(jù)的讀取,串口數(shù)據(jù)通訊,PC機數(shù)據(jù)處理,網(wǎng)絡通信及報警模塊。系統(tǒng)的下位機部分通過傳感器將有害氣體信息采集到單片機內(nèi),進行簡單的數(shù)據(jù)處理后將數(shù)據(jù)通過串口傳送給上位機(PC)。上位機由4個獨立運行的用Labview編寫的程序組成。首先上位機通過“串口VI”完成數(shù)據(jù)的接收并將數(shù)據(jù)以波形方式顯示,并且在該程序中可以設定報警值大小,一旦達到報警值,程序前面板的指示燈便會變亮,同時通過調(diào)用“語音VI”,也可以實現(xiàn)語音報警功能來報警。如果想通過互聯(lián)網(wǎng)傳輸數(shù)據(jù),只要在上位機上運行TCP/IP程序中的“發(fā)送VI”即可。這時,其他用戶便可通過TCP/IP程序中的“接收VI”在其PC上讀取數(shù)據(jù),且同樣可以實現(xiàn)主機上的監(jiān)視及報警功能。上位機在接收到數(shù)據(jù)后可以將數(shù)據(jù)進行存儲,以便對歷史數(shù)據(jù)進行分析[2-6]。
圖1 系統(tǒng)結構框圖
圖2是MQ-7和MQ-5傳感器的基本測試電路,需要施加2個電壓:加熱器電壓VH和測試電壓VC,其中VH用于為傳感器提供特定的工作溫度,VC用于測定與傳感器串聯(lián)的負載電阻RL上的電壓VRL。MQ-7和MQ-5傳感器具有輕微的極性,VC需用直流電源,在滿足傳感器電性能要求的前提下,VC和VH可以共用同一個電源電路[1]。
圖2 MQ-7和MQ-5采集電路
A/D采用ADC0809芯片,需提供約500 kHz的時鐘頻率,系統(tǒng)采用74LS74芯片對單片機的時鐘輸出端(ALE輸出的時鐘頻率為2 MHz)進行四分頻,供ADC0809使用,ADC0809的CLOCK接Q端口,IN0與IN1分別接一氧化碳傳感器和甲烷傳感器輸出端,ADC0809的OE端接高電平后打開三態(tài)數(shù)據(jù)輸出鎖存器。將輸入選擇端口即 ADDA、ADDB、ADDC中的ADDA接到單片機的P2.7端,ADDB和ADDC接地,實現(xiàn)對 IN0與 IN1的控制。VREF+與VREF-為參考電壓輸入端,分別接5V和地,電路如圖3所示,將轉(zhuǎn)換后的電壓值接到單片機的P1端口,實現(xiàn)ADC0809與單片機之間的數(shù)據(jù)通信。START與單片機P2.2相連,控制A/D轉(zhuǎn)換啟動,當轉(zhuǎn)換結束信號由低電平跳變?yōu)楦唠娖綍r,EOC引腳將信號通知給單片機使其進行數(shù)據(jù)的正常讀取。
圖3 A/D轉(zhuǎn)換電路
采用MAX232芯片完成兩路TTL/RS-232電平的轉(zhuǎn)換,MAX232的9、10引腳是TTL電平端,連接單片機,11,12引腳分別接CH341芯片的TXD和RXD引腳,T1IN和 T2IN接 TTL/CMOS電平的89C51單片機的串口發(fā)送端TXD,R1OUT和R2OUT接TTL/CMOS電平的89C51單片機的串口接收端RXD,T1OUT和T2OUT可直接接PC機的RS-232串口的接收端RXD,R1IN和R2IN可直接接PC機的RS-232串口發(fā)送端 TXD,電路如圖4所示。CH341提供全速USB設備接口,兼容USB2.0,外圍器件只需要電容和晶體,電源電壓為5 V,USB接口的差分數(shù)據(jù)線對與 CH341的 UD-和 UD+直接相連[7]。
設計中單片機軟件是采用C51語言編寫,主要包括ADC0809芯片驅(qū)動及有害氣體數(shù)據(jù)采集部分和串口數(shù)據(jù)發(fā)送部分,下位機主程序流程圖見圖5所示。
數(shù)據(jù)采集軟件主要實現(xiàn)單片機系統(tǒng)對ADC0809傳感器的初始化、發(fā)送測量命令及數(shù)值的讀取,有害氣體測量時先調(diào)用ADC0809初始化子程序進行初始化,它包括復位、傳輸啟動命令。在有害氣體數(shù)據(jù)通信系統(tǒng)中,單片機與PC機之間的數(shù)據(jù)通信采用串口實現(xiàn)。系統(tǒng)中單片機串行口工作在模式1,即可變波特率10 bit異步收發(fā)模式。單片機工作在12 MHz時鐘時,用T1的方式2自重裝模式,設置9 600 bit/s波特率。
圖4 與上位機通信電路
圖5 下位機主程序流程圖
設計采用Labview為上位機軟件開發(fā)平臺,用G語言進行設計,主要實用VISA高級應用編程接口。VISA是虛擬儀器系統(tǒng)I/O接口軟件,基于自底向上結構模型的VISA創(chuàng)造了一個統(tǒng)一形式的I/O控制函數(shù)集,提供了非常強大的儀器控制功能與資源管理上位機串口。程序中由4個事件分支構成,上位機串口程序圖如圖6所示。程序執(zhí)行條件選擇為:值改變。即只有點擊當前面板上的“開始運行”按鈕后才能執(zhí)行該程序。在該程序中主要目的是實現(xiàn)VISA的自定義、數(shù)據(jù)的讀取及顯示報警功能。通過對VISA進行相應設置后進入While循環(huán),利用VISA讀取函數(shù)讀取字符串數(shù)據(jù)。在條件結構的真分支中實現(xiàn)字符串與數(shù)組之間的轉(zhuǎn)換、波形顯示及報警功能。將數(shù)據(jù)保存到一個緩沖區(qū)后關閉串口[8-9]。
VISA的設置是成功讀取串口數(shù)據(jù)的關鍵,只有與下位機一致才能正確獲取下位機資源。在配置VISA時,波特率設置成9 600,字節(jié)大小為8 bit,校驗位和停止位分別設置為無校驗位及1?!氨4妗笔录绦驁D,程序執(zhí)行條件選擇為:值改變。即當前面板上“保存數(shù)據(jù)”按鈕值改變時可以實現(xiàn)數(shù)據(jù)的保存,其保存形式為txt文件?!巴顺觥笔录种D,條件為“值改變”。當點擊前面板上“退出程序”按鈕后可退出該While循環(huán),即終止串口程序運行。當前面板上“數(shù)據(jù)回放”按鈕值改變時,可以實現(xiàn)歷史數(shù)據(jù)的回放,而且可以通過調(diào)節(jié)前面板上“回放速度”控件調(diào)節(jié)其數(shù)據(jù)回放速度大小。
在串口讀取程序中,單片機和PC之間是以字符串的形式進行數(shù)據(jù)交流的,當要把從單片機讀取的數(shù)據(jù)以波形形式進行顯示時,就要進行相應的轉(zhuǎn)換,而且Labview中的波形顯示控件輸入的類型要求為數(shù)組形式,因而,要把讀取的字符串類型數(shù)據(jù)首先轉(zhuǎn)換為字節(jié)數(shù)組,然后再通過調(diào)用索引數(shù)組、創(chuàng)建數(shù)組及數(shù)組插入控件建立一個一維數(shù)組。通過調(diào)用TCP偵聽函數(shù)、寫入TCP數(shù)據(jù)函數(shù)、關閉TCP連接函數(shù)等實現(xiàn)數(shù)據(jù)的網(wǎng)絡傳送功能。程序運行前必須將打開TCP連接函數(shù)的地址設定為發(fā)送機的IP地址,且端口號也必須與發(fā)送機端口號相同。在該程序中,可以實現(xiàn)在其他計算機上的數(shù)據(jù)讀取及報警功能,實現(xiàn)數(shù)據(jù)的共享。實現(xiàn)語音報警功能首先要通過編程來調(diào)用波形文件,通過對其進行相應的配置后可以實現(xiàn)音量大小調(diào)節(jié),當達到報警值時即可啟動該函數(shù)進行語音報警[11-12]。
圖6 上位機串口程序圖
系統(tǒng)調(diào)試采用模塊化調(diào)試和整體組合調(diào)試相結合的方法來進行,調(diào)試界面如圖7所示。經(jīng)過模塊化的軟件仿真、硬件電路調(diào)試和組裝測試,最終實現(xiàn)了單片機系統(tǒng)的有害氣體數(shù)據(jù)采集功能、上位機串口讀取、上下限氣體濃度設定功能、聲光報警功能、TCP/IP數(shù)據(jù)網(wǎng)絡傳輸功能、溫濕度處理顯示功能和溫、歷史數(shù)據(jù)存儲等功能。
圖7 上位機調(diào)試界面
測試結果對比如表1所示,在相同的環(huán)境下,一共進行了10次測量,第2列和第3列為有害氣體一氧化碳和甲烷傳感器MQ-7、MQ-5輸出的模擬電壓值,第4列和第5列為精度高的成品報警儀MQ-7和MQ-5輸出模擬電壓值,第6列和第7列為相對誤差,可以看出該有害氣體測量裝置在實際工作中具有很好的效果,所采集的數(shù)據(jù)經(jīng)過與相應的校準器件所得到的數(shù)據(jù)對比發(fā)現(xiàn)其誤差很小,一氧化碳傳感器平均誤差為0.29%,甲烷傳感器平均誤差為2.14%。
表1 測量結果對比
設計的基于虛擬儀器的有害氣體報警儀,結合Labview的數(shù)據(jù)顯示、網(wǎng)絡數(shù)據(jù)傳輸及報警較好地解決了數(shù)據(jù)采集精確度及傳輸距離問題。系統(tǒng)通訊穩(wěn)定可靠,可拓寬應用于家居、隧道和大壩糧倉等領域的有害氣體監(jiān)測中。
[1]趙冰若,朱瑞祥,馮春生等.室內(nèi)有害氣體遠程報警系統(tǒng)設計[J].微計算機信息,2009,11:24-26.
[2]吳偉斌,洪添勝,朱余清等.基于虛擬儀器的果樹重疊葉片LAI實時檢測系統(tǒng)[J].農(nóng)業(yè)工程學報,2012,04:169-174.
[3]王邦勤,徐軍明,秦會斌,鄭梁.基于虛擬儀器與總線技術的遠程多點環(huán)境參數(shù)監(jiān)測系統(tǒng)研究[J].電子器件,2009,04:801-804.
[4]湯家華,王道德.LabVIEW在USB實時數(shù)據(jù)采集處理系統(tǒng)中的應用[J].電子器件,2006,02:557-560.
[5]張牧,張誠,陳才和等.基于Labview技術的光度式橢偏測厚儀的研究與設計[J].電子器件,2007,01:170-173.
[6]宋青.基于虛擬儀器技術的信號采集與分析系統(tǒng)的研究[J].自動化與儀器儀表,2012,01:1-2.
[7]徐輝.USB接口技術及應用常識[J].開發(fā)研究與設計技術,2007(12):1624-1625.
[8]寇雪芹,谷立臣等.基于虛擬儀器的超聲信號測量及測距研究[J].計算機工程與應用,2012,06:17-20.
[9]宋愛晶,林峰,鄧林紅.一種基于虛擬儀器的生理信號測量系統(tǒng)[J].傳感器與微系統(tǒng),2012,01:101-103.
[10]葛李,周學才,穆效江.一種基于虛擬儀器的通用測控系統(tǒng)[J].制造業(yè)自動化,2012,10:45-48.
[11]全曉莉,周南權等.基于虛擬儀器技術的音頻信號采集與處理[J].儀表技術與傳感器,2012,07:32-34.
[12]戴佳,戴衛(wèi)恒等.51單片機C語言應用程序設計實例講解[M].電子工業(yè)出版社,2008(12):311-317.