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