引言
當(dāng)今世界無線通信技術(shù)發(fā)展迅速,,如藍(lán)牙,Wi-Fi,,紅外,,ZigBee等無線技術(shù),已經(jīng)在很多領(lǐng)域得到了應(yīng)用,。無線點(diǎn)餐系統(tǒng)將先進(jìn)的Zig-Bee技術(shù)運(yùn)用于傳統(tǒng)的餐飲業(yè),,進(jìn)而提高餐廳的服務(wù)水平和工作效率。目前,,應(yīng)用于餐飲行業(yè)的無線通信技術(shù)主要包括紅外技術(shù),,藍(lán)牙技術(shù)和ZigBee技術(shù)等。紅外技術(shù)屬于短距離,,點(diǎn)對(duì)點(diǎn)的半雙工通信方式,,不適用于網(wǎng)絡(luò)的組網(wǎng);藍(lán)牙技術(shù)成本高,,不適合較多節(jié)點(diǎn)的網(wǎng)絡(luò),。本研究采用了低速率,低成本,,低功耗的ZigBee技術(shù),,設(shè)計(jì)無線點(diǎn)餐系統(tǒng)。
1 無線點(diǎn)餐系統(tǒng)整體結(jié)構(gòu)
無線點(diǎn)餐系統(tǒng)主要由點(diǎn)餐終端與服務(wù)臺(tái)終端組成,,兩部分通過ZigBee無線模塊實(shí)現(xiàn)數(shù)據(jù)通信,。點(diǎn)餐終端選用了友善之臂帶有7寸觸摸屏的ARM9開發(fā)板,,通過上位機(jī)用戶界面程序可以實(shí)現(xiàn)點(diǎn)餐功能。服務(wù)臺(tái)終端選用一臺(tái)帶有串口/并口的臺(tái)式電腦,,連接無線模塊和POS58系列微型打印機(jī),,對(duì)點(diǎn)餐終端發(fā)送過來的數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)打印小票的功能,。
點(diǎn)餐系統(tǒng)的整體結(jié)構(gòu)如圖1所示,。
2 硬件電路的設(shè)計(jì)
2.1 無線通信模塊
CC2430是TI公司推出的用來實(shí)現(xiàn)ZigBee應(yīng)用的系統(tǒng)級(jí)芯片。CC2430內(nèi)部已集成2.4 GHz的射頻核心和8051控制器,,外接簡(jiǎn)單的電路便可實(shí)現(xiàn)信號(hào)的收發(fā)功能,。這種解決方案能夠有效提高性能并滿足以ZigBee為基礎(chǔ)的2.4 GHz ISM波段應(yīng)用,及對(duì)低成本,,低功耗的要求,。
圖2為CC2430外圍電路設(shè)計(jì)。
當(dāng)芯片正常工作時(shí),,電容C1,,C2連接32 MHz晶振組成高頻晶振電路,用于發(fā)送數(shù)據(jù),。偏置電阻R1用于為32 MHz晶體振蕩器設(shè)置精密偏置電流,。芯片休眠時(shí),電容C3,,C4連接32.768kHz的晶振組成低頻晶振電路,降低功耗,。電容C5用于去除雜波干擾,,防止單片機(jī)錯(cuò)誤復(fù)位。C5,,C7,,C8是濾波電容,去除雜波干擾使電壓更穩(wěn)定,。C10,,C11,C12,,C13,,C14為去耦合電容,用來電源濾波,,提高芯片工作的穩(wěn)定性,。電路中電容C9,電感L1,,L2,,L3以及一個(gè)PCB微波傳輸線組成非平衡變壓器,,整個(gè)結(jié)構(gòu)滿足RF輸入/輸出匹配電阻的要求。
2.2 服務(wù)臺(tái)終端
服務(wù)臺(tái)終端選用帶有串口/并口的PC機(jī),。PC機(jī)與無線模塊通過串口連接,,和微型打印機(jī)通過并口連接。如圖3所示,,ZigBee無線模塊和PC機(jī)通過串口(TXD和RXD)進(jìn)行通信,,直接向串口讀寫即可。PC機(jī)向微型打印機(jī)的8位數(shù)據(jù)信號(hào)線DATA0~7發(fā)送數(shù)據(jù),,數(shù)據(jù)選通輸入信號(hào)STB低電平有效,,DATA0~7的數(shù)據(jù)只有在有效的STB信號(hào)作用下才能被鎖入打印機(jī)內(nèi)部鎖存器中。打印機(jī)狀態(tài)信號(hào)BUSY高電平有效,,表示打印機(jī)正在打印數(shù)據(jù),。
3 網(wǎng)絡(luò)節(jié)點(diǎn)軟件的設(shè)計(jì)
3.1 網(wǎng)絡(luò)節(jié)點(diǎn)程序
ZigBee網(wǎng)絡(luò)支持三種網(wǎng)絡(luò)結(jié)構(gòu),即星狀,、樹狀和網(wǎng)狀,。節(jié)點(diǎn)設(shè)計(jì)基于通用性及便于開發(fā)的考慮,移植了TI公司的Z-Stack協(xié)議棧,,其主要特點(diǎn)就是兼容性,,支持IEEE 802.15.4標(biāo)準(zhǔn)的CC2430片上系統(tǒng)解決方案。ZigBee網(wǎng)絡(luò)中有三種設(shè)備,,分別是協(xié)調(diào)器,、路由器及終端設(shè)備。協(xié)調(diào)器負(fù)責(zé)啟動(dòng)一個(gè)網(wǎng)絡(luò),,在一個(gè)ZigBee網(wǎng)絡(luò)中有且只有一個(gè)協(xié)調(diào)器設(shè)備,。本系統(tǒng)選用了一個(gè)協(xié)調(diào)器和多個(gè)終端設(shè)備,對(duì)協(xié)議棧進(jìn)行了相應(yīng)的修改和增減以適應(yīng)硬件電路的實(shí)際需求,,組成簡(jiǎn)單的星形網(wǎng)絡(luò),。
Z-Stack是基于操作系統(tǒng)的思想來構(gòu)建的,采用事件輪循機(jī)制,,整個(gè)協(xié)議棧用C語言編寫,。當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,,當(dāng)事件發(fā)生時(shí),,喚醒系統(tǒng),開始進(jìn)入中斷處理事件,,結(jié)束后繼續(xù)進(jìn)入低功耗模式,。如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級(jí),逐次處理事件,。這種軟件構(gòu)架可以極大地降級(jí)系統(tǒng)的功耗,。整個(gè)Z-Stack的主要工作流程,大致分為系統(tǒng)啟動(dòng),、驅(qū)動(dòng)初始化,、OSAL初始化與啟動(dòng)和進(jìn)入任務(wù)輪循幾個(gè)階段。
系統(tǒng)流程如圖4所示,。
當(dāng)硬件初始化完成后,,打開中斷,執(zhí)行osal_star_system()函數(shù)開始運(yùn)行OSAL系統(tǒng),。該任務(wù)調(diào)度函數(shù)按照優(yōu)先級(jí)檢測(cè)各個(gè)任務(wù)是否就緒,。如果存在就緒的任務(wù)則調(diào)用tasksArr()中相對(duì)應(yīng)的任務(wù)處理函數(shù)去處理該事件,直到執(zhí)行完所有就緒的任務(wù),。如果任務(wù)列表中沒有就緒的任務(wù),,則可以使處理器進(jìn)入睡眠狀態(tài)實(shí)現(xiàn)低功耗。OSAL任務(wù)調(diào)度流程如圖5所示,。
ZigBee網(wǎng)絡(luò)的形成是通過ZDApp_Init這個(gè)任務(wù)實(shí)現(xiàn)的,。zDApp_Init任務(wù)中調(diào)用了函數(shù)ZDAPP_Net-workInit,如果是協(xié)調(diào)器就建立網(wǎng)絡(luò),,確定PANID與頻道選擇,,打開全局中斷之后進(jìn)入監(jiān)聽狀態(tài),監(jiān)測(cè)網(wǎng)絡(luò)中有無ZigBee信號(hào),,如果有節(jié)點(diǎn)申請(qǐng)加入網(wǎng)絡(luò),,協(xié)調(diào)器給節(jié)點(diǎn)分配網(wǎng)絡(luò)地址。對(duì)于終端設(shè)備,,完成初始化之后,,發(fā)送申請(qǐng)加入網(wǎng)絡(luò)信號(hào),等待協(xié)調(diào)器響應(yīng),。成功加入網(wǎng)絡(luò)后,進(jìn)入休眠狀態(tài)等待喚醒,。網(wǎng)絡(luò)啟動(dòng)程序流程如圖6所示,。
3.2 服務(wù)臺(tái)終端程序
服務(wù)臺(tái)程序主要是用來處理接收到的數(shù)據(jù)包,對(duì)數(shù)據(jù)進(jìn)行解碼,、數(shù)據(jù)庫存儲(chǔ)及打印,。如圖7所示,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)包含有以下內(nèi)容:起始幀,,和結(jié)束幀均屬于標(biāo)準(zhǔn)8位字節(jié),,設(shè)置為0X00;餐桌號(hào),,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)不同的桌號(hào),,0X01表示1號(hào)桌,,在點(diǎn)餐終端里設(shè)置;數(shù)據(jù)長(zhǎng)度,,表示這個(gè)數(shù)據(jù)包里所點(diǎn)菜的總數(shù)目,;數(shù)據(jù)幀,真正的菜單信息,,每一位表示一種菜的名稱和數(shù)量,,例如數(shù)據(jù)0X42,即“01000010”,,低三位表示數(shù)量,,高五位表示菜的代碼,可以定義32種菜,;結(jié)束幀,,標(biāo)志信息結(jié)束。
3.3 點(diǎn)餐界面的設(shè)計(jì)
點(diǎn)餐終端選用帶有觸屏的ARM9開發(fā)板,,內(nèi)置Windows CE 6.0操作系統(tǒng),,用.NET編寫的用戶界面程序主要實(shí)現(xiàn)如下功能:
(1)菜單查詢,通過觸摸屏進(jìn)行菜單的瀏覽查詢,,查詢出的菜品可以顯示出菜的名稱,、單價(jià)和圖片。
(2)點(diǎn)菜,,實(shí)現(xiàn)加菜,、減菜、選擇數(shù)量等功能,。
(3)服務(wù)呼叫,,對(duì)臨時(shí)需要服務(wù)員過來的情況,提供呼叫服務(wù)功能,。
(4)廣告播放,,觸摸屏在無觸摸的情況,利用空余時(shí)間會(huì)循環(huán)播放廣告,。
4 調(diào)試結(jié)果
系統(tǒng)選用了3個(gè)點(diǎn)餐終端分別對(duì)應(yīng)3個(gè)餐桌,,1個(gè)服務(wù)臺(tái)終端,組成星形網(wǎng)絡(luò),。如圖8所示,,通過點(diǎn)餐界面,選中了三種菜,,確定發(fā)送后,,在圖9所示的服務(wù)臺(tái)界面中,成功收到數(shù)據(jù),并且準(zhǔn)確的解碼,,存儲(chǔ)在對(duì)應(yīng)的數(shù)據(jù)庫表中,。
若點(diǎn)餐終端的呼叫按鍵被按下,服務(wù)臺(tái)終端的呼叫按鍵會(huì)閃爍5 s,。
由于ZigBee網(wǎng)絡(luò)采用了CSMA/CA機(jī)制,,帶有沖突避免的載波偵聽多路訪問,確保多點(diǎn)發(fā)送時(shí),,利用ACK信號(hào)盡量避免發(fā)生數(shù)據(jù)沖突,,使系統(tǒng)更加穩(wěn)定可靠。
5 結(jié)語
本文提出了基于ZigBee技術(shù)的無線點(diǎn)餐系統(tǒng)的設(shè)計(jì)方案,。研究表明,,該系統(tǒng)能有效地進(jìn)行無線網(wǎng)絡(luò)組建,在室內(nèi)環(huán)境下實(shí)現(xiàn)了數(shù)據(jù)的可靠傳輸,。隨著科技的進(jìn)步和網(wǎng)絡(luò)設(shè)備成本的降低,,ZigBee技術(shù)在現(xiàn)代餐飲業(yè),乃至更多的行業(yè)中的應(yīng)用將產(chǎn)生重大的經(jīng)濟(jì)效益,。