摘 要: 為使無線點(diǎn)菜群體普及化,以微控制器STC89C52為核心控制數(shù)據(jù)的發(fā)送和接收、時(shí)間實(shí)時(shí)顯示、語音提醒,系統(tǒng)采用無線通信芯片IA4421,上位機(jī)界面通過Visual Basic來實(shí)現(xiàn)。系統(tǒng)具有低成本、易操作、低誤碼率的特點(diǎn),通過對系統(tǒng)進(jìn)行功能調(diào)試與性能分析,該系統(tǒng)在中低檔餐廳中具有較高的應(yīng)用價(jià)值。
關(guān)鍵詞: 無線點(diǎn)菜;STC89C52;IA4421;VB界面設(shè)計(jì);多功能
目前無線餐飲點(diǎn)餐設(shè)備經(jīng)歷三個階段:紅外點(diǎn)菜方式、IC卡(包括接觸式,非接觸式)點(diǎn)菜方式以及無線射頻點(diǎn)菜方式。紅外點(diǎn)餐器在數(shù)據(jù)發(fā)送時(shí),對方向性要求苛刻,發(fā)送點(diǎn)菜數(shù)據(jù)流的速度也很慢;IC卡點(diǎn)餐器點(diǎn)菜過程繁瑣,數(shù)據(jù)發(fā)送不能隨時(shí)隨地,效率低。因此紅外和IC卡點(diǎn)菜方式作為無線餐飲終端設(shè)備已經(jīng)被新技術(shù)淘汰,已研制出了射頻無線點(diǎn)餐方案。這類點(diǎn)菜終端主要有“無線基站+點(diǎn)餐機(jī)”和“PDA+無線網(wǎng)卡”兩種模式。PDA小巧易用、便于操作、產(chǎn)品外形美觀大方、功能齊全、設(shè)計(jì)考究,但是使用PDA作為點(diǎn)餐機(jī)是牽強(qiáng)的,因?yàn)槠涫褂脤ο笫亲罡邔拥牟惋嬈髽I(yè),不是針對群體,沒有普遍性,作為工業(yè)級產(chǎn)品,并不合適。
本文基于STC89C52的無線點(diǎn)菜系統(tǒng)手持終端價(jià)格便宜,一臺手持終端的價(jià)格約在50~70元,且無線模塊的功耗和誤碼率都低、VB界面清晰易讀,整個系統(tǒng)性價(jià)比高。
1 系統(tǒng)硬件電路設(shè)計(jì)
系統(tǒng)電路設(shè)計(jì)主要是指多功能點(diǎn)菜終端的設(shè)計(jì),本設(shè)計(jì)通過矩陣鍵盤輸入菜名編號,在12864液晶上顯示出菜名、價(jià)格、編號等信息,并且存儲在AT24C02存儲器里,以方便客戶查看所點(diǎn)菜單。無線通信模塊(上位機(jī)端)IA4421以用來接收和發(fā)送數(shù)據(jù),保持與上位機(jī)的通信;DS12887芯片是一塊實(shí)時(shí)時(shí)鐘芯片,可以顯示年、月、日、星期、時(shí)、分、秒、屬年等信息;ISD4004具有人性化的語音功能和提醒客戶的重要信息,方便實(shí)用。這里重點(diǎn)介紹無線通信的電路設(shè)計(jì)以及其與MCU的接口電路,系統(tǒng)硬件框圖如圖1所示。
1.1無線收發(fā)模塊電路設(shè)計(jì)
無線通信芯片IA4421是一款低功耗、通用ISM頻段FSK收發(fā)器,工作在433 MHz頻率下,最高發(fā)射功率為10 mW,符合微功率短距離無線電技術(shù)要求[1]。IA4421具有抗干擾能力強(qiáng)和低誤碼率、傳輸距離遠(yuǎn)(可靠傳輸距離可達(dá)300~4 000 m)、透明的數(shù)據(jù)傳輸、多信道、高可靠性、體積小、重量輕、低成本等特點(diǎn)。模塊內(nèi)部集成了高頻功率放大器(PA)、低噪聲功率放大器(LNA)、I/Q轉(zhuǎn)換混頻器、基帶濾波器、功率放大器和I/Q解調(diào)器,集成了必需的射頻功能,其模塊外圍電路如圖2所示。
2.1 手持終端程序功能實(shí)現(xiàn)
點(diǎn)菜的信息分為10 B數(shù)據(jù),第一個字節(jié)數(shù)據(jù)為桌號,后9 B數(shù)據(jù)為菜名編號。每選一個菜,按下“選菜”按鈕后,會將菜名與價(jià)格信息顯示在液晶上,同時(shí)會將菜名編號寫入存儲器中,方便客戶查詢?yōu)g覽。選好菜后,按下“確定”按鈕,count=0,接收寄存器SBUF裝載第一個字節(jié)數(shù)據(jù),RI=1,進(jìn)入中斷服務(wù)函數(shù);RI=0,且按count++,接收下一個數(shù)據(jù),依次將10 B的數(shù)據(jù)都發(fā)送出去,如果要刪除所點(diǎn)菜,只需按下“Delete”按鈕,即可向相應(yīng)的存儲器位置寫入一個0,被上位機(jī)接收后,就可認(rèn)為此處為“空”。
2.2 上位機(jī)界面
上位機(jī)界面功能:
?。?)具備實(shí)時(shí)接收手持終端信息的功能,可以將顧客所點(diǎn)菜單實(shí)時(shí)接收到主機(jī);
?。?)具有保存菜單功能,可以隨時(shí)查看之前接收到的菜單;
?。?)桌面可滾動接收6組菜單,查看最近接收的6個菜單,且打印出菜單[4];
?。?)可以提示菜單當(dāng)前狀態(tài),狀態(tài)包括是否已經(jīng)上菜完畢、點(diǎn)菜時(shí)間及上菜完畢時(shí)間。
2.3 上位機(jī)界面功能實(shí)現(xiàn)
無線數(shù)據(jù)接收使用VB的系統(tǒng)控件MSCOMM,MSCOMM控件提供了兩種處理通信的方式:
?。?)事件驅(qū)動方式:當(dāng)通信事件發(fā)生時(shí),MSCOMM控件會觸發(fā)OnComm事件,調(diào)用者能夠捕獲該事件,通過檢查其CommEvent屬性便可確認(rèn)發(fā)生的是哪種事件或錯誤,從而進(jìn)行相應(yīng)的處理。這種方法的優(yōu)點(diǎn)是響應(yīng)及時(shí)、可靠性高。
?。?)查詢方式:在程式的每個關(guān)鍵功能之后,能夠通過檢查CommEvent屬性的值來查詢事件和錯誤。假如應(yīng)用程式較小,這種方法可能更可取。例如,寫一個簡單的電話撥號程式,則沒有必要每接收1個字符都產(chǎn)生事件,因?yàn)槲┮坏却邮盏淖址钦{(diào)制解調(diào)器的“確定”響應(yīng)。
在使用MSCOMM控件時(shí),1個MSCOMM控件只能也只有1個OnComm事件,只對應(yīng)著1個C 類即CMSComm,同時(shí)對應(yīng)1個串口。假如應(yīng)用程式需要訪問和控件多個串口,則必須使用多個MSCOMM控件。
MSCOMM控件有許多很重要的屬性,如表1所示。
本文從實(shí)際應(yīng)用出發(fā),設(shè)計(jì)出了一款低成本、多功能的無線點(diǎn)餐方案。由于通信模式采用的是FSK調(diào)制,故系統(tǒng)在頻率環(huán)境復(fù)雜的情況下,抗干擾能力強(qiáng)、通信距離遠(yuǎn)、誤碼率低、數(shù)據(jù)的準(zhǔn)確性高、出現(xiàn)數(shù)據(jù)混亂性的幾率小。在室內(nèi)情況下,測得的誤碼率P=10-5,通信距離可達(dá)35 m,而且可以穿透某些障礙物的干擾不丟失數(shù)據(jù)。系統(tǒng)有普遍意義,適合中低檔餐廳使用。
參考文獻(xiàn)
[1] 黃婷,施國梁.單片機(jī)無線通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2010(3):27-31.
[2] 沙占友.單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003:24-200.
[3] 馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(修訂版)[M].北京:北京航空航天大學(xué)出版社,2003:35-107.
[4] 段興.Visual Basic數(shù)據(jù)庫實(shí)用程序設(shè)計(jì)100例[M].北京:人民郵電出版社,2002:263.
[5] 劉天惠.Visual Basic程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2006:63-200.