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