郭 鹏,胡 慧
(湖南工程学院 计算机与通信学院,湘潭 411104;2.湖南工程学院 电气信息学院,湘潭 411101)
目前传统意义上的购物车只是一个单纯的载物车辆,购物车和商品的结算之间没有任何必然联系.商品的结算都是由专门设立在超市出口的结算终端来完成.因为这样设立的专用结算终端数量有限,所以在超市当顾客准备结算商品时就需要排队等待.造成结算速度缓慢,导致顾客的时间浪费,同时给超市的服务质量带来不良的影响,直接影响到超市的收益.
嵌入式购物自助结算系统可以通过在超市或商场的出口处设置自动付费机,该设备由消费者自己进行商品的扫描信息录入,然后计算出应付费用总额,最后由消费者自己进行自动刷卡付费.通过该付费终端可以很容易的实现消费者的自动付费,同时为商场减少了在收银员聘用方面所必须要支付的花费.
实现购物的自动化不仅能极大地方便人们的生活,还能带给企业更好的管理方式,降低企业的管理成本,促进商业智能化的发展.
嵌入式[1]是一种专用的计算机系统,作为装置或设备的一部分.通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板.事实上所有带有数字接口的设备,如手边、微波炉、录像机、汽车等都使用嵌入式系统.嵌入式自助购物结算系统是嵌入式技术的一个方面的应用.其核心技术大致分为ARM微处理器、网络通讯、无线射频通信、POS终端和Linux系统移植.
ARM 微处理器[2]:ARM(Advanced RISC Machines)处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器.更早称作A-corn RISC Machine.RM处理器及技术的应用几乎已经深入到各个领域,包括工业控制领域、无线通信领域、网络应用、消费类电子产品、成像和安全产品等许多领域.ARM处理器将作为嵌入式自助结算系统的主要的信息处理部件.是该系统的核心.
网络通讯技术:使嵌入式自助结算系统的终端能够从服务器端获取数据并将处理的结果送回到服务器端.数据在传送过程中要安全保密.同时该嵌入式购物自助结算系统还应该能够与外网进行通信,要求能够访问安全的特定的外部网络进行必要数据的获取.网络通讯技术是数据传送的基本保障,只有通过网络的数据交换才能够获取必要的商品信息和客户账户信息.
无线射频技术[3]:无线射频译自英文 Radio Frequency Identification,简称为RFID,是20世纪90年代兴起的一种非接触式的自动识别技术.射频技术(RFID)相对于传统的磁卡及IC卡技术具有非接触、阅读速度快、无磨损等特点.
无线射频技术在阅读器和射频卡之间进行非接触双向数据传输,以达到目标识别和数据交换的目的.与传统的条型码、磁卡及IC卡相比,射频卡具有非接触、阅读速度快、无磨损、不受环境影响、寿命长、便于使用的特点和具有防冲突功能,能同时处理多张卡片.在国外,射频识别技术已被广泛应用于工业自动化、商业自动化、交通运输控制管理等众多领域.
POS终端:POS终端是您在任何购物过程中都可以看到的设备,它广泛用于零售业和服务业的交易处理和记录.它们还越来越多地用来对销售和库存数据进行实时报告,这使得企业可以简化供应链、促进自助式交易并且降低部署和维护零售环节的IT基础设施的成本.
Linux系统移植:系统移植技术是嵌入式系统的核心,它是一种对内核进行裁剪,然后通过交叉编译将编译后的系统安装在嵌入式处理器设备上运行的技术.Linux内核移植不仅涉及代码的编译还涉及到设备间的通信.因此需要对设备和编程语言都比较熟悉才可能移植成功.
该系统主要功能是实现商品购买后的自动付款功能,该系统的模块图如图1所示.
图1 系统功能模块图
在该超市自动付费系统中,处理中心是该系统的核心,处理中心中配置有商品支付软件,可以对扫描输入的商品的信息进行处理,该系统的运行处理过程为:
(1)处理中心运行商品支付系统,并置于初始化状态(无人进行支付操作的状态).
(2)客户使用条形码扫描仪对其所购买的商品进行扫描,每扫描一次商品,处理中心的商品支付系统将根据商品扫描码查询商品信息并对商品信息进行显示,显示的信息包括:商品注册码、商品名称、商品购买数量、商品单价、购买时间、购买该类商品的总价以及消费者已经购买的所有商品的总的应付金额.
(3)在消费者对购买的商品扫描输入完并输入确认信息后,系统提示消费者进行刷卡终端付费.
(4)消费者在刷卡终端进行刷卡,系统进行IC卡的识别验证,在验证通过后自动扣除应该支付的总金额,然后再显示屏上显示支付结果,再为客户打印支付凭条和商品购物清单并修改商场的商品记录.由于IC卡保存着用户的余额信息,这里需要对IC卡进行读写操作,读写都成功才算成功完成一次支付.
(5)一笔交易完成后处理中心的商品支付系统自动进行重置,等待为下一位消费者服务.
由于本系统是运行于嵌入式设备上,因此需要对Linux内核进行裁剪定制,使其支持所要连接的外部设备,本系统中使用的两种外部设备都是通过串口进行连接的,因此内核必须要能够支持串口通信.这里使用270-S开发平台自带的内核270-S-2.6.9.对于文件系统和Bootloader,采用270-S系统自带的即可.在图形界面上,由于这里使用的是Qt作为GUI支持,因此需要安装Qt桌面环境[4].
使用交叉工具链编译后的内核和Qt支持库都必须要下载至目标板才能执行.该系统的设计开发基于270-S平台,根据该平台的说明书,系统移植步骤如下[5]:
(1)创建JTAG,生成jflashmm二进制文件.
(2)编译并烧写Bootloader到目标板中.
(3)下载Linux内核镜像.
(4)下载文件系统.
为了使该系统能够支持Qt,需要加入交叉编译后的Qt库以及Qtopia应用平台,这样就能够在该系统中运行Qt编写的商品支付处理软件.
2.2.1 Bootloader的移植
Bootloader初始化硬件如CPU,SDRAM,FLASH,UART,&GPIO等,并为用户提供系统引导等功能.Bootloader的主要功能如下:
(1)初始化硬件.初始化CPU clock,Memory timing,interrupt,UART和GPIO.
(2)启动Linux.这是bootloader最重要的功能,它将内核映像复制到SDRAM中并跳转到内核入口地址处.
(3)下载Image.下载内核和文件镜像到SDRAM中.本开发平台下载只能通过以太网,利用Ethernet通过tftp and bootp协议进行下载.
(4)Flash存储器管理.用 write,erase,lock,和unlock等命令管理Flash存储器.
本开发平台提供有Bootloader源代码,因此先要进行Bootloader的编译创建名为boot的Bootloader镜像.然后通过创建JTAG生成的jflashmm命令烧写Bootloader到目标板.
2.2.2 内核的移植
在完成对内核的定制和在目标机上完成Bootloader的安装并且在宿主机上成功安装bootp和tftp协议后,才可以将内核镜像下载至目标板.
内核移植步骤为:
(1)进入Bootloader的命令行模式.
(2)使用tftp命令下在内核镜像到开发板的SDRAM中.
(3)使用flash命令烧写下载成功的内核镜像到flash中.
Linux内核通过minicom使用tftp命令下载至目标板,内核编译后生成的内核镜像文件名为zImage_EDR_tinyx,在下载完成后需要将内核烧写到flash中,其下载烧写过程如图2所示.
图2 Linux内核下载烧写过程
2.2.3 Qt/Qtopia的移植
Qt/Qtopia的移植[6]首先要在宿主机上对 Qt库和Qtopia桌面环境进行交叉编译,然后安装在目标机平台.在Linux系统上安装软件一般是通过将相应的库文件和头文件拷贝至目标板,然后配置相应的环境变量.如果在宿主机上进行开发时对Qt源码在编译时进行了安装路径的配置,则在目标机上需要有一样的路径,否则可能出现头文件或源文件找不到的问题.
当用条形码扫描仪扫描一件商品时,效果如图3所示.
图3 扫描商品效果图
当结算处理,点击结算按钮时,效果如图4所示.
图4 支付结算效果图
该嵌入式购物自助结算系统是一个紧跟时代发展,为提高购物收银效率,降低企业人力成本支出同时能够极大的方便顾客购物付款,因此具有很大的现实意义,值得应用和推广.该系统结合了应用广泛的嵌入式技术,使得支付更加小型化,简单化,方便化.该系统也是跟随当前物联网的兴起而设计实现,可以对本系统的数据进行修改,很容易使该系统与物联网技术进行对接.本系统的设计初始针对解决商场人工收银的弊端而设计.本系统提供了电子支付更灵活的平台,当前电子支付正迅速发展,尤其是移动终端支付平台给商品交易带来了极大的方便.
[1]嵌入式技术_百度百科,“技术应用”[EB/OL].Available:http://baike.baidu.com/view/685011.htm [Accessed:April.9,2012].
[2]李佳南.基于ARM的IC卡机房管理终端设计[D].成都理工大学硕士论文,2009.
[3]孙永飞.基于ARM的RFID读卡器设计[M].南京理工大学,2007.
[4](美国)沃尔夫.嵌入式计算系统设计原理(第二版)[M].李仁发译 .北京:机械工业出版社,2009.
[5]徐晨辉.嵌入式Linux内核裁剪及移植的研究与实现[C].东华大学,2009.
[6]广州友善之臂计算机科技有限公司.Mini6410Qt4和Qtopia编程开发指南[Z].2011.