徐靈飛 ,陳 斌
(1.成都理工大學工程技術學院電子信息與計算機工程系,四川 樂山 614000;2.四川金互通科技股份有限公司,四川 樂山 614000)
隨著光纖入戶和網絡用戶的增長,光交箱數量不斷增加,巡檢人員數量和難度也相應增加,容易出現鑰匙丟失、匹配不對、光交箱安全等問題。光交箱大部分安裝在戶外,對工作溫度、防水、防潮、抗沖擊損壞能等有一定要求,面對劇變的氣候和惡劣的工作環境,需要定期巡檢箱體的工作狀態,保障光交箱的安全工作環境。本文結合窄帶物聯網(narrow band internet of things,NB-IOT)技術功耗低、覆蓋廣的特點[1-2]和二維碼技術數字化鑰匙技術,設計了集電子鎖、掃碼功能和監控功能于一體的智能鎖。使用二維碼代替傳統鑰匙,按需分配、即用即消,結合NB-IOT 網絡實現鑰匙高效管理,并能夠將光交箱工作環境狀態的監測數據和異常狀況上傳服務器以供分析[3]。作為無源設備,智能光交箱鎖使用電池供電,通過NB-IOT 網絡進行信息傳遞和管理。相較于其他網絡互連方式,該設計增加了系統的待機時間[4-5]和覆蓋范圍。
智能光交箱鎖設計基于NB-IOT 網絡,結合二維碼實現光交箱鑰匙管理和光交箱工作狀態的監控。在系統服務管理平臺的控制區域內,平臺統一分配每個光交箱鎖的ID 號,統一管理光交箱鎖數字二維碼鑰匙的生成和取消,并接收智能光交箱鎖上傳的監控信息(包括箱內溫度、濕度[6-7]、水浸、振動、傾斜和電池工作狀態)。監控系統結構如圖1 所示。

圖1 監控系統結構圖Fig.1 Monitoring system structure diagram
結合NB-IOT 和二維碼技術實現的數字鑰匙管理系統狀態如圖2 所示。在需要對光交箱進行巡檢時,管理系統生成數字二維碼鑰匙,并下發到巡檢員的手機上。巡檢員到達現場后,點擊光交鎖上的按鍵,啟動一次NB-IOT 通信,向服務器請求光交鎖數字鑰匙。光交鎖終端獲取數字鑰匙后,通過LED 燈提示開始二維碼掃描功能,通過掃碼行匹配以決定是否打開電子鎖。在掃碼匹配不一致時,可以反復操作四次。如四次結果都不匹配,則凍結電子鎖,待服務器解鎖后才能進行下一次的掃碼開鎖操作。在成功使用一個二維碼之后,光交鎖通過NB-IOT 網絡將鎖的開關狀態上傳到服務器,并回收使用過的二維碼。在光交箱的數字化管理下,避免了鑰匙復制、丟失、錯位帶來的安全問題,實現了智能化巡檢,保證了資產的安全性。

圖2 數字鑰匙管理系統狀態圖Fig.2 Digital key management system status diagram
智能光交箱鎖在正常工作期間,檢測箱內狀態,并定時將狀態值上傳到服務器,用于光交箱日常工作狀態的后期分析。在出現突發情況(如水浸、振動和大角度傾斜等事件)時,蜂鳴器報警提示,并實時上傳狀態數據,縮短上傳間隔時間,增加報警數據檢測量,細化記錄異常狀態變化過程。在服務器發現異常后,及時將相關信息通知給管理員,以分派巡檢員及時進行巡檢維護。
如圖1 所示,智能鎖終端硬件系統主要包括6 個部分:主控器模塊、電子鎖模塊、掃碼模塊、通信模塊、傳感器模塊以及電源管理模塊。智能鎖終端安裝在光交箱內,可以實現掃碼、電子鎖開關控制、采集光交箱工作狀態、與服務器通信以及電源管理等功能。由于光交箱通常為無源工作環境,因此需要整個硬件系統能夠以低功耗形式進行工作。在硬件設計中,通過選擇低功耗主控器、低功耗NB-IOT 控制器,設計掃碼模塊、電子鎖電源控制開關,以及設計電源管理電路等方法,實現整個硬件系統的低功耗運轉。在沒有外界觸發信號(電子鎖觸發開關、NB-IOT 通信信號或異常信號觸發)的情況下,整個系統全速運行,所有模塊的電源控制開關閉合;反之,終端工作在低功耗模式,必須切斷非必模塊電源控制開關,以降低終端工作功耗。
為實現硬件低功耗控制,首先選用超低功耗STM32L152RCT6 作為主控器。STM32L152RCT6 內置高性能ARM Cortex-M3 32 位RISC 內核、多種增強型輸入/輸出(input/output,I/O)接口、外設和超低功耗比較器,可以實現功能強大的外圍電路設計,降低硬件設計復雜度。同時,STM32L152RCT6 具有低功耗運行、睡眠、低功耗睡眠、停止、待機等低功耗模式,可使系統在非全速工作期間運行于低功耗模式。在光交鎖終端空閑狀態時,STM32L152RCT6 進入停止低功耗模式,此時,可使用STM32L152RCT6 的外部輸入中斷0-3(external interrupt line 0-3,EXTI_Line0-3)和實時時鐘(real time clock,RTC)的報警中斷(EXTI_Line20)作為喚醒信號。STM32L152RCT6 的外部輸入中斷信號由電子鎖觸發按鍵、水浸報警信號、振動信號等異常信號產生。在STM32L152RCT6 進入低功耗模式前,配置RTC 的30 min 的報警中斷,以實現光交鎖終端的定時狀態檢測。當檢測到異常狀況時,縮短RTC 的報警時間,以增加異常狀況檢測的細化程度。
NB-IOT 模塊具有三種工作模式:Active、IDLE 和省電模式(power saving mode,PSM)。NB-IOT 模塊會根據激活模式(Active)→空閑模式(IDLE,持續時間為T3324 設定時間)→PSM(持續時間為T3312 設定時間,期間可以外部激活)的順序在三種模式之間切換。根據實際需求,通過AT+CPSMS 指令,可設定T3324和T3312 兩個定時器的定時長度。NB-IOT 模塊選用BC28,工作電壓范圍為3.1~4.2 V。在PSM 狀態,BC28 最大消耗電流為5 μA。STM32L152RCT6 的通用同步/異步串行接收/發送器1(universal synchronous/asynchronous receiver/transmitter 1,USART1)與BC28模塊主串口(17、18 引腳)鏈接,向BC28 模塊發送AT指令,實現BC28 模塊的初始化和數據的收發。BC28模塊在數傳工作中,確保電源跌落不低于模塊最低工作電壓3.1 V。在3.3 V 的工作電壓下,為了提高電源的供電性能,可在靠近模塊電源輸入端并聯一個低等效串聯電阻(0.7 Ω) 的100 μF 的鉭電容,以及100 nF、100 pF 和 22 pF 的濾波電容。原則上,當VBAT 引腳走線越長,線寬應越寬。BC28 模塊大部分時間處于的PSM 狀態,比較適合無源光交箱電池供電的工作應用場景。
BC28 模塊硬件電路如圖3 所示。

圖3 BC28 模塊硬件電路圖Fig.3 Hardware circuit diagram of BC28 module
本文設計使用電磁形式控制電子鎖把手的閉合和彈開[8-10],通過干簧管檢測電子鎖的開關狀態(LOCK_DEC)。電子鎖控制電路如圖4 所示。

圖4 電子鎖控制電路Fig.4 Electronic lock control circuit
電子鎖把手下方內置一個觸發按鍵。在把手閉合時,點擊把手可以觸發電子鎖按鍵(S1),LOCK_KEY引腳狀態由低電平變為高電平喚醒STM32L152RCT6,通過掃碼進行鑰匙匹配。當巡檢員鑰匙和服務器下發鑰匙匹配成功時,STM32L152RCT6 置LOCK_CTL 引腳為高電平,使得開關MOS 管Q2和Q1漏-源極導通,從而電磁鐵M1通電,并通過彈開把手、旋轉把手的方式開門。當電磁鐵M1通電產生磁力時,可以使得干簧管開關(S2)閉合,LOCK_DEC 引腳上電平由高電平變為低電平,為STM32L152RCT6 提供電子鎖開關狀態。在電子鎖開通時,STM32L152RCT6 通過LOCK_LED 引腳點亮LED 燈D1。當鑰匙不匹配時,LED 燈D1閃爍。當鑰匙被回收或匹配失敗四次后,LED 燈D1熄滅。
GM65 掃碼輸出數據格式如圖5 所示。

圖5 GM65 掃碼輸出數據格式Fig.5 GM65 scan output data format
服務器向巡檢員下達巡檢任務,將當前巡檢二維碼鑰匙同步下發到需要巡檢的智能光交箱鎖終端。巡檢員到達現場,點擊電子鎖按鍵喚醒STM32L152RCT6,開始二維碼識別。掃碼模塊使用GM65,二維碼使用快速反應(quick response,QR)碼。
掃碼成功后,STM32L152RCT6 通過USART1獲取GM65 的掃碼結果,對掃碼結果和服務器下發的數字鑰匙進行匹配,并在匹配成功后開鎖。GM65 掃碼輸出數據由前綴、鑰匙編碼數據、后綴三部分組成,以GBK 格式進行編碼。掃碼輸出數據中的鑰匙編碼數據由地區碼、光交箱編號和隨機碼組成。
傳感器模塊實現溫濕度、水浸、振動和傾斜等參數的定時測量和異常報警。相關信息可通過NB-IOT 網絡上傳到服務器。
選用Si7021 作為溫濕度傳感器,內置了溫度(熱敏電阻)和濕度(濕敏電容)傳感器元件、模擬數字轉換器、信號處理、校準數據和集成電路(inter-integrated circuit,I2C)總線主機接口。Si7021 在-10~+85 ℃具備±0.4 ℃溫度測量精度,在0~80%相對濕度(relative humidity,RH)范圍具備±3%測量精度,滿足設計需要。STM32L152RCT6 通過I2C 接口發送溫度測量(0xE3)和濕度測量(0xE5)命令給Si7021,啟動相關測量工作。Si702 對溫濕度的測量需要一定的時間,因此在STM32L152RCT6 發送測量命令后,需要等待12 ms 之后讀取測量結果。在非測量周期,Si7021 處于待機模式,待機電流60 nA,符合低功耗需求。Si7021 的I2C數據傳輸順序如圖6 所示。

圖6 Si7021 的I2C 數據傳輸順序Fig.6 I2C data transmission sequence of Si7021
滯回水浸檢測報警電路由低功耗比較器TLV7032和雙極性水浸傳感器組成。水浸傳感器電路和檢測滯回區間如圖7 所示。

圖7 水浸傳感器電路和檢測滯回區間Fig.7 Immersion sensor circuit and detection hysteresis interval
傳感器陽極接入TLV7032 陰極,比較器輸出連接STM32L152RCT6,通過檢測兩個電極之間的阻值變化產生報警信號。當出現水浸現象時,傳感器陽極和陰極之間的阻值發生變化。在水浸處于安全范圍時,TLV7032 輸出高電平(圖7(b)中①)。當水浸超出安全范圍時,TLV7032 輸出低電平(圖7(b)中②)。在排除水浸危害后,TLV7032 輸出信號經7(b)的③、④路徑返回高電平。STM32L152RCT6 每30 min 檢測一次水浸信號。
為防止人為破壞和光交箱傾斜,使用加速度傳感器LIS3DHTR 進行檢測和預警[11-12]。LIS3DHTR 內置算法可以處理運動檢測、翻轉等事件。根據需要配置對應寄存器初始化,一旦檢測到目標事件,LIS3DHTR的INT_1 引腳會產生中斷信號,并通知主控器。將LIS3DHTR 寄存器INT1_CFG 的AOI 和6D 兩個位分別設置為0 和1 使能6D 方向上的運動檢測,并設置中斷使能、加速度變化閾值等參數。當出現任意方向的強烈振動時,會在INT_1 引腳上產生中斷信號,以觸發中斷實時處理。終端每30 min 讀取一次LIS3DHTR 在X、Y、Z三個方向的重力加速度分量,并計算光交箱的傾斜角度。
整個智能光交箱鎖終端可由鋰電池或普通干電池供電。為保證系統長時間工作的電源穩定性,設計由電源電池分壓電路和TLV7032 組成的比較電路。在電源電池電壓降到報警點時,TLV7032 輸出電壓發生反轉并觸發終端上傳報警信號,提示及時進行維護。為保證電源電池能夠在寬電壓范圍為終端提供穩定工作電源,選用TPS63070 升降壓DC-DC 電源芯片產生統一的3.3 V 終端工作電源。TPS63070 可保證電源電池在2~16 V 的輸入電壓范圍輸出3.3 V,并提供最大3.6 A 的工作電流,滿足系統要求。在采用4 節南孚干電池供電時,電池電源電壓報警值設置為3 V。
終端控制程序流程如圖8 所示。

圖8 終端控制程序流程圖Fig.8 Flowchart of terminal control program
終端控制程序實現電子鎖控制、服務器通信、掃碼模塊控制、溫濕度檢測、水浸檢測、振動檢測、傾斜檢測以及電池電壓檢測等功能。在終端上電啟動后,首先進行STM32L152RCT6 片上外設的初始化配置,包括通用輸入輸出(general-purpose input/output,GPIO)接口、外部中斷、USART、I2C、模數轉換器(analog-to-digital converter,ADC)、RTC 等。然后,對掃碼模塊、各種傳感器模塊NB-IOT 模塊進行初始化,并開始連接NBIOT 網絡。在NB-IOT 連接服務器成功后,進行一次光交箱狀態檢測,并將數據上傳到服務器。然后STM32L152RCT6 進入停止低功耗模式,等待下一次定時電路的喚醒觸發信號。如果出現異常狀況(如溫濕度超標、振動或傾斜報警等),對應電路可實時喚醒STM32L152RCT6,并將當前報警信號和狀態通過NB-IOT 網絡上傳服務器。
巡檢員達現場后,點擊電子鎖觸發按鍵,喚醒STM32L152RCT6 開始一次NB-IOT 通信,從服務器獲取當前授權的數字鑰匙。然后,打開掃碼模塊供電開關并配置掃碼模塊,通過掃碼功能與巡檢員現場進行數字鑰匙匹配。
數字鑰匙匹配成功后,STM32L152RCT6 打開電子鎖,并通過NB-IOT 通信上傳電子鎖狀態、請求服務器回收已使用的數字鑰匙。巡檢過程中,終端都處于全運行狀態,在檢測到關鎖動作后,STM32L152RCT6 斷開掃碼模塊供電開關并進入休眠定時狀態。
智能光交鎖終端通過NB-IOT 網絡上傳獲得的狀態、報警數據以及一些請求命令,接收物聯網平臺下發給終端的數字鑰匙和控制碼,如重傳控制、開鎖及解除警告等。智能光交鎖終端數據通信如圖9 所示。

圖9 智能光交鎖終端數據通信示意圖Fig.9 Data communication of intelligent optical interlocking terminal
狀態數據中的接收信號強度指示(received signal strength indication,RSSI)值是NB-IOT 模塊的射頻信號接收強度,通過AT+CSQ 命令獲取。水浸、振動以及非授權電子鎖開關狀態報警封裝在報警碼中。下發的數據包括數字鑰匙和控制碼。數字鑰匙格式如圖5 所示,控制碼功能包括數據重傳、開鎖、解除報警等。
本文針對傳統機械式光交箱鎖使用和管理存在的問題,設計了一個智能光交鎖終端。測試表明,終端設備上電后可以正常連接到物聯網平臺,終端各個模塊工作正常,并能夠將檢測到的狀態數據上傳到服務器,各狀態數據和現場實測值基本一致。通過電子鎖掃碼功能,可以使用二維碼正常開鎖,在異常狀況(如超溫、水浸、振動、大角度傾斜等狀態)下能夠及時喚醒主控器并上傳相關報警數據。使用NB-IOT 網絡和二維碼數字鑰匙替代傳統鑰匙,提高了鑰匙分配、使用和管理過程的效率,保障了光交箱門鎖開關的安全性,降低了人工巡檢的工作量,具有廣闊的應用前景。