郭 奇 路林吉
(上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240)
CO是一種有毒且易燃易爆的氣體,汽車尾氣、煤礦井下氣體和工廠廢氣中存在的CO給人們的生命安全帶來(lái)巨大危害。為了及時(shí)準(zhǔn)確地對(duì)生產(chǎn)生活中的CO進(jìn)行檢測(cè),設(shè)計(jì)一種靈敏度高、性能可靠、操作簡(jiǎn)單和功能完善的CO傳感器是十分必要的。為此,本文設(shè)計(jì)了一種無(wú)線CO電化學(xué)傳感器。該傳感器除具有實(shí)時(shí)監(jiān)測(cè)、報(bào)警指示和電流變送輸出等功能外,還具有射頻通信、自動(dòng)調(diào)校和溫度補(bǔ)償?shù)榷囗?xiàng)功能。
CO電化學(xué)傳感器共有工作電極(WE)、參考電極(RE)和對(duì)電極(CE)這3個(gè)電極,其原理如圖1所示。
圖1 電化學(xué)傳感器原理圖Fig.1 Principle of electrochemical sensor
通過(guò)電極上發(fā)生的電化學(xué)氧化還原反應(yīng),建立電化學(xué)平衡,反應(yīng)產(chǎn)生的電流與CO氣體的濃度成正比,化學(xué)反應(yīng)方程式如下:
為保證最佳工作電極電位和最大反應(yīng)電流的線性關(guān)系,信號(hào)放大電路需要將參考電極引入恒電位電路。恒電位電路的作用是在自身沒(méi)有電流流過(guò)的前提下[1],給工作電極提供穩(wěn)定的電化學(xué)電位,使其不隨化學(xué)反應(yīng)而變化。
傳感器硬件電路以ME3-CO探頭、C8051F005和CC1100為核心,它由電源電路、信號(hào)放大調(diào)理電路、溫度檢測(cè)電路、變送輸出電路和報(bào)警顯示電路等組成,其硬件組成框圖如圖2所示。
圖2 傳感器硬件組成框圖Fig.2 Hardware of the sensor
ME3-CO氣體探頭對(duì)CO具有較好的氣體選擇性。考慮到電流信號(hào)相當(dāng)微弱,且恒電位電路需要保證盡量小的電流流過(guò)參考電極,本設(shè)計(jì)選用低噪聲、高精度的運(yùn)放OP07。它具有低輸入失調(diào)電壓(10 μV)、低輸入偏置電流(2 nA)、低溫漂(0.2 μV/℃)、高輸入阻抗和高共模抑制比(110 dB)等特性,滿足電化學(xué)傳感器的放大要求。恒電位電路和信號(hào)放大電路如圖3所示。
圖3 恒電位電路和信號(hào)放大電路Fig.3 Constant potential circuit and signal amplifying circuit
C8051F005單片機(jī)內(nèi)部集成8通道12位ADC、2通道12位 DAC、Flash存儲(chǔ)器和 SPI/IIC接口電路[2-3],通過(guò) SPI 接口和相關(guān)指令可以方便地訪問(wèn)CC1100的主要操作參數(shù)和64位傳輸/接收FIFO,實(shí)現(xiàn)讀/寫緩存數(shù)據(jù)和讀/寫狀態(tài)寄存器等功能。
CC1100是TI設(shè)計(jì)的一款高性能UHF收發(fā)芯片,可工作于315/433/868/915 MHz的ISM/SRD頻率波段。它內(nèi)部集成了一個(gè)高度可配置的調(diào)制解調(diào)器,支持不同的調(diào)制格式,支持預(yù)放、同步字插入/檢測(cè)、地址檢查和自動(dòng)CRC校驗(yàn)等功能。C8051F005采用模擬SPI方式對(duì)CC1100進(jìn)行設(shè)置和收發(fā)數(shù)據(jù),兩者連接原理圖如圖4所示(圖中MCU側(cè)略)。
圖4 CC1100與C8051F005連接原理圖Fig.4 Connection principle between CC1100 and C8051F005
圖4中,SI/SO、SCLK、GDO2、CSn 來(lái)自單片機(jī)普通引腳,其中SI/SO為SPI接口的數(shù)據(jù)線、SCLK為時(shí)鐘輸入、CSn為SPI接口的片選端、GDO0/GDO2為常規(guī)用途/測(cè)試輸出控制引腳[4]。
傳感器和外圍電路受外界環(huán)境影響會(huì)產(chǎn)生一定漂移,如果長(zhǎng)時(shí)間受老化等環(huán)境因素的影響,就可能產(chǎn)生較大的零點(diǎn)漂移。為了使系統(tǒng)在長(zhǎng)時(shí)間工作后仍能夠精確讀數(shù),零點(diǎn)自校準(zhǔn)電路設(shè)計(jì)過(guò)程中使用了零位漂移自校準(zhǔn)方法[5]。
自校準(zhǔn)電路的原理是可燃?xì)怏w在濃度為零的情況下無(wú)法進(jìn)行電化學(xué)反應(yīng),而人為地降低施加在電極上的工作電壓。當(dāng)電壓小到一定程度時(shí),即使可燃?xì)怏w濃度不為零,電化學(xué)反應(yīng)也無(wú)法進(jìn)行。根據(jù)這一特性,找到門限電壓Vth,并通過(guò)MCU控制測(cè)量電路的工作電壓使其降到Vth,測(cè)出此時(shí)放大電路的輸出值,此輸出值即為零點(diǎn)值。
電路中的MCU通過(guò)DAC0控制工作電壓調(diào)節(jié)電路。DAC0平時(shí)用來(lái)提供穩(wěn)定的工作電壓,當(dāng)需要自動(dòng)校準(zhǔn)時(shí)(如定時(shí)周期到或手動(dòng)請(qǐng)求),MCU給測(cè)量電路提供電壓Vth。通過(guò)測(cè)量放大電路的輸出值得到新零點(diǎn)值,測(cè)量值與新零點(diǎn)值之間的差值即為實(shí)際信號(hào)真值。
DAC1電流輸出電路如圖5所示,變送輸出DAC1接VI轉(zhuǎn)化電路,輸出電流4~20 mA對(duì)應(yīng)實(shí)時(shí)濃度。
圖5 DAC1電流輸出電路Fig.5 DAC1current output circuit
系統(tǒng)軟件主要包括初始化與自檢子程序、溫度處理子程序、數(shù)據(jù)處理子程序、LED顯示子程序、電流輸出子程序、無(wú)線收發(fā)子程序、定時(shí)中斷程序、ADC中斷程序和串行中斷程序。
系統(tǒng)上電后,儀器先自檢和讀取初值,然后進(jìn)入主程序。LED第一位為運(yùn)行/設(shè)置狀態(tài)區(qū)分位,后三位顯示實(shí)時(shí)濃度值。主程序進(jìn)行循環(huán)掃描,并按條件判斷來(lái)進(jìn)行各子程序的調(diào)用。
主程序流程圖如圖6所示。
圖6 主程序流程圖Fig.6 Flowchart of the main program
CC1100的SPI接口上所有操作都包含一個(gè)讀/寫位、一個(gè)突發(fā)訪問(wèn)位和一個(gè)6位地址的頭字節(jié)。按照操作時(shí)序,單片機(jī)通過(guò)SPI總線讀寫CC1100內(nèi)部寄存器地址0x00~0x3F,實(shí)現(xiàn)功能設(shè)定、三狀態(tài)切換(待機(jī)接收和發(fā)射)以及數(shù)據(jù)的收發(fā)[6]。
初始化子程序的步驟是:①對(duì)CC1100進(jìn)行復(fù)位操作;②對(duì)CC1100進(jìn)行寄存器配置,包括一些最基本的收發(fā)確認(rèn)設(shè)置、頻段設(shè)置、調(diào)頻設(shè)置和地址設(shè)置等;③對(duì)CC1100進(jìn)行功率寄存器配置,使CC1100在發(fā)送時(shí)按指定的功率進(jìn)行數(shù)據(jù)發(fā)送。
發(fā)射子程序的步驟是:①按SPI接口時(shí)序把要發(fā)送的字節(jié)長(zhǎng)度和數(shù)據(jù)寫入TXFIFO;②初始化發(fā)射端的地址,使之與接收端的地址相互匹配,發(fā)射端發(fā)射數(shù)據(jù)的有效寬度與接收端相一致;③將單片機(jī)設(shè)置為發(fā)送模式,完成數(shù)據(jù)打包,進(jìn)行編碼、調(diào)制和發(fā)送;④發(fā)送完成后,相應(yīng)的引腳被置低,刷新TXFIFO,CC1100轉(zhuǎn)入待機(jī)模式。
接收子程序的步驟是:①初始化的設(shè)置同發(fā)射時(shí)基本一致;②設(shè)置CC1100為接收模式,不斷地檢測(cè)載波,等待接收數(shù)據(jù),當(dāng)檢測(cè)到同頻段的載波并且地址也匹配時(shí),CC1100進(jìn)行數(shù)據(jù)包的接收,并完成校驗(yàn)等相關(guān)工作;③將數(shù)據(jù)通過(guò)SPI傳輸?shù)絾纹瑱C(jī)中,接收完成后刷新RXFIFO,CC1100返回到待機(jī)狀態(tài)。
采用定時(shí)中斷方式啟動(dòng)A/D轉(zhuǎn)換,采樣和濾波用中斷方式實(shí)現(xiàn),濾波時(shí)采用掐頭去尾算術(shù)平均法[7-8],避免誤差對(duì)最終讀數(shù)產(chǎn)生影響。
根據(jù)廠家提供的試驗(yàn)數(shù)據(jù),根據(jù)最小二乘擬合原理得到CO電化學(xué)傳感器的溫度特性為[9-10]:
式中:X為環(huán)境溫度值,℃;Y為該環(huán)境溫度下體積分?jǐn)?shù)測(cè)量值與20℃(20℃為標(biāo)準(zhǔn)環(huán)境溫度)時(shí)的體積分?jǐn)?shù)測(cè)量值的百分比。C8051F005通過(guò)單線溫度傳感器DS18B20讀入環(huán)境溫度,按式(1)對(duì)測(cè)量值進(jìn)行修正,消除由于環(huán)境溫度的變化給測(cè)量帶來(lái)的誤差。
標(biāo)定曲線可用直線方程y=kx+b來(lái)表示[10],由于2.4 V為A/D參考基準(zhǔn),相應(yīng)的標(biāo)定擬合直線為:
式中:x的取值范圍為0~2.4 V,y的取值范圍為0~1 000。標(biāo)定時(shí),調(diào)試人員使用幾種不同濃度的標(biāo)準(zhǔn)CO氣體測(cè)出幾組數(shù)據(jù),用待定系數(shù)法求得k和b的值,然后再將這2個(gè)參數(shù)存入內(nèi)部Flash存儲(chǔ)器。
基于C8051F005和CC1100,系統(tǒng)采用高性能運(yùn)放OP07設(shè)計(jì)恒電位電路和放大調(diào)理電路,實(shí)現(xiàn)了CO傳感器的軟硬件設(shè)計(jì)。本文所設(shè)計(jì)的傳感器具有實(shí)時(shí)顯示、超限報(bào)警、掉電儲(chǔ)存、電流輸出和無(wú)線收發(fā)等功能,并使用溫度的擬合修正方法提高測(cè)量精度,產(chǎn)品分辨率為1 ×10-6,運(yùn)行穩(wěn)定。
[1]何一文,許維勝.基于PIC16F877的瓦斯傳感器設(shè)計(jì)[J].測(cè)控技術(shù),2009(28):9-12.
[2]姚毓升,解永平,文濤.三電極電化學(xué)傳感器的恒電位儀設(shè)計(jì)[J].儀表技術(shù)與傳感器,2009(9):23-24.
[3]鮑可進(jìn).C8051F單片機(jī)原理及應(yīng)用[M].北京:中國(guó)電力出版社,2006:23-65.
[4]李文仲.C8051F系列單片機(jī)與短距離無(wú)線數(shù)據(jù)通信[M].北京:北京航空航天大學(xué)出版社,2007:120-160.
[5]李浩.基于CC2520的二氧化硫傳感器節(jié)點(diǎn)設(shè)計(jì)[J].儀器儀表用戶,2009(4):30-32.
[6]董勝乾.基于無(wú)線網(wǎng)絡(luò)的傳感器系統(tǒng)設(shè)計(jì)研究[D].西安:西安電子科技大學(xué),2008.
[7]張其武.煙氣二氧化硫濃度智能檢測(cè)儀的研究[D].濟(jì)南:山東大學(xué),2005.
[8]杜黎.電化學(xué)傳感器測(cè)試電路設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2009.
[9]朱前偉,孫小進(jìn),趙小兵,等.基于單片機(jī)的一氧化碳傳感器的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(7):1445-1446.
[10]袁廣超,田旭東.基于CPLD振弦式傳感器的頻率測(cè)量技術(shù)[J].自動(dòng)化儀表,2009,30(11):63-66.