孟慶龍,顧 然,徐 梅
(1.齊魯工業(yè)大學(xué)(山東省科學(xué)院)山東省計(jì)算中心(國(guó)家超級(jí)計(jì)算濟(jì)南中心),山東 濟(jì)南 250014;2.齊魯工業(yè)大學(xué)(山東省科學(xué)院)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 濟(jì)南 250353)
城市污水管道中污水的來(lái)源很多,其成分也很復(fù)雜。它們?cè)谖鬯艿纼?nèi)會(huì)發(fā)生多種復(fù)雜的化學(xué)反應(yīng),生成多種氣體,如:CH、HS、NH、CO、HCN、O和NO等。其中HS是一種有毒氣體,它能損害人體的呼吸系統(tǒng),造成細(xì)胞組織嚴(yán)重缺氧,甚至危及生命。高濃度的HS氣體能瞬間使人嗅覺(jué)減退,無(wú)法察覺(jué)危險(xiǎn),當(dāng)濃度超過(guò)1 000×10時(shí)可瞬間致人死亡。此外,HS氣體還會(huì)腐蝕管道。CH是一種可燃?xì)怏w,在污水管道中的濃度太高,遇明火或者電火花極易爆炸,被稱為城市的“隱形炸彈”。為了及時(shí)發(fā)現(xiàn)這些隱患并采取措施避免災(zāi)害的發(fā)生,需要設(shè)計(jì)一種城市污水管道氣體監(jiān)測(cè)系統(tǒng)。
文獻(xiàn)[1?2]設(shè)計(jì)了污水管道可燃?xì)怏w監(jiān)測(cè)系統(tǒng),文獻(xiàn)[3]設(shè)計(jì)了多種氣體的監(jiān)測(cè)系統(tǒng)。在此基礎(chǔ)上,本文提出了氣泵采樣的新方法,并結(jié)合液位的測(cè)量對(duì)采樣進(jìn)行控制,使得監(jiān)測(cè)終端更加安全。
本文設(shè)計(jì)在系統(tǒng)架構(gòu)和通信方式上參考了文獻(xiàn)[4?7],系統(tǒng)由監(jiān)測(cè)終端和監(jiān)測(cè)中心兩部分組成。監(jiān)測(cè)終端通過(guò)各種氣體傳感器測(cè)量氣體的濃度,并通過(guò)GPRS通信模塊發(fā)送到監(jiān)測(cè)中心。監(jiān)測(cè)中心將各監(jiān)測(cè)點(diǎn)的各種氣體的濃度顯示出來(lái),并存儲(chǔ)分析和打印。下文主要介紹監(jiān)測(cè)終端的結(jié)構(gòu)、原理和功能。
本文在終端的設(shè)計(jì)參考文獻(xiàn)[8?11],設(shè)計(jì)氣泵采樣機(jī)構(gòu),并根據(jù)該系統(tǒng)的特點(diǎn)設(shè)計(jì)了太陽(yáng)能供電系統(tǒng)。
污水管道分布在城市的大街小巷,但大多沒(méi)有電源,所以使用太陽(yáng)能供電是最佳選擇。本文根據(jù)管網(wǎng)結(jié)構(gòu)選擇監(jiān)測(cè)點(diǎn),在監(jiān)測(cè)點(diǎn)開(kāi)設(shè)監(jiān)測(cè)井,立固定桿;再將太陽(yáng)能板和終端箱固定在固定桿上,將取氣管和水位傳感器投入監(jiān)測(cè)井內(nèi)。終端結(jié)構(gòu)如圖1所示。
圖1 終端結(jié)構(gòu)圖
終端除了測(cè)量氣體濃度,還測(cè)量污水水位。污水水位也是人們所關(guān)心的,如果污水溢出,將會(huì)給生產(chǎn)生活帶來(lái)很大的影響,同時(shí)也影響氣體的測(cè)量。水位的測(cè)量多采用24 V兩線制的感壓型投入式水位變送器。由于污水中的固體物質(zhì)容易堵塞變送器的進(jìn)水孔,所以可以用具有一定容積的橡膠囊對(duì)水位變送器加以保護(hù),并定期更換。太陽(yáng)能板采用常用的18 V太陽(yáng)能板。終端箱含有12 V電池,并能自動(dòng)控制其充放電。為減少電源損耗,終端箱以間斷方式運(yùn)行,其周期可人工設(shè)定。終端箱有工作和休眠兩種狀態(tài),工作時(shí)給水位變送器供電,測(cè)量水位。如果水位低于取氣管入口,則給取氣泵供電取氣,并同時(shí)給氣體傳感器供電預(yù)熱,再給GPRS通信模塊供電,使其與監(jiān)測(cè)中心的服務(wù)器建立連接。一段時(shí)間后讀取氣體傳感器,并將讀到的數(shù)值發(fā)送給GPRS模塊,發(fā)送完畢后,關(guān)閉各部分電源,進(jìn)入休眠狀態(tài)。
終端箱是終端的關(guān)鍵部分,內(nèi)部包括控制器、取氣泵、采樣盒、多種氣體傳感器、GPRS模塊、電池、充電模塊等,結(jié)構(gòu)圖如圖2所示。
圖2 終端箱內(nèi)部結(jié)構(gòu)圖
電源轉(zhuǎn)換和充電電路參考文獻(xiàn)[12?13]。其中控制器是核心部件,可輸入12 V電源進(jìn)行降壓和升壓,為自身和其他部件提供電源,并能控制這些電源,在休眠時(shí)將它們關(guān)斷。水位變送器輸出的是4~20 mA的電流信號(hào),控制器的AI1是能夠接收4~20 mA的模擬量輸入通道。甲烷傳感器和硫化氫傳感器輸出的是0~5 V的電壓信號(hào),AI4和AI5是電壓型的模擬量輸入通道??刂破髋cGPRS模塊的連接使用RS 485總線。GPRS模塊上電后自動(dòng)連接監(jiān)測(cè)中心的服務(wù)器,并進(jìn)入透?jìng)髂J健?刂破髦苯影l(fā)送數(shù)據(jù)給服務(wù)器。服務(wù)器的IP地址和端口號(hào)設(shè)置于GPRS模塊中。控制器具有一個(gè)RS 232通信接口,用于連接計(jì)算機(jī)進(jìn)行各種參數(shù)的設(shè)置,這些參數(shù)包括:終端編號(hào)、正常間隔、快發(fā)間隔、水位參考點(diǎn)、水位變送器量程、甲烷零點(diǎn)、甲烷量程、硫化氫零點(diǎn)、硫化氫量程、水位上線、甲烷上限、硫化氫上限和日期時(shí)間等。
上述控制器的功能采用單片機(jī)和相關(guān)接口電路實(shí)現(xiàn)。控制器包括以下幾個(gè)部分:?jiǎn)纹瑱C(jī)、模擬量輸入電路、RS 232接口電路、RS 485接口電路、電源升壓電路、電源降壓電路、開(kāi)關(guān)電路。單片機(jī)使用TI公司的MSP430F5438,它具有16路12位的模數(shù)轉(zhuǎn)換器、4路串行通信接口、支持JTAG,可以在線調(diào)試。模擬量輸入電路分為電流方式和電壓方式兩種,每種各3路。RS 232接口電路采用芯片MAX232EESE,RS 485接口電路采用芯片SN65HVD1781?Q1。電源升壓電路采用芯片SX1308將12 V升到24 V。降壓電路使用TPS5430DDA將12 V降為5 V,使用線性穩(wěn)壓器HT7333?1從5 V得到3.3 V電源,用于單片機(jī)。開(kāi)關(guān)電路由2個(gè)場(chǎng)效應(yīng)管組成,一個(gè)N溝道的AO3400和一個(gè)P溝道的AO3401。此外,還有一個(gè)發(fā)光二極管,用于指示控制器的狀態(tài)。
軟件設(shè)計(jì)參考文獻(xiàn)[14]。監(jiān)測(cè)終端的軟件包括以下幾個(gè)部分:初始化、水位的測(cè)量、氣體濃度的測(cè)量、數(shù)據(jù)上發(fā)、設(shè)置指令處理和定時(shí)休眠。程序流程如圖3所示。
圖3 監(jiān)測(cè)終端的軟件程序流程
該軟件用到了MSP430F5438的以下幾個(gè)功能模塊:實(shí)時(shí)時(shí)鐘(RTC)、ADC、UART0、UART1。實(shí)時(shí)時(shí)鐘模塊用于實(shí)現(xiàn)日期和時(shí)間及程序中的各種定時(shí)操作。ADC模塊將水位變送器和氣體傳感器輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),以便于單片機(jī)的后續(xù)計(jì)算。UART0用于連接計(jì)算機(jī),處理各種參數(shù)設(shè)置指令。UART1連接GPRS模塊,用于向服務(wù)器發(fā)送數(shù)據(jù)。這些模塊在使用前要進(jìn)行必要的設(shè)置,如定時(shí)時(shí)間間隔、ADC的參考源和UART的波特率等,它們的設(shè)置程序也叫初始化程序,具體步驟如下:
//初始化實(shí)時(shí)時(shí)鐘
void init_RTC()
{
RTCPS0CTL|=4<<2;//設(shè)置預(yù)分頻系數(shù),使RTC每1/1 024 s中斷一次
RTCPS0CTL|=1<<1; //使能預(yù)分頻器中斷
RTCCTL1 &=~(1<<6); //啟動(dòng)實(shí)時(shí)時(shí)鐘
RTCCTL1|=1<<5;//設(shè)置成實(shí)時(shí)時(shí)鐘模式,而非32位計(jì)數(shù)模式
RTCCTL0|=1<<4;//RTCRDY中斷使能,用于刷新時(shí)間和日期
}
//初始化ADC:
void initADC()
{
P6SEL|=0x7F; //使能ADC通道0至通道6
ADC12CTL0 &=~ADC12ENC; //設(shè)置前關(guān)閉ADC
ADC12CTL0=ADC12SHT02 //設(shè)置ADC時(shí)鐘
+ADC12MSC //多通道順序轉(zhuǎn)換
+ADC12REF2_5V //選擇2.5 V參考源
+ADC12REFON //打開(kāi)參考源
+ADC12ON; //打開(kāi)ADC
ADC12CTL1=ADC12SHP //使用采樣定時(shí)器
+ADC12CONSEQ_1; //多通道順序模式
ADC12MCTL0=C12SREF_1+ADC12INCH_0;//設(shè)置通道0參考源和存儲(chǔ)地址
ADC12MCTL1=C12SREF_1+ADC12INCH_1;//設(shè)置通道1參考源和存儲(chǔ)地址
ADC12MCTL2=C12SREF_1+ADC12INCH_2;//設(shè)置通道2參考源和存儲(chǔ)地址
ADC12MCTL3=ADC12SREF_1+ADC12INCH_3;//設(shè)置通道3參考源和存儲(chǔ)地址
ADC12MCTL4=ADC12SREF_1+ADC12INCH_4;//設(shè)置通道4參考源和存儲(chǔ)地址
ADC12MCTL5=ADC12SREF_1+ADC12INCH_5;//設(shè)置通道5參考源和存儲(chǔ)地址
ADC12MCTL6=ADC12SREF_1+ADC12INCH_6+ADC12EOS; //設(shè)置通道6參考源和存儲(chǔ)地址
ADC12CTL0|=ADC12ENC; //打開(kāi)ADC
ADC12IE|=ADC12IE6; //中斷使能
}
//初始化串口0
void init_com0(void)
{
P3SEL|=0x30; //使能RXD0、TXD0管腳
UCA0CTL1|=UCSWRST; //復(fù)位模式
UCA0CTL1|=UCSSEL_2; //選擇時(shí)鐘SMCLK
UCA0BR0=6; //以下兩句設(shè)置波特率
UCA0BR1=0;
UCA0MCTL=UCBRF_13 //第一階段調(diào)制模式
+UCBRS_0 //第二階段調(diào)制模式
+UCOS16; //過(guò)采樣模式
UCA0CTL1 &=~UCSWRST; //運(yùn)行模式
UCA0IE|=UCRXIE; //使能接收中斷
UCA0IE|=UCTXIE; //使能發(fā)送中斷
}
串口1的初始化和串口0相似。初始化完成后,執(zhí)行圖3所示的流程圖中的程序。在程序執(zhí)行過(guò)程中要處理4個(gè)中斷,即RTC中斷、ADC中斷、串口0中斷和串口1中斷。RTC中斷分為1/1 024 s中斷和1 s中斷兩種,可以通過(guò)RTCIV寄存器的值來(lái)區(qū)分。1/1 024 s中斷時(shí)對(duì)各種軟件定時(shí)器計(jì)時(shí);1 s中斷時(shí)更新日期和時(shí)間的值。ADC中斷時(shí),說(shuō)明模/數(shù)轉(zhuǎn)換完成,這時(shí)可以從結(jié)果寄存器中讀出數(shù)據(jù),以便進(jìn)行后面的計(jì)算。串口0每接收到一個(gè)字節(jié)數(shù)據(jù)或發(fā)送完一個(gè)字節(jié)數(shù)據(jù),就會(huì)產(chǎn)生一個(gè)中斷。寄存器UCA0IV的值可用來(lái)區(qū)分接收中斷和發(fā)送中斷。如果是接收中斷則將接收到的字節(jié)存入接收緩沖區(qū),直到接收完一幀數(shù)據(jù)。如果有3個(gè)字節(jié)的時(shí)間沒(méi)有數(shù)據(jù)接收則認(rèn)為一幀結(jié)束,即對(duì)該幀進(jìn)行校驗(yàn),并對(duì)指令進(jìn)行相應(yīng)的處理。如果是發(fā)送中斷,則發(fā)送緩沖區(qū)的下一個(gè)字節(jié)至串口0的數(shù)據(jù)寄存器,直到發(fā)送緩沖區(qū)的數(shù)據(jù)發(fā)送完畢。串口1中斷的處理和串口0相似。
本文所設(shè)計(jì)的城市污水管道監(jiān)測(cè)終端與監(jiān)測(cè)中心服務(wù)器軟件配套,已在某城市運(yùn)行,取得了很好的效果,使城市管理部門能及時(shí)掌握污水管道的水位和氣體的濃度情況,及時(shí)采取處理措施,保障了居民的財(cái)產(chǎn)和生命安全。