洪 濤,梁曉瑜
(中國(guó)計(jì)量大學(xué)計(jì)量測(cè)試工程學(xué)院,浙江杭州 310018)
受限空間又稱有限空間或密閉空間,是指封閉或者部分封閉,與外界相對(duì)隔離,出入口較為狹窄,作業(yè)人員不能長(zhǎng)時(shí)間在內(nèi)工作,自然通風(fēng)不良,易造成有毒有害、易燃易爆物質(zhì)積聚或者氧含量不足的空間。受限空間因?yàn)槠渥鳂I(yè)環(huán)境情況復(fù)雜,空間狹小、通風(fēng)不暢、不利于氣體擴(kuò)散,故容易積聚有毒有害氣體,并且氧濃度與外界差別較大,容易發(fā)生中毒窒息事故。當(dāng)發(fā)生意外時(shí),如果貿(mào)然進(jìn)入救援,或許會(huì)直接威脅到救援人員的生命安全[1]。
故本文設(shè)計(jì)了一種受限空間中氣體檢測(cè)裝置,它不僅具有實(shí)時(shí)檢測(cè)、顯示、報(bào)警等基礎(chǔ)功能,還具備數(shù)據(jù)遠(yuǎn)程傳輸給外界監(jiān)控人員的功能,使得外部人員也能夠了解救援人員所處的環(huán)境信息,從而采取正確的措施應(yīng)對(duì)當(dāng)前情況,避免傷亡的擴(kuò)大。
電化學(xué)傳感器結(jié)構(gòu)圖如圖1所示
圖1 電化學(xué)傳感器結(jié)構(gòu)框圖
電化學(xué)傳感器主要由透氣膜、電極、電解液和過(guò)濾器組成。與傳感器產(chǎn)生反應(yīng)的目標(biāo)氣體透過(guò)過(guò)濾器和透氣膜到達(dá)工作電極并且在工作電極上發(fā)生氧化或還原反應(yīng),發(fā)生電子的轉(zhuǎn)移,從而產(chǎn)生隨目標(biāo)氣體濃度成線性變化的電流[2]。為了使傳感電極電勢(shì)在長(zhǎng)時(shí)間工作中保持恒定,往往在傳感器內(nèi)部加入?yún)?/p>
考電極。
O2電化學(xué)傳感器采用隔膜伽伐尼電池原理。這類傳感器由易極化的活潑金屬構(gòu)成陽(yáng)極,具有催化活性的金屬構(gòu)成陰極。
O2到達(dá)工作電極時(shí),立即發(fā)生還原反應(yīng),O2被還原成OH-。OH-通過(guò)電解液到達(dá)對(duì)電極,與Pb發(fā)生氧化反應(yīng),生成pb(OH)2,同時(shí)釋放電子[3]。陰極和陽(yáng)極的反應(yīng)方程式分別如式(1)和式(2)所示。
總電池反應(yīng)如式(3)所示。
CO電化學(xué)傳感器的工作原理是:當(dāng)CO到達(dá)工作電極時(shí),發(fā)生氧化反應(yīng),產(chǎn)生H+,同時(shí)釋放電子。H+通過(guò)電解液到達(dá)對(duì)電極,發(fā)生氧化反應(yīng)。該過(guò)程的反應(yīng)方程式如式(4)和式(5)所示。
總電池反應(yīng)如式(6)所示。
H2S電化學(xué)傳感器的工作原理是:當(dāng)H2S到達(dá)工作電極時(shí),發(fā)生還原反應(yīng),產(chǎn)生 H+,同時(shí)釋放電子。H+通過(guò)電解液到達(dá)對(duì)電極,發(fā)生氧化反應(yīng)。該過(guò)程的反應(yīng)方程式如式(7)和式(8)所示。
總電池反應(yīng)如式(9)所示。
上述所有過(guò)程中,電子的消耗和轉(zhuǎn)移可以產(chǎn)生電流,測(cè)量對(duì)應(yīng)電流的大小即可計(jì)算出目標(biāo)氣體的濃度。
系統(tǒng)使用STM32F103RCT6微處理器,與電化學(xué)傳感器和CC1101無(wú)線傳輸模塊結(jié)合,設(shè)計(jì)了一種受限空間氣體檢測(cè)裝置,主要具有以下功能:(1)能夠檢測(cè)CO、H2S這兩種常見(jiàn)的受限空間有毒氣體濃度和O2的濃度;(2)能夠?qū)舛刃畔@示在液晶顯示屏上;(3)具有聲音報(bào)警功能;(4)具有氣體濃度信息無(wú)線傳輸功能。本系統(tǒng)的結(jié)構(gòu)框架如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)框圖
本系統(tǒng)主要由2部分組成,分別是救援人員攜帶的檢測(cè)裝置,和置于外部的監(jiān)測(cè)裝置。檢測(cè)裝置主要包括:單片機(jī)的最小系統(tǒng),電化學(xué)傳感器,信號(hào)處理芯片,TFTLCD液晶顯示屏,發(fā)光二極管和蜂鳴器。原理如下:當(dāng)電化學(xué)傳感器感知到外界的有害氣體后,會(huì)輸出隨氣體濃度變化的電流信號(hào),電流信號(hào)經(jīng)過(guò)信號(hào)處理芯片后轉(zhuǎn)換為電壓信號(hào),電壓信號(hào)被單片機(jī)采集并經(jīng)過(guò)內(nèi)部的12位ADC進(jìn)行模數(shù)轉(zhuǎn)換,經(jīng)過(guò)計(jì)算后在液晶顯示屏上顯示,如果超過(guò)報(bào)警濃度則進(jìn)行聲光報(bào)警。與此同時(shí),將數(shù)據(jù)通過(guò)無(wú)線傳輸芯片傳輸?shù)酵獠康谋O(jiān)測(cè)系統(tǒng),方便外部人員實(shí)時(shí)監(jiān)測(cè),并且外部監(jiān)測(cè)系統(tǒng)也具備報(bào)警功能。
系統(tǒng)采用的2個(gè)微處理器都是STM32F103RCT6芯片,該芯片是32位ARM微控制器,以Cortex-M3為核心,速度高達(dá)72 MHz,滿足系統(tǒng)的實(shí)時(shí)性需求。并且該芯片具有3個(gè)12位ADC,3個(gè)SPI接口,2個(gè)I2C接口,5個(gè)串口,48 KB的SRAM和256 KB的FLASH,方便與LMP91000信號(hào)處理芯片和CC1101無(wú)線傳輸芯片進(jìn)行通信[4]。微處理器與晶振、復(fù)位電路、電源和程序燒錄口構(gòu)成單片機(jī)最小系統(tǒng)。
目前市場(chǎng)上檢測(cè)有毒氣體的檢測(cè)儀器大多數(shù)都使用電化學(xué)傳感器。電化學(xué)傳感器具有良好的重復(fù)性、準(zhǔn)確性和分辨率,精度高、功耗低,并且比大多數(shù)其他氣體檢測(cè)技術(shù)更經(jīng)濟(jì)[5]。本設(shè)計(jì)使用4系氧氣傳感器 AAY80-390R 和4CO-500、4H2S-100傳感器。O2電化學(xué)傳感器是雙引腳傳感器,分別是對(duì)電極(C)和工作電極(W)。CO和H2S電化學(xué)傳感器是三引腳傳感器,分別是對(duì)電極、工作電極和參考電極(R)。電化學(xué)氣體傳感器可輸出隨濃度成線性變化的電流信號(hào)。
由于電化學(xué)傳感器輸出的是電流信號(hào),需要把它轉(zhuǎn)換成電壓信號(hào),所以需要進(jìn)行信號(hào)處理。電化學(xué)傳感器具有經(jīng)典的調(diào)理電路,如圖3所示。
圖3 電化學(xué)傳感器經(jīng)典調(diào)理電路
但是該調(diào)理電路需要改變反饋電阻來(lái)適應(yīng)不同傳感器的電壓輸出,使得電路的統(tǒng)一性不高,并且過(guò)于復(fù)雜[6]。故本系統(tǒng)采用了LMP91000芯片作為電化學(xué)傳感器的輸出信號(hào)處理核心。LMP91000芯片是一款可編程模擬前端(AFE),專門適用于微功耗電化學(xué)感測(cè)應(yīng)用。該芯片的引腳配置如圖4所示。
圖4 芯片引腳配置
該芯片中主要有5個(gè)寄存器,分別是狀態(tài)寄存器、保護(hù)寄存器、TIA控制寄存器、參考控制寄存器和模式控制寄存器,配置這些寄存器可以設(shè)置各種參數(shù)。
LMP91000與微處理器是通過(guò)I2C協(xié)議進(jìn)行通信。當(dāng)有多個(gè) LMP91000與微控制器連接時(shí),將所有LMP91000的SCL和SDA引腳都與微控制器的同一對(duì)SCL和SDA引腳連接,各芯片的MENB引腳與微控制器不同的I/O口連接,通過(guò)控制MENB的高低電平,從而控制微控制器與LMP91000通訊。圖5顯示了當(dāng)多個(gè)LMP91000連接到I2C總線上的典型連接方式。
圖5 多個(gè)LMP91000與I2C總線的連接
電化學(xué)傳感器與LMP91000的電路連接如圖6(a)和6(b)所示。
圖6 電化學(xué)傳感器連接圖
圖6 中的SDA與SCL用作I2C通信的接口。MENB是使能引腳,VOUT輸出的是電壓信號(hào)并輸入到單片機(jī)的ADC接口進(jìn)行模數(shù)轉(zhuǎn)換。AGND和DGND通過(guò)0 Ω的電阻相連,實(shí)現(xiàn)單點(diǎn)接地。
本系統(tǒng)采用的是ALIENTEK TFTLCD模塊,用來(lái)顯示氣體濃度數(shù)據(jù)。電路連接圖如圖7所示[7]。
圖7 TFTLCD模塊連接圖
聲光報(bào)警電路連接圖如圖8所示。
圖8 聲光報(bào)警電路
當(dāng)周圍濃度超過(guò)預(yù)設(shè)濃度時(shí),PA8輸出高電平,三極管的基級(jí)電壓大于開(kāi)啟電壓,使三極管導(dǎo)通,故發(fā)光二極管和蜂鳴器都工作[8]。
現(xiàn)在無(wú)線傳輸?shù)募夹g(shù)有Wi-Fi,藍(lán)牙,Zigbee和自定義(如433M)。相比之下,433M的傳輸距離遠(yuǎn),復(fù)雜性不高,可靠性高,傳輸速率快,設(shè)備成本低,繞射性好[9],十分適用于在受限空間中的數(shù)據(jù)傳輸。故本文采用的是CC1101無(wú)線傳輸芯片。
CC1101是一款低成本的1 GHz以下的射頻收發(fā)器,專為超低功耗無(wú)線應(yīng)用設(shè)計(jì)。該芯片主要用于315 MHz,433 MHz,868 MHz 和 915 MHz 的 ISM 和SRD頻段,特別適和于針對(duì)通信設(shè)備的無(wú)線應(yīng)用。本系統(tǒng)使用工業(yè)級(jí)CC1101無(wú)線模塊,具有標(biāo)準(zhǔn)SMA天線接口,實(shí)物圖如圖9所示。
圖9 工業(yè)級(jí)CC1101模塊
CC1101的內(nèi)部寄存器繁多,但是用Smart R F Studio 7軟件配置寄存器,可以大大簡(jiǎn)化開(kāi)發(fā)流程。微處理器通過(guò)I/O口模擬4線SPI接口(CS,MOIS,MISO,SCK)時(shí)序來(lái)控制CC1101芯片進(jìn)行通訊。
本裝置的單片機(jī)、信號(hào)處理芯片和液晶模塊均使用3.3 V供電。故采用AMS1117-3.3V芯片將干電池電壓轉(zhuǎn)換成3.3 V電壓[10]。電源電路圖如圖10所示。
圖10 電源電路圖
主程序主要包括系統(tǒng)初始化,氣體信息濃度采集,信號(hào)處理,無(wú)線收發(fā),液晶顯示,超標(biāo)報(bào)警等子程序。具體流程圖如圖11所示。
LMP91000的程序流程圖如圖12所示。
系統(tǒng)通電后,先對(duì)LMP91000初始化,讀取其狀態(tài)寄存器,若為1,則準(zhǔn)備接受I2C命令。芯片啟動(dòng)后,把鎖定寄存器置0,使能寫入TIACN和REFCN寄存器。然后配置各個(gè)寄存器,設(shè)置負(fù)增益阻抗、反饋電阻、內(nèi)部零點(diǎn)、偏置、參考源和操作模式,最后鎖定寄存器置1,禁止寫入TIACN和REFCN寄存器。配置完成后從芯片的VOUT引腳讀取轉(zhuǎn)換后的電壓值。其中電壓值與電化學(xué)傳感器的輸出電流關(guān)系如下:
圖11 主程序流程圖
圖12 LMP91000程序流程圖
式中:Vref_div為內(nèi)部零點(diǎn)選擇后的參考電壓;Vout為輸出電壓;RTIA為負(fù)增益阻抗;Iwe為電化學(xué)傳感器輸出電流。
數(shù)據(jù)的無(wú)線傳輸需要用到2個(gè)無(wú)線模塊。一個(gè)負(fù)責(zé)在受限空間內(nèi)發(fā)送數(shù)據(jù),一個(gè)負(fù)責(zé)在外部接收數(shù)據(jù)。通信開(kāi)始時(shí),先對(duì)CC1101進(jìn)行復(fù)位,再編寫SPI寫寄存器、SPI連續(xù)寫配置寄存器、SPI寫命令等函數(shù)對(duì)CC1101進(jìn)行設(shè)置和操作,包括數(shù)據(jù)包處理,發(fā)送功率設(shè)置,調(diào)制方式等。
無(wú)線數(shù)據(jù)發(fā)送與接收流程圖分別如圖13(a)和圖13(b)所示。
圖13 無(wú)線數(shù)據(jù)發(fā)送與接收流程圖
無(wú)線發(fā)送部分代碼:
void halRfSendPacket(INT8U*txBuffer,INT8U size){
halSpiWriteBurstReg(CC1101_TXFIFO,txBuffer,size);
halSpiStrobe(CC1101_STX);
while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_GD0));
while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_GD0));
halSpiStrobe(CC1101_SFTX);}
無(wú)線接收部分代碼:
INT8U halRfReceivePacket(INT8U*rxBuffer,INT8U*length){
INT8U status[2];
INT8U packetLength;
INT8U i=(*length)*4;
halSpiStrobe(CC1101_SRX);
Delay(5);
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_GD0)){
Delay(2);
--i;
if(i<1)
return 0;}
if((halSpiReadStatus(CC1101_RXBYTES)&BYTES_IN_RXFIFO)){
packetLength=halSpiReadReg(CC1101_RXFIFO);
if(packetLength<=*length){
halSpiReadBurstReg(CC1101_RXFIFO,rxBuffer,packetLength);
*length=packetLength;
halSpiReadBurstReg(CC1101_RXFIFO,status,2);
halSpiStrobe(CC1101_SFRX);
return(status[1]& CRC_OK);}
else{
*length=packetLength;
halSpiStrobe(CC1101_SFRX);
return 0;}}
else
return 0;}
本系統(tǒng)的硬件電路使用Altium Designer軟件繪制,并且用該軟件繼而繪制好PCB原理圖,交給生產(chǎn)工廠進(jìn)行制作。為了方便調(diào)試,將3個(gè)電化學(xué)傳感器插入針腳安裝在印刷電路板的背面。焊接元器件后,用萬(wàn)用表確保硬件電路沒(méi)有問(wèn)題情況下,再進(jìn)行程序的燒錄和調(diào)試。氣體檢測(cè)部分的實(shí)物圖如圖14(a)和圖14(b)所示。
圖14 PCB實(shí)物圖
本系統(tǒng)的電化學(xué)傳感器在測(cè)量前先經(jīng)過(guò)48 h的老化處理,并且預(yù)熱后通過(guò)流量計(jì)送入99.999%的純氮?dú)庑?zhǔn)零點(diǎn)。圖15是放在潔凈大氣中液晶顯示屏的顯示界面。
將不同濃度的待測(cè)氣體通過(guò)標(biāo)定嘴送給傳感器,待檢測(cè)系統(tǒng)檢測(cè)到的濃度數(shù)值穩(wěn)定后,記錄數(shù)據(jù)。測(cè)試的數(shù)據(jù)表明,進(jìn)行檢測(cè)的各待測(cè)氣體濃度數(shù)值均在合理的誤差范圍內(nèi)。測(cè)試結(jié)果如表1所示。
圖15 潔凈大氣中液晶顯示界面
表1 誤差測(cè)試數(shù)據(jù)表
由于3種氣體的穩(wěn)定性原理相似,所以僅以O(shè)2為例作為該裝置穩(wěn)定性的測(cè)試。將裝置置于潔凈大氣中(O2濃度為20.90%),每隔2 h記錄1次數(shù)據(jù),共記錄5次。測(cè)試結(jié)果如表2所示。
表2 氧氣穩(wěn)定性測(cè)試數(shù)據(jù)表 %
如表2所示,5次測(cè)量中最小值是20.70%,最大值是21.09%,穩(wěn)定度為0.39%,符合穩(wěn)定性要求。
本文設(shè)計(jì)的受限空間氣體檢測(cè)裝置可以實(shí)現(xiàn)關(guān)鍵氣體的檢測(cè),無(wú)線傳輸,液晶屏顯示,超標(biāo)報(bào)警等功能。與傳統(tǒng)的電化學(xué)傳感器檢測(cè)電路相比,使用LMP91000芯片進(jìn)行信號(hào)處理,大大降低了電路的復(fù)雜性,提高了系統(tǒng)的可靠性與測(cè)量精度。施救人員身上的檢測(cè)裝置可以通過(guò)433 MHz頻段的無(wú)線傳輸,第一時(shí)間傳輸?shù)酵獠康谋O(jiān)測(cè)人員的終端上,可以使救援團(tuán)隊(duì)及時(shí)了解當(dāng)前情況,從而采取相應(yīng)的措施,在受限空間救援中有一定的實(shí)用性。