基于Zigbee的智能門鎖控制終端設計
系統(tǒng)結(jié)構(gòu)
智能門鎖控制
本文智能門鎖控制終端內(nèi)部包括:ZigbeeCC2530通信模塊、RFID閱讀器、按鍵鍵盤和19232顯示液晶,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
使用ZigbeeCC2530讀取RFID卡號與鍵盤輸入的密碼數(shù)據(jù),將讀取的RFID卡號數(shù)據(jù)或密碼數(shù)據(jù)打包成數(shù)據(jù)包,通過Zigbee通信模塊無線傳輸數(shù)據(jù),將數(shù)據(jù)傳輸至終端設備,終端設備返回數(shù)據(jù)對比信息至智能門鎖控制終端,用于是否進行開門操作。液晶的主要是用于顯示使用者的當前操作狀態(tài)。具體設計制作產(chǎn)品如圖2所示。
硬件設計
Zigbee處理器電路
本文選用TZigbee芯片CC2530F256作為處理器,以Zigbee協(xié)議棧為通信載體,此芯片射頻組是在2.4GHz頻段,電路圖如圖3所示。
CC2530芯片是最實用的片上系統(tǒng)首選,不僅成本低而且功耗也很小,是TI公司專門設計基于IEEE 802.15.4協(xié)議的Zigbee芯片,這塊芯片上集成了8051內(nèi)核,帶有256 KB的內(nèi)存和8 KB的RAM,足以提供智能門鎖控制終端的信息處理與控制操作。
門鎖控制電路
本文智能門鎖控制終端所使用的機械門鎖為靈性鎖,靈性鎖使用的是步進電機進行鎖芯的伸縮控制,由于步進電機的工作電壓是直流12 V,而CC2530的驅(qū)動電壓為直流3.3 V,所以本文采用一個復合管電路進行門鎖的控制,電路圖如圖4所示。
門鎖驅(qū)動端口接CC2530的P2_0端口,作用是CC2530可以通過P2_0驅(qū)動門鎖電路,發(fā)送一個低電壓信號就可控制12 V驅(qū)動電機工作。低電壓信號控制高電壓信號也可以采用繼電器來進行驅(qū)動,但是本文為了門鎖功耗、安全性能與門鎖設計體積的考慮,采用復合管電路進行門鎖驅(qū)動控制。
RFID讀卡接口電路
本文采用的RFID讀卡器電路為RC522讀卡器電路,射頻識別技術是不需要接觸就可以實現(xiàn)數(shù)據(jù)通信,它主要是通過交變的電磁場進行通信。RC522讀卡器電路是由閱讀器、天線、應答器三大部分組成。閱讀器主要是用來讀取應答器的信息;天線是在應答器與閱讀器之間進行數(shù)據(jù)的傳遞;應答器主要由耦合電路元件和芯片組成,每一個應答器都有一個獨一無二的ID碼,這個碼在芯片制作的時候就儲存在芯片的ROM中,無法進行更改,智能門鎖設計中主要就是利用這個編碼來確認應答器的身份。RFID讀卡器與CC2530接口電路圖如圖5所示。
RC522讀卡器部分只用了5個接口連接到CC2530芯片處理器,SDA是RC522的數(shù)據(jù)接口用來傳輸數(shù)據(jù),連接在CC2530芯片上的P1_7口;SCK是RC522的時鐘接口,連接在芯片的P0_1口;MOSI是RC522的主輸出從輸入,連接在芯片上的P1_2口;MISO是RC522的主輸入從輸出,連接在芯片上的P0_4接口;RST為RC522的復位接口,連接在芯片上的P1_3口用來復位電路。
模擬鍵盤電路
本文為了節(jié)省端口數(shù)量,所使用的按鍵采用了分壓式模擬,電路圖如圖6所示。
當不同的按鍵被按下后,輸出不同的電壓信號,使用Zigbee自帶的AD轉(zhuǎn)換器,采集電壓信號,根據(jù)不同的電壓值來判定不同的按鍵。根據(jù)計算可得,二極管鉗制了大約0.6 V電壓,一共13個200 Ω電阻,理想情況下,大約每個電阻分的0.2 V電壓,通過CC2530芯片P0_0端口使用AD轉(zhuǎn)換器功能將模擬信號轉(zhuǎn)化為數(shù)字信號識別按鍵。
液晶顯示電路
本文中使用的液晶為19232液晶顯示器,液晶顯示器與CC2530之前采用的是串行傳輸?shù)姆绞剑布娐愤B接只需要3根線,與CC2530數(shù)據(jù)傳輸也只需要3個IO口,占用芯片的引腳少,接口6是液晶顯示屏的使能端,與CC2530芯片的P0_7引腳連接;接口5是液晶顯示屏的數(shù)據(jù)輸入端,與芯片的P0_6引腳連接;接口4是液晶顯示屏的時鐘輸入端,與芯片的P0_5引腳連接。并且可以通過調(diào)節(jié)RT可變電阻可以調(diào)節(jié)液晶的的對比度,使液晶顯示屏上的字更加清晰。
軟件設計
主流程設計
在系統(tǒng)軟件程序設計時,選擇IAR公司的IAR Embedded Workbench作為開發(fā)環(huán)境,智能門鎖控制端作為Zigbee無線傳輸網(wǎng)絡中的一個終端節(jié)點,終端設備作為一個協(xié)調(diào)器來工作。主程序流程圖如圖7所示。
首先進行各個部分的初始化操作,如將液晶進行初始化以及RFID讀卡器進行模式設置等一些操作,初始化完成后;調(diào)用液晶顯示子函數(shù),顯示歡迎光臨頁面,接著液晶會根據(jù)不同的狀態(tài)而現(xiàn)實不同的頁面。接著調(diào)用RFID讀卡程序與按鍵檢測程序,同時檢測讀取RFID卡號與密碼鍵入,當讀取到RFID卡號或4位密碼后,發(fā)送身份審核數(shù)據(jù)包,并且等待上位終端返回審核結(jié)果,以執(zhí)行門鎖驅(qū)動操作。
RFID讀卡流程設計
RFID讀卡流程圖如圖8所示。
RFID射頻卡放到讀卡器上時,則進入讀卡程序。首先是開始尋找RFID卡,讀取RFID序列號,為了RFID的讀卡穩(wěn)定,在程序中設計了兩次尋卡過程,當兩次讀卡號為相同時則會保存下來。同時為了避免多張射頻卡同時放在讀卡器上面時會數(shù)據(jù)碰撞,在尋卡結(jié)束后會進行防沖撞檢測,當通過防沖撞檢測后,則確認為有效卡號,并將卡號打包成數(shù)據(jù)包后加密發(fā)送至上位控制器審核身份,等待返回信息,以返回信息來判斷是否進行開門操作。
鍵值讀取流程設計
按鍵讀取程序程序設計由CC2530處理器不斷檢測按鍵AD端口的數(shù)據(jù),判斷轉(zhuǎn)換的數(shù)據(jù)是否在有效鍵值內(nèi)的數(shù)據(jù),如果是則將數(shù)據(jù)保存下來,如果連續(xù)保存下16個相同的有效鍵值后,則可以確認為按下了一個有效按鍵,等待4位密碼輸入完成后,將4位密碼打包成數(shù)據(jù)包加密后發(fā)送給上位控制器,等待審核信息,進行開關門操作。
數(shù)據(jù)加密技術
本文中為了提高安全性能,所使用的無線傳輸數(shù)據(jù)包是需要數(shù)據(jù)加密的,所采用的數(shù)據(jù)加密方式是基于普通加密方式上的一種升級版,是為了增加安防的可靠性而設計的,將Zigbee傳輸?shù)拇贏SCLL碼數(shù)據(jù)進行加密,在我們現(xiàn)實生活中,普通的加密方式有很多,比如:移位加密、DES和CC2530自帶的AES等。
本文采取的數(shù)據(jù)加密方式核心是基于同或及異或的一種加密方式,我們通過將數(shù)據(jù)所需加密的數(shù)據(jù)進行一定的加密;所需加密的數(shù)據(jù)可以查詢密碼本得到,密碼本內(nèi)數(shù)據(jù)是通過外部軟件隨機獲得,寫入到ROM中,為了使加密的數(shù)據(jù)可以達到更高等級安全系數(shù),密碼本的數(shù)據(jù)可以更加具有隨機性,或者可以進行多次加密計算。
本文中所傳輸中的數(shù)據(jù)包是一個具有16位的字符型數(shù)據(jù)的數(shù)組,格式如圖9所示;
其中包括5位發(fā)送者ID位、8位數(shù)據(jù)位、2位加密位和1位結(jié)束位(0xff),加密位即是將5位發(fā)送者ID和8位數(shù)據(jù)位加密,加密程序如圖10所示,2位加密位本文中設計的是前者為同或加密,后者為異或加密。
具體過程為:首先將同或加密位數(shù)據(jù)在密碼本中查找到真正的有效數(shù)據(jù),本文采用的是雙重提取的方式提取數(shù)據(jù),比如同或位為0時,我們在密碼表中查得數(shù)據(jù)為0x67,此時再次查找0x67位置的數(shù)據(jù)就是真正的有效同或數(shù)據(jù),將有效數(shù)據(jù)與數(shù)據(jù)相同或后,再使用同種方式將后者的異或加密的有效數(shù)據(jù)取出,將同或后的數(shù)據(jù)再進行異或操作。操作完成后,即是加密后所需傳輸?shù)臄?shù)據(jù)。解密方式即與加密方式是個相同操作,即可將數(shù)據(jù)還原。
本次密碼加密設計可以多種方式來提高安全性能,比如通過更改密碼本中數(shù)據(jù)位置提高安全性能,密碼本中一共有256個數(shù)據(jù),即0x00~0xff;通過電腦軟件Excel將256個數(shù)據(jù)隨機排列,制作成密碼本,256個數(shù)據(jù)排列順序有256256的數(shù)據(jù)排列方式。
還可以通過增加加密位來提高安全性能,本次設計只執(zhí)行了同或和異或兩次運算,如增加加密位,再進行相應運算,可以在同或與異或的基礎上添置加減移位等一系列計算,會使加密更為安全。