王志诚
WANG Zhi-cheng
(北新集团建材股份有限公司,北京 100096)
高校就餐拥挤问题在诸如北京,上海等大城市中尤为突出。学生多,食堂少,就餐时间过于集中,再加上学校硬件建设经费紧张,同时占地面积也有相当的局限。因此要单独从食堂扩建方面来解决这个矛盾恐怕还尚需时日。而通过完善食堂就餐系统,发挥现有资源的最佳效率,便可以相当程度上缓解这一问题。
另外,目前各高校食堂对不同时段的食物供应量没有科学的评估机制,多数是凭借主观经验。这样不仅会造成大量不必要的浪费,也不能很充分的满足来自全国各地同学的差异化需求。
图1 系统硬件结构图
ARM7系列微处理器为低功耗的32位RISC处理器,适用于对价位和功耗要求较高的产品应用中。ARM7系列微处理器系列具有以下特点:极低的功耗;提供0.9MIPS/MHz 的三级流水线结构( 取指、译码、执行);最高主频可达到130Mb/s;代码密度高并支持16 位的Thumb 指令集;对操作系统的支持广泛,包括Windows CE、Linux、μC/OSⅡ等[1]。
本系统采用了MagnaChip公司的HMS30C7202作为系统控制和数据处理的核心,HMS30C7202是一种高性价比16/32位RISC微控制器,主要特点如下:
1)16/32位RISC处理器核ARM720T为低功耗、高性能的16/32 位核,最适合用于对价格及功耗敏感的应用场合。
2)HMS30C7202对ARM720T核扩展了一系列完整的通用外围器件。片上资源包括4个UART通道;2个CAN总线口;4个32位定时器;2路可编程PWM;32 位实时时钟;多路实时中断控制器;
DRAM/SDRAM控制器;ROM/SRAM和FLASH控制器;一个外部存储器控制器等片内的逻辑控制电路。
3)软件支持方面具有配套的代码编辑调试环境ADS1.2和JTAG在线调试功能,使得HMS30C7202芯片软件可以直接用C编写,这就使μC/OS-II的植入成为可能。
在主控制模块中,分别需要使用3.3V、1.8V和1.25V的直流稳压电源,其中HMS30C7202片上外设需要3.3V电源,内核需要1.8V输入电压,另外部分器件需要1.25V的电源。为此,需要设计相应的电源转换电路,以获得所需要的3.3V、1.8V和1.25V 电压。系统所需的各个电压产生电路分别如图2、图3所示。
图2 3.3V电压产生电路
图3 1.8V电压产生电路
晶振电路用于向CPU及其他电路提供工作时钟,在该系统中HMS30C7202采用无源晶振。根据HMS30C7202的最高工作频率以及PLL电路的工作方式,选择10MHz 的无源晶振,10MHz的频率经
图4 控制系统时钟电路接线图
过HMS30C7202片内的PLL电路倍频后,最高可以达到60MHz。片内的PLL电路兼有频率放大和信号提纯的功能,因此系统可以以较低的外部时钟信号获得较高的工作频率,并降低因高速开关时钟所造成的高频噪声[2]。此外,本系统还采用了片外独立时钟芯片DS1302,其电路连接如图4所示。
现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本系统使用的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
本设计中使用的AT24C512是Atmel公司生产的64KB串行电可擦的可编程存储器,其内部有512页,每一页为128字节,任一单元的地址为16位,地址范围为0000~0FFFFH。它采用8引脚封装,具有结构紧凑、存储容量大等特点,可以在2线总线上并接4片芯片,特别适用于具有大容量数据存储要求的数据采集系统,因此在测控系统中被大量采用[3]。IIC总线与AT24C512的硬件连接图如图5所示。
图5 系统存储电路接线图
CAN通讯接口通过单片机的数据口与CAN通讯电路连接来进行设计,实现单片机与CAN总线之间的通信,其中CAN通讯电路部分主要包括:CAN-bus控制器、CAN-bus收发器、高速光电隔离等部分,如图6所示。
图6 CAN总线通讯系统结构图
软件设计首先要进行μC/OS-II操作系统和MiniGUI人机界面的移植,然后是用户界面设计和编程。
μC/OS-II是专为微控制器系统软件开发而设计的源代码公开的抢占式实时多任务操作系统内核,实时性和稳定性都很好,很适合数据采集系统使用。μC/OS-II主要特点可以概括为以下几个方面:公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好;可裁剪,可固化;内核属于抢占式,最多可以管理60个任务。自1992 年的第一版(μC/OS)以来已经有好几百个应用,是一个经实践证明好用且稳定可靠的内核。目前国内对μC/OS II 的研究和应用都很多[4]。
μC/OS-II内核向HMS30C7202中的移植,要合理地修改μC/OS-II的三个与处理器相关的文件:OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C。主要是将文件中的汇编指令,改为ARM7的汇编指令,并根据CPU的特点把文件中寄存器的初值进行改写。
MiniGUI 是一个轻量级的图形用户界面支持系统,具有占用资源少、高性能、高可靠性和可配置等特点。它是我国开发的,中文支持文档比较多,大都可以从飞漫公司网站(http://www.minigui.com/)上免费获得。目前已比较成熟,并已应用到很多项目的实际开发中。移植工作主要是两个方面:修改配置文件; 将程序运行所需的库文件和配置文件等添加到嵌入式目标板的文件系统中[5]。
图7 就餐窗口布局平面图
每一个窗口都细化为选菜区和取菜区,由围栏隔开。其中选菜区要求同学们排成一对,每个人根据个人口味在触摸屏上进行选菜,选完菜后取打印凭条,由单向开口进入取菜区;而取菜区中由服务员为同学们配发饭菜。这样的分区设计有效的保证同学们就餐时人流在窗口前的单向流动性,从而避免了类似“围城”的冲突。系统实时采集并记录学生们就餐的各种数据,如各食堂,楼层,窗口,菜种的售出情况。以便在食堂大屏幕上显示输出,指导同学们有序就餐,避免拥挤。还可以利用这些数据进行科学的采购和备餐,避免浪费,降低成本。
根据系统功能,软件部分实现了相应的程序设计。系统上运行中会首先提示学生将校园卡插入卡槽中,然后进行选菜。这个过程会将菜品一一显示在LCD屏幕上面,学生可以浏览各个菜品。当菜品选择完毕后,学生可以通过触摸屏点击菜品图片,再选择数量。如果不再继续选择的话,就可以拔出校园卡,并取出取菜凭条了。
图8 系统人机接口流程图
本就餐系统具有以下特点:
1) 相对于混合化窗口,分区窗口秩序井然,易于维持就餐秩序。各分区分工明确,几乎不会出现拥堵的情况,就餐效率大幅提高;
2) 分区后的选菜区无需人工,实行自助选菜,节省人力;
3) 自助选菜降低了服务员的压力,不需要记下每个人点的菜,也避免了人工错误的出现;
4) 由于选菜区实行自助服务,占用空间小,故一个窗口可以根据具体情况同时开设两个甚至多个选菜区,较旧系统中一个服务员负责一个窗口更灵活;
5) 这种自助选菜和打印凭条机制可以实时采集并存储各种数据,如每日,每时段,每个窗口,每种菜的销售状况等,这是在人工服务下很难办到的。
本信息化食堂就餐系统是基于嵌入式技术的食堂就餐系统。一方面指示并协调学生就餐秩序,缓解集中就餐的压力;另一方面,则可以通过后台对系统记录下的各种就餐数据分析有效的辅助食堂更科学的定时定量备餐。本设计对目前北京等大城市高校拥挤不堪的就餐秩序,以及因备餐不合理所造成的食物浪费现象会带来极大的改善。
[1]Frank Vahid、Tony Givargis,著,骆丽译.嵌入式系统设计[M].北京航空航天大学出版社,2004,(9):1-22.
[2]王田苗.嵌入式系统设计与实例开发[M].清华大学出版社,2003,(7):1-34.
[3]杨光友.嵌入式微处理器ARM7存储器接口设计[J].微计算机信息,2004,20(9):75-76.
[4]王剑峰,马艳萍,刘云.μC/OS在ARM7处理器的移植与测试应用[J].青岛科技大学学报,2005,(10):443-447.
[5]丁丁,习勇,魏急波.三种主流嵌入式图形用户界面的移植及性能比较[J].电子产品世界,2004,(5):77-79.