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