郭 奇 路林吉
(上海交通大學電子信息與電氣工程學院,上海 200240)
CO是一種有毒且易燃易爆的氣體,汽車尾氣、煤礦井下氣體和工廠廢氣中存在的CO給人們的生命安全帶來巨大危害。為了及時準確地對生產生活中的CO進行檢測,設計一種靈敏度高、性能可靠、操作簡單和功能完善的CO傳感器是十分必要的。為此,本文設計了一種無線CO電化學傳感器。該傳感器除具有實時監測、報警指示和電流變送輸出等功能外,還具有射頻通信、自動調校和溫度補償等多項功能。
CO電化學傳感器共有工作電極(WE)、參考電極(RE)和對電極(CE)這3個電極,其原理如圖1所示。

圖1 電化學傳感器原理圖Fig.1 Principle of electrochemical sensor
通過電極上發生的電化學氧化還原反應,建立電化學平衡,反應產生的電流與CO氣體的濃度成正比,化學反應方程式如下:

為保證最佳工作電極電位和最大反應電流的線性關系,信號放大電路需要將參考電極引入恒電位電路。恒電位電路的作用是在自身沒有電流流過的前提下[1],給工作電極提供穩定的電化學電位,使其不隨化學反應而變化。
傳感器硬件電路以ME3-CO探頭、C8051F005和CC1100為核心,它由電源電路、信號放大調理電路、溫度檢測電路、變送輸出電路和報警顯示電路等組成,其硬件組成框圖如圖2所示。

圖2 傳感器硬件組成框圖Fig.2 Hardware of the sensor
ME3-CO氣體探頭對CO具有較好的氣體選擇性。考慮到電流信號相當微弱,且恒電位電路需要保證盡量小的電流流過參考電極,本設計選用低噪聲、高精度的運放OP07。它具有低輸入失調電壓(10 μV)、低輸入偏置電流(2 nA)、低溫漂(0.2 μV/℃)、高輸入阻抗和高共模抑制比(110 dB)等特性,滿足電化學傳感器的放大要求。恒電位電路和信號放大電路如圖3所示。

圖3 恒電位電路和信號放大電路Fig.3 Constant potential circuit and signal amplifying circuit
C8051F005單片機內部集成8通道12位ADC、2通道12位 DAC、Flash存儲器和 SPI/IIC接口電路[2-3],通過 SPI 接口和相關指令可以方便地訪問CC1100的主要操作參數和64位傳輸/接收FIFO,實現讀/寫緩存數據和讀/寫狀態寄存器等功能。
CC1100是TI設計的一款高性能UHF收發芯片,可工作于315/433/868/915 MHz的ISM/SRD頻率波段。它內部集成了一個高度可配置的調制解調器,支持不同的調制格式,支持預放、同步字插入/檢測、地址檢查和自動CRC校驗等功能。C8051F005采用模擬SPI方式對CC1100進行設置和收發數據,兩者連接原理圖如圖4所示(圖中MCU側略)。

圖4 CC1100與C8051F005連接原理圖Fig.4 Connection principle between CC1100 and C8051F005
圖4中,SI/SO、SCLK、GDO2、CSn 來自單片機普通引腳,其中SI/SO為SPI接口的數據線、SCLK為時鐘輸入、CSn為SPI接口的片選端、GDO0/GDO2為常規用途/測試輸出控制引腳[4]。
傳感器和外圍電路受外界環境影響會產生一定漂移,如果長時間受老化等環境因素的影響,就可能產生較大的零點漂移。為了使系統在長時間工作后仍能夠精確讀數,零點自校準電路設計過程中使用了零位漂移自校準方法[5]。
自校準電路的原理是可燃氣體在濃度為零的情況下無法進行電化學反應,而人為地降低施加在電極上的工作電壓。當電壓小到一定程度時,即使可燃氣體濃度不為零,電化學反應也無法進行。根據這一特性,找到門限電壓Vth,并通過MCU控制測量電路的工作電壓使其降到Vth,測出此時放大電路的輸出值,此輸出值即為零點值。
電路中的MCU通過DAC0控制工作電壓調節電路。DAC0平時用來提供穩定的工作電壓,當需要自動校準時(如定時周期到或手動請求),MCU給測量電路提供電壓Vth。通過測量放大電路的輸出值得到新零點值,測量值與新零點值之間的差值即為實際信號真值。
DAC1電流輸出電路如圖5所示,變送輸出DAC1接VI轉化電路,輸出電流4~20 mA對應實時濃度。

圖5 DAC1電流輸出電路Fig.5 DAC1current output circuit
系統軟件主要包括初始化與自檢子程序、溫度處理子程序、數據處理子程序、LED顯示子程序、電流輸出子程序、無線收發子程序、定時中斷程序、ADC中斷程序和串行中斷程序。
系統上電后,儀器先自檢和讀取初值,然后進入主程序。LED第一位為運行/設置狀態區分位,后三位顯示實時濃度值。主程序進行循環掃描,并按條件判斷來進行各子程序的調用。
主程序流程圖如圖6所示。

圖6 主程序流程圖Fig.6 Flowchart of the main program
CC1100的SPI接口上所有操作都包含一個讀/寫位、一個突發訪問位和一個6位地址的頭字節。按照操作時序,單片機通過SPI總線讀寫CC1100內部寄存器地址0x00~0x3F,實現功能設定、三狀態切換(待機接收和發射)以及數據的收發[6]。
初始化子程序的步驟是:①對CC1100進行復位操作;②對CC1100進行寄存器配置,包括一些最基本的收發確認設置、頻段設置、調頻設置和地址設置等;③對CC1100進行功率寄存器配置,使CC1100在發送時按指定的功率進行數據發送。
發射子程序的步驟是:①按SPI接口時序把要發送的字節長度和數據寫入TXFIFO;②初始化發射端的地址,使之與接收端的地址相互匹配,發射端發射數據的有效寬度與接收端相一致;③將單片機設置為發送模式,完成數據打包,進行編碼、調制和發送;④發送完成后,相應的引腳被置低,刷新TXFIFO,CC1100轉入待機模式。
接收子程序的步驟是:①初始化的設置同發射時基本一致;②設置CC1100為接收模式,不斷地檢測載波,等待接收數據,當檢測到同頻段的載波并且地址也匹配時,CC1100進行數據包的接收,并完成校驗等相關工作;③將數據通過SPI傳輸到單片機中,接收完成后刷新RXFIFO,CC1100返回到待機狀態。
采用定時中斷方式啟動A/D轉換,采樣和濾波用中斷方式實現,濾波時采用掐頭去尾算術平均法[7-8],避免誤差對最終讀數產生影響。
根據廠家提供的試驗數據,根據最小二乘擬合原理得到CO電化學傳感器的溫度特性為[9-10]:

式中:X為環境溫度值,℃;Y為該環境溫度下體積分數測量值與20℃(20℃為標準環境溫度)時的體積分數測量值的百分比。C8051F005通過單線溫度傳感器DS18B20讀入環境溫度,按式(1)對測量值進行修正,消除由于環境溫度的變化給測量帶來的誤差。
標定曲線可用直線方程y=kx+b來表示[10],由于2.4 V為A/D參考基準,相應的標定擬合直線為:

式中:x的取值范圍為0~2.4 V,y的取值范圍為0~1 000。標定時,調試人員使用幾種不同濃度的標準CO氣體測出幾組數據,用待定系數法求得k和b的值,然后再將這2個參數存入內部Flash存儲器。
基于C8051F005和CC1100,系統采用高性能運放OP07設計恒電位電路和放大調理電路,實現了CO傳感器的軟硬件設計。本文所設計的傳感器具有實時顯示、超限報警、掉電儲存、電流輸出和無線收發等功能,并使用溫度的擬合修正方法提高測量精度,產品分辨率為1 ×10-6,運行穩定。
[1]何一文,許維勝.基于PIC16F877的瓦斯傳感器設計[J].測控技術,2009(28):9-12.
[2]姚毓升,解永平,文濤.三電極電化學傳感器的恒電位儀設計[J].儀表技術與傳感器,2009(9):23-24.
[3]鮑可進.C8051F單片機原理及應用[M].北京:中國電力出版社,2006:23-65.
[4]李文仲.C8051F系列單片機與短距離無線數據通信[M].北京:北京航空航天大學出版社,2007:120-160.
[5]李浩.基于CC2520的二氧化硫傳感器節點設計[J].儀器儀表用戶,2009(4):30-32.
[6]董勝乾.基于無線網絡的傳感器系統設計研究[D].西安:西安電子科技大學,2008.
[7]張其武.煙氣二氧化硫濃度智能檢測儀的研究[D].濟南:山東大學,2005.
[8]杜黎.電化學傳感器測試電路設計與實現[D].大連:大連理工大學,2009.
[9]朱前偉,孫小進,趙小兵,等.基于單片機的一氧化碳傳感器的設計[J].計算機測量與控制,2009,17(7):1445-1446.
[10]袁廣超,田旭東.基于CPLD振弦式傳感器的頻率測量技術[J].自動化儀表,2009,30(11):63-66.