基于ZigBee技術(shù)的無線點(diǎn)餐系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
當(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ù)庫(kù)存儲(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ù)庫(kù)表中。
若點(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ì)效益。