基於Zigbee的智能門鎖控制終端設計

通信 讀卡器 德州儀器 數碼 RFID世界網 2018-12-04

系統結構

智能門鎖控制

本文智能門鎖控制終端內部包括:ZigbeeCC2530通信模塊、RFID閱讀器、按鍵鍵盤和19232顯示液晶,系統結構圖如圖1所示。

基於Zigbee的智能門鎖控制終端設計

使用ZigbeeCC2530讀取RFID卡號與鍵盤輸入的密碼數據,將讀取的RFID卡號數據或密碼數據打包成數據包,通過Zigbee通信模塊無線傳輸數據,將數據傳輸至終端設備,終端設備返回數據對比信息至智能門鎖控制終端,用於是否進行開門操作。液晶的主要是用於顯示使用者的當前操作狀態。具體設計製作產品如圖2所示。

基於Zigbee的智能門鎖控制終端設計

硬件設計

Zigbee處理器電路

本文選用TZigbee芯片CC2530F256作為處理器,以Zigbee協議棧為通信載體,此芯片射頻組是在2.4GHz頻段,電路圖如圖3所示。

基於Zigbee的智能門鎖控制終端設計

CC2530芯片是最實用的片上系統首選,不僅成本低而且功耗也很小,是TI公司專門設計基於IEEE 802.15.4協議的Zigbee芯片,這塊芯片上集成了8051內核,帶有256 KB的內存和8 KB的RAM,足以提供智能門鎖控制終端的信息處理與控制操作。

門鎖控制電路

本文智能門鎖控制終端所使用的機械門鎖為靈性鎖,靈性鎖使用的是步進電機進行鎖芯的伸縮控制,由於步進電機的工作電壓是直流12 V,而CC2530的驅動電壓為直流3.3 V,所以本文采用一個複合管電路進行門鎖的控制,電路圖如圖4所示。

基於Zigbee的智能門鎖控制終端設計

門鎖驅動端口接CC2530的P2_0端口,作用是CC2530可以通過P2_0驅動門鎖電路,發送一個低電壓信號就可控制12 V驅動電機工作。低電壓信號控制高電壓信號也可以採用繼電器來進行驅動,但是本文為了門鎖功耗、安全性能與門鎖設計體積的考慮,採用複合管電路進行門鎖驅動控制。

RFID讀卡接口電路

本文采用的RFID讀卡器電路為RC522讀卡器電路,射頻識別技術是不需要接觸就可以實現數據通信,它主要是通過交變的電磁場進行通信。RC522讀卡器電路是由閱讀器、天線、應答器三大部分組成。閱讀器主要是用來讀取應答器的信息;天線是在應答器與閱讀器之間進行數據的傳遞;應答器主要由耦合電路元件和芯片組成,每一個應答器都有一個獨一無二的ID碼,這個碼在芯片製作的時候就儲存在芯片的ROM中,無法進行更改,智能門鎖設計中主要就是利用這個編碼來確認應答器的身份。RFID讀卡器與CC2530接口電路圖如圖5所示。

基於Zigbee的智能門鎖控制終端設計

RC522讀卡器部分只用了5個接口連接到CC2530芯片處理器,SDA是RC522的數據接口用來傳輸數據,連接在CC2530芯片上的P1_7口;SCK是RC522的時鐘接口,連接在芯片的P0_1口;MOSI是RC522的主輸出從輸入,連接在芯片上的P1_2口;MISO是RC522的主輸入從輸出,連接在芯片上的P0_4接口;RST為RC522的復位接口,連接在芯片上的P1_3口用來複位電路。

模擬鍵盤電路

本文為了節省端口數量,所使用的按鍵採用了分壓式模擬,電路圖如圖6所示。

基於Zigbee的智能門鎖控制終端設計

當不同的按鍵被按下後,輸出不同的電壓信號,使用Zigbee自帶的AD轉換器,採集電壓信號,根據不同的電壓值來判定不同的按鍵。根據計算可得,二極管鉗制了大約0.6 V電壓,一共13個200 Ω電阻,理想情況下,大約每個電阻分的0.2 V電壓,通過CC2530芯片P0_0端口使用AD轉換器功能將模擬信號轉化為數字信號識別按鍵。

液晶顯示電路

本文中使用的液晶為19232液晶顯示器,液晶顯示器與CC2530之前採用的是串行傳輸的方式,硬件電路連接只需要3根線,與CC2530數據傳輸也只需要3個IO口,佔用芯片的引腳少,接口6是液晶顯示屏的使能端,與CC2530芯片的P0_7引腳連接;接口5是液晶顯示屏的數據輸入端,與芯片的P0_6引腳連接;接口4是液晶顯示屏的時鐘輸入端,與芯片的P0_5引腳連接。並且可以通過調節RT可變電阻可以調節液晶的的對比度,使液晶顯示屏上的字更加清晰。

軟件設計

主流程設計

在系統軟件程序設計時,選擇IAR公司的IAR Embedded Workbench作為開發環境,智能門鎖控制端作為Zigbee無線傳輸網絡中的一個終端節點,終端設備作為一個協調器來工作。主程序流程圖如圖7所示。

基於Zigbee的智能門鎖控制終端設計

首先進行各個部分的初始化操作,如將液晶進行初始化以及RFID讀卡器進行模式設置等一些操作,初始化完成後;調用液晶顯示子函數,顯示歡迎光臨頁面,接著液晶會根據不同的狀態而現實不同的頁面。接著調用RFID讀卡程序與按鍵檢測程序,同時檢測讀取RFID卡號與密碼鍵入,當讀取到RFID卡號或4位密碼後,發送身份審核數據包,並且等待上位終端返回審核結果,以執行門鎖驅動操作。

RFID讀卡流程設計

RFID讀卡流程圖如圖8所示。

基於Zigbee的智能門鎖控制終端設計

RFID射頻卡放到讀卡器上時,則進入讀卡程序。首先是開始尋找RFID卡,讀取RFID序列號,為了RFID的讀卡穩定,在程序中設計了兩次尋卡過程,當兩次讀卡號為相同時則會保存下來。同時為了避免多張射頻卡同時放在讀卡器上面時會數據碰撞,在尋卡結束後會進行防衝撞檢測,當通過防衝撞檢測後,則確認為有效卡號,並將卡號打包成數據包後加密發送至上位控制器審核身份,等待返回信息,以返回信息來判斷是否進行開門操作。

鍵值讀取流程設計

按鍵讀取程序程序設計由CC2530處理器不斷檢測按鍵AD端口的數據,判斷轉換的數據是否在有效鍵值內的數據,如果是則將數據保存下來,如果連續保存下16個相同的有效鍵值後,則可以確認為按下了一個有效按鍵,等待4位密碼輸入完成後,將4位密碼打包成數據包加密後發送給上位控制器,等待審核信息,進行開關門操作。

數據加密技術

本文中為了提高安全性能,所使用的無線傳輸數據包是需要數據加密的,所採用的數據加密方式是基於普通加密方式上的一種升級版,是為了增加安防的可靠性而設計的,將Zigbee傳輸的串口ASCLL碼數據進行加密,在我們現實生活中,普通的加密方式有很多,比如:移位加密、DES和CC2530自帶的AES等。

本文采取的數據加密方式核心是基於同或及異或的一種加密方式,我們通過將數據所需加密的數據進行一定的加密;所需加密的數據可以查詢密碼本得到,密碼本內數據是通過外部軟件隨機獲得,寫入到ROM中,為了使加密的數據可以達到更高等級安全係數,密碼本的數據可以更加具有隨機性,或者可以進行多次加密計算。

基於Zigbee的智能門鎖控制終端設計

本文中所傳輸中的數據包是一個具有16位的字符型數據的數組,格式如圖9所示;

其中包括5位發送者ID位、8位數據位、2位加密位和1位結束位(0xff),加密位即是將5位發送者ID和8位數據位加密,加密程序如圖10所示,2位加密位本文中設計的是前者為同或加密,後者為異或加密。

具體過程為:首先將同或加密位數據在密碼本中查找到真正的有效數據,本文采用的是雙重提取的方式提取數據,比如同或位為0時,我們在密碼錶中查得數據為0x67,此時再次查找0x67位置的數據就是真正的有效同或數據,將有效數據與數據相同或後,再使用同種方式將後者的異或加密的有效數據取出,將同或後的數據再進行異或操作。操作完成後,即是加密後所需傳輸的數據。解密方式即與加密方式是個相同操作,即可將數據還原。

基於Zigbee的智能門鎖控制終端設計

本次密碼加密設計可以多種方式來提高安全性能,比如通過更改密碼本中數據位置提高安全性能,密碼本中一共有256個數據,即0x00~0xff;通過電腦軟件Excel將256個數據隨機排列,製作成密碼本,256個數據排列順序有256256的數據排列方式。

還可以通過增加加密位來提高安全性能,本次設計只執行了同或和異或兩次運算,如增加加密位,再進行相應運算,可以在同或與異或的基礎上添置加減移位等一系列計算,會使加密更為安全。

相關推薦

推薦中...