譚成宇,代少升,謝小芳
(重慶郵電大學信號與信息處理重慶市重點實驗室,重慶 400065)
責任編輯:時 雯
傳統(tǒng)的點菜方式需要服務員周旋于餐桌、廚房和收銀臺之間,這種點菜方式技術(shù)水平落后、信息化程度低、服務員工作量大。由于傳統(tǒng)的點菜方式存在上述缺點,智能化點菜系統(tǒng)應運而生。在一般的智能化點菜系統(tǒng)中,服務員需手持一臺點菜器為顧客點菜,點菜后數(shù)據(jù)直接發(fā)送到廚房,進行菜品制作,這種智能點菜系統(tǒng)終端界面友好、信息化程度高,但存在成本較高、功能單一,仍需服務員參與,且無法實現(xiàn)多個餐桌同時點菜等問題[1]。本文針對現(xiàn)有點菜系統(tǒng)的缺點創(chuàng)新性地提出一種基于RFID技術(shù)的無線點菜系統(tǒng)方案[2]。該系統(tǒng)中點菜器終端實現(xiàn)了RFID系統(tǒng)中的標簽功能并繼承其結(jié)構(gòu)簡單、成本低的特點;作為第二終端的讀菜器實現(xiàn)了RFID系統(tǒng)中的讀卡器功能,并且智能化程度高;而廚房通過上位機實現(xiàn)對所點菜品信息的分頁顯示。這套點菜系統(tǒng)可以實現(xiàn)無需服務員自行點菜的功能,真正做到智能點菜。
系統(tǒng)主要由點菜器、讀菜器以及上位機組成。假設每個餐桌上放置一個具有顯示功能的點菜器;每個點菜器自身帶有一個和餐桌號相同的固定ID號;顧客可以通過輸入菜名所對應的編號實現(xiàn)點菜、加菜、退菜的功能;不同廚師負責不同的菜品制作。點菜信息可以通過射頻模塊傳送至讀菜器,讀菜器將收到的數(shù)據(jù)解析、分類排序,然后將處理后的數(shù)據(jù)通過網(wǎng)口傳送至上位機,上位機實現(xiàn)的數(shù)據(jù)顯示、刪除和上傳數(shù)據(jù)庫。該系統(tǒng)架構(gòu)如圖l所示。

圖1 系統(tǒng)架構(gòu)圖
系統(tǒng)工作流程:顧客進店就座,根據(jù)餐桌上的菜譜選菜,將菜名對應的編號輸入點菜器中,點菜完成,點菜器將顯示所點菜品清單及總價格。顧客確認后,按發(fā)送鍵,點菜器將自身ID號和點菜信息一同發(fā)送至讀菜器,點菜器進入接收狀態(tài)。讀菜器收到信息后,向處于接收狀態(tài)的點菜器發(fā)送點菜成功信息和預計的顧客等待時間信息。如果點菜時發(fā)生數(shù)據(jù)碰撞,讀菜器向處于接收狀態(tài)的點菜器發(fā)送點菜失敗信息,點菜器自動重新發(fā)送點菜信息。點菜成功后,廚師通過廚房上位機所顯示的菜品順序制作,每完成一道菜品,廚師刪除菜品對應的信息,刪除的同時信息被寫入數(shù)據(jù)庫備用,最后收銀臺可通過讀取數(shù)據(jù)庫信息進行結(jié)賬。系統(tǒng)工作流程如圖2所示。

圖2 系統(tǒng)工作流程
點菜器主要由MCU微處理器、電源模塊、鍵盤、LCD以及射頻收發(fā)模塊組成[3]。點菜器硬件結(jié)構(gòu)如圖3所示。

圖3 點菜器結(jié)構(gòu)圖
其中,射頻模塊芯片采用TI公司生產(chǎn)的CC2500芯片,它是一款超低功耗、低成本的無線收發(fā)芯片,支持多種調(diào)制方式,包括FSK,GFSK,OOK和MSK,數(shù)據(jù)傳輸速率最高可達500 kbit/s,傳輸距離為100 m。微處理器選擇STC10L16XE單片機,STC10L16XE可提供以下功能:16 kbyte Flash存儲器;40個I/O引腳;2個16位可編程定時器/計數(shù)器;5路外部中斷口;1個全雙工UART口;工作電壓為1.8~3.6 V,滿足本系統(tǒng)低功耗、低成本、高速通信的設計要求。本系統(tǒng)采用4個獨立按鍵,分別為確認鍵、撤銷鍵、+/向上鍵、-/向下鍵,通過查詢方式掃描按鍵,軟件設計實現(xiàn)按鍵的復用功能。LCD選用LCM12832ZK液晶顯示模塊,具有串行接口、內(nèi)部含有中文字庫的圖形點陣液晶顯示模塊,可顯示2行×8個漢字。
系統(tǒng)中讀菜器主要由核心處理器、SDRAM、Flash和CC2500射頻模塊共同組成,其中核心處理器選用S3C6410芯片[4],SDRAM 用于系統(tǒng)內(nèi)存,F(xiàn)lash為整個系統(tǒng)的存儲設備。讀菜器將CC2500射頻模塊嵌入系統(tǒng)中,并基于WinCE操作系統(tǒng)[5],通過設計SPI接口的驅(qū)動程序及上層應用程序,使讀菜器與點菜器之間進行無線通信。讀菜器架構(gòu)如圖4所示。

圖4 讀菜器結(jié)構(gòu)圖
點菜系統(tǒng)的軟件設計包括點菜器的軟件設計、讀菜器的軟件設計、上位機的軟件設計等。
點菜器發(fā)送數(shù)據(jù)格式如圖5所示。

圖5 點菜器傳輸數(shù)據(jù)格式
前導碼、同步詞匯與CRC校驗在發(fā)送數(shù)據(jù)時是由CC2500硬件自動添加,在接收時由硬件自動去除,不需軟件設定。CC2500工作在可變長度通信模式下,需要8位的長度字節(jié)給出發(fā)送數(shù)據(jù)的長度信息。
功能選擇位供顧客選擇點菜、加菜或退菜等功能,數(shù)據(jù)位提供詳細點菜信息,包括菜品類型,桌號,菜品編號,點菜數(shù)量等詳細信息。
讀菜器軟件包括數(shù)據(jù)接收、數(shù)據(jù)處理、有線網(wǎng)絡傳輸、設備驅(qū)動模塊等4個部分[6],如圖6所示。

圖6 讀菜器軟件設計
其中數(shù)據(jù)接受主要通過CC2500射頻模塊接收點菜器發(fā)送的點菜信息,以及向點菜器反饋菜品制作信息,如點菜成功、失敗、顧客等待時間、所點菜品排序等信息。數(shù)據(jù)處理部分為讀菜器軟件的設計核心,主要實現(xiàn)分頁顯示點菜信息、防碰撞算法的設計、計算顧客等待時間等功能。有線網(wǎng)絡傳輸指讀菜器與上位機間通過網(wǎng)口傳輸數(shù)據(jù)。設備的驅(qū)動主要包括SPI驅(qū)動、串口驅(qū)動、網(wǎng)口驅(qū)動等。
3.2.1 設備驅(qū)動模塊
設備驅(qū)動程序是操作系統(tǒng)內(nèi)核和機器硬件之間的接口,為應用程序屏蔽了硬件的細節(jié)。
本次所開發(fā)的系統(tǒng)包含的驅(qū)動主要有SPI驅(qū)動、串口驅(qū)動和網(wǎng)口驅(qū)動等。SPI驅(qū)動包括以S3C6410處理器作為主設備,CC2500模塊為從設備的兩種驅(qū)動方式,SPI操作主要完成對寄存器的讀、寫操作,對CC2500芯片的寄存器進行配置,實現(xiàn)讀菜器與標簽的無線通信。
3.2.2 數(shù)據(jù)處理模塊
1)分頁顯示
假設一個較正規(guī)的餐廳,有幾個甚至十幾個廚師,每個廚師分別負責幾種菜品的制作。廚房上位機顯示所點菜品的信息,本系統(tǒng)設計界面按不同廚師分類,每個廚師對應自己的一欄點菜信息,這樣廚師可以清楚地看到自己的做菜順序。假設顧客所點菜品如圖7所示,經(jīng)過整理后廚師所看到的界面如圖8所示。
圖8這種菜單顯示方式方便廚師直觀準確地看出自己將要做的菜品,在節(jié)省時間的同時能夠有效地避免錯炒、漏炒等現(xiàn)象的發(fā)生。
2)顧客等待時間計算


根據(jù)平時炒菜經(jīng)驗,可總結(jié)出廚師做每道菜的平均時間,得出一張菜品與時間的映射表。由于篇幅有限現(xiàn)只給出表的格式,如表1所示。

表1 菜品與時間的映射表
這樣可以模糊的計算出顧客需等待菜品的時間。計算方法的舉例說明如下。
現(xiàn)以魚頭泡餅為例計算顧客需等待的時間:魚頭泡餅為廖廚師第3個菜品,通過查表1可得這3道菜所用時間分別為7 min,6 min,6 min,簡單相加可得第3個菜品等待時間為19 min。
由于簡單相加,計算出的等待時間比實際時間長,計算結(jié)果不準確。在實際情況下,每個廚師負責不同類型的菜品,且不同類型的菜品之間可不受影響的同時制作,如“煮菜”的制作并不影響“炒菜”的制作,更不會影響“涼菜”的制作,只需適當?shù)目紤]同時做菜時中間的時間損耗即可,現(xiàn)有3種類型的菜品(炒菜、煮菜和涼菜),為了簡化,假設每兩種不同菜品間的損耗為1 min,基于上述考慮,提出如下計算方法:
本例中的魚頭泡餅為燉菜,前兩個菜的類型分別為涼菜和炒菜,由于有3種類型菜品,所以損耗時間定為2 min,可得魚頭泡餅制作完成時間約為6 min+2 min=8 min,方法經(jīng)過長時間實驗證明比較符合實際情況。
將計算出的等待時間發(fā)送給顧客,這樣顧客可以更加直觀地得知自己所要等待的時間,而不會因為一次意外過長的等待而抱怨。
3)防碰撞算法的設計
當不同的餐桌同時點菜并發(fā)送點菜信息給上位機,有可能發(fā)生點菜信息碰撞的情況,本系統(tǒng)采取點菜不成功則根據(jù)一定的間隔時間重發(fā)的簡單方法解決這個小概率事件。
在為每個餐桌設置餐桌編號的時候,為每個餐桌設置不同的優(yōu)先級,例如,現(xiàn)有40個餐桌,編號為1~40,按編號為每個餐桌設置優(yōu)先級,編號為1的餐桌優(yōu)先級為1,依次類推,編號為40的餐桌優(yōu)先級為40,數(shù)據(jù)重新發(fā)送的間隔時間=優(yōu)先級×T,T>數(shù)據(jù)發(fā)送時間,這樣就保證不會再次發(fā)生碰撞,由于數(shù)據(jù)的傳輸時間為毫秒級,所以這個優(yōu)先級不會對顧客有任何影響。
正常情況下點菜器在發(fā)送餐桌號、菜品名稱、菜品數(shù)量等信息至上位機后,進入監(jiān)聽模式(點菜器只有進入監(jiān)聽模式才能接受到上位機發(fā)送的信息),上位機接收到信息后發(fā)送點菜成功信息,當點菜機接收到“成功點菜”的信息,則點菜過程完成?,F(xiàn)假設1號餐桌和3號餐桌同時發(fā)送點菜信息,上位機接收到亂碼后得知發(fā)生碰撞,由于上位機并不知道具體哪些餐桌發(fā)生了碰撞,所以以廣播的形式發(fā)送碰撞信號,這時發(fā)生碰撞的兩個餐桌(1號和3號)接收到碰撞信息后,得知自己發(fā)送的點菜信息發(fā)生碰撞,將做如下處理:根據(jù)自己的餐桌優(yōu)先級延時相應的時間再次發(fā)送點菜信息,假設1號餐桌延時5 ms,3號餐桌延時15 ms再重新發(fā)送信息,從而確保不會再次發(fā)生碰撞,這種方法同樣可以解決多個餐桌發(fā)送的碰撞問題。
上位機界面[7]如圖9所示,包括端口配置、開臺信息、點菜信息、點菜清單、員工信息、員工清單等界面,其中端口配置界面完成IP地址和通信端口的設置;開臺信息界面顯示所有餐桌當前的狀態(tài)是否為空閑,為顧客提供直觀的空位查詢服務;點菜信息界面顯示當前將要制作的菜品的詳細信息,包括菜品所屬餐桌號、菜品名稱、菜品類型、菜品單價、點菜時間等。點擊已完成將菜品存入數(shù)據(jù)庫用以結(jié)賬和存檔;點菜清單界面顯示數(shù)據(jù)庫中當天所完成的菜品信息;員工信息界面實現(xiàn)員工信息的管理,包括添加、刪除和查找員工信息等功能;員工清單界面詳細列出員工的各項信息方便老板對員工的管理。

圖9 上位機菜單界面(截圖)
系統(tǒng)采用由多個點菜器、單個讀菜器、以及上位機組成的系統(tǒng)結(jié)構(gòu)。點菜器ID號與餐桌編號對應,創(chuàng)新性的將RFID技術(shù)應用在了點菜系統(tǒng)中[8];針對系統(tǒng)特點提出了防碰撞算法和顧客等待時間估算算法;上位機提供開臺信息查詢功能,菜品的顯示、存儲功能,員工信息管理功能;這種結(jié)構(gòu)下,點菜器成本低,操作簡單,無需服務員顧客可自行點菜。復雜的算法和數(shù)據(jù)處理被屏蔽在讀菜器中,系統(tǒng)擴展性強,非常適合大中型餐飲業(yè)的使用。
[1]王景景.無線點菜系統(tǒng)的設計與實現(xiàn)[J].海南大學學報:自然科學版,2009,27(1):65-72.
[2]涂亮,段紅光.基于433無線收發(fā)模塊的物聯(lián)網(wǎng)智能家居系統(tǒng)設計[J]. 電視技術(shù),2012,36(6):44-46.
[3]程繼興.一種單片機控制的點菜系統(tǒng)[J].電子工程師,2004,30(4):76-77.
[4]馮少奇,丁春峰.基于S3C6410的MPEG-4視頻壓縮濾波器的設計研究[J]. 電視技術(shù),2012,36(7):42-45.
[5]張毅,王海濤.基于S3C2410A的WinCE 5.0下觸摸屏驅(qū)動的實現(xiàn)[J].重慶郵電大學學報:自然科學版,2008,20(6):742-745.
[6]錢麗.基于ARM的嵌入式無線點菜[D].武漢:武漢科技大學計算及應用技術(shù),2005.
[7]劉炳文.精通Visual Basic 6.0中文版[M].北京:電子工業(yè)出版社,1999.
[8]鄔賀銓.物聯(lián)網(wǎng)的應用與挑戰(zhàn)綜述[J].重慶郵電大學學報:自然科學版,2010,22(5):526-531.