摘要:本文介绍了GPRS无线通信网与无线打印终端系统之间的实时数据通信流程、通信协议及其软件设计与实现方法,详细地分析了各软件层次的实现方法和TCP/IP在RABBIT3000上的实现,达到了移动支付即时获取的设计目的,取得了良好的经济效益和社会效益。
引言
在信用卡应用不到半个世纪,支付方式又将经历一次历史性的变革——基于无线通信技术上的移动支付方式的出现,使支付形式彻底摆脱空间上的一切束缚,不但广泛而便捷地应用在固定交易场所;而且可以实现移动过程中的支付功能,从而为消费者创造了更灵活、更亲切的消费环境,实现了钱包的电子化、移动化,是一种全新的支付手段。
目前,世界各国都在积极研究这项新兴的移动支付系统,澳大利亚和芬兰已经率先推出了商用模式,广东省也在国内第一个推出了商用的移动支付系统,移动用户可以通过他们的手机购买地铁票、可乐、零食等商品。据统计,移动终端将在三至五年内将成为广泛使用的支付工具,然而这种新兴的支付方式,还不能提供消费者票据凭证,这不符合中国人目前的消费观念,人们急待一种能够获取票据凭证的方法来完善这一新兴的支付方式,基于这种状况研制开发无线POS 打印终端系统就很有必要。
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)。