基于移动支付的POS 终端系统软件研究

作者:陈群贤,蒋建军,张钢 来源:RFID世界网 2011-04-22 09:11:05

摘要:本文介绍了GPRS无线通信网与无线打印终端系统之间的实时数据通信流程、通信协议及其软件设计与实现方法,详细地分析了各软件层次的实现方法和TCP/IP在RABBIT3000上的实现,达到了移动支付即时获取的设计目的,取得了良好的经济效益和社会效益。

关键词:移动支付[26篇]POS[15篇]终端系统[0篇]无线通信[58篇]

引言
  在信用卡应用不到半个世纪,支付方式又将经历一次历史性的变革——基于无线通信技术上的移动支付方式的出现,使支付形式彻底摆脱空间上的一切束缚,不但广泛而便捷地应用在固定交易场所;而且可以实现移动过程中的支付功能,从而为消费者创造了更灵活、更亲切的消费环境,实现了钱包的电子化、移动化,是一种全新的支付手段。
  目前,世界各国都在积极研究这项新兴的移动支付系统,澳大利亚和芬兰已经率先推出了商用模式,广东省也在国内第一个推出了商用的移动支付系统,移动用户可以通过他们的手机购买地铁票、可乐、零食等商品。据统计,移动终端将在三至五年内将成为广泛使用的支付工具,然而这种新兴的支付方式,还不能提供消费者票据凭证,这不符合中国人目前的消费观念,人们急待一种能够获取票据凭证的方法来完善这一新兴的支付方式,基于这种状况研制开发无线POS打印终端系统就很有必要。
  1系统总体方案的设计
  系统总体框图如图1所示:


如图1 系统总体框图

统组成说明:主控CPU采用Z-WORLD公司的RABBIT3000,SRAM采用CYPRESS公司的CY62128,FLASH采用SST公司的SST39VF020,打印机采用GPRINTER公司的GP-7635,GPRS模块采用西门子公司的MC35,CPU内嵌TCP/IP协议栈。
  系统整体框架如下,为了控制整个系统稳定运行,系统需要一个微处理器,为了打印出一张凭证,系统需要一个微型打印机。因为系统需要通过无线的方式接入Internet,所以该系统还需要一个无线通信模块,该通讯模块可以接入Internet,选用GPRS通信模块或者CDMA通讯模块。为了接入Internet,仅仅有一个通讯模块还不行,还需要遵循Internet的共有通信协议。这样改系统有好几种组合方式,本系统选用内嵌TCP/IP协议栈的CPU。采用MCU及固化了TCP/IP协议的芯片组成应用系统的核心,应用系统可以直接上网,硬件电路相对简单。该方案具有如下优点;①不依赖PC机或高档单片机,真正实现8位单片机系统直接接入Internet,整个系统完全自给自足;②使用外围器件少,系统成由低。
  2软件层次结构
  程序中的所有代码都是由C语言编写的,并采用分层的结构,从底到上分别为:串口驱动层、GPRS模块驱动层、PPP协议层、IP协议层、UDP协议层与应用层。上层函数的实现需要应用到底层函数,而底层函数的任务就是为上层函数提供服务,最终完成应用层任务——传送数据。各层的主要函数如图2所示:


2.1驱动程序编写
  首先是串行口驱动层。它实现打开串口(OpenComm)、关闭串口(CloseComm)、读串口数据(ReadComm)、写串口数据(WriteComm)等函数。例如WriteComm函数向串口发送一个字节的数据,而transmit函数向串口发送一个字符串的数据。
  然后,在这些串口函数的基础上编写GPRS模块的驱动函数。微控制器通过串行口控制GPRS模块,进行拨号、设置等操作。控制的方法是采用AT命令。在控制GPRS模块拨打移动梦网GGSN的登录号码“*99**1#”之后,GPRS模块就转入在线模式(0n-Line)。此时微控制器向串行口发送的所有数据都透明地传送给了GGSN,同样GGSN的回答也传回单片机的串行口。当数据传送完成后,微控制器需要通知GPRS模块结束会话,并从在线模式转口普通的命令模式,这可以通过置高DTR线完成。同时,如果线路由于异常断开,CD线会回复到平常的低电平,所以处于在线模式下也要不断检测CD线是否处于高电平。根据这些操作,可以编写GPRS驱动函数:初始化GPRS模块函数(GPRSInit)、拨号函数(GPRSDial)、断开连接函数(GPRSHangup)、检测是否处于在线状态函数(GPRS0nline)。
  这些底层的驱动函数将会使上层协议的编写很方便,更重要的是,它为我们提供了一个驱动抽象层。当底层硬件做出改动的时候,只需要对底层的驱动函数进行改动,而上层函数的代码不变。
  2.2PPP协议的实现
  由于移动梦网的GGSN与GPRS模块通信时遵循PPP协议,所以要在微控制器中也实现一部分PPP协议才能与之对话。GPRS模块在拨号后首先要与GPRS网关进行通信链路的协商,