基于移动支付的自动售货机
詹昌平,金 瓯
(1.中南大学 信息科学与工程学院 湖南 长沙 410083;2.湖南金融货币识别与自助服务平台工程技术研究中心 湖南 长沙 410083)
传统的自动售货设备交易时结算为现金支付(包括纸币支付和硬币支付)或刷卡支付这两种支付方式。但随着无线通信技术的发展,尤其是移动业务(如手机业务)的普及,人们越来越需要在自动售货设备上实现一种能基于移动业务的方便、快捷、安全可靠的支付方式。
本文将采用性能稳定、价格合理的MC35模块把移动支付方式引入到原有的基于现金支付功能的自动售货机中,以提供一种适于现实应用的系统解决方案。
1 系统工作原理
从整体角度来看,基于移动支付的自动售货系统可分为售货机终端、GSM网络和交易管理中心三大块。实际运营时,用户移动终端(本文中的移动终端主要是针对手机而言,故后文中也用到手机购物、手机号码等与手机相关的名称)直接与自动售货机终端交互便可以进行购物。位置分散的自动售货机通过GSM无线网络与交易管理中心相连并受交易管理中心直接管理。交易管理中心对自动售货机的交易情况进行统计整理,并通过GSM网络与电信运营商内部网络相连,从而把交易数据信息导人电信运营商数据库中,终交易费用的结算与手机话费的结算由电信运营商同时结清。
本论文主要研究处于终端位置的自动售货机设备。
2 MC35模块及移动支付流程
SIEMENS MC35模块主要由GSM基带处理器、射频天线、FLASH,SRAM、匹配电源和一个40脚的ZIF插座组成。其中GSM基带处理器是部件,他的作用相当于一个协议处理器,用来处理外部系统通过串口发送过来的AT指令。射频天线部分主要实现信号的调制与解调,实现外部射频信号与内部基带处理器之间的信号转换。匹配电源为处理器、射频部分和ZIF插座提供所需的电源。ZIF插座是提供给用户的应用接口。
ZIF插座中包含的引脚功能有:3.3~4.8 V峰值为2A的直流电源;模拟音频输入输出接口;标准的RS232信号接口;符合GSM11.11标准的SIM卡连接口,其引脚数为6个。在MC35的插座中加入了SIM卡之后便可以应用于本文的通信接口中了。
根据GSM 07.05的定义,SMS短信息的工作模式共有三种:Block模式、基于AT命令的Text模式和基于AT命令的PDU模式。本文中的应用不需要直接涉及到中文信息,所以只需采用比较简单的Text模式来发送和接收短信息。
SIEMENSMC35模块支持GSM 07.05定义的AT命令集的指令。只要通过UART串行接口直接向MC35模块下发AT命令,就可以方便地实现基于短信息SMS的移动支付功能。在移动支付过程中需要用到的AT命令主要有:
自动售货机使用MC35处理手机购物的主要流程如图1所示。
图1中的服务号码即为MC35模块中SIM卡所对应的手机号码,当用户拨打此号码时,MC35模块中会产生呼叫信号。自动售货机通过定时查询发现有呼叫信号后,将通过AT命令读出用户手机号码,但不会与用户手机产生通话。接着自动售货机记录下用户手机号码,挂断拨号过程,并通过屏幕提示用户进行购物选择。购物完毕,自动售货机自动产生交易记录,并按协议生成短信发回交易管理中心。
3 MDB总线
MDB总线是根据MDB/ICP协议制定的总线标准。MDB/ICP协议(Multi-Drop Bus/Internal Communication Protoc01)是欧洲售货机制造者协会制定的一套用于协调自动售货机的主控制器(VMC)与多个外设之间通信的协议。
MDB总线接口实际上是工作于9 600b/s的主从型串行总线接口。MDB接口共有6针,各针信号定义如下:
MDB协议的串行位格式为:1个起始位,8个数据位,1个方式位与1个停止位,共11位。方式位的值置1时,该字节的内容为地址;置0时,字节内容为数据。
VMC向外设发送命令时采用广播方式。字节为地址字节,该字节被所有的外设读取,但只有符合地址字节所指定的外设才处理其后的数据字节。当数据从外设发送到VMC时,一字节的方式位被置1,标志着数据发送完毕。
4 移动支付功能实现
4.1自动售货机结构
终端设备自动售货机的内部结构如图2所示。
自动售货机主控制器VMC(Vending Machine Controller)的部件MCU(Microprocessor Unit)采用Motorola公司的M68HCll单片机。他通过MDB总线连接纸币器、硬币器以及MC35模块等。根据MDB协议,图2中的VMC是主控制器,而纸币器、硬币器及MC35模块等是从设备。另外,VMC直接连接显示屏、键盘及马达电机等,以实现与用户的交互及驱动出货装置。为实现自动售货机终端对移动支付功能的支持,VMC中实现的主要功能为:用户身份识别、购物流程控制、出货控制、发短信汇报交易信息以及故障处理等。
4.2 总线转换接口设计
自动售货机VMC是通过MDB总线与外围设备相连的,而MC35模块本身只提供RS232接口。因此,在MDB总线与MC35的串口之间必须设计一个总线转换接口以实现协议转换功能。
转换接口设计方案如图3所示。
转换接口中采用了Winbond公司的W77E58单片机。这种型号的单片机内含2个增强型串口和32 kB大容量Flash存储器,指令集与51系列单片机完全兼容;非常适合于接口转换应用。
在这里,W77E58串口0的TXD0线和RXD0线分别通过光耦连接MDB接口的4线(主接收线)和5线(主发送线)。MDB接口的1线和2线接34V直流电源,3线空出不用,6线作为公共线。W77E58串口1的TXD1线和RXD1线经过电子转换芯片MAX232便可以直接与MC35模块的RS232串口相连。由于串口0可以使用定时器T1或定时器T2作为波特率发生器;而串口1只能使用定时器T1作为其波特率发生器,故这里使用定时器T2作为串口0的波特率发送器,使用定时器T1作为串口1的波特率发生器,波特率均设为9 600b/s。另外,由于W77E58已有256B的RAM和1kB的SRAM,足够本接口的数据缓存之用,故不需要扩展存储器。
4.3 总线转换接口的通信协议及软件实现
按照移动支付功能的要求,VMC需要通过此转换接口向MC35模块发送和接收短信。通信协议大致如下: 本系统中,VMC,W77E58和MC35三者都既是发送方又是接收方。在W77E58与VMC通信部分,因为MDB协议规定由VMC作主设备,故VMC在通信过程中的发送和接收均采用查询方式。
相应地,W77E58的串口0的发送和接收均采用中断方式工作。也就是说,VMC与W77E58之间通信是以VMC为主的"主从通信法"通信协议。类似地,在W77E58与MC35通信部分,由W77E58作主设备。W77E58串口1的发送和接收采用查询方式,而MC35串口的收发均采用中断方式。
对于W77E58而言,他既要作主设备也要作从设备,但考虑到:一方面,MDB协议已使用了半双工模式;另一方面,本系统的通信数据量不大,所以他只需要采用半双工模式即可。而且,采用半双工模式时在软件设计上也比较简单。另外,VMC是通过MDB总线以广播方式发送命令的,作为接收设备的W77E58需要使用一个设定的从设备地址。以串口0为例,串口0接收到命令时,首先就要判断该命令是不是发给本设备的,是则准备接收后面的数据,否则重新等待命令。
W77E58串口0的中断发送、接收程序的主要流程如图4所示。
为减少通信数据量,MDB总线采用十六进制进行通信。因此,串口0接收了数据之后,W77E58还需要把数据从十六进制转换成ASCII码,然后通过串口1发往MC35。串口1的收发程序流程与此类似。
5 结 语
本文采用MC35模块设计的移动支付系统结构简单,功能健全,能在原有自动售货机基础上升级实现,易于使用和维护管理。
经实验室测试系统响应快,运行性能稳定。
[1]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.
[2]. W77E58 datasheet https://www.dzsc.com/datasheet/W77E58_705272.html.
[3]. TXD1 datasheet https://www.dzsc.com/datasheet/TXD1_666125.html.
[4]. MAX232 datasheet https://www.dzsc.com/datasheet/MAX232_1074207.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。