賀云飛,甘 雨,,肖國銳
(1.湖南北斗微芯產業發展有限公司,湖南 長沙 410000;2.戰略支援部隊信息工程大學地理空間信息學院,河南 鄭州 450001)
隨著電子技術的發展,家居的智能化已成為必然的趨勢。智能門鎖作為家居安全的重要“守門員”,其重要性不言而喻[1]。門鎖的智能化技術核心在于門鎖權限的控制和門鎖狀態的反饋,能夠讓用戶實時掌控家里的門鎖狀態。
采用無線通信技術控制終端門鎖,其優勢在于安裝方便,不需要布線。ZigBee 技術具有低功耗、低延時、低成本、網絡容量大、安全性高等特點,并且能夠實現自組網,具有較強的網絡恢復能力,相較于藍牙、WiFi、LoRa 等無線技術[2-5],具有明顯優勢。該設計采用ZigBee 技術實現智能門鎖系統,功耗低、實時性高,對于酒店、宿舍等需要對門鎖集中監控管理的場合提供了極大的便利[6]。
智能門鎖系統由終端門鎖、無線網關、云平臺及用戶終端組成,主要功能是檢測門鎖的狀態,實現遠程門鎖的開關控制及管理。ZigBee 網絡采用星型網絡拓撲結構,終端門鎖作為終端節點,無線網關作為協調器[7-8],系統總體框圖如圖1 所示。

圖1 系統總體框圖
終端門鎖通過ZigBee 網絡連接到協調器,將檢測到的門鎖狀態信息上傳平臺,同時終端門鎖根據協調器下發的控制指令執行門鎖的開關操作;無線網關作為終端門鎖和平臺的橋梁,通過以太網和平臺連接,實現終端門鎖和平臺的雙向通信,同時無線網關負責對終端門鎖的安全性管理[9]。
用戶終端將終端門鎖的地址和門鎖的白名單下發給無線網關,終端門鎖注冊入網過程中,無線網關通過比對門鎖的地址來控制門鎖接入的權限,用戶終端下發控制指令到無線網關,無線網關根據白名單進行匹配,在白名單目錄內的才允許將控制指令轉發給終端門鎖;無線網關對終端門鎖的在線狀態進行管理,監測到終端門鎖離線則反饋給平臺。
平臺記錄所有終端門鎖、無線網關的工作狀態,記錄終端門鎖的開鎖記錄等,做到用戶終端實時掌控門鎖的信息。
ZigBee 網絡終端節點和協調器選用CC2530 片上系統作為ZigBee 模塊[10],CC2530 片上集成了RF 收發器和增強型8051 內核,在發射模式下,電流損耗低于30 mA,休眠模式下低于0.4 μA,且主動模式和休眠模式的切換時間非常短,非常適用于超低功耗要求的系統。
終端門鎖由CC2530、電源模塊、驅動模塊、按鍵、AD 轉換電路等組成,如圖2 所示。

圖2 終端門鎖硬件框圖
終端門鎖采用干電池供電,對整體功耗的要求高,門鎖以CC2530 的片內8051 內核作為系統的微控制器[10-11],微控制器通過AD 轉換電路獲取干電池的電壓值,作為電池電量判斷的依據;按鍵用作系統復位操作,通過按鍵操作實現微控制器自動復位;JTAG 接口用作程序仿真,仿真器使用CC Debugger仿真器;串口用作參數配置調試;門鎖鎖體和微控制器之間通過五線進行連接,其中,三線分別是鎖舌信號線、反鎖信號線和開鎖信號線[12]。鎖舌信號體現鎖體是否上鎖;反鎖信號體現鎖體是否反鎖;開鎖信號體現鎖體是否通過鑰匙或指紋進行了開鎖操作,微控制器通過讀取信號線的高低電平來判斷門鎖的狀態。另外兩線是微控制器通過驅動模塊和門鎖鎖體的電機相連接,實現電機的正反轉控制,拖動鎖舌實現開關鎖操作。主控電路原理圖如圖3 所示。

圖3 終端門鎖主控電路原理圖
門鎖采用L7010R 馬達控制驅動芯片來驅動電機,L7010R 是控制和驅動電機設計的兩通道推挽式功率放大專用集成電路器件,CC2530 通過MA+和MA-兩個輸出端口控制驅動芯片驅動電機正反轉來實現開關鎖操作。網絡標簽號SUOSHE、MECKEY和FANSUO 分別代表鎖舌信號線、開鎖信號線以及反鎖信號線,這三根線和電機驅動信號線通過接線端子和鎖體相連接,網絡標簽號DIANLIANG 連接干電池,通過ADC 采集電量信息,KEY 和RESET 分別連接按鍵電路和復位電路。
無線網關由CC2530、STM32F103RCT6、蜂鳴器、電源模塊、以太網等組成,如圖4 所示。

圖4 無線網關硬件框圖
CC2530 作為ZigBee 網絡部分的微控制器,完成協調器功能,實現和門鎖的無線通信;CC2530 通過串口和主控芯片STM32F103RCT6 相連接。蜂鳴器作為提示音,提示終端門鎖是否成功接入無線網關,方便用戶對終端門鎖的對接調試。無線網關和平臺之間通過以太網相連接,考慮到無線網關供電的便利性,電源部分支持外部電源輸入供電,也支持POE供電方式;串口2 用作無線網關的參數配置以及調試,圖5 是主控制器STM32F103RCT6 原理圖。

圖5 主控制器STM32F103RCT6原理圖
以太網[13]采用W5500 芯片來實現,W5500 芯片是一款集成全硬件TCP/IP 協議棧的嵌入式以太網控制器,主控制器通過SPI 接口控制W5500 芯片實現網絡通信,同時W5500 的工作模式定義了引腳和主控芯片相連接,主控芯片通過設置工作模式引腳的高低電平實現W5500 的工作模式。
CC2530 的軟件開發提供了一套完整的Z-Stack協議棧[14],Z-Stack 協議棧是一個基于時間片任務輪詢方式的操作系統,Z-Stack 的主要執行流程包括關閉所有中斷、芯片外設初始化、芯片內部初始化、操作系統初始化、打開所有中斷和執行操作系統。在任務輪詢過程中,根據任務的優先級檢測任務是否就緒,查詢每個任務是否有事件發生,如果有事件發生,則執行相應的事件處理函數,如果沒有事件發生,則查詢下一個任務[15]。
終端門鎖作為ZigBee 網絡中的終端節點,采用低功耗工作模式,執行休眠、喚醒、休眠循環的工作方式。終端門鎖的主體軟件流程如圖6 所示。

圖6 終端門鎖的程序的流程
終端門鎖主要完成以下功能點:1)檢測門鎖狀態;2)檢測電池電壓上報平臺;3)執行協調器下發的控制開關鎖指令。
系統啟動后首先對硬件和協議棧進行初始化,為了門鎖的安全性,硬件初始化過程中,微控制器驅動電機默認處于門鎖關閉狀態。終端門鎖檢查ZigBee 網絡,嘗試連接協調器,如果連接失敗,則設置休眠時間,進入休眠狀態,自動喚醒后重新嘗試連接協調器,直到連接成功。如果終端門鎖在多次嘗試連接失敗的情況下,系統調節休眠時長做到降低電量的消耗。
在終端門鎖成功連接協調器后,執行低功耗工作機制,周期性地從休眠當中喚醒后偵測有無事件要處理,若有事件要處理,處理完之后進入休眠,否則立即休眠,為了保證實時響應協調器下發的控制指令,系統每隔300 ms 喚醒一次,進行事件偵測。
系統每次喚醒后,都會檢測門鎖的狀態信息,若門鎖的狀態發生變化,則立即將門鎖的狀態信息進行上報。電池電壓的檢測不需要頻繁進行,每隔1 h喚醒檢測一次。
若系統在喚醒后偵測到協調器下發的控制指令,接收控制指令后,如果是開鎖指令,則立即執行開鎖,同時,為了防止門鎖長期打開的安全性問題,系統在延時10 m 后自動執行關鎖指令。
微控制器驅動電機的引腳MA+為高電平,MA-為低電平則電機正轉,驅動電機關鎖;MA+為低電平,MA-為高電平則電機反轉,驅動電機開鎖,MA+和MA-同時為高電平,則電機停止工作。微控制器在執行開關鎖操作后,延時100 ms,然后再驅動電機停止工作。
無線網關的程序包括ZigBee 協調器程序和主控程序。協調器程序由CC2530 完成,主要功能包括:1)建立ZigBee 網絡,接收終端節點加入網絡;2)實現終端節點數據轉發;3)實現主控程序的數據轉發。協調器程序執行流程如圖7 所示。

圖7 協調器程序的流程
CC2530 執行過程中不需要考慮低功耗機制,系統啟動后,檢測網絡節點的入網操作,對于已入網的終端節點,CC2530 循環檢測終端節點是否有數據,在接收到終端節點數據下直接通過串口轉發給主控程序,同時CC2530 接收到串口數據后,自動采用無線方式發送給終端節點。
主控程序由STM32F103RCT6 完成,主要完成以下功能:1)平臺的數據通信;2)協調器的數據通信;3)平臺、協調器數據的處理;4)終端節點的管理。執行流程如圖8 所示。

圖8 無線網關主控程序的流程
主控程序硬件初始化后,對協調器進行復位操作,啟動協調器運行,主控程序根據配置的網絡參數,采用MQTT 通信協議[16-17]和平臺相連接,MQTT 協議使用發布/訂閱消息模式提供一對多的消息發布,解除了應用程序的耦合。
主控程序通過串口接收協調器轉發的終端節點的數據,主控程序接收到終端節點的注冊成功信息后,則將該終端節點標記為上線,同時通過蜂鳴器鳴叫一聲進行提示,后續通過接收終端節點的心跳數據來判斷終端節點是否在線,主控程序通過MQTT協議發布終端節點狀態到平臺。對于終端節點的電池電壓、門鎖狀態等參數信息,主控程序接收到信息以后不做任何處理,直接通過MQTT 進行發布。
主控程序通過MQTT 協議訂閱相應的主題,接收平臺下發的控制指令,對于接收到的控制指令,主控程序根據存儲的白名單進行對比過濾,將合法的數據通過協調器轉發給終端節點。
智能門鎖系統實物圖如圖9 所示,測試過程如下:首先給終端門鎖和無線網關進行通電啟動,無線網關的蜂鳴器鳴叫一聲,說明終端門鎖成功連接到無線網關,一段時間后斷電重啟無線網關,無線網關的蜂鳴器自動鳴叫一聲,說明終端門鎖在斷開連接的情況下能夠自動重連,反復試驗,成功率達100%。

圖9 智能門鎖系統實物圖
利用MQTT 網絡調試助手,按照無線網關訂閱的主題向無線網關下發開鎖指令,終端門鎖鳴叫一聲,說明開鎖成功,終端門鎖在10 s 后自動關鎖,重復試驗100 次,測試成功率達95%以上。
在終端門鎖串聯電流表來測試功耗,終端門鎖在低功耗休眠下電流為20 μA,終端門鎖在喚醒發送接收數據瞬間電流達30 mA。
通過對基于ZigBee 的智能門鎖系統的設計,實現了終端門鎖系統網絡互連的功能,用戶可以遠程下發控制指令控制門鎖的開關操作,終端門鎖實時上傳門鎖的狀態信息。通過驗證測試,終端門鎖靜態電流小于20 μA,功耗極低,符合干電池供電的要求,同時開鎖成功率達95%以上,系統運行穩定,下發控制指令能夠實時反饋,具有較好的實用價值。