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