新型无线点菜系统的研究与设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

邮局订阅号:82-946360元/年技

术创新

嵌入式系统应用

《PLC 技术应用200例》

您的论文得到两院院士关注

新型无线点菜系统的研究与设计

Study and Design Of A New Wireless Meal Order System

(南京工业大学)

鹿存波邓飞贺赵龙章

LU Cun-bo DENG Fei-he ZHAO Long-zhang

摘要:本文介绍了无线点菜系统的整体设计方案,着重对基于ARM9和嵌入式Linux 的无线点菜终端进行硬件设计和内核移植。并且首次提出了一套厨房排菜调度算法,对接收的菜单数据进行处理,从而达到合理优化排菜顺序,节省人力,提高效率,提高顾客满意度的目的。

关键词:点菜系统;ARM;嵌入式Linux 操作系统;调度算法中图分类号:TP311文献标识码:A

Abstract:The whole design of wireless meal order system is introduced in this paper.The paper mainly designs the hardware of or -der terminal and makes Linux kernel transplanted.It firstly presents the kitchen serving scheduler Algorithm,in order to optimize the order of serving,economize the manpower,advance the efficiency and heighten the satisfaction of clients.Key words:meal order system;ARM;embedded Linux OS;serving scheduler arithmetic

文章编号:1008-0570(2010)07-2-0071-03

引言

试想有一个上百张餐桌、几十名厨师和配菜人员的大型餐

厅,在用餐、

点菜的高峰时期,平均每分钟有15张的点菜单先后送入厨房,每张菜单有8个菜,那么厨房如何客观合理的安排这每分钟120道菜的制作顺序,并保证顾客的满意度,便成了一个复杂而值得研究的问题。

中国餐饮业传统的方法是将手写的点菜单(带复印纸的三联单、五联单),递交给厨房后,凭借厨房工作人员的经验对出菜

顺序进行人工调度。

假如面对上述情况下庞大的信息量,人工的调度难免出错,更不用说排菜顺序的优化。

无线电子点菜系统的出现使厨房的排菜调度优化成为了可能。因为无线点菜终端发送的菜单不仅具有即时性,还具有可

运算性的特点。

可遗憾的是,现有的无线点菜系统产品仅强调将菜单无线发送与接收,省去了手写、递交和统计的时间,但在厨房处采用打印机打印菜单的形式,使得后续的排菜调度依然是传统的人工调度。一些文献也只是在系统技术设计的层面上进行探讨。

本文本着充分利用先进的技术手段,优化与变革业务流程的思想,在介绍一整套的无线点菜系统设计方案中,着重对基于ARM9和嵌入式Linux 的无线点菜终端进行设计。并且在充分调研与传统经验的基础上首次提出一套完备的调度算法,该算法可以使得厨房安排上菜的顺序最优化。

1系统的整体设计

本文图1给出了无线点菜系统的整体结构和工作流程。顾客点餐时,服务员利用无线点菜终端进行下单。信息通过无线接入点接入有线网络,再由路由器将信息发送到各职能系统(收银、财务,库存,传菜等)和服务器。调用服务器中的数据库和排菜调度算法对数据进行分析,然后将排列好优先级的桌号、

菜单、菜名和物料清单发送到各厨房显示终端。对于上完所有

菜的桌号和菜单,系统将自动从算法将其清除。客人用餐完毕,

收银台对其菜单自动打印,以及自动计算并打印出其结算帐单。

图1系统的整体结构和工作流程图

2无线点菜终端的设计

2.1硬件设计

无线点菜终端的硬件部分主要分为3个模块:主控模块,LCD/触摸屏模块,无线通信模块,如图2。

(1)主控模块设计是硬件设计的核心,其主要包括电源电路、时钟电路、复位电路、存储模块电路、串行口电路、LCD 接口等。本文的处理器采用三星公司基于ARM920T 内核的S3C2410。存储模块包括两块并联的32M 字节SDROM,NOR Flash 选用SST 公司2M 节的SST39VF160,NAND Flash 选用三星64M 字节K9F1208。

(2)本系统主控模块的处理器S3C2410内置了LCD 控制器。本文选用三星256K 色240x320/3.5英寸TFT 液晶屏,带触摸屏。

(3)无线通信模块采用Nordic 公司的单片高速无线收发芯

鹿存波:硕士研究生

71--

技术创新

《微计算机信息》(嵌入式与SOC)2010年第26卷第7-2期

360元/年邮局订阅号:82-946

《现场总线技术应用200例》

嵌入式系统应用

片nRF903作为控制芯片。nRF903的高频电感滤波器、振荡器等全部内置,外围元件少;工作频率稳定,为国际通用的ISM 频段433/868/915MHz;功耗极低,适合便携及手持产品的设计。它与S3C2410之间通过串口连接。

图2硬件构成框图

2.2软件设计

无线点菜终端的软件包括两方面:嵌入式linux 操作系统的移植和基于Qt/Embedded 图形界面应用程序的开发。

(1)嵌入式linux 操作系统的移植

移植工作主要包括4步:建立交叉编译环境,移植引导程序,编译内核,生成根文件系统。

交叉编译工具主要由gcc,binutils 和glibc 这几部分组成。由于重新建立一个交叉编译工具链比较复杂也没有任何意义,所以本文使用已经做好的工具链。因此建立交叉编译环境的过程实际就是对工具包cross-3.3.2.tar.bz2解包的过程。

本文移植的Bootloader 是韩国Mizi 公司开发的vivi 。首先在根目录下创建一个armsys2410目录,对vivi_armsys.tgz 执行解压命令。解压完成后进入vivi_armsys 。执行命令make

menuconfig,然后选择

“Load on Alternate Configuration File ”菜单,再写入arch/def-configs/smdk2410,进行vivi 的裁剪。执行make 命令进行编译,在vivi_armsys 目录下生成vivi 二进制文件。最后将其烧写到Flash 。

内核的编译通过命令make menuconfig 进行内核的配置;通过命令make dep 建立依赖关系;通过命令make zImage 建立内核。得到Linux 内核压缩映像zImage 。最后通过vivi 命令提示模式下使用下载命令,将压缩映像文件zImage 装载到flash 存储器中。

Linux 支持多种文件系统。cramfs 是Linus Torvalds 撰写的只具备最基本特性的文件系统。本文使用mkcramfs 工具对主机里已有cramfs 文件系统进行制作和压缩。最后也要烧写到flash 的相应部分。

(2)应用程序的开发

Qt/Embedded 是一个为嵌入式设备上的图形用户接口和应用开发而订做的C++工具开发包。其具有面向对象、跨平台和界面设计方便美观等优点,已得到了广泛的应用。

首先应建立Qt/Embedded 的开发环境,也就是对tmake,Qt/Embedded 安装包和Qt 的X11版安装包的安装。然后交叉编译Qt/Embedded 的库,以供应用程序使用。接下来就可以利用

Qt 图形编辑器进行应用程序的编写了。

最后将应用程序编译调试链接成可以在硬件平台上运行的二进制目标代码,可以通过串口将其传送到根文件系统的目录下。

3厨房排菜调度算法的提出

大型的餐馆都会根据菜品的类别,把厨房细分为冷菜间,热菜间,面点房等,各自相对独立。系统可预先在服务器的数据库内定义好菜品的大类,在接收到菜单后现将菜以制作间为类别进行子菜单划分,以便于最后发送给不同的制作间。本文算法的

研究,主要针对同一制作间菜品的排菜顺序,因此选择最具代表性的热菜间做讨论。至于要发送到其他制作间的菜单,处理的算法是一样的,此处不予考虑。

首先,本文认为厨房排菜调度的目的是合理分配出不同餐桌之间以及同一餐桌不同菜之间的出菜顺序,即优先级;原则是“先给最应该上菜的桌上菜”,“再给这桌上最该先上的菜”

。算法的核心分为两部分:第一是系统接收到一份菜单时就计算出同一张菜单中不同菜的优先级。第二是计算不同菜单之间的优先级。算法的工作流程如图3:

图3算法的工作流程图

3.1确定同一菜单中不同菜的优先级

这一步是当每一个客人下单后就立刻可以确定的。因为菜单里的每一道菜,都包含着可以事先预测和定义的信息。例如,菜品的原料清单明细,配菜时间,加工时间,单人享用消耗的时间等等。这些信息都可以预先定义在数据库中,以备调用。一道菜首先要经过配菜员的准备,然后是厨师的加工,最后是顾客的享用。于是比较同一菜单中不同菜的优先级,本文的原则是让顾客可以在最短的时间获得食物,利用顾客享用食物的时间为其准备下一道菜。因此,就要考虑每一道菜的准备时间,加工时间和这道菜被单人享用完毕消耗的时间。本文的方法是:

①比较每道菜配菜和加工的时间和,最小的优先级最高;②若配菜和加工的时间和相等,则再单独比较配菜时间,最小的优先级最高;

③若配菜时间相等加工时间也相等,则比较这道菜被单人享用完毕消耗的时间,最大的优先级最高。

例如,如表1所示的一份菜单中,经排列这张菜单中四道菜的优先级为:菜3>菜1>菜2>菜4。

表1菜单

3.2确定不同菜单的优先级

这一步就是对不同客人的菜单在当下时间进行优先级的比较。对于不同菜单的优先级,本文考虑的影响因素主要有:

因素1客人下单的先后顺序

因素2此时距客人上一道菜的时间

因素3已上菜数占客人点菜总数的百分比因素4客人是否催菜

因为随时会有新的客人产生新的菜单,或者给其中一桌准备好一道菜后,这些菜单的影响因素的值变化了,从而导致他们的优先级可能就会发生变化,因此这一步的计算是动态连续的。

72--

相关文档
最新文档