孫鋼燦,趙傳勇,張寧寧
(鄭州大學(xué) 信息工程學(xué)院,河南 鄭州 450001)
城市化進(jìn)程加快,井蓋事故和被盜事件頻發(fā)[1,2],而且城市井蓋數(shù)量巨大,傳統(tǒng)的人工巡檢不能做實(shí)時(shí)監(jiān)測(cè),并且很多都是公共窖井,各方打開(kāi)井蓋無(wú)記錄,不能對(duì)窖井進(jìn)行有效的管理。近年來(lái)有人提出了很多種解決方案,文獻(xiàn)[3]的方案雖然能解決實(shí)時(shí)監(jiān)測(cè)問(wèn)題,但存在中繼網(wǎng)關(guān)的安裝和維護(hù)成本較大等缺點(diǎn),且ZigBee沒(méi)有專用頻段,通信干擾較大[4],大多數(shù)的方案如文獻(xiàn)[5]只是實(shí)現(xiàn)了監(jiān)測(cè),安全性沒(méi)有得到提高。在研究和分析已有井蓋監(jiān)控系統(tǒng)優(yōu)缺點(diǎn)的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于窄帶物聯(lián)網(wǎng)[6](narrow band internet of things,NB-IoT)技術(shù)集監(jiān)測(cè)和鎖定于一體的智能井蓋鎖管理系統(tǒng),系統(tǒng)采用STM32L051系列低功耗芯片作為控制器,NB-IoT為通信方式,結(jié)合近場(chǎng)通信(near field communication,NFC)標(biāo)簽、電機(jī)驅(qū)動(dòng)、電源轉(zhuǎn)換電路的設(shè)計(jì),可以實(shí)現(xiàn)低功耗、可靠性通信,運(yùn)用NFC讀寫(xiě)工作模式設(shè)計(jì)了開(kāi)關(guān)鎖協(xié)議,詳細(xì)介紹了系統(tǒng)的工作原理,最后通過(guò)安裝測(cè)試驗(yàn)證了系統(tǒng)的有效性和可靠性。
設(shè)計(jì)一個(gè)智能井蓋鎖系統(tǒng)主要實(shí)現(xiàn)兩大功能:一是實(shí)現(xiàn)機(jī)械鎖的鎖定功能,通過(guò)驅(qū)動(dòng)電機(jī)配合特定的機(jī)械結(jié)構(gòu)實(shí)現(xiàn)開(kāi)鎖和關(guān)鎖,只有專用開(kāi)鎖設(shè)備得到授權(quán)才能打開(kāi)鎖,并對(duì)開(kāi)鎖信息進(jìn)行記錄;二是實(shí)現(xiàn)對(duì)井蓋狀態(tài)的監(jiān)測(cè),井蓋如有傾斜實(shí)時(shí)報(bào)警,方便管理人員及時(shí)處理問(wèn)題。
智能井蓋鎖系統(tǒng)基于NB-IoT技術(shù)實(shí)現(xiàn),系統(tǒng)總體設(shè)計(jì)如圖1所示,根據(jù)物聯(lián)網(wǎng)分層模型將系統(tǒng)分成感知層、網(wǎng)絡(luò)層和應(yīng)用層,感知層獲取井蓋傾斜及開(kāi)鎖數(shù)據(jù)通過(guò)網(wǎng)絡(luò)模塊進(jìn)行上傳;網(wǎng)絡(luò)層負(fù)責(zé)傳遞和處理感知層獲取的數(shù)據(jù),并將這些數(shù)據(jù)上傳到物聯(lián)網(wǎng)管理平臺(tái);應(yīng)用層負(fù)責(zé)將井蓋鎖相關(guān)數(shù)據(jù)呈現(xiàn)到電腦或手機(jī)端。從而實(shí)現(xiàn)井蓋鎖通過(guò)NB-IoT網(wǎng)絡(luò)與云服務(wù)器的遠(yuǎn)程連接,異常及開(kāi)鎖信息及時(shí)上傳到云服務(wù)器,達(dá)到對(duì)井蓋鎖的實(shí)時(shí)監(jiān)測(cè)。該系統(tǒng)包含兩大部分:井蓋鎖終端和云服務(wù)器。井蓋鎖終端主要由控制芯片、NFC標(biāo)簽、NB-IoT通信、電機(jī)驅(qū)動(dòng)、傾斜監(jiān)測(cè)等模塊組成,井蓋鎖與專用開(kāi)鎖設(shè)備之間通過(guò)NFC進(jìn)行通信,實(shí)現(xiàn)開(kāi)關(guān)鎖。
圖1 系統(tǒng)總體設(shè)計(jì)框架
M24LR04是意法半導(dǎo)體公司推出的一款新型無(wú)線存儲(chǔ)器芯片,工作頻率為13.56 MHz。該芯片擁有4 Kbit EEPROM,具有支持ISO 15693和ISO 18000-3協(xié)議標(biāo)準(zhǔn)的射頻通信接口和400 Kb/s速率的標(biāo)準(zhǔn)IIC串行有線接口[7]??赏ㄟ^(guò)無(wú)線射頻接口模式和有線IIC接口模式兩種方式對(duì)NFC標(biāo)簽讀寫(xiě)。在無(wú)線射頻接口的模式下,以接收到的射頻載波信號(hào)為工作電源,存儲(chǔ)器結(jié)構(gòu)為位,一次可以寫(xiě)入32 bit的數(shù)據(jù);在有線IIC接口模式下,接收處理器發(fā)來(lái)的IIC讀寫(xiě)信號(hào),并通過(guò)VCC電源線供電,工作電壓選擇3.3 V,其存儲(chǔ)結(jié)構(gòu)為位。M24LR04的電路連接如圖2所示,M24LR04芯片的SCL、SDA引腳接控制芯片的I2C1_SCL和I2C1_SDA引腳。
圖2 NFC標(biāo)簽?zāi)K電路
相較于ZigBee和遠(yuǎn)距離無(wú)線電(long range radio,LoRa)等短距離無(wú)線通信技術(shù),NB-IoT優(yōu)勢(shì)明顯[8],NB-IoT是在長(zhǎng)期演進(jìn)技術(shù)(long team evolution,LTE)基礎(chǔ)上對(duì)其進(jìn)行減小信令開(kāi)銷和優(yōu)化功耗推出的一種無(wú)線通信技術(shù),是低功耗廣域網(wǎng)的代表??芍苯咏柚F(xiàn)有的運(yùn)營(yíng)商基站搭建NB-IoT網(wǎng)絡(luò),可采取帶內(nèi)、保護(hù)帶及獨(dú)立載波3種部署方式,無(wú)需重新組網(wǎng)。由于井蓋分布比較分散,采用NB-IoT作為系統(tǒng)通信方式,能夠有效降低部署網(wǎng)絡(luò)的成本,同時(shí)節(jié)省了大量的人力物力。
NB-IoT模塊采用穩(wěn)恒科技生產(chǎn)的WH-NB73模塊,該模塊基于華為Boudica 120芯片,支持3GPP Release 13標(biāo)準(zhǔn)協(xié)議,工作在B5頻段,支持IP、UDP和CoAP這3種協(xié)議,相較于GPRS,有20 dB的信號(hào)強(qiáng)度增益,并且Boudica 120芯片集成了AP+CP+SP這3個(gè)ARM內(nèi)核,采用低功耗設(shè)計(jì),能夠滿足系統(tǒng)功能的需求。NB-IoT模塊電路設(shè)計(jì)如圖3所示,工作電壓為3.6 V,通過(guò)串口與控制芯片通信,模塊UART0_RXD和UART0_TXD引腳分別接主控芯片的USART2_TX和USART2_RX引腳。為防止靜電對(duì)USIM卡及芯片造成損壞,須要增加TVS管進(jìn)行靜電保護(hù),作為(electro-static discharge,ESD)防靜電措施。
電機(jī)驅(qū)動(dòng)模塊采用直流減速電機(jī),配合特定的機(jī)械結(jié)構(gòu)實(shí)現(xiàn)開(kāi)關(guān)鎖的,驅(qū)動(dòng)芯片為MX113L芯片,電機(jī)驅(qū)動(dòng)模塊電路設(shè)計(jì)如圖4所示,MX113L芯片的工作電壓為2 V-8 V且待機(jī)電流小于0.1 μA,能夠滿足低功耗的需求。驅(qū)動(dòng)電路必須添加對(duì)地去耦電容[9]C20,其目的有兩個(gè):一是吸收馬達(dá)向電源釋放的能量,穩(wěn)定電源電壓,避免電路因?yàn)檫^(guò)壓而被擊穿;二是在馬達(dá)起動(dòng)或者快速正轉(zhuǎn)、反轉(zhuǎn)切換的瞬間,馬達(dá)需要瞬間大電流才能迅速啟動(dòng),由于電池不能立即輸出瞬態(tài)大電流,故需要添加電容。由于電機(jī)模塊電壓不高,故選擇4.7 μF的電容。當(dāng)芯片引腳IN1和IN2輸入低電平時(shí),驅(qū)動(dòng)模塊處于待機(jī)模式;當(dāng)芯片引腳IN1輸入高電平、IN2輸入低電平時(shí),驅(qū)動(dòng)電機(jī)正轉(zhuǎn);反之則電機(jī)倒轉(zhuǎn)。
整個(gè)鎖體電路采用3.6 V ER34615型鋰電池供電,由于MCU和NFC標(biāo)簽需要3.3 V電壓,故通過(guò)低壓差線性穩(wěn)壓器輸出固定3.3 V電壓。傾斜監(jiān)測(cè)采用BL-108 20°傾斜滾珠開(kāi)關(guān),接控制芯片GPIO口,當(dāng)傾斜度數(shù)超過(guò)20°時(shí),為通路狀態(tài),能夠?qū)崿F(xiàn)360°全方向傾斜觸發(fā)。滾珠開(kāi)關(guān)在常通狀態(tài)容易產(chǎn)生誤觸發(fā),在使用時(shí)應(yīng)讓開(kāi)關(guān)是斷開(kāi)狀態(tài),傾斜導(dǎo)通才能觸發(fā)動(dòng)作。故滾珠開(kāi)關(guān)一腳可接高電平,控制芯片外部中斷設(shè)置為上升沿觸發(fā)。
圖3 NB-IoT模塊電路
圖4 電機(jī)驅(qū)動(dòng)模塊電路
通過(guò)對(duì)實(shí)現(xiàn)功能分析和物聯(lián)網(wǎng)低功耗的特點(diǎn),智能井蓋鎖終端控制芯片采用STM32L051C8T6芯片,該芯片基于32位的ARM Cortex-M0+內(nèi)核,最高主頻為32 MHz,有8 KB RAM和64 KB FLASH[10]。片上資源豐富,能夠滿足傾斜監(jiān)測(cè)、電機(jī)驅(qū)動(dòng)、NB-IoT通信和NFC標(biāo)簽讀寫(xiě)等需求,而且物聯(lián)網(wǎng)終端控制芯片大多處于待機(jī)模式等待喚醒的狀態(tài),STM32L051系列能夠在滿足功能設(shè)計(jì)的情況下,提供更低的功耗??刂菩酒案鞴δ苣K之間協(xié)同工作如圖5所示。
圖5 智能井蓋鎖鎖體控制
NB-IoT模塊負(fù)責(zé)井蓋鎖終端和應(yīng)用服務(wù)器之間的通信問(wèn)題。NB-IoT模塊配置通過(guò)AT指令完成,主要包括初始化USIM卡,搜索網(wǎng)絡(luò)信號(hào)、綁定IP地址、建立數(shù)據(jù)鏈接等。智能鎖終端控制芯片將采集到的鑰匙開(kāi)鎖和傾斜異常等數(shù)據(jù)按照表1所示的幀格式進(jìn)行編碼,通過(guò)串口以AT命令的形式將數(shù)據(jù)發(fā)送至NB-IoT模塊,為降低功耗,串口波特率設(shè)置為9600。然后NB-IoT模塊通過(guò)CoAP協(xié)議將數(shù)據(jù)發(fā)送至物聯(lián)網(wǎng)管理平臺(tái);物聯(lián)網(wǎng)平臺(tái)收到數(shù)據(jù)后自動(dòng)尋找編解碼配置文件,將CoAP協(xié)議包解析為Json格式的數(shù)據(jù)并存儲(chǔ);應(yīng)用層軟件通過(guò)物聯(lián)網(wǎng)平臺(tái)提供的北向接口獲取數(shù)據(jù)。為滿足低功耗的設(shè)計(jì),在控制芯片進(jìn)入休眠模式,會(huì)通過(guò)IO口發(fā)送關(guān)機(jī)脈沖,關(guān)閉通信模塊。當(dāng)需要上傳數(shù)據(jù)時(shí),控制芯片會(huì)發(fā)送開(kāi)機(jī)脈沖給NB-IoT模塊,將接收到的數(shù)據(jù)發(fā)出。
表1 數(shù)據(jù)幀格式
開(kāi)關(guān)鎖是由電機(jī)驅(qū)動(dòng)機(jī)械結(jié)構(gòu)實(shí)現(xiàn)的,鎖體與鑰匙設(shè)備之間通過(guò)NFC讀寫(xiě)模式進(jìn)行通信,采用ISO 15693標(biāo)準(zhǔn)協(xié)議。NFC技術(shù)由無(wú)線射頻技術(shù)(RFID)發(fā)展而來(lái)[11],其技術(shù)的基本工作原理并不復(fù)雜。一般要經(jīng)過(guò)偵測(cè)標(biāo)簽,讀取標(biāo)簽和數(shù)據(jù)處理等。
系統(tǒng)的NFC通信流程如圖6所示,主要包括系統(tǒng)初始化和開(kāi)關(guān)鎖協(xié)議設(shè)計(jì)兩個(gè)部分,首先,NFC標(biāo)簽大部分時(shí)間處于休眠狀態(tài),當(dāng)有NFC閱讀器天線靠近標(biāo)簽由磁場(chǎng)耦合獲得足夠的能量時(shí),NFC標(biāo)簽被喚醒進(jìn)入準(zhǔn)備狀態(tài),同時(shí)通過(guò)外部中斷引腳喚醒鎖體控制芯片切換至正常工作狀態(tài),完成系統(tǒng)近場(chǎng)通信的初始化。
圖6 NFC通信流程
開(kāi)關(guān)鎖的設(shè)計(jì)流程如圖7所示,主要通過(guò)控制無(wú)線射頻接口和IIC接口讀寫(xiě)NFC標(biāo)簽EEPROM實(shí)現(xiàn)的。M24LR04提供一個(gè)特殊的密碼式保護(hù)機(jī)制,每個(gè)扇區(qū)都配有一個(gè)安全狀態(tài)字節(jié)[7],具體見(jiàn)表2。b0設(shè)置為1,開(kāi)啟扇區(qū)鎖保護(hù),b2和b1設(shè)置為10,只有提交密碼時(shí)扇區(qū)才可以讀寫(xiě),b4和b3設(shè)置為01,采用密碼1保護(hù)各個(gè)扇區(qū)。鑰匙設(shè)備向NFC標(biāo)簽發(fā)送密碼,若校對(duì)密碼正確,然后進(jìn)行權(quán)限驗(yàn)證,其設(shè)計(jì)思想是,每個(gè)鎖NFC標(biāo)簽的EEPROM的Block 0中存儲(chǔ)鎖的16位ID信息,若授權(quán)鑰匙設(shè)備開(kāi)鎖,將其ID信息寫(xiě)入鑰匙設(shè)備的FLASH中,鑰匙設(shè)備讀取該鎖的ID信息,并與FLASH存儲(chǔ)的ID信息進(jìn)行校驗(yàn)。當(dāng)權(quán)限通過(guò)時(shí),需要讀取該鎖的狀態(tài)標(biāo)志位,以便發(fā)送開(kāi)鎖或關(guān)鎖命令,即對(duì)EEPROM 的Block 1中寫(xiě)入開(kāi)鎖標(biāo)志位或關(guān)鎖標(biāo)志位。鎖體控制芯片通過(guò)IIC接口讀取該標(biāo)志位,從而發(fā)送驅(qū)動(dòng)電機(jī)命令,實(shí)現(xiàn)開(kāi)關(guān)鎖。開(kāi)關(guān)鎖完成后,控制芯片發(fā)送命令擦除該標(biāo)志位,并且將開(kāi)鎖信息通過(guò)NB-IoT網(wǎng)絡(luò)發(fā)送到物聯(lián)網(wǎng)管理平臺(tái)。
圖7 開(kāi)關(guān)鎖流程
表2 扇區(qū)安全狀態(tài)字節(jié)結(jié)構(gòu)
本系統(tǒng)選擇STM32L051C8T6芯片作為智能井蓋鎖終端電路控制芯片,STM32L051系列是意法半導(dǎo)體公司推出的低功耗芯片,STOP模式下最大待機(jī)電流僅為0.8 μA,并且3.5 μs即可被喚醒。在低功耗設(shè)計(jì)的思路上,采用的是終端無(wú)數(shù)據(jù)傳輸時(shí),將除SWD調(diào)試接口外的所有IO設(shè)置成模擬輸入模式,關(guān)閉所有外設(shè)的時(shí)鐘,然后控制芯片進(jìn)入STOP模式。喚醒采用RTC定時(shí)喚醒或外部中斷喚醒,喚醒后重新配置要使用的IO和外設(shè),發(fā)送數(shù)據(jù)。當(dāng)智能井蓋鎖安裝完成后,位置固定,故其網(wǎng)絡(luò)信號(hào)基本不會(huì)變化,電量信息和信號(hào)強(qiáng)度每3個(gè)小時(shí)上傳一次,電量預(yù)警、設(shè)備掉線、井蓋發(fā)生傾斜以及開(kāi)鎖時(shí),會(huì)觸發(fā)外部中斷喚醒終端。實(shí)際待機(jī)的電流僅為20 μA,達(dá)到了低功耗的設(shè)計(jì)要求。
應(yīng)用層軟件采用Java語(yǔ)言開(kāi)發(fā),工程由主流的Spring+Spring MVC+Mybatis框架搭建。該部分主要實(shí)現(xiàn)的是通過(guò)物聯(lián)網(wǎng)平臺(tái)北向接口獲取數(shù)據(jù)以及進(jìn)行處理顯示,方便管理人員查看。軟件接入百度地圖,將每個(gè)智能鎖安裝的位置標(biāo)注在地圖上,鼠標(biāo)點(diǎn)擊標(biāo)識(shí)點(diǎn)可以顯示該智能鎖的電量和網(wǎng)絡(luò)信號(hào)信息,并且設(shè)置標(biāo)識(shí)點(diǎn)顏色表示智能鎖正常工作、電量不足和掉線3種狀態(tài)。為了方便管理人員,應(yīng)用層主要包括以下各模塊:①授權(quán)中心:該模塊負(fù)責(zé)添加鑰匙設(shè)備,并對(duì)鑰匙開(kāi)鎖進(jìn)行授權(quán)。②站點(diǎn)管理:根據(jù)窖井的類型或者分布區(qū)域?qū)w進(jìn)行分類或分區(qū)管理,方便管理人員查看分管的井蓋。③鎖具中心:包含鑰匙管理和智能鎖管理兩部分,主要負(fù)責(zé)對(duì)井蓋鎖和鑰匙設(shè)備進(jìn)行刪除和重命名,以及顯示鑰匙授權(quán)信息。④消息中心:包括授權(quán)消息列表、設(shè)備信息和開(kāi)關(guān)鎖日志3種消息。授權(quán)消息列表主要包含授權(quán)鑰匙設(shè)備、授權(quán)鎖具、授權(quán)開(kāi)始和結(jié)束時(shí)間;設(shè)備信息負(fù)責(zé)顯示井蓋的狀態(tài)信息包括信號(hào)、電量是否傾斜等信息;開(kāi)關(guān)鎖信息是對(duì)每次開(kāi)鎖、關(guān)鎖的時(shí)間和鑰匙設(shè)備進(jìn)行記錄。⑤報(bào)表中心:該模塊是對(duì)每天井蓋鎖的狀態(tài)進(jìn)行一個(gè)宏觀的查看,可以分站點(diǎn)顯示出設(shè)備最近一周的運(yùn)行狀況,以日期為橫軸,以正常、打開(kāi)、異常3種狀態(tài)的井蓋數(shù)量為縱軸做一個(gè)實(shí)時(shí)的折線圖,整體運(yùn)行狀況清晰可見(jiàn)。
在安裝智能井蓋鎖終端之前要對(duì)其進(jìn)行初始化,用手機(jī)APP工具將編寫(xiě)的鎖16位ID通過(guò)NFC功能寫(xiě)入到NFC標(biāo)簽的EEPROM中,并將開(kāi)關(guān)鎖狀態(tài)標(biāo)志位寫(xiě)入,默認(rèn)為開(kāi)鎖狀態(tài)。鎖體裝置由鎖芯、圓形孔、鎖盒和連桿組成,鎖芯通過(guò)圓心孔連接連桿,通過(guò)鎖定鎖芯的轉(zhuǎn)動(dòng)實(shí)現(xiàn)開(kāi)關(guān)鎖,NFC標(biāo)簽線圈固定在鎖芯上部設(shè)計(jì)的凹槽內(nèi),該裝置可直接在原有井蓋上打孔安裝,極大節(jié)省了成本。安裝時(shí)調(diào)整鎖舌磁鐵極性使其與標(biāo)志位匹配。每個(gè)井蓋鎖通過(guò)NB-IoT平臺(tái)和云服務(wù)器通信,保證了信號(hào)安全可靠的傳輸。實(shí)地安裝完成后,在應(yīng)用層軟件中添加井蓋鎖信息,并在接入的百度地圖中進(jìn)行位置標(biāo)注。運(yùn)行界面如圖8所示。
圖8 系統(tǒng)測(cè)試運(yùn)行效果
經(jīng)過(guò)半年多的實(shí)地測(cè)試,每個(gè)智能井蓋鎖終端都能夠及時(shí)反饋報(bào)警信息,并且可以實(shí)現(xiàn)井蓋傾斜、電量不足和設(shè)備掉線報(bào)警,以及開(kāi)鎖關(guān)鎖信息及時(shí)上傳,能夠有效幫助管理人員對(duì)井蓋進(jìn)行監(jiān)測(cè)與管理。
本文基于NB-IoT物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了一個(gè)智能井蓋鎖系統(tǒng),結(jié)合電機(jī)驅(qū)動(dòng)模塊、滾珠開(kāi)關(guān)、NFC標(biāo)簽實(shí)現(xiàn)井蓋鎖智能化,同時(shí)可通過(guò)電腦端實(shí)時(shí)監(jiān)測(cè)井蓋的狀態(tài)。
本文首先整體分析了智能井蓋鎖系統(tǒng)的功能,然后詳細(xì)闡述了各個(gè)模塊的基本原理和硬件設(shè)計(jì),根據(jù)NFC技術(shù)的特點(diǎn),設(shè)計(jì)了一種開(kāi)關(guān)鎖協(xié)議,介紹了軟件實(shí)現(xiàn)流程,給出了低功耗解決方案,并設(shè)計(jì)了管理軟件。實(shí)驗(yàn)測(cè)結(jié)果表明,該系統(tǒng)具有工作穩(wěn)定、組網(wǎng)簡(jiǎn)單、實(shí)時(shí)性響應(yīng)良好等特點(diǎn),能夠防止井內(nèi)設(shè)備被盜,及時(shí)反饋井蓋傾斜信息。配合設(shè)計(jì)的鎖體裝置,可直接在原來(lái)井蓋上安裝。代替了人工巡檢,提高了管理人員的效率,為智慧城市的建設(shè)打好基礎(chǔ)。
該系統(tǒng)尚在研發(fā)測(cè)試階段,以后的研究方向?qū)⑹沁M(jìn)一步實(shí)現(xiàn)比如溫度、氣體等監(jiān)測(cè)功能,優(yōu)化功耗,通過(guò)復(fù)雜的環(huán)境測(cè)試系統(tǒng)工作的穩(wěn)定性,以及設(shè)計(jì)手機(jī)APP利用手機(jī)NFC功能實(shí)現(xiàn)開(kāi)關(guān)鎖,以便于管理人員進(jìn)行高效的管理。