刘坚强,王永才,佟忠正,王化明
(1.东北大学 信息科学与工程学院,沈阳110819; 2.青岛理工大学琴岛学院)
刘坚强(硕士研究生),研究方向为嵌入式系统开发、智能检测;王永才(助教),研究方向为嵌入式技术及仪器等;佟忠正、王化明(硕士研究生),研究方向为电力系统自动化。
Philips公司的32位的ARM7 LPC2138微控制器具有强大的存储空间,内嵌32 KB片内静态RAM和512 KB的Flash存储器;可以实现在系统可编程(ISP)、在应用可编程(IAP);2个8路10位A/D转换器、1个D/A转换器,转换迅速、准确;引脚资源丰富,多达47个可承受5 V电压的通用I/O口;多个串行接口,包括2个16C550工业标准 UART、2个高速I2C接口(400 kbps)、SPI和具有缓冲作用和数据长度可变功能的SSP。LPC2138可以移植μ C/OS-II操作系统,软件的可移植性好,工作可靠。
系统结构框图如图1所示。
图1 系统结构框图
系统采用ARM7 LPC2138芯片作为主控制器,嵌入μ C/OS-II实时操作系统,对系统进行控制和管理。通过模拟PS/2标准协议,实现了 AS8110条形码输入器和PS/2标准键盘输入;通过 I2C总线接口扩展了PCF8563实时时钟芯片获取实时时钟,E2PROM存储器AT24C256芯片实现系统重要参数的断电保护;扩展数字温度传感器DS18B20和HM1500湿度传感器,对超市环境进行实时检测,在异常情况下通过声光进行报警提示;采用DM B32240A-01W大屏幕彩色LCD显示终端进行显示,人机交互界面友好;通过扩展汉字微型打印机,实现购物小票的打印;系统扩展了语音控制器SPCE061,实现语音播放及语音识别等功能;同时,还外扩了一个串行口,可以通过485总线将所有超市收银系统构建一个网络,通过一个中心PC主机进行统一管理。
针对超市收银机对键盘的特殊需要,采用双键盘,即4×6简易键盘和PS/2键盘。
(1)4×6简易键盘
系统扩展4×6简易键盘,通过行列扫描的方式读取键值。键盘接口和定义如图2和图3所示。
图2 4×6简易键盘接口
图3 4×6简易键盘功能定义
(2)PS/2键盘
PS/2键盘是微机标准键盘。它与微机通过PS/2协议进行信息通信,接口电路如图4所示。
图4 PS/2接口定义
只要ARM微控制器使用PS/2协议就能取得键盘数据,标准键盘提供至少86个功能键供用户使用。扩展PS/2标准键盘可实现多种汉字输入等功能。
如图5所示,键盘接口使用 2条数据线,数据位在CLOCK(时钟脚)的下降沿被 PC机ARM读入,接收数据时使用外部中断EXT0。
图5 PS/2协议时序
系统采用标准键盘PS/2接口与LPC2138接口与PC机标准键盘并线使用,接口简单。接口电路如图6所示。
图6 键盘和条形码扫描器接口电路
AS8110条码阅读器功能:
①手持近距虹光条码阅读器,内置解码器,准确识读各种一维条码。
②AS8110条码阅读器拥有7种提示音和音量可调的蜂鸣器,可根据使用的环境调节蜂鸣器的音量。
③AS8110条码阅读器有多个内置接口(RS-232、键盘接口、光笔及先进的USB接口)。
汉字微型打印机为针式打印机。打印机接收主机送来的代码,经过打印机输入接口电路的处理后送至打印机的主控电路;在程序的控制下,产生字符或图形的编码,驱动打印头打印一列的点阵图形,同时字车横向运动,产生列间距或字间距,再打印下一列,逐列进行打印;一行打印完毕后,启动走纸机构进纸,产生行距,同时打印头回车换行,打印下一行。上述过程反复进行,直到打印完毕。
使用74HC164串入/并出串行接口打印机,接口电路如图7所示。
图7 打印机接口电路
SD卡拥有大容量数据存储、快速数据传输率、极大的移动灵活性以及很好的安全性。通过9针的接口电路与专门的驱动器相连接,数据具有掉电保护。在SPI模式下,主机使用SPI总线直接对卡进行访问。
图8为SD卡与LPC2138通信的接口连接电路(SPI模式)。
图8 SD卡硬件连接电路
数字化温度传感器DS18B20具有与CPU接口方便、直接数字量输出等优点,另外提供12位(二进制)温度读数指示器件的温度信息。经过单线接口送入 DS18B20或从DS18B20送出,因此从主机CPU到DS18B20仅需一条线(和地线),电路如图9所示。
HM1500是美国Humirel公司于2002年推出的电容式湿度一体化传感器。该传感器线性输出相对湿度,输出为模拟信号,通过A/D转换器测量湿度对应的模拟电压,并计算得到相应的相对湿度值。相对湿度接口电路如图10所示。
图9 温度检测电路
图10 相对湿度接口电路
利用ARM微控制器的I2C总线扩展PCF8563和AT24C256接口芯片,分别实现获取实时时钟和系统重要参数的断电保护功能,电路如图11所示。
图11 I2C总线接口电路
系统软件工作流程如图12所示。
系统共有4种工作模式,即销售操作模式、销售记录模式、综合报表模式和系统设置模式。
销售操作模式为默认工作模式,主要工作为:条形码或者手动输入商品条码,通过系统查询调出商品单价,根据所输入的商品数量计算并显示各类商品的总额和找零。在确认交易成功后,系统打印购物小票并将相关记录存入销售记录和综合报表记录中。
销售记录模式主要用于查询本日、本周、本月的详细销售清单,包括交易商品名称、交易时间、交易金额和收银员编号等。
综合报表模式主要用于查询商品入货量和出货量的详细记录,包括商品名称、进货数量、进货日期、出货数量、获利情况等。
系统设置模式主要包括PLU设置、时间设置、收银员设置和清空记录。PLU设置目录下可以进行商品名称、条码以及单价的录入;时间设置目录下可以对系统时间进行设置;收银员设置目录下可以对当前收银员信息编号进行设置;清空记录目录下,可以对环境监测报警阈值进行设定,可以恢复系统出厂设置等。
图12 系统工作流程
经查阅资料得知,SD卡的内部结构是按扇区组合的,每512字节为一个扇区。为了方便操作,我们约定,每条销售纪录、每种货物都独自占一个扇区(尽管一条记录无论如何也不会有512字节)。这样,无论是在存货还是在销售时,各条记录之间从不冲突。按扇区读写十分方便。
SD存储卡的存储空间为1 GB。
1 GB/512B=221
1 GB SD存储卡存储的销售记录与存货纪录总计超过100万条。
系统采用64位存储商品价目表,各种数据格式如下:
商品条形码 商品名 单价 库存(13+1)位 6个汉字(12+1)位xxxx.x x元(7+1)位XXXXX(5+1)位共计:13+1+12+1+7+1+5+1=41位
存储一条商品价目表使用7字节。
本文提出了基于Philips公司的ARM7 LPC2138微控制器的超市收银管理系统的一种设计方法。系统合理调理了多个模块同时工作情况的协调与稳定,在降低成本的前提下,不仅实现了常用超市收银机的基本功能,还增加了环境检测报警及语音等特色功能。
[1]谭浩强.C语音程序设计[M].2版.北京:清华大学出版社,1999.
[2]马忠梅,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007.
[3]周立功,等.深入浅出ARM7—LPC213x_214x[M].北京:北京航空航天大学出版社.2005.
[4]楼然苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2006.