方 簫 ,陳 林 ,嚴(yán) 赫 ,尹洪智
(1.武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,武漢 430081;2.北京瑞陽恒興科技有限公司,北京 100096)
隨著現(xiàn)代科技的發(fā)展,氣體檢測裝置在化工業(yè)、污泥堆肥等行業(yè)中具有很大的實用價值[1]。污泥堆肥過程中會釋放氨氣,既會導(dǎo)致氮元素流失,又會產(chǎn)生臭味,氨氣濃度的檢測能夠幫助操作人員或控制設(shè)備有效地對堆體進(jìn)行動態(tài)調(diào)控從而減少氨氣的釋放,并且減少氮素流失[2]。以往氨氣濃度檢測儀大多以便攜式檢測儀為主,不能很好地對檢測環(huán)境進(jìn)行實時監(jiān)控,基于傳統(tǒng)微控制器實現(xiàn)的氨氣檢測儀表,其硬件電路設(shè)計較為復(fù)雜,開發(fā)周期較長,導(dǎo)致研發(fā)成本較高。PSoC是片上可編程的微控制器,系統(tǒng)設(shè)計時能為設(shè)計者提供更加靈活的設(shè)計方法,提高系統(tǒng)設(shè)計的成功率和開發(fā)效率,降低開發(fā)系統(tǒng)的復(fù)雜性和費用,同時增強(qiáng)系統(tǒng)的可靠性和抗干擾能力[3]。
本設(shè)計選用日本FIGRO公司生產(chǎn)的TGS826氨氣傳感器作為檢測元件,美國Cypress Semiconductor公司的PSoC5芯片CY8C5568AXI-06作為檢測系統(tǒng)控制核心,完成了檢測儀系統(tǒng)設(shè)計。
可編程片上系統(tǒng)PSoC是一種基于通用IP模塊,資源可配置的微控制器[4]。使用ARM公司Cortex-M3內(nèi)核的PSoC5,在集成了性能優(yōu)異的處理器的同時具有可動態(tài)配置的數(shù)字與模擬資源。數(shù)字部分主要有:I2C,SPI,UART,PWM 發(fā)生器等。 模擬部分主要有:運算放大器,模數(shù)轉(zhuǎn)換器ADC,可編程濾波器,數(shù)模轉(zhuǎn)換器DAC等,另外片上集成一塊2 K的E2PROM方便數(shù)據(jù)存儲[5]。
基于PSoC的儀表設(shè)計方案與傳統(tǒng)儀表設(shè)計方案如圖1所示,PSoC片上集成了可動態(tài)配置的模塊如運放、A/D轉(zhuǎn)換器、數(shù)字濾波器以及E2PROM等,使得硬件電路設(shè)計更加精簡;運用PSoC集成的這些模擬器件來替代傳統(tǒng)的分立器件,使其結(jié)構(gòu)簡單可靠、降低開發(fā)成本、縮短開發(fā)周期;并且這些片上集成的資源動態(tài)可配置,使得系統(tǒng)設(shè)計更加靈活。
圖1 儀表傳統(tǒng)設(shè)計方案與PSoC設(shè)計方案Fig.1 Traditional and PSoC Instrumentation design scheme
本檢測儀系統(tǒng)結(jié)構(gòu)圖如圖2所示,檢測儀表系統(tǒng)主要包含如下部分:氨氣傳感器、電源、PSoC5微控制器、LCD顯示屏、報警信號驅(qū)動電路、上位機(jī)。
圖2 氨氣檢測儀系統(tǒng)結(jié)構(gòu)Fig.2 Ammonia detector’s system structure
上位機(jī)通過RS485與以PSoC5為核心的測量模塊相連,上位機(jī)用于接收與顯示數(shù)據(jù)并負(fù)責(zé)校準(zhǔn)儀表。測量部分由電源,氨氣傳感器,測量電路,LCD顯示組成。PSoC主要負(fù)責(zé)傳感器信號采集,運算,數(shù)據(jù)存儲,通信管理,模擬量輸出等工作。
本設(shè)計使用的氨氣傳感器典型檢測區(qū)間為22.8 mg/m3~228 mg/m3(30 ppm~300 ppm),其對氨氣具有高靈敏度,應(yīng)用電路簡單、陶瓷基底、抗環(huán)境干擾能力強(qiáng)等優(yōu)點[6]。傳感器應(yīng)用基本電路如圖3所示,使用的氨氣傳感器是一個6端傳感器,其中2個加熱端,其余4個端子用于接入測量電路。Vc為電阻回路輸入電壓,VRL為負(fù)載電阻輸出電壓,VH為傳感器加熱電壓。RS是傳感器感應(yīng)電阻,在檢測環(huán)境中RS會隨著環(huán)境中氨氣的變化而變化,通過檢測負(fù)載電阻兩端的負(fù)載電壓VRL,可通過式(1)計算出當(dāng)前傳感器的感應(yīng)電阻值RS。由于傳感器在某一個恒定加熱電壓下能表現(xiàn)出最佳敏感特性,本設(shè)計中氨氣傳感器選用5 V電壓作為傳感器加熱電壓[6-7]。使用TPS5430作為傳感器5 V加熱電壓VH的供電芯片,其具有帶負(fù)載能力強(qiáng),輸出阻抗小,能夠提供穩(wěn)定的供電電壓;電阻回路的2 V電壓Vc由PSoC內(nèi)部精度為8位電壓數(shù)模轉(zhuǎn)換器VDAC提供。
圖3 氨氣傳感器應(yīng)用電路Fig.3 Applied circuit for ammonia sensor
氨氣傳感器特性曲線如圖4(a),橫軸為氣體濃度,縱軸為傳感器的電阻比率RS/RO,RO為氨氣濃度為 38 mg/m3(50 ppm)時傳感器的感應(yīng)電阻值[6]。
傳感器的電阻比率與氨氣濃度呈線性關(guān)系[6-7],即:
式中:y=log10Rr為當(dāng)前電阻比對數(shù)值;x=log10NH3為當(dāng)前氨氣含量對數(shù)值;b為常數(shù);k=(log10Rr2-log10Rr1)/(log10NH32-log10NH31)為斜率,Rr1,Rr2為標(biāo)定樣點處電阻比值,NH31,NH32為標(biāo)定樣點處氨氣濃度值。由式(2)可得當(dāng)前氨氣值:
式中:NH3為當(dāng)前氨氣值;Rr=RS/RO為電阻比。檢測過程中VRL/VC與RS/RL的關(guān)系曲線如圖4(b)所示,Vc和RL為固定值,在曲線兩端RS/RL的比值變化對應(yīng)VRL/VC比值變化區(qū)域很小,此時感應(yīng)電阻RS變化值 ΔRS與采樣信號 VRL變化值 ΔVRL之間比值ΔVRL/ΔRS很小,使得該區(qū)段信號分辨率低;而在RS/RL比值為1時,曲線斜率最大,RS/RL比值在1左右變化時,ΔVRL/ΔRS比值大,信號分辨率高。在檢測過程中根據(jù)感應(yīng)電阻值使用PSoC片上模擬開關(guān)Amux來更換負(fù)載電阻RL控制RS/RL比值在0.5~2之間,用來保證檢測過程中信號的分辨率。
圖4 相關(guān)特性曲線Fig.4 Related characteristic curve
PSoC片上測量電路設(shè)計首先要完成片內(nèi)資源的設(shè)計,其次在集成開發(fā)環(huán)境中進(jìn)行軟件設(shè)計。其片內(nèi)資源設(shè)計流程具體為:確定系統(tǒng)需求,選取用戶模塊、放置用戶模塊、設(shè)置全局變量和用戶模塊參數(shù)、定義輸出引腳、產(chǎn)生應(yīng)用代碼、編輯應(yīng)用代碼[8]。時鐘資源是PSoC的全局資源,本設(shè)計使用外部晶振作為時鐘源,經(jīng)過內(nèi)部鎖相環(huán)倍頻到24 MHz后作為全局時鐘資源。PSoC片上模擬電路設(shè)計如圖5所示,本系統(tǒng)使用了PSoC5模擬部分的 ADC_1,ADC_2,VDAC8_1,模擬復(fù)用器 AMux_1以及Opamp用于電路設(shè)計當(dāng)中,由于片內(nèi)不存在電阻電容等器件,圖中電阻和虛線連接線路均為片外電路注釋,便于將采樣電路設(shè)計完整的展現(xiàn)出來。
模擬部分資源配置,模擬部分使用的引腳均配置為模擬引腳,數(shù)模轉(zhuǎn)換器VDAC8_1配置輸出2 V電壓作為電阻回路電壓Vc,連接至放大器Opamp輸入端,Opamp配置為電壓跟隨模式,其輸出端接至逐次逼近型模數(shù)轉(zhuǎn)換器ADC_1,ADC_1配置為12位連續(xù)采樣模式,采樣頻率為1.9 MHz,參考電壓為內(nèi)部1.024 V,模擬信號VRL輸出接至內(nèi)部Delta Sigma模數(shù)轉(zhuǎn)換器 ADC_2,ADC_2配置為12位連續(xù)采樣模式,參考電壓為內(nèi)部1.024 V,采樣頻率為320 kHz,模擬信號復(fù)用器AMux_1通過電子開關(guān)的通斷選擇負(fù)載電阻RL。片上除了模擬模塊的應(yīng)用外還使用了通用異步通訊UART,定時器Timer,時鐘Clock,E2PROM等固件資源完成了整個檢測儀的設(shè)計。
圖5 PSoC5芯片片上模擬電路設(shè)計圖Fig.5 On-chip analog circuit design for PSoC5 chip
PSoC的程序設(shè)計使用專用的開發(fā)環(huán)境PSoC Creator進(jìn)行開發(fā)。在PSoC Creator集成編譯環(huán)境下完成對模塊的調(diào)用和配置。配置完成后通過編譯為片上配置的資源提供多個應(yīng)用程序接口(API)以及中斷服務(wù)程序(ISR)。軟件設(shè)計時,使用系統(tǒng)提供的API函數(shù)和C/C++語言完成檢測儀的程序設(shè)計。
調(diào)用API實現(xiàn)初始化系統(tǒng)的一段代碼如下:
…………
VDAC8_1_Start();//啟用數(shù)模轉(zhuǎn)換
ADC_1_Start();//啟用模數(shù)轉(zhuǎn)換
ADC_1_StartConvert();//開始轉(zhuǎn)換
Opamp_1_Start();//啟用放大器模塊
…………
氨氣儀表主程序流程圖,如圖6所示。在儀表開始工作時,先進(jìn)行元件初始化,元件初始化包括:模數(shù)轉(zhuǎn)換模塊ADC,電壓模數(shù)轉(zhuǎn)換模塊VDAC,放大器Opmap,時鐘Clock,通用異步串行傳輸模塊UART,定時器Timer等的初始化。元件初始化完成之后讀取E2PROM中存儲的數(shù)據(jù),選擇通訊波特率,預(yù)熱傳感器,如果檢測儀標(biāo)定完成則更具采樣值計算當(dāng)前環(huán)境氨氣含量,否則顯示當(dāng)前傳感器感應(yīng)電阻值。當(dāng)前氨氣含量與預(yù)警值比較,若需要報警,則輸出報警信號,否則將氨氣濃度值顯示在LCD上。
圖6 氨氣儀表主程序流程圖Fig.6 Flowchart for ammonia instruments’main program
檢測儀與上位機(jī)通訊選用的是Modbus通訊協(xié)議,如果是本機(jī)通訊地址,則進(jìn)行Modbus功能碼的識別,如果是檢測儀能夠執(zhí)行的功能碼則進(jìn)行相應(yīng)的數(shù)據(jù)處理,如果不能識別功能碼則終止Modbus子程序。如果收到的本機(jī)地址和檢測儀的地址不一致,判斷是否需要發(fā)送當(dāng)前通訊地址給上位機(jī),如果需要發(fā)送則發(fā)送當(dāng)前通訊地址,如果不需要發(fā)送則終止Modbus子程序。通過上位機(jī)軟件可在系統(tǒng)運行過程中實時更改通訊波特率和設(shè)備通訊地址,這樣做可以實現(xiàn)多個設(shè)備在Modbus總線上的靈活配置,這樣做可以實現(xiàn)多個設(shè)備在Modbus總線上的靈活配置,有利于儀表一體化管理[9]。
圖7所示為氨氣檢測儀置于空氣中時實際運行圖,圖8為使用上位機(jī)讀取的氨氣檢測儀置于濃度為116.6 mg/m3(153.4 ppm)的氨氣樣氣時的監(jiān)測曲線。實驗中檢測濃度偏差小于全量程±2%,檢測儀的設(shè)計滿足預(yù)期設(shè)計要求。
圖7 氨氣濃度檢測儀Fig.7 Ammonia concentration detector
圖8 置于116.6 mg/m3樣氣中檢測曲線Fig.8 Detection curve in the 116.6 mg/m3 sample gas
基于PSoC設(shè)計的氨氣檢測儀,與傳統(tǒng)的微控制器設(shè)計氨氣檢測儀相比,精簡了設(shè)計電路,節(jié)省了開發(fā)時間和成本,設(shè)計中預(yù)留了可配置的I/O,使得產(chǎn)品能夠在后期需要更新升級的時候更為靈活,節(jié)省再次開發(fā)的成本和開發(fā)周期。通過實驗可知,用PSoC設(shè)計的氨氣濃度檢測儀表,能夠完成系統(tǒng)預(yù)期設(shè)計要求,經(jīng)過長時間運作該儀表能夠正確顯示通訊,信號輸出正常,該氨氣濃度儀表現(xiàn)已用于污泥堆肥環(huán)境中氨氣濃度檢測。
[1] 姚善卓,張玲玲,李友杰.氨氣來源及氨氣傳感器應(yīng)用[J].廣州化工,2011,9(2):44-46.
[2] 鄭國砥,高定,陳同斌.污泥堆肥過程中氮素?fù)p失和氨氣釋放的動態(tài)與調(diào)控[J].中國給水排水,2009,25(11):121-124.
[3] 郭帥,何永義.基于嵌入式PSoC的MCU選色控制器設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(3):42-45,48.
[4] 徐開蕓,劉蘭英,金永良.PSoC在針織機(jī)械設(shè)備電氣控制系統(tǒng)中的應(yīng)用[J].制造業(yè)自動化,2010,32(10):43-45,48.
[5] PSoC?5:CY8C55 Family Datasheet (DB/OL).(2012-07-29)[2013-04-16].http://www.cypress.com/?rID=37581.
[6] TGS 826-for the Detection of Ammonia (DB/OL).[2013-4-16].http://wenku.baidu.com/view/4630d12abcd126fff7050bc2.html.
[7] TGS 通用傳感器資料 (DB/OL).(2003-6)[2013-04-16].http://wenku.baidu.com/view/34bd303b87c24028915fc33f.htm.
[8] 王波,楊永明,汪金剛,等.基于PSoC的無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計[J].傳感技術(shù)學(xué)報,2009,22(3):413-416.
[9] 李杰,王航.一種基于ModBus總線的通信方案探討[J].工業(yè)儀表與自動化裝置,2012(4):101-104.