(揚(yáng)州大學(xué) 機(jī)械工程學(xué)院,江蘇 揚(yáng)州 225127)
隨著城市的發(fā)展,各種通信、供電、供水、供氣網(wǎng)路越來(lái)越復(fù)雜,為了便于管理,節(jié)約地上空間,這些網(wǎng)路一般都布置在地下綜合管廊中,那么井蓋產(chǎn)生的安全隱患如井蓋被盜、通過(guò)井蓋入口盜取管廊內(nèi)的電線電纜等等,所以地下綜合管廊的井蓋安全就顯得極其重要。李志、徐文青等分別提出了基于Zigbee無(wú)線網(wǎng)絡(luò)的智能安全井蓋監(jiān)控系統(tǒng),實(shí)現(xiàn)了對(duì)井蓋的實(shí)時(shí)監(jiān)測(cè)、精確定位、自動(dòng)報(bào)警[1-2]。王悅提出了基于綜合信息的一次編碼,對(duì)井蓋的位置及類型信息進(jìn)行規(guī)整,基于百度地圖對(duì)井蓋位置狀態(tài)監(jiān)測(cè),實(shí)現(xiàn)井蓋與地圖的匹配、井蓋移動(dòng)軌跡顯示及移動(dòng)范圍設(shè)定,實(shí)現(xiàn)越界報(bào)警[3]。還有采用 Microsoft Silverlight 和 GIS 技術(shù)相結(jié)合,Rational統(tǒng)一過(guò)程(RUP)為軟件開(kāi)發(fā)方法[4-5],無(wú)線檢測(cè)等方法對(duì)井蓋實(shí)行檢測(cè)、報(bào)警[6-8]。本文對(duì)井蓋報(bào)警系統(tǒng)采用nRF24L01[9]無(wú)線通信和RS-485[10]通信方式,通過(guò)發(fā)送授權(quán)碼打開(kāi)從機(jī)井蓋,并通過(guò)單片機(jī)實(shí)時(shí)檢測(cè)從機(jī)井蓋的行程開(kāi)關(guān)信號(hào),達(dá)到對(duì)井蓋的檢測(cè)、報(bào)警和打開(kāi)的功能。
整個(gè)井蓋檢測(cè)報(bào)警系統(tǒng)包括置于中心控制室的主機(jī)控制盒、安裝在井蓋上的從機(jī)控制盒以及無(wú)線遙控器。系統(tǒng)工作過(guò)程如下:當(dāng)需要打開(kāi)井蓋時(shí),主機(jī)控制盒(如圖1)通過(guò)nRF24L01無(wú)線模塊或RS-485將6位從機(jī)地址編號(hào)和2位動(dòng)態(tài)密碼發(fā)送給從機(jī)控制盒(如圖2),nRF24L01無(wú)線通信和RS-485通信方式傳輸距離分別可達(dá)到1 km和 1.2 km,而城市井蓋間的距離大約50 m,從而可以保證通信的安全高效穩(wěn)定,從機(jī)控制盒接收動(dòng)態(tài)密碼,并在從機(jī)數(shù)碼管的后兩位顯示;工作人員在無(wú)線遙控器上設(shè)定從機(jī)控制盒上的8位授權(quán)碼,并發(fā)送給從機(jī)控制盒;從機(jī)控制盒接收無(wú)線遙控器(如圖3)發(fā)來(lái)的信號(hào),并通過(guò)STC89C58RD+單片機(jī)程序控制打開(kāi)井蓋上的電磁鐵,最后工作人員便可安全打開(kāi)井蓋;此時(shí),井蓋屬于正常打開(kāi),從機(jī)控制盒將地址編號(hào)通過(guò)nRF24L01無(wú)線模塊或RS-485反饋給主機(jī)控制盒,這時(shí)主機(jī)控制盒上會(huì)顯示被打開(kāi)的井蓋的地址編號(hào),并亮綠燈。當(dāng)井蓋被非法途徑被打開(kāi)時(shí),會(huì)觸發(fā)井蓋上的行程開(kāi)關(guān),從機(jī)控制盒會(huì)立即產(chǎn)生報(bào)警信號(hào)并將該從機(jī)地址編號(hào)通過(guò)前一編號(hào)的從機(jī)反饋給主機(jī)控制盒,主機(jī)控制盒上會(huì)顯示被非法打開(kāi)井蓋的地址編號(hào),亮紅燈并觸發(fā)蜂鳴器報(bào)警。整個(gè)系統(tǒng)最主要的是通信,正常授權(quán)、反饋以及報(bào)警檢測(cè)都是通過(guò)nRF24L01無(wú)線模塊和RS-485雙回路完成井蓋之間,井蓋與主機(jī)之間的通信。
圖1 主機(jī)控制盒 圖2 從機(jī)控制盒
圖3 遙控器
圖4 控制系統(tǒng)主要硬件電路圖
另外,系統(tǒng)還采用短信報(bào)警檢測(cè)功能。每個(gè)從機(jī)都裝有短信模塊,可以接收并發(fā)送短信,工作人員可以通過(guò)指定手機(jī)向從機(jī)發(fā)送從機(jī)編號(hào)便可打開(kāi)該編號(hào)井蓋;當(dāng)從機(jī)井蓋被非法打開(kāi)時(shí),該從機(jī)上的短信模塊會(huì)發(fā)送報(bào)警短信給指定手機(jī),手機(jī)短信模塊功能的使用方便了工作人員隨時(shí)接收從機(jī)井蓋報(bào)警狀態(tài)并采取相應(yīng)措施。
圖4為地下綜合管廊井蓋檢測(cè)報(bào)警系統(tǒng)主要硬件電路圖。
主控芯片是STC89C58RD+單片機(jī),該款單片機(jī)具有內(nèi)存容量大、超強(qiáng)抗干擾、高速、低功耗等優(yōu)點(diǎn),其指令代碼與傳統(tǒng)的8051單片機(jī)完全兼容,但速度是8051單片機(jī)的8~12倍,能夠?qū)崟r(shí)接收主機(jī)、從機(jī)或者遙控器發(fā)出的信號(hào),超強(qiáng)抗干擾能力和大容量?jī)?nèi)存可保證系統(tǒng)持續(xù)長(zhǎng)時(shí)間工作。數(shù)碼管配合ULN2003驅(qū)動(dòng)模塊和三極管電路完成顯示工作,其中引腳接三極管電路的S4-2,由三極管電路控制。無(wú)線通信電路和有線通信電路是通過(guò)各自的nRF24L01無(wú)線模塊和RS-485實(shí)現(xiàn)從機(jī)與主機(jī)以及從機(jī)之間的通信,能提高系統(tǒng)的穩(wěn)定性。遙控器內(nèi)部配有nRF24L01無(wú)線模塊實(shí)現(xiàn)遙控器與從機(jī)的通信,經(jīng)測(cè)試,該模塊通信響應(yīng)速度快,傳輸速率可達(dá)8 Mbps,穩(wěn)定可靠,而且此模塊發(fā)射模式下發(fā)射功率為0 dBm 時(shí)電流消耗為11.3 mA ,接收模式時(shí)為12.3 mA,掉電模式和待機(jī)模式下電流消耗更低,具有低功耗的優(yōu)點(diǎn),降低了本系統(tǒng)的主要功耗。報(bào)警狀態(tài)響應(yīng)的外部特征之一就是發(fā)出報(bào)警聲音,由此設(shè)計(jì)了三極管蜂鳴器電路。若使用單片機(jī)內(nèi)部晶振,可能會(huì)導(dǎo)致時(shí)序的不穩(wěn)定,因此設(shè)計(jì)的外部晶振電路,保證了在主機(jī)、從機(jī)和遙控器之間通信時(shí)有一個(gè)穩(wěn)定的波特率,提高整個(gè)系統(tǒng)通信的穩(wěn)定性。
2.2.1 無(wú)線通信模塊
此系統(tǒng)的無(wú)線通信硬件選擇了nRF24L01模塊,用于從機(jī)向主機(jī)發(fā)送報(bào)警信號(hào)、主機(jī)向從機(jī)發(fā)送授權(quán)碼以及遙控器向從機(jī)發(fā)送的動(dòng)態(tài)密碼,該模塊是用ISM頻段接收發(fā)送信號(hào)的通信芯片,工作頻率為2.4~2.5 GHz,通用性高,適合大多數(shù)控制系統(tǒng)的信號(hào)接收發(fā)送無(wú)線通信方式。nRF24L01通信模塊的無(wú)線接收方式是通過(guò)SPI接口進(jìn)行調(diào)試設(shè)置的,設(shè)置內(nèi)容包括:信號(hào)功率放大器、頻率發(fā)生器、調(diào)制調(diào)節(jié)器、晶體放大器、信號(hào)控制器、輸出功率和工作頻道的選擇以及相應(yīng)的工作協(xié)議。在使用過(guò)程中,nRF24L01無(wú)線通信模塊的工作電流極低,當(dāng)工作模式為發(fā)射時(shí),模塊的發(fā)射功率為-6 dBm,相應(yīng)的工作電流為11 mA;當(dāng)工作模式為接收時(shí),工作電流為12.5 mA;當(dāng)無(wú)線模塊既不發(fā)送也不接收,處于掉電模式時(shí)或待機(jī)模式時(shí)的工作電流更低,僅為900 nA;極低的工作電流保證了nRF24L01無(wú)線通信模塊可以在長(zhǎng)時(shí)間工作環(huán)境中正常工作。當(dāng)無(wú)線通信模塊nRF24L01在通過(guò)SPI接口工作時(shí),工作節(jié)點(diǎn)可以通過(guò)自動(dòng)組網(wǎng)的方式與主控制芯片進(jìn)行無(wú)線數(shù)據(jù)的接收和發(fā)送。
2.2.2 數(shù)碼管顯示
本控制系統(tǒng)主機(jī)和從機(jī)的顯示部分采用數(shù)碼管顯示,主機(jī)和從機(jī)系統(tǒng)的數(shù)碼管顯示包括數(shù)碼管、數(shù)碼管驅(qū)動(dòng)芯片ULN2003、PNP三極管以及阻值為300 Ω和5 KΩ的電阻。數(shù)碼管顯示需要段碼和位碼組合控制要顯示的內(nèi)容,主控制芯片單片機(jī)P0位用于輸出段碼信號(hào),單片機(jī)的P2位用于輸出位碼信號(hào)。段碼表示的是數(shù)碼管8位中哪一段顯示高亮,例如數(shù)碼管顯示的1,2,3等;位碼控制的是哪一個(gè)數(shù)碼管顯示(本系統(tǒng)有8個(gè)數(shù)碼管顯示)。本系統(tǒng)從機(jī)數(shù)碼管設(shè)定的工作方式分為兩種,前6個(gè)數(shù)碼管顯示的編號(hào)表示將要對(duì)某一井蓋控制的井蓋編號(hào),最后2個(gè)數(shù)碼管顯示的內(nèi)容是打開(kāi)此從機(jī)需要的動(dòng)態(tài)密碼,及授權(quán)碼。
2.2.3 電源模塊
圖6 系統(tǒng)程序流程圖
本系統(tǒng)電源設(shè)計(jì)要滿足主控制芯片單片機(jī)和無(wú)線通信模塊nRF24L01的供電需求,其中主控制芯片所需工作電壓為5 V,無(wú)線通信模塊nRF24L01不同于一般的元器件,需要的工作電壓為3.3 V,其他元器件所需電壓均為5 V。主機(jī)和從機(jī)控制電路板都有無(wú)線通信模塊,電路板的輸入電源由穩(wěn)壓電源提供,電壓為24 V,原始24 V電源通過(guò)電壓轉(zhuǎn)換模塊將為5 V電壓電源,為控制芯片供電,另外將一路5 V電源通過(guò)電壓轉(zhuǎn)換模塊DC-DC降為3.3 V電源給給無(wú)線通信模塊供電。同樣,遙控器控制電路板也有無(wú)線通信模塊,電源部分的設(shè)計(jì)和主機(jī)從機(jī)控制電路板相同,將24 V電源降為5 V和3.3 V為主控制芯片和無(wú)線通信模塊供電。
圖5是井蓋檢測(cè)報(bào)警系統(tǒng)主機(jī)和從機(jī)流程圖。
如圖5(a)所示主機(jī)的工作流程,主機(jī)在中心控制室一直處于接收模式,即檢測(cè)狀態(tài),檢測(cè)從機(jī)井蓋是否被非法破壞,在整個(gè)系統(tǒng)中大部分時(shí)間都處于這種檢測(cè)狀態(tài),由于是有線和無(wú)線雙回路通信方式,檢測(cè)功能非常穩(wěn)定,并且由于模塊的特性,檢測(cè)時(shí)功耗極低,節(jié)能環(huán)保。主機(jī)另一個(gè)重要功能即主動(dòng)發(fā)送授權(quán)碼給從機(jī),從而可以合法打開(kāi)井蓋。在程序中設(shè)計(jì)這一中斷,程序從檢測(cè)狀態(tài)到主動(dòng)發(fā)送授權(quán)碼命令再回到檢測(cè)狀態(tài),程序條理清晰,可以及時(shí)準(zhǔn)確響應(yīng)這一中斷并返回檢測(cè)狀態(tài)。
如圖5(b)所示從機(jī)的工作流程,和主機(jī)一樣從機(jī)處于檢測(cè)狀態(tài),即檢測(cè)井蓋上行程開(kāi)關(guān)信號(hào)。從機(jī)工作流程與主機(jī)是相輔相成,配合使用的,通信系統(tǒng)即是二者聯(lián)系的重要橋梁。不同于主機(jī)的是從機(jī)配有短信模塊,這使得從機(jī)在此模塊工作狀態(tài)下通信數(shù)據(jù)只有單方向通信,例如使用手機(jī)短信控制正常打開(kāi)井蓋時(shí),從機(jī)接收到的信號(hào)并不是主機(jī)傳送的,而是短信信號(hào),但將狀態(tài)反饋給主機(jī)仍是通過(guò)雙通信方式。
圖5 程序流程圖
整個(gè)系統(tǒng)的流程如圖6所示,如上述,主機(jī)和從機(jī)處于檢測(cè)狀態(tài),即本系統(tǒng)檢測(cè)報(bào)警功能之一,主機(jī)和從機(jī)的工作過(guò)程相輔相成,二者不能分離,是一個(gè)整體,為對(duì)方服務(wù)。由此組成的系統(tǒng)最重要的是各部分之間的通信,雙回路通信配合短信通信使得系統(tǒng)檢測(cè)和報(bào)警功能穩(wěn)定、快速以及準(zhǔn)確。
下面著重介紹該系統(tǒng)軟件設(shè)計(jì)中中斷函數(shù)程序設(shè)計(jì)和主機(jī)軟件程序中nRF24L01無(wú)線通信的軟件程序設(shè)計(jì)。
主機(jī)和從機(jī)系統(tǒng)的中斷函數(shù)程序設(shè)計(jì),主控制芯片單片機(jī)定時(shí)器0中斷服務(wù)于8個(gè)數(shù)碼管的顯示,設(shè)計(jì)50 ms中斷一次并刷新數(shù)碼管,保證了數(shù)碼管持續(xù)高亮,通過(guò)人眼感受不到數(shù)碼管亮度的跳動(dòng)。編寫該中斷程序時(shí),定時(shí)器0每次循環(huán)需要重裝初值,采用的晶振頻率為11.059 2 MHz,代碼為TH0=0xFC;TL0=0x02;中斷程序過(guò)后即調(diào)用數(shù)碼管顯示子程序,顯示數(shù)碼管內(nèi)容。主控制芯片的外部中斷0服務(wù)于數(shù)碼管的按鍵調(diào)節(jié),當(dāng)按下數(shù)碼管換位鍵時(shí),第一位數(shù)碼管數(shù)字開(kāi)始跳動(dòng),準(zhǔn)備更改此位數(shù)碼管的內(nèi)容,當(dāng)再次按下數(shù)碼管換位鍵時(shí),第二位數(shù)碼管數(shù)字開(kāi)始跳動(dòng),其他位數(shù)碼管保持高亮狀態(tài),第二位數(shù)碼管內(nèi)容準(zhǔn)備更改,以此類推可以確定某位數(shù)碼管內(nèi)容需要被更改,程序代碼調(diào)用函數(shù)為void Int0ISR(void) interrupt 0。主控制芯片外部中斷1服務(wù)于數(shù)碼管增加減少按鍵的調(diào)節(jié),當(dāng)確認(rèn)到第一位數(shù)碼管內(nèi)容需要被更改時(shí),按下數(shù)碼管增加鍵或者減少鍵該位數(shù)碼管的數(shù)字相應(yīng)的增加或者減少,數(shù)字變化的范圍為0-9,無(wú)限循環(huán),程序代碼調(diào)用函數(shù)為void Int1ISR(void) interrupt 2。數(shù)碼管換位鍵和數(shù)碼管增加減少鍵配合工作就可以設(shè)定數(shù)碼管內(nèi)容,及從機(jī)編號(hào)和動(dòng)態(tài)密碼等,其中斷是通過(guò)單片機(jī)的外部中斷0和外部中斷1實(shí)現(xiàn)的。
主機(jī)程序中無(wú)線通信nRF24L01模塊子程序的設(shè)計(jì)需要滿足其特定的條件,無(wú)線通信模塊nRF24L01的工作模式靈活多樣,配置寄存器的改變會(huì)影響到無(wú)線通信模塊的工作模式,另外某些引腳和FIFO緩沖器的狀態(tài)也會(huì)影響其工作模式。但是當(dāng)FIFO緩沖器不論出于何種狀態(tài)時(shí),PWR_UP和PRIM_RX寄存器值為1且CE引腳狀態(tài)為高電平時(shí),無(wú)線通信模塊nRF24L01的射頻收發(fā)芯片處于接收模式,時(shí)刻接收周圍的無(wú)線信號(hào),接收狀態(tài)也是無(wú)線通信模塊最主要的工作模式。在發(fā)送模式下,根據(jù)主機(jī)系統(tǒng)的需求,通過(guò)無(wú)線通信模塊nRF24L01將8位授權(quán)碼發(fā)送給從機(jī),8位授權(quán)碼中前六位是從機(jī)編號(hào),表示的是目標(biāo)地址,后兩位是動(dòng)態(tài)密碼。在程序中將0Xcc作為發(fā)送的幀頭,加上目標(biāo)地址以及動(dòng)態(tài)密碼存入發(fā)送緩沖區(qū)Tx_Buf,再將指令發(fā)送到從機(jī)的接收緩沖區(qū)Rx_Buf。
為了驗(yàn)證所設(shè)計(jì)的井蓋檢測(cè)報(bào)警系統(tǒng)的性能,進(jìn)行了如下試驗(yàn):準(zhǔn)備一個(gè)主機(jī)和三個(gè)從機(jī),模擬實(shí)際情況將它們分隔10 m布置,接線并通電,按上述原理及工作流程,測(cè)試主機(jī)發(fā)送授權(quán)碼功能,從機(jī)隨即響應(yīng),遙控器發(fā)送動(dòng)態(tài)密碼,行程開(kāi)關(guān)(即井蓋)正常打開(kāi),更換從機(jī)產(chǎn)生對(duì)比,動(dòng)態(tài)密碼隨機(jī)更改,試驗(yàn)時(shí)每臺(tái)從機(jī)動(dòng)態(tài)密碼為27,35,68,每臺(tái)從機(jī)試驗(yàn)次數(shù)為10次,記錄每次結(jié)果,成功率為100%;同理,測(cè)試通過(guò)手機(jī)短信打開(kāi)從機(jī)行程開(kāi)關(guān)以及測(cè)試從機(jī)被非法打開(kāi),進(jìn)行相應(yīng)試驗(yàn)并記錄,成功率均為100%。
除了測(cè)試系統(tǒng)的可行性,還對(duì)無(wú)線通信系統(tǒng)進(jìn)行了通信距離實(shí)驗(yàn),將無(wú)線通訊模塊nRF24L01在空曠操場(chǎng)進(jìn)行等距離布置,通過(guò)實(shí)驗(yàn)數(shù)據(jù)可得到無(wú)線通訊模塊最遠(yuǎn)可接受信號(hào)距離為70 m;將無(wú)線通訊模塊nRF24L01布置在建筑物之間時(shí),建筑物的阻礙使得無(wú)線通訊模塊接收距離明顯縮短,此時(shí)最優(yōu)的接收距離為20 m。具體實(shí)驗(yàn)數(shù)據(jù)如表1所示。
表1 nRF24L01在不同距離下通信的丟包情況
由實(shí)驗(yàn)結(jié)果可知該系統(tǒng)在特定距離下通信時(shí)速度快并且非常穩(wěn)定,在雙回路通信并配合短信通信方式下,系統(tǒng)的檢測(cè)、報(bào)警及反饋功能可以可靠的實(shí)現(xiàn),可以有效的對(duì)城市地下綜合管廊井蓋進(jìn)行監(jiān)控,從而保證了城市地下管廊的安全,保護(hù)了人民的生命財(cái)產(chǎn)安全。但是也存在著不足,RS485通信雖然傳輸距離遠(yuǎn),速度快,但其通信需要線路支撐,線路的連接使整個(gè)系統(tǒng)復(fù)雜化,存在較多隱患,之后的改進(jìn)中在保證檢測(cè)報(bào)警功能的前提下逐步淘汰有線通信方式,完全使用無(wú)線通信,主要從系統(tǒng)方案和程序中優(yōu)化,使檢測(cè)報(bào)警系統(tǒng)更加智能化,現(xiàn)代化。
由于系統(tǒng)設(shè)計(jì)還不夠全面,本系統(tǒng)只實(shí)現(xiàn)了通訊的基本功能,外部環(huán)境對(duì)系統(tǒng)的影響還很大,需要不斷完善系統(tǒng)的穩(wěn)定性和抗干擾性,例如在實(shí)際情況中,需要研究道路井蓋被汽車碾壓振動(dòng)對(duì)從機(jī)的影響。此系統(tǒng)在工作時(shí)需要專業(yè)人員看護(hù),浪費(fèi)了人工,在以后的改進(jìn)中需要添加手機(jī)APP控制,簡(jiǎn)化操作;另外還需結(jié)合實(shí)際情況,研究道路井蓋被汽車碾壓振動(dòng)對(duì)從機(jī)的影響。