基于QT和ARM的嵌入式点菜系统.docx
《基于QT和ARM的嵌入式点菜系统.docx》由会员分享,可在线阅读,更多相关《基于QT和ARM的嵌入式点菜系统.docx(13页珍藏版)》请在冰豆网上搜索。
基于QT和ARM的嵌入式点菜系统
基于QT和ARM的嵌入式点菜系统
摘要:
餐饮企业的传统点菜方式既费时又增加开销,而且经常会出现丢单,漏单的情况的发生。
最近流行的点菜宝等系统一方面采用Wince操作系统,增加额外开销,令一方面它们都是服务员手持,顾客面对的还是纸质菜单,虽然说是电子点菜,但是它为我们解决的无非是客人点完菜后服务员不用往厨房跑。
从某种意义上说,这些不能称之为真正的电子点菜。
在总结以往电子电子点菜的基础上,我们利用S3C2440芯片开发了基于Linux操作系统和Arm9处理器的电子点菜系统。
该系统利用QT进行图形界面设计,利用Sqlite数据库进行数据存储,依赖TCP/IP网络进行数据传输。
关键词:
嵌入式ARM点菜系统LinuxQt
嵌入式点菜系统是利用计算机技术、网络通信技术、Sqlite数据库,QtGui图形界面设计等,根据当今餐饮企业的需求而设计的餐饮企业智能控制和管理的一种嵌入式系统。
一、嵌入式系统
目前,在嵌入式系统应用领域中,不少人对什么是嵌入式系统不甚了解。
有些人搞了十多年的单片机应用,不知道单片机就是一个最典型的嵌入式系统;也有些人在解释什么是嵌入式系统时,不是从定义出发,而是列举了嵌入式系统的一些特点,往往不知所云。
因此,有必要从现代计算的发展历史,了解嵌入式系统的由来,从学科建设的角度来探讨嵌入式系统较为准确的定义。
嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。
由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。
通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。
而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。
嵌入式计算机系统则走上了一条完全不同的道路,这条独立发展的道路就是单芯片化道路。
它动员了原有的传统电子系统领域的厂家与专业人士,接过起源于计算机领域的嵌入式系统,承担起发展与普及嵌入式系统的历史任务,迅速地将传统的电子系统发展到智能化的现代电子系统时代。
在中国嵌入式系统领域,比较认同的嵌入式系统概念是:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处器、处围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
如果我们了解了嵌入式(计算机)系统的由来与发展,对嵌入式系统就不会产生过多的误解,而能历史地、本质地、普遍适用地定义嵌入式系统。
1.1嵌入式系统的定义
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:
“嵌入到对象体系中的专用计算机系统”。
“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。
对象系统则是指嵌入式系统所嵌入的宿主系统。
1.2嵌入式系统的特点
嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。
不同的嵌入式系统其特点会有所差异。
与“嵌入性”的相关特点:
由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。
与“专用性”的相关特点:
软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。
与“计算机系统”的相关特点:
嵌入式系统必须是能满足对象系统控制要求的计算机系统。
与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。
嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。
1.3嵌入式系统的种类与发展
按照上述嵌入式系统的定义,只要满足定义中三要素的计算机系统,都可称为嵌入式系统。
嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。
有些人把嵌入式处理器当作嵌入式系统,但由于嵌入式系统是一个嵌入式计算机系统,因此,只有将嵌入式处理器构成一个计算机系统,并作为嵌入式应用时,这样的计算机系统才可称作嵌入式系统。
嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。
因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。
因此,可以把定义中的专用计算机系统引伸成,满足对象系统要求的计算机应用系统。
1.4嵌入式系统的实时性
响应时间:
是实时系统从识别出一个外部事件到做出响应的时间;
生存时间:
是数据的有效等待时间,数据只有在这段时间内才是有效的;
吞吐量:
是在给定的时间内系统能够处理的事件总数,吞吐量通常比平均响应时间的倒数要小一点。
实时系统根据响应时间可以分为弱实时系统、一般实时系统和强实时系统三种。
弱实时系统在设计时的宗旨是使各个任务运行得越快越好,但没有严格限定某一任务必须在多长时间内完成,弱实时系统更多关注的是程序运行结果的正确与否,以及系统安全性能等其他方面,对任务执行时间的要求相对来讲较为宽松,一般响应时间可以是数十秒或者更长。
一般实时系统是弱实时系统和强实时系统的一种折衷,它的响应时间可以在秒的数量级上,广泛应用于消费电子设备中。
强实时系统则要求各个任务不仅要保证执行过程和结果的正确性,同时还要保证在限定的时间内完成任务,响应时间通常要求在毫秒甚至微秒的数量级上,这对涉及到医疗、安全、军事的软硬件系统来说是至关重要的。
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微上控制电机和多种传感器,从而可以执行各种复杂的动作和感受种状态信息。
1.5嵌入式系统的组成
1.5.1硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。
在一嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在ROM中。
1.5.2中间层
硬件层与软件层之间为中间层,也称为硬件抽象层(HardwareAbstractLayer,HAL)或者板级支持包(BoardSupportPackage,BSP),它半系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。
该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。
设计一个完整的BSP需要完成两部分工作:
嵌入工系统的硬件初始化的BSP功能,设计硬件相关的设备驱动。
1.5.3系统软件层
系统软件层由实时多任务操作系统(Real-timeOperationSystem,RTOS)、文件系统、图形用户接口(GraphicUserInterface,GUI)、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
二、Linux
Linux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,它们都使用Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux是一个领先的操作系统。
严格来讲,Linux这个词只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
Linux是一个诞生于网络、成长于网络且成熟于网络的奇特的操作系统。
Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利。
然而这种纯粹的自由软件的理想对于Linux的普及和发展是不利的,于是Linux开始转向GPL,成为GNU阵营中的主要一员。
三、Arm体系结构
3.1Arm简介
ARM是AdvancedRISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。
公司的特点是只设计芯片,而不生产。
它将技术授权给世界上许多著名的半导体、软件和OEM(代工生产)厂商,并提供服务。
ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。
它具有经典RISC的特点:
1)大的、统一的寄存器文件;
2)装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;
3)简单的寻址模式;
4)统一和固定长度的指令域,简化了指令的译码。
3.2Arm处理器模式
ARM体系结构支持7种处理器模式,分别为:
用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如表一所示。
这样的好处是可以更好的支持操作系统并提高工作效率。
ARM完全支持这七种模式。
处理器模式
说明
备注
用户(usr)
正常程序工作模式
不能直接切换到其它模式
系统(sys)
用于支持操作系统的特权任务等
与用户模式类似,但具有可以直接切换到其它模式等特权
快中断(fiq)
支持高速数据传输及通道处理
FIQ异常响应时进入此模式
中断(irq)
用于通用中断处理
IRQ异常响应时进入此模式
管理(svc)
操作系统保护代码
系统复位和软件中断响应时进入此模式
中止(abt)
用于支持虚拟内存和/或存储器保护
用于MMU
未定义(und)
支持硬件协处理器的软件仿真
未定义指令异常响应时进入此模式
表一Arm处理器模式
3.3Arm寄存器
在ARM处理器内部有37个用户可见的寄存器。
在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。
如表二所示:
寄存器类别
寄存器在汇编中的名称
各模式下实际访问的寄存器
用户
系统
管理
中止
未定义
中断
快中断
通用寄存器和程序计数器
R0(a1)
R0
R1(a2)
R1
R2(a3)
R2
R3(a4)
R3
R4(v1)
R4
R5(v2)
R5
R6(v3)
R6
R7(v4)
R7
R8(v5)
R8
R8_fiq
R9(SB,v6)
R9
R9_fiq
R10(SL,v7)
R10
R10_fiq
R11(FP,v8)
R11
R11_fiq
R12(IP)
R12
R12_fiq
R13(SP)
R13
R13_svc
R13_abt
R13_und
R13_irq
R13_fiq
R14(LR)
R14
R14_svc
R14_abt
R14_und
R14_irq
R14_fiq
R15(PC)
R15
状态寄存器
CPSR
CPSR
SPSR
无
SPSR_abt
SPSR_abt
SPSR_und
SPSR_irq
SPSR_fiq
表二Arm寄存器
四、Qt
4.1Qt介绍
Qt是一个跨平台的C++图形用户界面应用程序框架。
它给应用程序开发者提供建立艺术级图形用户界面所需的所有功能。
它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
Qt支持的平台有:
MS/Windows-95、98、NT4.0、ME、2000、XP和Vista
Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64UNIX、IBMAIX、SGIIRIX和其他很多X11平台
Macintosh——MacOSX
Embedded——有帧缓冲(framebuffer)支持的Linux平台、WindowsCE
Symbian/S60——目前已经可以提供技术预览版本
4.2QtEmbedded
QtEmbedded是NOKIA公司的图形化界面开发工具Qt的嵌入式版本,它通过QtAPI与LinuxI/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,Qt/embedded和Qt一样,在4.5版本之后提供了三种不同的授权协议GPL,LGPL和Commercial。
五、点菜系统设计
系统采用ARM-Linux下的Qt编程,数据库采用SQLite数据库。
Linux实时性强、开源、免费。
相比WinCE节省了大量的额外费用。
Qt使用“一次编写,处处编译”的方式为跨平台的图形用户应用程序提供了一个完整的C++应用程序框架。
独特的信号-槽机制,使得应用程序更加简单、明了。
SQLite数据库是一种嵌入式数据库,它具有功能强大、接口简单、速度快、体积小等一系列优点,因此非常适合应用在嵌入式系统中。
在嵌入式系统,功耗显极其重要。
在点菜时,不停的对数据库进行操作与程序运行的庞大会产生大量的功耗与系统时间的浪费。
本系统采用Qt中独特的机制:
QStackedWidget类把子控件进行分组或者分页,一次只显示一组或者一页,隐藏其他组或者页上的控件该控件,它类似于一本书中的每一页,可以将数据放到每一页中。
在程序初始化时即将所有数据一次性导入到StakedWidget所在的页面上,每次查找数据库时只需根据不同菜的ID号,显示出指定的StakeWidget页面即可。
从而避免了大量因不停操作数据库带来的功耗及时间浪费。
5.1点菜系统总体结构及功能
点菜系统主要分为服务器、客户端-电子菜单、客户端-前台、客户端-厨房和数据库五个部分组成。
总体结构如图一所示:
图一点菜系统总体结构
5.2服务器部分
服务器实现各客户端程序之间的通讯,数据处理与整合。
系统使用ftp、udp、tcp三种通信协议。
用户数据报协议(UDP)是ISO参考模型中一种无连接的传输层协议,提供面向操作的简单不可靠信息传送服务。
TCP/IP协议又叫网络通讯协议,这个协议是Internet国际互联网络的基础。
FTP(FileTransferProtocol)是TCP/IP协议组中的协议之一。
FTP协议的任务是从一台计算机将文件传送到另一台计算机。
udp是无连接的可以减轻网络负担但是安全方面无保证,tcp则相反,基于连接的传输并且安全。
首先,系统开机时,询问是否从服务器下载更新数据库,此阶段使用ftp远程下载服务器上的数据库。
其次,在顾客提交发已选送菜单时,使用tcp传输,确保安全接收所发消息。
最后,提交菜单除外,其余均采用udp通信,减少网络负担。
系统通信利用5位英文字符进行校验,以确定发送的是哪一类消息。
当接收到相匹配的校验码时,执行此种操作,若校验不正确,提示接收不明消息,请求新重发
5.3电子菜单
整个菜单大致分为菜品浏览列表、菜品介绍以及已选列表三部分。
开机时将数据库中的菜品信息刷新到菜品列表,当客人点击相应的菜名时,会在菜品介绍部分显示该菜的价钱、图片以及描述等信息,当客人点击选择时,会将该菜添加在已选列表。
可以实现客人对点菜、加菜、删菜、换桌、结账的需要。
5.4前台
包括客人选桌,结账、查看营业额等功能
5.5厨房
界面分为未做和已做两部分,未做界面显示电子菜单经由服务器发来的菜单信息,当后厨工作人员点击已做按钮,相应的菜名会从未做界面移动到已做界面,标志此菜已做
5.6数据库
实现添加、删除、查询、提交修改、排序等功能,存放菜品相关信息,包括菜名、类别、价钱、图片路径以及描述。
使用Sqlite实现。
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
4 结束语
嵌入式系统是大家现在谈论的一个非常热门的话题,它已经无处不在。
本系统也是一个典型的嵌入式系统应用例子,本着最大优化酒店点菜操作效率的目的,是非常实用的系统。
它的成功,将使酒店、餐饮业管理完全抛弃了纸和笔,POS机,以及各种各样的刷卡机,红外器等繁琐的高费用的设备,真正地实现了酒店、餐饮业管理的智能化、现代化、高效化、网络化的转变。
注释:
[1]华清远见嵌入式培训中心.嵌入式了Linux应用程序开发.人民邮电出版社2011.08
参考文献:
[1]王田苗.嵌入式系统设计与实例开发.北京:
清华大学出版社 2003.10.
[2]詹荣开.嵌入式BootLoader技术内幕. 2003.12.30
[3]杨晓鹏,宗明.VISUALC++7.0实用编程技术. 北京:
中国水利水电出版社 2002.01
[4]王珊,丁治明.移动计算中的移动数据库.微电脑世界,2001,8.25
[5]华清远见嵌入式培训中心.嵌入式了Linux应用程序开发.人民邮电出版社2011.08
[6]JasminC++GUIQT4编程电子工业出版社2010.09
QTandARM-basedembeddedOrderingSystem
Abstract:
Tradicionalesalacartalascompañíasdealimentosybebidastantotiempoyesunasobrecarga,peroamenudosepierdeunasolafugasolasuceda.Popularesplatosalacarta,lossistemasdeestetipoenelsistemaoperativoporunladomuecadedolor,unasobrecargaadicional,demodoqueporunlado,sonmenúdelaoperadorademanooenpapel,losclientesseenfrentanalacartaelectrónica,peroesparanosotrospararesolverelesnadamásquelosclienteshabíanterminadolosplatosenlacocinadespuésdequeelcamareronoseejecute.Enciertosentido,estonopuedeserllamadounverdaderoelectrónicaalacarta.Sobrelabasedelaanteriorelectrónicoelectrónicoalacarta,seutilizaelchipS3C2440desarrolladounsistemaelectrónicodepedidosbasadoenelsistemaoperativoLinuxyprocesadorARM9.ElsistemautilizaeldiseñodelainterfazgráficadelintervaloQT,basededatosSQLiteparaelalmacenamientodedatos,sebasanenunaredTCP/IPparalatransmisióndedatos.
Keywords:
name;study…