基于PIC32的無線自助點菜系統的實現,包含原理圖及電路圖
0.設計摘要
當今社會是信息爆炸的時代,但在絕大多數餐飲行業企業中,通常都還在使用傳統的點菜方式,即客人走進餐廳或者酒吧等場所,服務員就拿著菜單迎上來詢問客人要求客人點菜。這種傳統的點菜方式給顧客帶來了很多的不便,并且需要數量眾多的服務員,更給企業的發展帶來了很大的障礙。智能化設備的引進將有效的減少員工數量并提高員工工作效率,從而在減少企業人力成本的同時提升服務質量,為企業的發展提供強勁的競爭力。
目前餐飲業中顧客對于餐廳的投訴或不滿,大部分是由于上菜速度太慢或服務人員對于顧客的要求反應不及時。只有操作簡便、服務及時的點菜方式,才能讓顧客滿意,否則即使菜肴、飲品質量再好,也會使餐廳服務大打折扣。
本設計目的是為餐飲服務業提供一款基于PIC32的自助點菜系統——一種不需要服務員的點菜系統;除此之外,本系統還為顧客提供催菜、緩菜、查看賬單和呼叫服務員等服務。該點菜系統一方面能減輕服務員的任務,減少服務員的人數,為商家降低人力成本;另一方面也能為顧客提供更全面和及時的服務,提高顧客消費的便利性、舒適性。
1.系統原理
本系統整合PIC和ZigBee無線通信技術,實現功能齊全方便易用的自助點菜系統。整個系統包括安裝在客人餐桌上的終端和餐廳前臺的上位機,其中終端主要是由PIC單片機和ZigBee的收發模塊組成,而上位機又與其它的ZigBee的收發模塊相連接,基本的系統結構框圖如圖1所示??腿丝梢允褂冒惭b在餐桌上的終端,通過按鍵等輸入設備完成點菜、緩菜、查看賬單和呼叫服務員等服務??腿舜_認所點的菜肴的時候按下確認鍵,這時候終端系統就會將客人的菜單通過ZigBee無線系統發送到收發模塊,收發模塊再將客人所點的菜單通過串口發送到廚房和前臺的上位機。
本系統所使用的Digilent Cerebot™ 32MX4開發板是一個功能強大的微控制器開發板,可以連接點菜系統中需要用到外圍Digilent Pmod模塊。本課題采用的是TI公司的嵌入式射頻芯片CC2430構建無線局域網絡,實現點菜終端和上位機的通信。通常,可以把安裝在終端上的無線收發器稱之為子節點,與上位機相連的收發器叫做中心節點。
圖1 點菜系統結構框圖
1.1 ZigBee技術
ZigBee技術在近年來得到了快速的發展。zigBee工作于868MHz、915MHz、2.4GHz這三個頻段,傳輸速率20-250kbps,傳輸距離為10-100m。由于其低速率、低功耗、低成本、近距離的特點,使得ZigBee技術可以很好的用于本課題設計的無線點菜系統。
ZigBee協議棧符合OSI體系結構,共分4層。下面兩層,物理層PHY和媒介訪問控制層MAC是由IEEE802.15.4標準定義的。ZigBee規范在此基礎之上構建了網絡層NWK、應用層APL以及安全服務SSP。ZigBee規范根據設備所處的角色定義了三種邏輯設備類型:ZigBee協調器(ZigBee Coordinator)、ZigBee路由器(ZigBee Router)和ZigBee終端設備(ZigBee End Device)。
1.2終端點菜流程
終端軟件的點菜流程如圖2所示。上電初始化后,終端上的LCD進入點菜界面,顧客可以根據菜品分類(特色菜品、冷菜類、熱炒類、湯羹類、特色小吃、飲料等)瀏覽菜單,也可以瀏覽當天的推薦菜品,菜單上顯示菜品的價格和文字介紹等信息。同時,獲知已點菜品的狀態(未制作、烹制中、等待上菜、已經上菜),還可隨時查看自己的賬單明細。而飯店可根據當日實際情況更改菜品的狀態(可點或不可點)和價格。
此外,在整個用餐過程中,可隨時催菜、緩菜、退菜、加菜等操作,并查看菜的制作狀態和賬單明細,其中顧客的所有操作都是通過安裝在終端上的按鍵來完成。最后,通過前臺打印賬單進行結賬服務。整個過程方便快捷、操作簡單。
圖2 終端點菜流程圖
1.3無線點菜終端
終端設計中充分利用了PIC的片內資源,程序可以存儲在片內的Flash中,并且片內RAM可以用來存儲數據,這樣就大大簡化了系統設計難度,節約了成本。更重要的是,在PIC周圍可以方便的連接上設計所需的外圍器件,主要有以下幾個部分:
1) UART接口用于與移植到CC2430的ZigBee通信模塊進行連接;
2)16x2字符LCD模塊作為終端的輸出設備,輸入外設為一個2x2的按鍵開關,這些為用戶提供便捷的人機交互界面、良好的操作環境,利于調試;
3)SD卡模塊可與PIC32的SPI接口或者GPIO相連接,它用來存儲大容量的餐廳的菜品信息和顧客的點菜信息;
4)外接專用的調試電路,可以通過USB接口方便的下載程序和片上調試;
5)PIC32內建USB 2.0 On-The-Go物理層,可以直接與USB Host和USB OTG接口相連,這兩個接口可以用作將來的外設擴展。
其中LCD模塊采用使用一個Samsung KS0066 CD控制器的Sunlike LCD板, 而無線通信模塊則是基于CC2430搭建的ZigBee局域網絡,這些模塊正好利用Cerebot 32MX4開發板的PMOD擴展接口進行搭建,做到了資源的充分利用。整個無線點菜終端的硬件結構圖如圖3所示:
圖3 終端硬件結構
1.4前臺系統
前臺系統由三部分構成:上位機Visual C界面、無線通信中心節點板以及打印機。上位機(PC端)用MFC搭建人機交互界面,用于各個桌號菜單賬目統計,并控制打印機打印賬單。Visual C通過串口控件與中心節點板連接,保持與多個終端的通信。CC2430中心節點板的串口模塊可直接將接收到的數據傳到上位機,并將反饋數據傳回各個終端。點菜結束后,顧客可從打印機中得到消費賬單,快捷方便。
2.技術特點
1)靈活高效的PIC32解決方案
PIC32作為一款高性能32位單片機,它是以MIPS32架構為基礎設計的,具有高頻、小芯片尺寸和超低功耗的特點。本課題以PIC32MX460為核心部件,完成并實現了ZigBee無線點菜系統的設計,在終端中,采用PIC32來控制發射信號的種類和對信號編碼的控制。采用PIC32解決方案,方便靈活的擴展系統,滿足復雜的外設要求。
2)最具性價比的ZigBee技術
一般而言,隨著通信距離的增大,設備的復雜性、功耗以及系統成本都在增加。相對于現有的各種無線通信技術,ZigBee技術是最低功耗和成本的技術。ZigBee技術也存在著自身的缺點,該技術的數據速率比較低和通信范圍較小。但由于本系統所承載數據流量較小,所以ZigBee就非常適合,具有最佳的性價比。
3)Cerebot 32MX4豐富的外設接口
本課題所使用的Digilent Cerebot™ 32MX4開發板是一個功能強大的微控制器開發板,它擁有九個Digilent Pmod™外圍模塊連接器。本課題需要用到的Digilent Pmod模塊有按鍵開關、字符LCD、以及SD卡插槽,開發板還可以用來連接H-bridge驅動、模數和數模轉換器、蜂鳴器、滑動開關、LED指示燈等,其提供了豐富的外設資源。
3.軟件流程介紹
3.1無線網絡軟件設計
系統中通過簡單的無線星型網絡實現了前臺的PC機和PIC32點菜節點的雙向通信。無線網絡系統初始化時將各節點的通信頻率固定在2.48G頻點上,通過中心節點輪詢各子節點的方式時分復用實現組網及雙向通信。
中心節點和子節點的CC2430均通過中斷接收串口數據與無線傳輸的數據。如果PC機通過串口向中心節點發送數據,則中心節點首先解析數據包(33個字節,首字節為地址,其余為數據),并根據地址設置相應的節點標志位。當中心節點對子節點進行詢問時首先查詢該節點的標志位,若沒有數據傳輸則將發送數據報首位設置為DATA_REQ(0x0F),表明該數據報沒有數據內容;若有數據傳輸則將發送數據報首位設置為DATA_TRANS(0xF0),表明該數據報有數據內容。傳輸結束后中心節點進入接收狀態,接收子節點回傳的數據報。接收到的數據報首位為ACK_NO_DATA(0x30)表明數據報中沒有數據內容,中心節點不作處理;若數據報首位為ACK_WITH_DATA(0x33),則將子節點號和數據內容通過串口傳給PC機,接開始新的詢問操作。若中心節點沒有收到相應的回傳數據報,則中心節點會重復詢問子節點,重復詢問最高次數為3次。中心節點通過對子節點地址進行計數實現對各個子節點的輪詢。
子節點的無線模塊一般處于接收狀態,當接收到數據報時首先解析數據報的目的地址字節,若目的地址和自身地址不匹配則不作處理;若目的地址和自身地址匹配則對接收到的數據報進行解析,若包頭為DATA_TRANS(0xF0)則將數據內容傳給終端的PIC32系統,接著查詢串口標志位(子節點串口中斷接收程序在接受到PIC32發送的數據后設置串口標志位),若有數據發送則將數據報首位置為ACK_WITH_DATA(0x33),并將其和數據內容一起回傳給中心節點;若沒有數據發送則首位標志置為ACK_NO_DATA(0x30)。
3.2前臺人機交互界面設計
點菜系統的前臺需要構建操作友好的人機交互界面,考慮到CC2430中心節點板的串口模塊可直接將接收到的數據與上位機通信,選用VC搭建該界面。VC提供了MSComm(microsoft communications control)控件,通過串行口進行數據傳輸和接收,為應用程序提供串行通信功能。MSComm控件通信功能的實現實際上是調用了API函數,而API函數是由Comm.drv解釋并傳遞給設備驅動程序進行的,即MSComm控件的屬性提供了通信接口的參數設置,能實現串行通信。
終端與前臺通信遵循一定的協議格式,頭一個字節是節點號(即就餐桌號),緊接著兩個字節是傳輸命令,最后才是所傳輸的內容。終端傳到前臺的命令共有5類:傳送菜單(MENU_CMD)、催菜(HUSH_CMD)、加菜(ADD_CMD)、菜單狀態(STATE_CMD)和結賬(CHECK_CMD);前臺傳回的命令有兩類:操作成功(OK_CMD)和操作失?。∟O_CMD)。
評論