基于ZigBee無線通信網(wǎng)絡(luò)的指紋考勤網(wǎng)絡(luò)設(shè)計(jì)
一、整體方案設(shè)計(jì)
(一)星型ZigBee無線通信網(wǎng)絡(luò)方案
在指紋識別過程中,指紋終端產(chǎn)生的數(shù)據(jù)是很少的,通常為幾十個(gè)字節(jié),因此對通信系統(tǒng)的帶寬要求較低。ZigBee可實(shí)現(xiàn)250kbps的,通信距離一般介于10—100m間,以及低成本、高容量使其成為恰當(dāng)?shù)倪x擇。
在ZigBee無線通信網(wǎng)絡(luò)中設(shè)備單元有3種:協(xié)調(diào)器、路由器和終端。在本文中,我們組建包括一個(gè)協(xié)調(diào)器、多個(gè)終端的小型ZigBee網(wǎng)絡(luò)。協(xié)調(diào)器通過串口與上位機(jī)(或另一網(wǎng)絡(luò)端)相連{zigBee終端接到指紋識別模塊,并配合液晶擴(kuò)展板實(shí)現(xiàn)對IDWD5002模塊的控制。指紋考勤結(jié)果的各信息在上位機(jī)管理軟件中顯示。圖1為系統(tǒng)方案。
圖1 指紋考勤網(wǎng)絡(luò)設(shè)計(jì)方案
在網(wǎng)絡(luò)中需要使用的模塊有:ZigBee無線網(wǎng)絡(luò)模塊和指紋識別模塊。
Zi gBee無線通信模塊選擇為RF一2430。RF一2430提供SPI和UART與外部通信,其中UART可高達(dá)115.2kbps。指紋識別模塊選擇為IDWD5002,其通訊接口為RS232。該模塊作為從設(shè)備,由主設(shè)備發(fā)送相關(guān)命令對其進(jìn)行控制,可調(diào)節(jié)安全等級、指紋特征數(shù)據(jù)的讀/寫和1:N識別及1:l驗(yàn)證等。
使用ZigBee無線通信模塊配套的液晶擴(kuò)展板,通過RS232與指紋識別模塊IDWD5002相連接。
二、指紋考勤網(wǎng)絡(luò)方案實(shí)現(xiàn)
在網(wǎng)絡(luò)軟件開發(fā)中,使用的是IAR7.3OB平臺,ZigBee網(wǎng)絡(luò)協(xié)議為Ziggee2006協(xié)議棧。
在協(xié)議安裝完成后,路徑C:\Texas Instrument\zstack一1.4.3—1.21\P roject\zstack\utilities下有的SerialApp工程實(shí)現(xiàn)了簡單的無線數(shù)據(jù)傳輸功能。全雙工通信和流量控制,在數(shù)據(jù)發(fā)送超時(shí)或丟包時(shí),具有數(shù)據(jù)重發(fā)功能。因此,在此工程基礎(chǔ)上修改,可以實(shí)現(xiàn)需要的ZigBee網(wǎng)絡(luò)。
(一)配置網(wǎng)絡(luò)參數(shù)。
在本文中需要構(gòu)建的是一個(gè)一層的星型網(wǎng)絡(luò), 首先是設(shè)定網(wǎng)絡(luò)的類型。在nwk—globals.h文件中,STACK PROFILE ID 的定義就是網(wǎng)絡(luò)的類型, 將其定義為GENERIC STAR;最大網(wǎng)絡(luò)深度MAX NODE DEPTH改為t。網(wǎng)絡(luò)中最大設(shè)備數(shù)是由NwK—MAX DEVICE—LIST確定的,而且通常都會留有一定的余量,將其改為需要的數(shù)量。在文件nwk~globals.C中,數(shù)組CskipRtrs和數(shù)組CskipChldrn確定網(wǎng)絡(luò)的結(jié)構(gòu),將其改為需要的值。同時(shí),在f8wConfig.cfg中設(shè)定信道、PAN_ID、綁定表最大記錄數(shù)和單個(gè)記錄綁定族ID最大數(shù),并加入REFLECTOR編譯標(biāo)志。
(二)主體程序設(shè)計(jì)。
對于給定的SerialApp.c中,主體的框架已經(jīng)有了基本的輪廓;同時(shí)在文件0SAL—SerialApp.c中任務(wù)初始化合事件添加都已經(jīng)完成。我們通過對SerialApp.C和其頭文件的添加和修改就可以完成程序。網(wǎng)絡(luò)中的數(shù)據(jù)通信時(shí)通過命令來識別發(fā)送目的地的?!@樣可以不必注意終端網(wǎng)絡(luò)地址變動,而實(shí)現(xiàn)數(shù)據(jù)的通信。
1.設(shè)備綁定實(shí)現(xiàn)。
在ZigBee2006協(xié)議中,數(shù)據(jù)通信是基于命令綁定方式實(shí)現(xiàn)的。綁定允許應(yīng)用層發(fā)送信息 需要帶目的地址,APS層確定目的地址從它的綁定表格中,然后在信息前端加一h這個(gè)目的地址或組。在設(shè)備綁定中有多種綁定方式,如源綁定等。本文中采用的是源綁定方式, 這需要在編譯選項(xiàng)中加入REFLECTOR。綁定過程是由用戶終端發(fā)起的。首先終端向協(xié)調(diào)器發(fā)送描述符匹配請求,協(xié)調(diào)器接到描述符匹配請求后,在ZDO消息處理函數(shù)中給命令輸出列表中添加輸出命令,并初始化該命令對應(yīng)的管理數(shù)據(jù)單元。終端接到匹配響應(yīng)后完成命令綁定。接著向協(xié)調(diào)器發(fā)送帶有綁定命令的數(shù)據(jù)幀到協(xié)調(diào)器,協(xié)調(diào)器接收到綁定命令數(shù)據(jù)幀后,重復(fù)上面的操作。這樣就完成了終端和協(xié)調(diào)器的雙向綁定,其過程如圖2所示。當(dāng)終端接收到描述符匹配請求后,向協(xié)調(diào)器發(fā)送數(shù)據(jù)幀并傳送到上位機(jī),通知終端加入網(wǎng)絡(luò)。
圖2終端和協(xié)調(diào)器綁定過程
2.程序?qū)崿F(xiàn)。
在本文中闡述的網(wǎng)絡(luò)是單層的星型數(shù)據(jù)網(wǎng)絡(luò),需要為每個(gè)加入網(wǎng)絡(luò)的終端分配資源。在SerialApp.C中添加數(shù)據(jù)接收序列號數(shù)組和發(fā)送序列號數(shù)組,數(shù)據(jù)接收存儲結(jié)構(gòu)體和數(shù)據(jù)發(fā)送結(jié)構(gòu)體,修改接收和發(fā)送族數(shù)組。
協(xié)調(diào)器從串口接收到上位機(jī)傳來的數(shù)據(jù),必須根據(jù)數(shù)據(jù)中包含的命令發(fā)送到對應(yīng)的終端。根據(jù)約定的數(shù)據(jù)幀格式,從數(shù)據(jù)幀中提取命令并賦給當(dāng)前發(fā)送終端參數(shù)。當(dāng)數(shù)據(jù)幀接收完畢,啟動OTA發(fā)送任務(wù)將接收到的數(shù)據(jù)幀以綁定的方式發(fā)送;在接收到確認(rèn)消息后繼續(xù)發(fā)送剩余的數(shù)據(jù)。如果上位機(jī)是連續(xù)發(fā)送數(shù)據(jù),則還需要一個(gè)接收存儲結(jié)構(gòu)體,使得已經(jīng)接收到的數(shù)據(jù)能完整的發(fā)送給終端。對于數(shù)據(jù)的接收就相對發(fā)送就簡單得多了。指紋識別模塊向ZigBee終端發(fā)送的數(shù)據(jù)通常都是很小的,為幾 卜個(gè)字節(jié)。因此協(xié)調(diào)器接收到數(shù)據(jù)后,可直接通過串口發(fā)送到上位機(jī)。
相對于協(xié)調(diào)器,用戶終端是一個(gè)精簡的ZigBee網(wǎng)絡(luò)單元。在指紋考勤網(wǎng)絡(luò)中,ZigBee終端有兩個(gè)主要功能。其?,完成數(shù)據(jù)的通信:其二,實(shí)現(xiàn)對指紋識別模塊的控制。由于指紋模板比較大,這就需要對從協(xié)調(diào)器接收的數(shù)據(jù)整合成一個(gè)完整的數(shù)據(jù)包。它包括指紋識別的命令包和數(shù)據(jù)包。上位機(jī)將指紋模板分割成幾個(gè)數(shù)據(jù)幀發(fā)送,這樣是為了適應(yīng)協(xié)調(diào)器串口接收要求。因此,在終端接收數(shù)據(jù)時(shí),就必須將原來完整的數(shù)據(jù)恢復(fù),然后發(fā)送到指紋模塊。指紋模塊實(shí)現(xiàn)指紋識別需要外部發(fā)送指令進(jìn)行控制。在ZigBee終端的液晶擴(kuò)展板上有4個(gè)按鍵可用于對指紋模塊的控制。在終端的程序中加入對按鍵的響應(yīng)和指紋模塊響應(yīng)處理就可實(shí)現(xiàn)對IDWD5002指紋模塊的控制。最后在程序中將指紋識別模塊識別結(jié)果打包發(fā)送到協(xié)調(diào)器,至此完成Zi gBee終端的程序設(shè)計(jì)。
(三)IDM)5002指紋識別模塊控制。
IDWD5002指紋識別模塊與zi ee終端液晶擴(kuò)展板連接后,通過按下上面的按鍵,實(shí)現(xiàn)對其控制。從按鍵按下后,指紋采集時(shí)間約3秒,這可以通過指紋模塊進(jìn)行更改。在指紋采集的過程中,光學(xué)采集儀會有紫色背景光。登記手指按下后,紫光消失。這時(shí)可以在上位機(jī)上看到識別結(jié)果。
三、調(diào)試和實(shí)際測試
在調(diào)試時(shí)需要注意對上位機(jī)通信速率進(jìn)行控制。雖然ZigBee在2.4G時(shí)理論上可以達(dá)到250kbps,但是協(xié)調(diào)器從串口接收數(shù)據(jù)到收到終端確認(rèn)返回是需要一段時(shí)間的。因此上位機(jī)發(fā)送數(shù)據(jù)時(shí)需要給定一個(gè)間隔的。第二,上位機(jī)發(fā)送數(shù)據(jù)必須是在協(xié)調(diào)器和終端綁定完成后才能進(jìn)行。
首先運(yùn)行上位機(jī)管理程序,接著給協(xié)調(diào)器加上電源,最后分別給zigBee終端和指紋識別模塊加上電源。在ZigBee終端綁定結(jié)束后,從上位機(jī)管理程序下載指紋模板數(shù)據(jù)到指紋識別模塊。這樣就可以進(jìn)行指紋考勤了。實(shí)驗(yàn)過程和結(jié)果如圖3、4所示。
圖3 上位機(jī)管理程序界面:下拉列表框空位沒有zigBee終端接入網(wǎng)絡(luò)
圖4指紋識別結(jié)果
對比圖3和圖4:在設(shè)備列表中可以看到新加入了編號為1020的ZigBee終端;指紋識別結(jié)果為學(xué)號3的出勤為是。
四、結(jié)論
通過在成都無線龍開發(fā)的ZigBee模塊、液晶擴(kuò)展板和艾德沃德的IDWD5002指紋識別模塊的應(yīng)用,基于TI的ZigBee2006協(xié)議棧zstack的程序開發(fā),實(shí)現(xiàn)了無限ZigBee指紋考勤網(wǎng)絡(luò)。它通過從上位機(jī)下載已注冊的指紋模板到指紋識別模塊中,再將指紋識別的結(jié)果發(fā)送到上位機(jī),完成整個(gè)指紋考的勤。整個(gè)網(wǎng)絡(luò)系統(tǒng)具有很大的使用價(jià)值。