基于EasyARM615的分布式排队系统设计
1 系统方案分析
按照当前国内外技术水平来分类,排队管理系统可以分为有线系统和无线系统,它们所实现的功能是完全一样的。无线通信方式,最大的优点是安装方便快捷。除主机外,任何设备出现故障时,都可实时在线更换和维修。但该方式容易受到频率干扰和电磁波干扰。
2 系统整体方案设计
各个窗口终端CPU通信的信息量不大,实现的功能较简单。主机采用32位EasyARM615[l]可以满足要求,充分利用主机自带的RS485总线资源。从机采用8位的单片机即可实现所需功能。虽然在稳定性上可能稍有影响,编程上略为复杂,但是大大地降低了生产成本,而且对系统稳定性方面的影响,可以通过软件设计来尽量克服。
基于以上方案分析,主机采用32位EasyARM615开发套件,从机采用8位单片机作为控制芯片。搭建基于EasyARM615的分布式排队系统,具体框架如图1所示。
排队系统的基本服务流程是:当顾客进入服务大厅,选择自己需要的服务类别,从“号票打印机”抽取打印号票,上面打印出该顾客的排队代号。主机根据服务类别及紧急程度处理数据,形成队列。当工作人员服务完毕后只需按一下从机键盘上的呼叫按钮,主机将先来的顾客代号通过窗口显示屏和语音信息,呼叫顾客前来办理。
3系统硬件电路设计
基于单元化思想设计,系统硬件由主机控制器、从机控制器、人机交互界面、键盘输入系统、嵌入式打印机、语音播放系统、自制电源模块组成。
3.1 主机控制器
EasyARM615主机是系统控制和管理的核心,完成号票的打印和号码的存储、管理、显示、发送及语音播放等功能。顾客来到后,在主机上按“取号”键,系统将排队人数和排队号码加1,同时打印顾客的号码并存储。当窗口工作人员按“下一位”键取号时,主机将排在最前的号码发往呼叫器、相应的窗口显示屏和主显示屏,并通过语音模块播放语音,同时将系统的排队人数减l;当窗口工作人员按“重呼”键或“暂停”键时,从机向主机送出该窗口数据,主机收到后立即将该数据发往呼叫器、相应的窗口显示屏和主显示屏,并通过语音模块播放语音。主机控制器电路如图2所示。
3.2 从机控制器
系统的从机控制器采用Atmel公司低功耗、高性能的CMOS 8位AT89S52单片机。其内置8 KB Flash片内程序存储器,256 B的随机存取数据存储器(RAM),5个中断优先级、2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路等资源。
3.3 其他模块设计
主显示屏采用带中文字库的液晶模块LCDl2864,用于向在休息区等待的顾客提示被呼叫的号码和相应的窗口号。窗口显示屏采用字符型液晶显示模块LCDl602,用于显示窗口的受理顾客号,引导顾客到该窗口来办理业务。
语音播报系统采用广州唯创科技有限公司的可编辑语音芯片WT588D系列语音单片机。
嵌入式打印模块采用WH-A6热敏嵌入式微型打印机,串行接口控制。
4 软件设计
系统的设计理念是基于数据队列原理,遵循先来先办的原则。智能排队系统的“智能”体现在系统对“排队”的处理是根据运筹学中的排队论来设计的,管理中心查询各个服务台空闲情况,根据服务台总数目进行轮询算法,以确认下一个取得客户的服务台号。
4.1 通信方式
系统采用RS485总线,工作于半双工方式。RS485为差分平衡数字通信接口,系统采用主从式通信方式,主机采用查询工作方式,从机采用中断工作方式。通信总是由主机开始,循环地给从机发送查询命令,从机返回相应的应答信息。除非主机呼叫从机,从机在其他情况下不能主动向通信总线上送出信息。
4.2 窗口优先级和平衡分配算法设计
在多队列多窗口、业务优先级办理的情况下,需要将客户按照“先来先办,平均分配”的原则分配到各个窗口。为了解决各业务的多窗口平均分配,系统在优先级排队系统输入队列调度算法的基础上,改进并设计了一种窗口优先级和平衡分配算法[2]来解决该问题,基本步骤如下:
①获得当前窗口可办理的业务列表。
②判断最高优先级的一个或多个业务的队列中是否有排队号。
③若存在排队号,判断当前窗口是否是同类窗口中最早请求的;若不是,则跳转到⑤。
④若是,从最高业务级别的队列中取得排队时间最早的排队号。
⑤继续查找次优先级队列,直到取得排队号或查找所有队列完毕;若无排队号,返回。
4.3 程序设计
主程序流程如图3所示。主机初始化后,从01号从机(即呼叫器,地址=02H)开始查询,如有应答命令请求,根据命令作相应处理。
(1)请求发送
主机将最靠前的顾客号码发送到该机,并置发送标志F=1。
(2)请求接收
当呼叫器重呼或暂停时,向主机发送数据。此时,主机接收该从机数据,接收完成后,立即查询从机并发送数据,置F=l。若从机不应答,表示该机无请求服务或没有该设备,则清F=0。
主机通信完成后将显示更新的数据于LCD屏,根据发送标志决定是否将数据送到该从机对应的窗口显示屏、主显示屏及播放语音,然后地址+2并判断是否开始新的查询。
结 语
本文设计了由主机EasyARM615、从机AT89S52单片机及其外围电路构成的智能排队管理系统。以高性能的32位EasyARM615开发套件为主机控制器,以价格低廉的单片机为从机搭建起来的智能排队系统,既能解决无序排队问题,又能提高服务质量,可以对多个窗口和随机出现的客户流进行自动排队管理,顺序呼叫顾客到对应的窗口办理业务。
系统 设计 排队 分布式 EasyARM615 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)