基于IC卡支付的GPRS网络自动售货机的设计实现
自动售货机是一种集声、光、电、机、电于一体的高智能科技产物,可以每天24 小时售货,被称为“永不下班的超级营业员”,这种前卫的零售方式在发达国家已经十分普及。我国从国外引进第一台自动售货机到现今国内自主研发或代理国外的自动售货机,已经开始遍布机场,商场等一些公共场所。然而这些自动售货机大都采用现金支付的方式,基于现金支付的自动售货机一般只能接收5 角或1 元的硬币,5 元、10 元或20 元等小额人民币,如果顾客手头零钱短缺或不足,有可能无法购买到自己所需要的商品。这个直接影响了自动售货机的销售数量, 间接制约了其发展速度。针对这种情况现提出采用现代前沿的非接触式射频IC 卡技术与GPRS 无线网络通信技术相结合的方式设计出一种基于IC 卡支付的无线网络自动售货机系统。非接触式IC 卡技术是近几年风靡的一项新技术,它成功地结合了射频识别技术、磁电技术、计算机技术和IC 卡技术,现已非常成熟,而且IC 卡的交易方式对于消费者十分便利,因此研究开发基于此方式下的各类售货机具有明显的现实意义和商用价值。
1 系统组网方案
从整体角度来看,基于IC 卡支付的自动售货机系统可分为售货机终端、GSM/GPRS 网络、INTERNET 网络和服务器四大块(如图1 所示)。
组网方案:向中国移动申请APN 专网业务,分配专用的APN 并申请绑定移动内网的固定IP 地址。服务器用无线MODEM 拨号上网,得到其公司固定IP。自动售货机直接向服务器发起连接。
这种方案结构简单,中间环节少,容易实现,所有的数据都在移动GPRS 的APN 内网传输,无需经过公网,安全性增强。本论文主要研究处于自动售货机终端设计与实现。
2 MDB 总线
MDB 总线是根据MDB/ICP 协议制定的总线标准。MDB/ICP 协议(Multi-DropBus/Internal Communication Protocol) 是欧洲售货机制造者协会制定的一套用于协调自动售货机的主控制器(VMC)与多个外设之间通信的协议。
MDB 总线接口实际上是工作于9600b/s 的单从型串行总线接口。MDB 接口共有6 针,各针信号定义如下:
针1:34V 直流电源针2:电源地线
针3:不用针4:主接收线
针5:主发送线针6:公共线
MDB 协议的串行格式为:1 个起始位,8 个数据位,1 个方式位与1 个停止位,共11 位。方式位的值置1 时,该字节的内容为地址;置0 时,字节内容为数据。
VMC 向外设发送命令时采用广播方式。第一字节为地址字节,该字节被所有外设读取,但只有符合地址字节所指的外设才处理其后的数据字节。当数据从外设发送到VMC 时,最后一个字节的方式位被置1,标志着数据发送完毕。
3 自动售货终端的硬件设计
3.1 硬件概述
刷卡自动售货机的工作流程大概如下:用户根据货机提示,把IC 卡放入自动售货机读卡模块的有效范围,经过验证确认,扣除用户购买商品金额成功后,售货机主控制器驱动对应货道电机,商品即可掉入取货仓中,同时该次交易信息,包括卡号,交易日期和时间、消费金额等会记录在售货机存储器中。因此根据售货机的销售特点将硬件分为两大部分:主板模块和驱动模块,驱动模块主要包括所要驱动的控制对象,包括直流电机、电磁开关、硬(纸)币机及液晶显示屏等。主板主要用于用户的刷卡消费及数据的上传以及对驱动板的各种控制指令。
设计的目的是要实现在自助售货管理中心要求上传数据时,把所存储的信息根据客户端与服务器制定的通信协议打包,然后通过GPRS 无线网络发送给自助售货管理中心,管理中心软件对收到的信息进行分析整理,并把相关记录存储到数据库表中。管理中心也会通信协议定时把充值列表、黑名单列表等控制信息打包通过GPRS 下传到售货机。因此按功能分为射频卡读写子模块和GPRS 通信子模块。射频卡读写模块直接与自动售货机相连,GPRS 通信子模块通过一个总线转换接口与自动售货机相连。
3.2 自动售货机结构
终端设备自动售货机的内部结构如图2 所示。
自动售货终端的主控制器VMC (Vending Machine Controller) 先用Motorola公司的M68HC11 单片机,它有一个全双工串口,通过该串口连接纸币器、硬币器和读卡器,使用MDB/ICP 协议通信。根据MDB 协议,图2 中的VMC 是主控制器,而纸币器、硬币器及GPRS 模块是从设备。另外,VMC 直接连接显示屏、键盘及马达电机等,以实现与用户的交互及驱动出货装置。GPRS 模块采用西门子公司提供的MC35i 工业级GPRS/GSM 模块, 它提供标准的RS-232 串行接口,使用该串口同VCM 进行数据传输。但是VMC 只有一个全双工串口,并且已经使用,要实现VMC 与MC35i 模块的通信,需将MC35i 模块与纸币器、硬币器、读卡器一样作为从设备使用, 遵循MDB/ICP 协议通信, 所以在VMC 与MC35i模块之间需要设计一个接口模块,来完成MDB/ICP 协议的转换功能。
3.3 总线转换接口模块的设计
转换接口采用Winbond 公司的W77E58 单片机。这种型号的单片机内含两个增强型串口和32KB 大容易Flash 存储器, 指令集与51 系列单片机完全兼容,适合于接口转换应用。转换接口设计方案如图3 所示。
在这里,W77E58 串口0 的TXD0X 线和RXD0 线分别通过光耦连接MDB接口的4 线(主接收线)和5 线(主发送线)。MDB 接口的1 线和2 线接34V 直流电源,以线空出不用,6 线作为公共线。W77E58 串口1 的TXD1 线和RXD1 线经过电平转换芯片MAX232 便可以直接与MC35i 模块的RS232 串口相连, 由于串口0 可以使用定时器T1 或定时器T2 作为波特率发生器;而串口1 只能使用定时器T1 作为其波特率发送器,使用定时器T1 作为串口1 的波特率发生器,波特率均设为9600b/s。另外,由于W77E58 已有256B 的RAM 和1KB 的SRAM,足够本接口的数据缓存之用,故不需要扩展存储器。
4 软件设计
软件主要采用C 语言来实现。
4.1 数据格式的设计
在自动售货机和监控中心的信息传送中,必须对信息的格式进行统一规定,才能使两端都能解读信息的内容。自动售货机发给监控中心的信息一般有三种:
1) 故障信息:包括纸币器故障、温度失控、主板故障等约64 种故障信息。
2)状态信息:包括缺货、缺币、开门检测等信息。
3)销售信息:包括每次销售信息、总销售额等信息。
根据这一种信息种类,设计数据包的格式如表1 所示。由于系统传输的数据量较大, 所以在传送信息的过程中,必须对重要的信息优先传送。我们规定一个优先级顺序,信息类型1 为最高优先级,信息类型2 次之,信息类型3 最低。
4.2 总线转换接口的通信协议及软件实现
W77E58 提供了双串口,本次设计中,用串口0 实现与MDB 接口的通信,而串口1 实现与读卡模块的通信,串口1 在与读卡模块RS232 串口相连之前必须经过芯片MAX232,以实现电平转换。使用定时器T2 作为串口0 的波特率发送器,使用定时器T1 作为串口1 的波特率发生器,波特率均设为9600bps.
在转换接口中,VMC、W77E58 和读卡模块既是发送方又是接收方,都工作在半双工模式。W77E58 与VMC 之间的通信部分,VMC 作为主设备, 在通信过程中的发送和接收都采用查访方式,W77E58 串口0 的发送和接收均采用中断方式,即VMC 与W77E58 之间通信是以VMC 为主的“主从通信法”通信协议。而W77E58 与读卡模块之间的通信部分,WW77E58 做主设备,W77E58 串口1 的发送和接收均采用查询方式,读卡模块串口的收发均采用中断方式。
VMC 是通过MDB 总线以广播方式发送命令的, 作为接收设备的W77E58 需要使用一个设定的从设备地址。以串口0 为例,串口0 接收到命令时,首先要判断该命令是不是发给本设备的,如果是就继续接收后面的数据,否则重新等待命令。当数据从外设发送到VMC 时,最后一字节的方式位被置1, 标志着数据发送完毕。W77E58 串口0 的中断发送、接收程序的主要主要流程如图4所示。串口1 的收发程序流程与此类似。
图4 串口0 中断发送、接收程序流程图
5 结论
目前,介绍的基于IC 支付的无线网络自动售货机已投入运行,部分通讯数据还在调试,该系统能够及时将用户的刷卡消费记录、黑名单以及与管理中心之间的通讯数据能够及时上传和下传,管理中心能够及时了解分布在各点的售货机的支付情况,方便维护,该系统具有成本低廉,功能易于扩展,在即将到来的基于无线自动售货机市场有广泛的应用前景。