摘 要: 隨著目前生活水平的日益提高,餐飲行業(yè)的傳統(tǒng)服務(wù)方式和管理模式已不能滿足人們的需求,針對這種現(xiàn)狀,設(shè)計了一種基于嵌入式操作系統(tǒng)和無線通信技術(shù)的雙觸摸屏無線自助點餐系統(tǒng)。系統(tǒng)以ARM Cortex-M3核的STM32F103VB微控制器結(jié)合?滋C/OS-Ⅲ操作系統(tǒng),由STR-18無線數(shù)傳模塊構(gòu)建組網(wǎng),具有位于兩側(cè)的方便就餐者點餐的雙觸摸屏,上位機由Visual Studio工具開發(fā),上下位機無線通信方便了顧客的菜單傳送到上位機和修改菜單,如此減少了服務(wù)人員、節(jié)約成本、提高了運作效率。
關(guān)鍵詞: ARM Cortex-M3;STM32F103;C/OSⅢ;雙觸摸屏;無線點餐;
人們生活水平的提高推動著餐飲行業(yè)的發(fā)展,但是很多企業(yè)依舊依靠傳統(tǒng)的人工服務(wù)、核算和查詢,對服務(wù)員的要求高;單據(jù)多、信息量大、出錯率高,服務(wù)員等候客人點菜耗時多[1],降低了效率。而已有的點餐器采用的是ARM9或ZigBee,成本都太高,而WiFi可靠性不強[2-3]。對此本文提出了雙觸摸屏、無人服務(wù)的無線智能點餐系統(tǒng),通過降低硬件加強軟件來減少成本。系統(tǒng)以STM32為硬件基礎(chǔ)結(jié)合?滋C/OS-Ⅲ嵌入式實時操作系統(tǒng)[4-5],利用STR-18模塊構(gòu)成組網(wǎng)[6]與PC(以Visual Studio作為開發(fā)工具[7]開發(fā)的前臺軟件)進行無線數(shù)據(jù)交換[8],實現(xiàn)無線點餐。該無線點餐系統(tǒng)融合了無線通信技術(shù)、計算機網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),數(shù)據(jù)無線實時傳輸、實時處理等。系統(tǒng)硬件配置價格低,減少了人員需求,從而降低了成本,并且提高了工作效率和服務(wù)質(zhì)量,優(yōu)化了業(yè)務(wù)流程。
1 系統(tǒng)總體架構(gòu)
系統(tǒng)主要由一臺PC主機和多個從機(點餐終端系統(tǒng))組成,以一個從機為例,其系統(tǒng)框圖如圖1所示。從機上連接2個顯示菜單信息的TFTLCD觸摸屏,當在一個屏上點菜時,另一個屏上會實時顯示點菜的信息。屏上有呼叫人工服務(wù)按鈕,便于文明呼叫人工服務(wù)。當點菜完畢,選擇“完成”即可將菜單發(fā)送到主機上。主機上有由Visual C#編寫的上位機軟件,主機和從機通過無線數(shù)傳模塊進行數(shù)據(jù)傳輸,主機連接打印機將菜單信息打印出來,用于廚師做菜和結(jié)賬。當餐廳需要修改菜單時,通過主機將新菜單通過串口發(fā)送給從機進行修改。
2 下位機設(shè)計
2.1 硬件設(shè)計
下位機主控芯片選用STM32f103VBT6,它是意法半導體公司增強型的32位微控制器,采用先進的ARM Cortex-M3內(nèi)核,擁有72 MHz的時鐘頻率、128 KB的Flash、20 KB的SRAM;有2個SPI總線接口、2個IIC接口、3個USART、1個USB、1個CAN總線以及2個12 bit的ADC轉(zhuǎn)換,80個通用的I/O端口。本設(shè)計主芯片上主要連接2個TFTLCD、EEPROM24C02(用于存儲觸摸屏的校準值)、LED指示燈和JTAG下載口、串口1(PA9、PA10)用于連接到STR-18無線模塊與上位機通信。
TFTLCD采用自帶XPT2046控制芯片的四線電阻式觸摸屏。XPT2046是一款四導線制觸摸屏控制器,內(nèi)含12位分辨率125 kHz轉(zhuǎn)換速率逐步逼近型A/D轉(zhuǎn)換器;支持從1.5 V~5.25 V的低電壓I/O接口,能通過執(zhí)行2次A/D轉(zhuǎn)換查出被按的屏幕位置。觸摸屏共有34個管腳,引腳分布如圖2所示,BD1~DB16為數(shù)據(jù)位,RST、CS、RS、WR、RD實現(xiàn)復位、片選、指令數(shù)據(jù)切換、讀寫等控制功能,MISO、MOSI、CLK、T_PEN、T_CS用于觸摸屏控制。
兩個LCD觸摸屏分別與STM32f103VBT6連接。兩屏16位的數(shù)據(jù)位分別與STM32f103VBT6的PD口、PE口相連,其中一個TFT屏的連線如圖2所示,另一屏的MISO、MOSI、CLK、T_PEN、T_CS依次對應(yīng)PB0、PB1、PC4、PC5、PB11,BL、CS、RS、WR、RD依次與STM32F103VBT6的PB10、PB6、PB7、PB8和PB9相連。
2.2 無線數(shù)傳模塊在本系統(tǒng)中的實現(xiàn)
主機和從機通信采用STR-18微功率無線數(shù)傳模塊,它具有功率小、ISM頻段工作頻率無需申請頻點、抗干擾能力強、誤碼率低、通信協(xié)議完善、數(shù)據(jù)實時同步和傳輸距離遠等優(yōu)點,支持1 200 b/s、2 400 b/s、4 800 b/s、9 600 b/s等接口波特率。
在本系統(tǒng)中,使用了2塊STR-18無線數(shù)傳模塊,一塊通過USB轉(zhuǎn)串口模塊與上位機連接(TXD、TXD、GND和VCC 4個引腳一一對應(yīng)即可);另一塊與下位機相連時,除VCC和GND是直接連接以外,TXD和TXD交叉相連。并把設(shè)置波特率的焊盤跳線J4~J2接成011態(tài)(即9 600 b/s),J1的E=1(即插上斷路器)傳輸不帶奇偶校驗的8位數(shù)據(jù)位。
STR-18無線串口通信有點對點、點對多點和多點對多點三種方式,本設(shè)計采用點對多點無線串口通信,如圖3所示。
2.3 μC/OS-Ⅲ操作系統(tǒng)在本系統(tǒng)中的應(yīng)用
μC/OS-Ⅲ是一個結(jié)構(gòu)簡單、功能完備和實時性很強的嵌入式操作系統(tǒng)內(nèi)核[5],適合于如STM32F103VBT6這種沒有MMU的CPU。下位機的點菜界面如圖4所示[9],左邊是菜單,分頁顯示,顧客選擇一道菜時,通過μC/OS-Ⅲ發(fā)送信號量,此時等待該信號量的任務(wù)首先完成在本屏上使該道菜變?yōu)樗{底白字且顯示在右邊,并使另一觸摸屏完成相同的任務(wù)[10],使之顯示相同的信息。當選擇“上一頁”之類非菜單的選項時不會發(fā)送該信號量。當“完成點餐”時會彈出“點餐完成”窗口,并等待PC掃描信號后將顧客菜單發(fā)送到PC,打印給廚師。
3 系統(tǒng)軟件設(shè)計
主機的上位機軟件由Visual C#編寫,系統(tǒng)軟件流程圖如圖5所示。首先從機上電完成初始化,如果要更改菜單,則由上位機通過無線數(shù)傳模塊發(fā)送給所有從機,從機遇到串口接收中斷,則更新菜單顯示;如從機在完成初始化后直接點菜,有顧客在一個觸摸屏菜單上點菜,則兩觸摸屏間進行通信,更新兩屏上已點菜品的顯示。點菜完成后,將菜品通過無線數(shù)傳模塊發(fā)送給主機顯示并打印菜單。本設(shè)計由于從機較多且用到的是串口通信方式,為防止多個從機有可能在同一時刻發(fā)送菜單給主機,采用先給從機編碼,主機循環(huán)發(fā)送從機地址,當從機已經(jīng)準備好并接收到是本機的地址時,才發(fā)送菜單給主機。
上位機界面如圖6所示,有選擇端口和幫助等功能,鼠標點到某個桌號上,會顯示此桌最近時間的點餐信息。本文主要采用serialPort控件來接收下位機的數(shù)據(jù),其配置應(yīng)與下位機串口配置保持一致,即BaudRate=9 600;Databits=8;Stopbits=1;Parity為NONE,并選擇對應(yīng)的COM口,先定義全局變量public string indata="";主要代碼如下:
private void serialPort1_DataReceived_1 (object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{indata="";indata=this.serialPort1.ReadExisting(); }
本文設(shè)計的雙觸摸屏的無線自助點餐系統(tǒng),相比于之前的點餐器,既方便快捷智能,又減少了服務(wù)員,節(jié)約了成本。
參考文獻
[1] 陳曉峰,林正浩.基于Android的無線點餐系統(tǒng)設(shè)計[J].上海師范大學學報(自然科學版),2012,41(4):369-373.
[2] 李泉溪,吳碩.ZigBee無線點餐系統(tǒng)研究[J].河南科技大學學報(自然科學版),2011,32(5):28-32.
[3] 楊保亮,王慶閣.觸摸式無線點餐終端系統(tǒng)的設(shè)計[J].重慶文理學院學報(自然科學版),2012,31(1):76-79.
[4] 李正民,姬曉陽,陳京育.嵌入式實時操作系統(tǒng)在測控系統(tǒng)中的應(yīng)用研究[J].計算機與現(xiàn)代化,2010(6):153-155.
[5] 黨宏社,姚勇,張新院.一種用于觸摸屏的多級菜單界面實現(xiàn)方法[J].計算機應(yīng)用與軟件,2013,301(10):159-161.
[6] 邱紅兵,邱曉燕.基于WinCE的點餐系統(tǒng)設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2011(8):127-130.
[7] 孫凱明,石磊,甄海濤,等.基于Cortex-M3處理器和CC2430的無線網(wǎng)關(guān)設(shè)計[J].自動化技術(shù)與應(yīng)用,2011,30(8):34-35.
[8] 丁順鶯.RFlD觸控屏幕點餐系統(tǒng)[J].計算機時代,2013(3):21-22,25.
[9] 宋亮,苗瓊.嵌入式實時操作系統(tǒng)μC/OS-II串口通信的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2011,19(1):42-45.
[10] LABROSSE J.嵌入式實時操作系統(tǒng)μC/OS-Ⅲ[M].宮輝,曾鳴,龔光華,等,譯.北京:北京航空航天大學出版社,2012.