徐靈飛 ,陳 斌
(1.成都理工大學(xué)工程技術(shù)學(xué)院電子信息與計(jì)算機(jī)工程系,四川 樂(lè)山 614000;2.四川金互通科技股份有限公司,四川 樂(lè)山 614000)
隨著光纖入戶和網(wǎng)絡(luò)用戶的增長(zhǎng),光交箱數(shù)量不斷增加,巡檢人員數(shù)量和難度也相應(yīng)增加,容易出現(xiàn)鑰匙丟失、匹配不對(duì)、光交箱安全等問(wèn)題。光交箱大部分安裝在戶外,對(duì)工作溫度、防水、防潮、抗沖擊損壞能等有一定要求,面對(duì)劇變的氣候和惡劣的工作環(huán)境,需要定期巡檢箱體的工作狀態(tài),保障光交箱的安全工作環(huán)境。本文結(jié)合窄帶物聯(lián)網(wǎng)(narrow band internet of things,NB-IOT)技術(shù)功耗低、覆蓋廣的特點(diǎn)[1-2]和二維碼技術(shù)數(shù)字化鑰匙技術(shù),設(shè)計(jì)了集電子鎖、掃碼功能和監(jiān)控功能于一體的智能鎖。使用二維碼代替?zhèn)鹘y(tǒng)鑰匙,按需分配、即用即消,結(jié)合NB-IOT 網(wǎng)絡(luò)實(shí)現(xiàn)鑰匙高效管理,并能夠?qū)⒐饨幌涔ぷ鳝h(huán)境狀態(tài)的監(jiān)測(cè)數(shù)據(jù)和異常狀況上傳服務(wù)器以供分析[3]。作為無(wú)源設(shè)備,智能光交箱鎖使用電池供電,通過(guò)NB-IOT 網(wǎng)絡(luò)進(jìn)行信息傳遞和管理。相較于其他網(wǎng)絡(luò)互連方式,該設(shè)計(jì)增加了系統(tǒng)的待機(jī)時(shí)間[4-5]和覆蓋范圍。
智能光交箱鎖設(shè)計(jì)基于NB-IOT 網(wǎng)絡(luò),結(jié)合二維碼實(shí)現(xiàn)光交箱鑰匙管理和光交箱工作狀態(tài)的監(jiān)控。在系統(tǒng)服務(wù)管理平臺(tái)的控制區(qū)域內(nèi),平臺(tái)統(tǒng)一分配每個(gè)光交箱鎖的ID 號(hào),統(tǒng)一管理光交箱鎖數(shù)字二維碼鑰匙的生成和取消,并接收智能光交箱鎖上傳的監(jiān)控信息(包括箱內(nèi)溫度、濕度[6-7]、水浸、振動(dòng)、傾斜和電池工作狀態(tài))。監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 監(jiān)控系統(tǒng)結(jié)構(gòu)圖Fig.1 Monitoring system structure diagram
結(jié)合NB-IOT 和二維碼技術(shù)實(shí)現(xiàn)的數(shù)字鑰匙管理系統(tǒng)狀態(tài)如圖2 所示。在需要對(duì)光交箱進(jìn)行巡檢時(shí),管理系統(tǒng)生成數(shù)字二維碼鑰匙,并下發(fā)到巡檢員的手機(jī)上。巡檢員到達(dá)現(xiàn)場(chǎng)后,點(diǎn)擊光交鎖上的按鍵,啟動(dòng)一次NB-IOT 通信,向服務(wù)器請(qǐng)求光交鎖數(shù)字鑰匙。光交鎖終端獲取數(shù)字鑰匙后,通過(guò)LED 燈提示開(kāi)始二維碼掃描功能,通過(guò)掃碼行匹配以決定是否打開(kāi)電子鎖。在掃碼匹配不一致時(shí),可以反復(fù)操作四次。如四次結(jié)果都不匹配,則凍結(jié)電子鎖,待服務(wù)器解鎖后才能進(jìn)行下一次的掃碼開(kāi)鎖操作。在成功使用一個(gè)二維碼之后,光交鎖通過(guò)NB-IOT 網(wǎng)絡(luò)將鎖的開(kāi)關(guān)狀態(tài)上傳到服務(wù)器,并回收使用過(guò)的二維碼。在光交箱的數(shù)字化管理下,避免了鑰匙復(fù)制、丟失、錯(cuò)位帶來(lái)的安全問(wèn)題,實(shí)現(xiàn)了智能化巡檢,保證了資產(chǎn)的安全性。
圖2 數(shù)字鑰匙管理系統(tǒng)狀態(tài)圖Fig.2 Digital key management system status diagram
智能光交箱鎖在正常工作期間,檢測(cè)箱內(nèi)狀態(tài),并定時(shí)將狀態(tài)值上傳到服務(wù)器,用于光交箱日常工作狀態(tài)的后期分析。在出現(xiàn)突發(fā)情況(如水浸、振動(dòng)和大角度傾斜等事件)時(shí),蜂鳴器報(bào)警提示,并實(shí)時(shí)上傳狀態(tài)數(shù)據(jù),縮短上傳間隔時(shí)間,增加報(bào)警數(shù)據(jù)檢測(cè)量,細(xì)化記錄異常狀態(tài)變化過(guò)程。在服務(wù)器發(fā)現(xiàn)異常后,及時(shí)將相關(guān)信息通知給管理員,以分派巡檢員及時(shí)進(jìn)行巡檢維護(hù)。
如圖1 所示,智能鎖終端硬件系統(tǒng)主要包括6 個(gè)部分:主控器模塊、電子鎖模塊、掃碼模塊、通信模塊、傳感器模塊以及電源管理模塊。智能鎖終端安裝在光交箱內(nèi),可以實(shí)現(xiàn)掃碼、電子鎖開(kāi)關(guān)控制、采集光交箱工作狀態(tài)、與服務(wù)器通信以及電源管理等功能。由于光交箱通常為無(wú)源工作環(huán)境,因此需要整個(gè)硬件系統(tǒng)能夠以低功耗形式進(jìn)行工作。在硬件設(shè)計(jì)中,通過(guò)選擇低功耗主控器、低功耗NB-IOT 控制器,設(shè)計(jì)掃碼模塊、電子鎖電源控制開(kāi)關(guān),以及設(shè)計(jì)電源管理電路等方法,實(shí)現(xiàn)整個(gè)硬件系統(tǒng)的低功耗運(yùn)轉(zhuǎn)。在沒(méi)有外界觸發(fā)信號(hào)(電子鎖觸發(fā)開(kāi)關(guān)、NB-IOT 通信信號(hào)或異常信號(hào)觸發(fā))的情況下,整個(gè)系統(tǒng)全速運(yùn)行,所有模塊的電源控制開(kāi)關(guān)閉合;反之,終端工作在低功耗模式,必須切斷非必模塊電源控制開(kāi)關(guān),以降低終端工作功耗。
為實(shí)現(xiàn)硬件低功耗控制,首先選用超低功耗STM32L152RCT6 作為主控器。STM32L152RCT6 內(nèi)置高性能ARM Cortex-M3 32 位RISC 內(nèi)核、多種增強(qiáng)型輸入/輸出(input/output,I/O)接口、外設(shè)和超低功耗比較器,可以實(shí)現(xiàn)功能強(qiáng)大的外圍電路設(shè)計(jì),降低硬件設(shè)計(jì)復(fù)雜度。同時(shí),STM32L152RCT6 具有低功耗運(yùn)行、睡眠、低功耗睡眠、停止、待機(jī)等低功耗模式,可使系統(tǒng)在非全速工作期間運(yùn)行于低功耗模式。在光交鎖終端空閑狀態(tài)時(shí),STM32L152RCT6 進(jìn)入停止低功耗模式,此時(shí),可使用STM32L152RCT6 的外部輸入中斷0-3(external interrupt line 0-3,EXTI_Line0-3)和實(shí)時(shí)時(shí)鐘(real time clock,RTC)的報(bào)警中斷(EXTI_Line20)作為喚醒信號(hào)。STM32L152RCT6 的外部輸入中斷信號(hào)由電子鎖觸發(fā)按鍵、水浸報(bào)警信號(hào)、振動(dòng)信號(hào)等異常信號(hào)產(chǎn)生。在STM32L152RCT6 進(jìn)入低功耗模式前,配置RTC 的30 min 的報(bào)警中斷,以實(shí)現(xiàn)光交鎖終端的定時(shí)狀態(tài)檢測(cè)。當(dāng)檢測(cè)到異常狀況時(shí),縮短RTC 的報(bào)警時(shí)間,以增加異常狀況檢測(cè)的細(xì)化程度。
NB-IOT 模塊具有三種工作模式:Active、IDLE 和省電模式(power saving mode,PSM)。NB-IOT 模塊會(huì)根據(jù)激活模式(Active)→空閑模式(IDLE,持續(xù)時(shí)間為T3324 設(shè)定時(shí)間)→PSM(持續(xù)時(shí)間為T3312 設(shè)定時(shí)間,期間可以外部激活)的順序在三種模式之間切換。根據(jù)實(shí)際需求,通過(guò)AT+CPSMS 指令,可設(shè)定T3324和T3312 兩個(gè)定時(shí)器的定時(shí)長(zhǎng)度。NB-IOT 模塊選用BC28,工作電壓范圍為3.1~4.2 V。在PSM 狀態(tài),BC28 最大消耗電流為5 μA。STM32L152RCT6 的通用同步/異步串行接收/發(fā)送器1(universal synchronous/asynchronous receiver/transmitter 1,USART1)與BC28模塊主串口(17、18 引腳)鏈接,向BC28 模塊發(fā)送AT指令,實(shí)現(xiàn)BC28 模塊的初始化和數(shù)據(jù)的收發(fā)。BC28模塊在數(shù)傳工作中,確保電源跌落不低于模塊最低工作電壓3.1 V。在3.3 V 的工作電壓下,為了提高電源的供電性能,可在靠近模塊電源輸入端并聯(lián)一個(gè)低等效串聯(lián)電阻(0.7 Ω) 的100 μF 的鉭電容,以及100 nF、100 pF 和 22 pF 的濾波電容。原則上,當(dāng)VBAT 引腳走線越長(zhǎng),線寬應(yīng)越寬。BC28 模塊大部分時(shí)間處于的PSM 狀態(tài),比較適合無(wú)源光交箱電池供電的工作應(yīng)用場(chǎng)景。
BC28 模塊硬件電路如圖3 所示。
圖3 BC28 模塊硬件電路圖Fig.3 Hardware circuit diagram of BC28 module
本文設(shè)計(jì)使用電磁形式控制電子鎖把手的閉合和彈開(kāi)[8-10],通過(guò)干簧管檢測(cè)電子鎖的開(kāi)關(guān)狀態(tài)(LOCK_DEC)。電子鎖控制電路如圖4 所示。
圖4 電子鎖控制電路Fig.4 Electronic lock control circuit
電子鎖把手下方內(nèi)置一個(gè)觸發(fā)按鍵。在把手閉合時(shí),點(diǎn)擊把手可以觸發(fā)電子鎖按鍵(S1),LOCK_KEY引腳狀態(tài)由低電平變?yōu)楦唠娖絾拘裇TM32L152RCT6,通過(guò)掃碼進(jìn)行鑰匙匹配。當(dāng)巡檢員鑰匙和服務(wù)器下發(fā)鑰匙匹配成功時(shí),STM32L152RCT6 置LOCK_CTL 引腳為高電平,使得開(kāi)關(guān)MOS 管Q2和Q1漏-源極導(dǎo)通,從而電磁鐵M1通電,并通過(guò)彈開(kāi)把手、旋轉(zhuǎn)把手的方式開(kāi)門。當(dāng)電磁鐵M1通電產(chǎn)生磁力時(shí),可以使得干簧管開(kāi)關(guān)(S2)閉合,LOCK_DEC 引腳上電平由高電平變?yōu)榈碗娖?為STM32L152RCT6 提供電子鎖開(kāi)關(guān)狀態(tài)。在電子鎖開(kāi)通時(shí),STM32L152RCT6 通過(guò)LOCK_LED 引腳點(diǎn)亮LED 燈D1。當(dāng)鑰匙不匹配時(shí),LED 燈D1閃爍。當(dāng)鑰匙被回收或匹配失敗四次后,LED 燈D1熄滅。
GM65 掃碼輸出數(shù)據(jù)格式如圖5 所示。
圖5 GM65 掃碼輸出數(shù)據(jù)格式Fig.5 GM65 scan output data format
服務(wù)器向巡檢員下達(dá)巡檢任務(wù),將當(dāng)前巡檢二維碼鑰匙同步下發(fā)到需要巡檢的智能光交箱鎖終端。巡檢員到達(dá)現(xiàn)場(chǎng),點(diǎn)擊電子鎖按鍵喚醒STM32L152RCT6,開(kāi)始二維碼識(shí)別。掃碼模塊使用GM65,二維碼使用快速反應(yīng)(quick response,QR)碼。
掃碼成功后,STM32L152RCT6 通過(guò)USART1獲取GM65 的掃碼結(jié)果,對(duì)掃碼結(jié)果和服務(wù)器下發(fā)的數(shù)字鑰匙進(jìn)行匹配,并在匹配成功后開(kāi)鎖。GM65 掃碼輸出數(shù)據(jù)由前綴、鑰匙編碼數(shù)據(jù)、后綴三部分組成,以GBK 格式進(jìn)行編碼。掃碼輸出數(shù)據(jù)中的鑰匙編碼數(shù)據(jù)由地區(qū)碼、光交箱編號(hào)和隨機(jī)碼組成。
傳感器模塊實(shí)現(xiàn)溫濕度、水浸、振動(dòng)和傾斜等參數(shù)的定時(shí)測(cè)量和異常報(bào)警。相關(guān)信息可通過(guò)NB-IOT 網(wǎng)絡(luò)上傳到服務(wù)器。
選用Si7021 作為溫濕度傳感器,內(nèi)置了溫度(熱敏電阻)和濕度(濕敏電容)傳感器元件、模擬數(shù)字轉(zhuǎn)換器、信號(hào)處理、校準(zhǔn)數(shù)據(jù)和集成電路(inter-integrated circuit,I2C)總線主機(jī)接口。Si7021 在-10~+85 ℃具備±0.4 ℃溫度測(cè)量精度,在0~80%相對(duì)濕度(relative humidity,RH)范圍具備±3%測(cè)量精度,滿足設(shè)計(jì)需要。STM32L152RCT6 通過(guò)I2C 接口發(fā)送溫度測(cè)量(0xE3)和濕度測(cè)量(0xE5)命令給Si7021,啟動(dòng)相關(guān)測(cè)量工作。Si702 對(duì)溫濕度的測(cè)量需要一定的時(shí)間,因此在STM32L152RCT6 發(fā)送測(cè)量命令后,需要等待12 ms 之后讀取測(cè)量結(jié)果。在非測(cè)量周期,Si7021 處于待機(jī)模式,待機(jī)電流60 nA,符合低功耗需求。Si7021 的I2C數(shù)據(jù)傳輸順序如圖6 所示。
圖6 Si7021 的I2C 數(shù)據(jù)傳輸順序Fig.6 I2C data transmission sequence of Si7021
滯回水浸檢測(cè)報(bào)警電路由低功耗比較器TLV7032和雙極性水浸傳感器組成。水浸傳感器電路和檢測(cè)滯回區(qū)間如圖7 所示。
圖7 水浸傳感器電路和檢測(cè)滯回區(qū)間Fig.7 Immersion sensor circuit and detection hysteresis interval
傳感器陽(yáng)極接入TLV7032 陰極,比較器輸出連接STM32L152RCT6,通過(guò)檢測(cè)兩個(gè)電極之間的阻值變化產(chǎn)生報(bào)警信號(hào)。當(dāng)出現(xiàn)水浸現(xiàn)象時(shí),傳感器陽(yáng)極和陰極之間的阻值發(fā)生變化。在水浸處于安全范圍時(shí),TLV7032 輸出高電平(圖7(b)中①)。當(dāng)水浸超出安全范圍時(shí),TLV7032 輸出低電平(圖7(b)中②)。在排除水浸危害后,TLV7032 輸出信號(hào)經(jīng)7(b)的③、④路徑返回高電平。STM32L152RCT6 每30 min 檢測(cè)一次水浸信號(hào)。
為防止人為破壞和光交箱傾斜,使用加速度傳感器LIS3DHTR 進(jìn)行檢測(cè)和預(yù)警[11-12]。LIS3DHTR 內(nèi)置算法可以處理運(yùn)動(dòng)檢測(cè)、翻轉(zhuǎn)等事件。根據(jù)需要配置對(duì)應(yīng)寄存器初始化,一旦檢測(cè)到目標(biāo)事件,LIS3DHTR的INT_1 引腳會(huì)產(chǎn)生中斷信號(hào),并通知主控器。將LIS3DHTR 寄存器INT1_CFG 的AOI 和6D 兩個(gè)位分別設(shè)置為0 和1 使能6D 方向上的運(yùn)動(dòng)檢測(cè),并設(shè)置中斷使能、加速度變化閾值等參數(shù)。當(dāng)出現(xiàn)任意方向的強(qiáng)烈振動(dòng)時(shí),會(huì)在INT_1 引腳上產(chǎn)生中斷信號(hào),以觸發(fā)中斷實(shí)時(shí)處理。終端每30 min 讀取一次LIS3DHTR 在X、Y、Z三個(gè)方向的重力加速度分量,并計(jì)算光交箱的傾斜角度。
整個(gè)智能光交箱鎖終端可由鋰電池或普通干電池供電。為保證系統(tǒng)長(zhǎng)時(shí)間工作的電源穩(wěn)定性,設(shè)計(jì)由電源電池分壓電路和TLV7032 組成的比較電路。在電源電池電壓降到報(bào)警點(diǎn)時(shí),TLV7032 輸出電壓發(fā)生反轉(zhuǎn)并觸發(fā)終端上傳報(bào)警信號(hào),提示及時(shí)進(jìn)行維護(hù)。為保證電源電池能夠在寬電壓范圍為終端提供穩(wěn)定工作電源,選用TPS63070 升降壓DC-DC 電源芯片產(chǎn)生統(tǒng)一的3.3 V 終端工作電源。TPS63070 可保證電源電池在2~16 V 的輸入電壓范圍輸出3.3 V,并提供最大3.6 A 的工作電流,滿足系統(tǒng)要求。在采用4 節(jié)南孚干電池供電時(shí),電池電源電壓報(bào)警值設(shè)置為3 V。
終端控制程序流程如圖8 所示。
圖8 終端控制程序流程圖Fig.8 Flowchart of terminal control program
終端控制程序?qū)崿F(xiàn)電子鎖控制、服務(wù)器通信、掃碼模塊控制、溫濕度檢測(cè)、水浸檢測(cè)、振動(dòng)檢測(cè)、傾斜檢測(cè)以及電池電壓檢測(cè)等功能。在終端上電啟動(dòng)后,首先進(jìn)行STM32L152RCT6 片上外設(shè)的初始化配置,包括通用輸入輸出(general-purpose input/output,GPIO)接口、外部中斷、USART、I2C、模數(shù)轉(zhuǎn)換器(analog-to-digital converter,ADC)、RTC 等。然后,對(duì)掃碼模塊、各種傳感器模塊NB-IOT 模塊進(jìn)行初始化,并開(kāi)始連接NBIOT 網(wǎng)絡(luò)。在NB-IOT 連接服務(wù)器成功后,進(jìn)行一次光交箱狀態(tài)檢測(cè),并將數(shù)據(jù)上傳到服務(wù)器。然后STM32L152RCT6 進(jìn)入停止低功耗模式,等待下一次定時(shí)電路的喚醒觸發(fā)信號(hào)。如果出現(xiàn)異常狀況(如溫濕度超標(biāo)、振動(dòng)或傾斜報(bào)警等),對(duì)應(yīng)電路可實(shí)時(shí)喚醒STM32L152RCT6,并將當(dāng)前報(bào)警信號(hào)和狀態(tài)通過(guò)NB-IOT 網(wǎng)絡(luò)上傳服務(wù)器。
巡檢員達(dá)現(xiàn)場(chǎng)后,點(diǎn)擊電子鎖觸發(fā)按鍵,喚醒STM32L152RCT6 開(kāi)始一次NB-IOT 通信,從服務(wù)器獲取當(dāng)前授權(quán)的數(shù)字鑰匙。然后,打開(kāi)掃碼模塊供電開(kāi)關(guān)并配置掃碼模塊,通過(guò)掃碼功能與巡檢員現(xiàn)場(chǎng)進(jìn)行數(shù)字鑰匙匹配。
數(shù)字鑰匙匹配成功后,STM32L152RCT6 打開(kāi)電子鎖,并通過(guò)NB-IOT 通信上傳電子鎖狀態(tài)、請(qǐng)求服務(wù)器回收已使用的數(shù)字鑰匙。巡檢過(guò)程中,終端都處于全運(yùn)行狀態(tài),在檢測(cè)到關(guān)鎖動(dòng)作后,STM32L152RCT6 斷開(kāi)掃碼模塊供電開(kāi)關(guān)并進(jìn)入休眠定時(shí)狀態(tài)。
智能光交鎖終端通過(guò)NB-IOT 網(wǎng)絡(luò)上傳獲得的狀態(tài)、報(bào)警數(shù)據(jù)以及一些請(qǐng)求命令,接收物聯(lián)網(wǎng)平臺(tái)下發(fā)給終端的數(shù)字鑰匙和控制碼,如重傳控制、開(kāi)鎖及解除警告等。智能光交鎖終端數(shù)據(jù)通信如圖9 所示。
圖9 智能光交鎖終端數(shù)據(jù)通信示意圖Fig.9 Data communication of intelligent optical interlocking terminal
狀態(tài)數(shù)據(jù)中的接收信號(hào)強(qiáng)度指示(received signal strength indication,RSSI)值是NB-IOT 模塊的射頻信號(hào)接收強(qiáng)度,通過(guò)AT+CSQ 命令獲取。水浸、振動(dòng)以及非授權(quán)電子鎖開(kāi)關(guān)狀態(tài)報(bào)警封裝在報(bào)警碼中。下發(fā)的數(shù)據(jù)包括數(shù)字鑰匙和控制碼。數(shù)字鑰匙格式如圖5 所示,控制碼功能包括數(shù)據(jù)重傳、開(kāi)鎖、解除報(bào)警等。
本文針對(duì)傳統(tǒng)機(jī)械式光交箱鎖使用和管理存在的問(wèn)題,設(shè)計(jì)了一個(gè)智能光交鎖終端。測(cè)試表明,終端設(shè)備上電后可以正常連接到物聯(lián)網(wǎng)平臺(tái),終端各個(gè)模塊工作正常,并能夠?qū)z測(cè)到的狀態(tài)數(shù)據(jù)上傳到服務(wù)器,各狀態(tài)數(shù)據(jù)和現(xiàn)場(chǎng)實(shí)測(cè)值基本一致。通過(guò)電子鎖掃碼功能,可以使用二維碼正常開(kāi)鎖,在異常狀況(如超溫、水浸、振動(dòng)、大角度傾斜等狀態(tài))下能夠及時(shí)喚醒主控器并上傳相關(guān)報(bào)警數(shù)據(jù)。使用NB-IOT 網(wǎng)絡(luò)和二維碼數(shù)字鑰匙替代傳統(tǒng)鑰匙,提高了鑰匙分配、使用和管理過(guò)程的效率,保障了光交箱門鎖開(kāi)關(guān)的安全性,降低了人工巡檢的工作量,具有廣闊的應(yīng)用前景。