您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 嵌入式电子点菜系统的设计
作者简介:任良才(1986-),男,江苏徐州人,2005年9月至2009年6月于常熟理工学院修读本科,现为中国矿业大学在读硕士研究生,研究方向:嵌入式系统。李鑫(1983-),男,安徽亳州人,常熟理工学院电气与自动化学院助教,硕士,研究方向:嵌入式系统设计与应用。*通信联系人:闫宸(1989-),男,江苏盐城人,常熟理工学院电气与自动化工程学院自动化专业在读本科生。E-mail:jsyanch@126.com电话:15895606785嵌入式电子点菜系统的设计任良才1,李鑫2,闫宸2*(1.中国矿业大学信息与电气工程学院,江苏徐州221000;2.常熟理工学院电气与自动化工程学院,江苏常熟215500)摘要:本文提出了一种基于GSM无线通信技术、嵌入式系统技术、ADS1.2开发平台、三星S3C44B0X微控制器、μCOS-Ⅱ嵌入式操作系统以及触摸屏技术的新型点菜方式,为餐饮业走向全面数字化提供解决方案。本文的主要任务集中在点菜终端的软硬件设计,硬件设计主要是LCD、触摸屏连接的设计,软件设计主要是点菜应用程序和GSM发送程序的设计、编写和调试。关键词:GSM;嵌入式系统;μCOS-Ⅱ中图分类号:TP273.5文献标识码:A随着人们生活水平的提高和生活方式的转变以及中国经济及旅游业的发展,餐饮业市场活跃,蕴藏巨大的商机,餐饮消费继续担当着拉动消费需求迅增的重要力量。但是大多数的餐饮店还是沿袭传统的点菜模式,即由人工记录点菜并送至厨房,该过程繁琐易出错,当顾客比较多时,造成时间的浪费和服务品质的下降,需进行数字化改造。有些餐饮店虽装备点菜系统,但部分技术老旧、使用不方便、价格昂贵。在综合已有电子点菜方案和性价比以及技术可行性的基础上,本文选定基于GSM无线通信技术、嵌入式系统技术、ADS1.2开发平台、三星S3C44B0X微控制器、μCOS-Ⅱ嵌入式操作系统以及触摸屏技术的嵌入式电子点菜系统作为点菜系统的解决方案,其特点是开发和使用比较方便。1点菜系统总体结构系统采用无线传输方式进行通讯,点菜终端将得到的顾客点菜信息通过GSM模块(内置移动运营商出售的SIM卡)以无线方式发送到GSM网络,最终传输到柜台计算机GSM模块。柜台计算机对收到的信息加以处理,并可以给点菜终端或厨房计算机发送信息。而本文主要工作集中在点菜终端的软硬件设计。系统总体结构框图如下:图1点菜系统总体结构框图2终端硬件设计柜台计算机GSM模块GSM模块GSM网络点菜终端2.1硬件框图在实际应用中,嵌入式系统硬件配置十分精简,除了CPU和基本的外围电路外,其余硬件都可以根据成本和功能进行裁减。嵌入式电子点菜系统的硬件构成同样非常简洁。图2点菜终端硬件框图系统下位机硬件部分包括主微处理器,显示与输入部分(本系统点菜输入有两套方案:触摸屏、键盘),无线收发部分,存储部分,以及其他基本的外围电路部分(如:晶振电路模块,复位电路模块,电源模块)。系统采用S3C44B0X(ARM7TDMI)微处理器为核心微处理芯片。显示与输入部分采用带触摸屏功能的LCD和小键盘。其中LCD采用240*320,STN256色的LCD,而触摸屏置于LCD液晶显示器之上,屏体部分是一块与显示器非常吻合的多层复合薄膜,触摸屏使用专用的驱动芯片,本系统采用的驱动芯片是FM7843(S3C44B0X选取PG口与FM7843接口,共用PG2-PG7共6条口线)。键盘采用ZLG7289芯片驱动的小键盘,ZLG7289价格便宜,稳定可靠。无线收发部分主要是通过9针串行线连接的GSM模块,GSM模块内嵌SIM卡一块,通过AT指令集来控制收发信息。同时上位机PC也有通过9针串行线连接的GSM模块,来实现相互之间的短消息互发。存储部分要用到3种存储器:NOR型FLASH,SDRAM(同步动态随机存储器),NAND型FLASH。NOR型FLASH用来存放Bootloader引导程序,SDRAM用来作为内存,NAND型FLASH用来存放编译的应用程序。2.2分模块设计点菜终端的微处理器采用三星公司的S3C44B0X,是一款基于ARM公司ARM7TDMI内核的16/32位RISC位处理器,S3C44B0X频率高达66MHZ,存储寻址空间256MB,8KBCache,带自动握手的2通道UART,系统管理器(片选FP/EDO/SDRAM控制器),带PWM功能的5通道定时器,IIC总线接口,IIS总线接口,同步SIO接口和PLL倍频器,而且采用了基于ARM7TDMI内核的0.25μM工艺的COMS标准宏单元和存储器。S3C44B0X具有低功耗,简单明快的特点,适合低价格和低功耗的方面的使用。S3C44B0XARM7TDMI2MNORFLASH8MSDRAM16MNANDFLASHFM7843触摸屏LCDZLG7289晶振模块电源模块复位模块USB接口GSM模块数字键盘显示部分,由于S3C44BOX内置了LCD驱动,所以从S3C44BOX出来的信号可以经74HCT245缓冲,直接接到LCD。电路图如下:123456789101112131415161718VCCVEEFRAMELOADLCDCPDISPLYJ801LCDB018B117B216B315B414B513B612B711A02A13A24A35A46A57A68A79E19DIR1U80174HCT245VD7VD6VD5VD4VD3VD2VD1VD0VCCB018B117B216B315B414B513B612B711A02A13A24A35A46A57A68A79E19DIR1U80274HCT245DISPLYLCDCPLORDFRAMEDISCTRLVCLKVLINEVFRAMEGBP498U102D74HC04图3LCD与S3C44BOX接口触摸屏驱动选用FM7843,它的连接涉及到两部分:FM7843和LCD的连接,FM7843和S3C44B0X的连接,如下图:CS15DCLK16DIN14DOUT12BUZY13PEINIRQ11VREF9VCC1VCC10X+2Y+3X-4Y-5IN37IN48U202FM7843GPF6SIOCLKSIOTXDSIORXDTCH_X+TCH_Y+TCH_X-TCH_Y-C202104EXINT5VDD33100pFC201104VDD33图4FM7843的连接无线收发模块采用SIEMENS公司的TC35I,SIEMENSTC35ITerminal(TC35I终端)是西门子公司推出的一个便捷的即插即用解决方案。它内置了TC35I无线模块,集成了标准的RS-232接口以及SIM卡,可以用AT命令通过串口对它进行控制。在本方案中,利用9针串口RS-232连接TC35I和S3C44B0X,并且编写AT指令集来实现无线通信。3软件设计点菜终端软件部分包括三层:驱动层、OS层、应用层。驱动层主要是BSP,是软硬件连接的纽带,OS层包括实时操作系统(RTOS)、文件系统、图形用户接口,应用层主要是应用程序。3.1操作系统的移植本系统操作系统选用μCOS-Ⅱ系统,μCOS-Ⅱ是占先式内核的实时嵌入式系统,任务调度是抢占式的多任务系统设计。μCOS-Ⅱ不仅源码公开,而且具有非常稳定、可靠的性能。应用μCOS-Ⅱ系统的主要任务是μCOS-Ⅱ系统的移植工作,而移植工作的任务主要集中在多任务切换的实现上,用来保存好恢复CPU现场。μCOS-Ⅱ移植到ARM7TDMI处理器上,必须写上述3个文件,这3个文件都是与处理器架构密切相关,分别是OS_CPU.h、OS_CPU_A.s、OS_CPU.c。它们的作用是把μCOS-Ⅱ操作系统紧紧的附着在ARM处理器上,实现软件和硬件的协同。其中OS_CPU.h包括了用#define定义的处理器相关的常量、宏和类型定义;OS_CPU_A.s文件中,要求用户编写一下4个简单的汇编语言函数OSStartHighRdy(用于启动当前就绪的优先级最高的任务)、OSCtxSW(用于进行任务之间的切换)、OSIntCtxSW(OSCtxSW通过调用OSIntCtxSW来从ISR中执行切换功能)和OSTickISR(时钟节拍控制);OS_CPU.c中唯一必要的函数是OSTaskStkInit(),其他函数只需声明不需包含代码。3.2消息循环在多任务系统中,消息是系统各个任务之间通信的最常用手段,它可以使一个任务或者中断服务程序向另一个任务发送以指针方式定义的变量,消息队列相关函数定义在OSMessage.h中。应用程序在Main-Task任务中等待消息,并对消息进行判断和处理。在本系统的主任务中使用如下的代码来实现消息循环。POSMSGPMsg=0;//消息循环for(;;){POS_CtrlpCtrl;//定义消息结构pMsg=WaitMessage(0);//等待消息switch(pMsg-Message){caseOSM_KEY://用到触摸屏时OSM_KEY要替换成OSM_TOUCH_SCREENonKey(pMsg-WParam,pMsg-Lparam//按回车键显示菜单图片break;}(pMsg);//删除消息,释放资源因为本系统采用键盘和触摸屏两套输入方案,所以有两种点菜输入消息:OSM_KEY是键盘消息,OSM_TOUCH_SCREEN是触摸屏消息。在编写应用程序时应考虑到要区分是哪种输入,并且做相应处理。两者的区分是通过switch(pMsg-Message)语句来选择判断的,通过判断输入是OSM_KEY、OSM_TOUCH_SCREEN中的哪一个即可区分两种点菜输入。在以上程序中WParam和LParam是系统消息传递的相应参数。键盘消息的类型pMsg-Message为OSM_KEY,参数pMsg-WParam中包含键盘按键号码信息,pMsg-Lparam中包含按键同时按下的功能键信息,用switch-case语句判断按下的是哪个键值后便可进行相应处理。触摸屏消息的类型pMsg-Message为OSM_TOUCH_SCREEN,参数pMsg-Wparam中包含坐标信息,用下面的语句获得(x,y)值:Touch_Position.x=pMsg-WParam&0xffff;Touch_Position.y=pMsg-WParam16;获得(x,y)值后用IsInRect2()函数来判断某个触摸点坐标是否在一个矩形区域内,例如:IsInRect2(prect1,pTouch_Position)判断pTouch_Position坐标值是否在prect1指向的矩形区域内,利用if-not语句判断触摸处在哪个区域后便可进行相应处理。系统得到消息并处理完成相应的功能以后,要使用DeleteMessage函数删除得到的消息,以释放其相应的内存资源。3.3点菜处理触摸屏点菜信息的处理,触摸屏有动作时,点菜中断执行caseSM_TOUCH_SCREEN:所包含的程序。先获取(x,y)值,然后用IsInRect2()函数来判断哪个区间有触摸动作,根据不同区间处理程序不同。顾客点菜已经结束时,将顾客点菜信息(包括桌号、点菜名称、价格、总价)利用UART操作交给串口,准备发送。键盘点菜流程和触摸屏点菜流程基本一致,区别之处有两点:一是在欢迎界面中,键盘操作可以设置餐桌号码;二是键盘点菜中点菜矩形区域的判断通过switch-case语句完成,而触摸屏点菜通过if-not语句来完成。3.4GSM模块的通信S3C44B0X内部集成了UART单元(提供两个串口,可以利用UART操作实现串口数据收发、波特率发生、中断发生和自动流控制等)。无线传输数据前可以利用UART操作将待发数据,放入到输出FIFO中(在不使用FIFO模式下,将被放到输出保持寄存器中)。这些数据包括餐桌号码、顾客点菜的菜名、总价等,输出前要用Int2Unicode()此函数把整型数据转换为unicode字符串,再送至GSM模块进行通信。本系统GSM模块的通信要使用AT指令集来实现。AT指令集每个指令执行成功与否都有相应的返
本文标题:嵌入式电子点菜系统的设计
链接地址:https://www.777doc.com/doc-2517801 .html