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