论文部分内容阅读
摘要:EPOS终端作为一种全新的支付终端,采用了HDLC协议作为终端和平台之间的链路层传输标准。介绍了HDLC协议的原理和应用范围,通过基于SEP4020微处理器的EPOS终端平台,详细分析了HDLC在EPOS终端上的应用方案和具体的实现方法,并且通过网控器等设备对这种应用进行了验证。
关键词:HDLC; SEP4020; EPOS; 网控器
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-908-03
HDLC Protocol Application on Epos Terminal
TANG Da-yuan, LING Ming
(College of Integrated Circuit, Southeast University, Nanjing 210096, China)
Abstract: EPOS, as a new payment terminal, is designed by using HDLC protocol as the standard of the data transmission on MAC layer, between the terminal and the center. Thisthesis give a simple introduce about the the principle and the case with HDLC protocol. And base on a EPOS terminal, which use SEP4020 as its micro-processor, make a detailed analysis the method which HDLC is used in the EPOS terminal by. The last, we validate this application with NAC.
Key words: HDLC; SEP4020; EPOS; NAC
1 引言
基于SEP4020的EPOS终端采用了东南大学ASIC中心自主研发的SEP4020作为微处理芯片,并在终端上实现了三种银联接入方式, 其中目前比较常用的是直联MODEM的方案。
直联MODEM方案通过连接PSTN网络建立终端与服务器平台之间的硬件连接, 采用V.80协议和HDLC协议来控制完成数据链路层数据帧的传输。其中V.80协议主要控制DTE与DCE之间的数据传输,而HDLC协议主要用于控制终端和服务器平台在链路层上的数据传输。
HDLC(High-Level Data Link Control,高级数据链路控)协议,是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control,同步数据链路控制)协议扩展开发而成的。
2 EPOS平台及SEP4020 处理器简介
本系统中所用到的EPOS平台采用了SEP4020作为微处理器,功能全面,并提供了多种接入方案可供选择。其中包括无线CDMA和GPRS方式、以太网方式、PSTN网络的FSK和直联MODEM方式。
SEP4020是基于ARM720T的一款ARM处理器,采用0.18um标准CMOS的工艺设计,内嵌32位RISC内核,兼容ARM720T,带8KB指令数据Cache,三级流水线作业,支持片上断点、调试点设置,具有先进的软件开发环境和调试环境。图1为SEP4020处理器的结构框图。
3 HDLC协议
HDLC协议是由ISO制定的链路控制协议,它着重于对分段成物理块或包的数据的逻辑传输,块或包由起始标志引导并由终止标志结束,也称为帧。帧是每个控制、每个响应以及应用协议传输的所有信息媒体的工具。所有面向比特的数据链路控制协议均采用统一的帧格式,不论是数据还是单独的控制信息均以帧为单位传送。
3.1 HDLC的操作方式
HDLC是通用的数据链路控制协议,当开始建立数据链路时,允许选用特定的操作方式。所谓链路操作方式,通俗地讲就是某站点以主站方式操作,还是以从站方式操作,或者是二者兼备。
HDLC中常用的操作方式有以下三种:1)正常响应方式NRM;2)异步响应方式ARM;3)异步平衡方式ABM。
3.2 HDLC的帧格式和帧类型
一般采用如图2的HDLC的帧格式,根据控制字段可将HDLC数据帧分成三个类型:信息帧、监控帧、无编号帧。
4 HDLC协议在EPOS终端上的实现
EPOS终端上采用的HDLC协议符合一般HDLC的帧格式和特点,针对应用的单一性和稳定性,对HDLC协议进行了简化,使其能完成对同步和异步传输的控制。
4.1 应用方案
EPOS终端和银联平台(网控器)之间的连接是一种主从站的方式,HDLC采用的是正常响应方式NRM。
在这种连接方式下,终端与网控器间的通信分为三个阶段:链路建立阶段、数据传输阶段、链路终止阶段。在链路建立阶段,终端拨号后会获得平台下发的波特率,此时终端要求建立NRM传输模式,在进行相互确认之后链路建立,在此阶段主要采用的是监控帧和无编号帧;在数据传输阶段,终端和网控器之间进行数据的同步传输,在此阶段主要采用的是监控帧和信息帧;在链路终止阶段,终端发送终止连接请求,在得到平台的确认后链接终止(需要再次拨号才能建立链接)。
EPOS中HDLC的帧格式和一般帧格式相同,只是数据帧中的有些字段是由硬件(直连Modem)填充的,如标志字段和FCS校验字段。EPOS中的HDLC帧格式如下:
其中的地址字段在图3所示的点到点的链路中也是没有作用的,在实现时双方约定为0x30;控制字段表示了帧的类型和帧的标识;数据字段的0插入也是由硬件(Modem)完成的。
4.2 软件实现
4.2.1 功能概述
HDLC的软件功能实现主要包括向下接口(数据帧接收函数)、向上接口(数据帧发送函数)、内部函数(重传函数和初始化函数)。 HDLC协议软件架构如图5。
图中阴影部分属于HDLC协议软件实现部分,由于校验和0插入工作会由硬件完成,所以相比较一般的
HDLC协议实现起来简单一些。发送函数主要被上层协议调用发送上层的数据报,此函数会将其封装成HDLC数据帧发送;接收函数被底层驱动调用接收数据,通过此函数对数据帧进行分析,判断HDLC的帧类型。初始化函数在系统初始化时被调用,主要用来对HDLC协议所用到的数据结构(如发送和接收BUFFER)进行初始化,和创建重传定时器。重传函数作为重传定时器的定时溢出处理函数,用来定时重传发送BUFFER中还没有没对端所确认的帧。
4.2.2 数据结构
发送和接收BUFFER的实现,为了节省空间和使用方便,分别用一个单向循环链表来实现,并且给每个BUFFER三个操作指针:head、read、wrtie。
图中阴影部分表示有数据节点,空白部分表示空节点;节点的结构空间在初始化时分配,结构中的数据指针所指向的数据空间在发送或接受数据时分配和释放。
重要数据结构如下:
发送(接收)BUFFER结构:
HDLC帧信息结构:
4.2.3 数据流程
数据流程包括初始化流程、发送数据流程和接收数据流程。
HDLC的初始化流程是在系统对MODEM进行初始化完成之后进行的。其中主要完成了建立重发定时器和建立发送(接收)BUFFER链表的工作。
发送数据流程如图7所示。
4.3 实验结果及扩展应用
本系统中通过网控器作为HDLC服务器来建立链路连接,EPOS终端和网控器是通过PSTN来传输数据的。连接方式如图8所示。
从图8我们可以看出,终端是通过串口将需要发送的数据按照HDLC帧格式,并按照V.80规定的方式进行规避之后发送给MODEM,在直联MODEM中会对数据帧进行FCS校验位填充和0插入操作,然后对数字信号进行调制并通过电话线发送出去。
网控器接收到电话线上传过来的数据帧,进行解调之后再进行HDLC数据帧分离,并可将数据部分通过串口发送到PC机的串口上显示。
由于终端和平台是建立在NRM模式下,终端每发送一个数据帧,都需要等待网控器给其回复一个数据帧。所以在系统中我们通过在网控器端增加一个串口自动回复程序进行应答。
在以上的环境下我们进行了严格的测试保证了HDLC协议对数据传输的正确控制,并通过完成了银联协议(8583协议)的应用,进一步验证了链路上数据传输的正确性和完整性。
5 结束语
主要介绍了HDLC协议在基于SEP4020处理器的EPOS终端上的应用,该终端上使用的HDLC协议是一般HDLC协议的简化版本,这主要是由终端的链接方式和硬件功能所决定的。此种设计可以有效的支持MAC层上数据帧的同步及数据的异步传输,同时,定时器重传的引入也增加了传输的可靠性。软件设计的规范不仅使得应用上更加方便,也易于扩展。目前该系统已经在东南大学ASIC中心的EPOS实验板上调试通过,可正常工作。
参考文献:
[1] SEP4020移动终端应用处理器用户手册[S].国家用集成电路系统工程技术中心,2008.
[2] 李大军.POS系统应用[M].北京:清华大学出版,2004.
[3] Simpson W. PPP in HDLC-like Framing[S].RFC1662,1994.
[4] 陈明.网络协议教程[M].北京:清华大学出版,2004.
[5] Peter Marwedel. Embedded system design[M].北京:科学出版社,2007.
关键词:HDLC; SEP4020; EPOS; 网控器
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-908-03
HDLC Protocol Application on Epos Terminal
TANG Da-yuan, LING Ming
(College of Integrated Circuit, Southeast University, Nanjing 210096, China)
Abstract: EPOS, as a new payment terminal, is designed by using HDLC protocol as the standard of the data transmission on MAC layer, between the terminal and the center. Thisthesis give a simple introduce about the the principle and the case with HDLC protocol. And base on a EPOS terminal, which use SEP4020 as its micro-processor, make a detailed analysis the method which HDLC is used in the EPOS terminal by. The last, we validate this application with NAC.
Key words: HDLC; SEP4020; EPOS; NAC
1 引言
基于SEP4020的EPOS终端采用了东南大学ASIC中心自主研发的SEP4020作为微处理芯片,并在终端上实现了三种银联接入方式, 其中目前比较常用的是直联MODEM的方案。
直联MODEM方案通过连接PSTN网络建立终端与服务器平台之间的硬件连接, 采用V.80协议和HDLC协议来控制完成数据链路层数据帧的传输。其中V.80协议主要控制DTE与DCE之间的数据传输,而HDLC协议主要用于控制终端和服务器平台在链路层上的数据传输。
HDLC(High-Level Data Link Control,高级数据链路控)协议,是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control,同步数据链路控制)协议扩展开发而成的。
2 EPOS平台及SEP4020 处理器简介
本系统中所用到的EPOS平台采用了SEP4020作为微处理器,功能全面,并提供了多种接入方案可供选择。其中包括无线CDMA和GPRS方式、以太网方式、PSTN网络的FSK和直联MODEM方式。
SEP4020是基于ARM720T的一款ARM处理器,采用0.18um标准CMOS的工艺设计,内嵌32位RISC内核,兼容ARM720T,带8KB指令数据Cache,三级流水线作业,支持片上断点、调试点设置,具有先进的软件开发环境和调试环境。图1为SEP4020处理器的结构框图。
3 HDLC协议
HDLC协议是由ISO制定的链路控制协议,它着重于对分段成物理块或包的数据的逻辑传输,块或包由起始标志引导并由终止标志结束,也称为帧。帧是每个控制、每个响应以及应用协议传输的所有信息媒体的工具。所有面向比特的数据链路控制协议均采用统一的帧格式,不论是数据还是单独的控制信息均以帧为单位传送。
3.1 HDLC的操作方式
HDLC是通用的数据链路控制协议,当开始建立数据链路时,允许选用特定的操作方式。所谓链路操作方式,通俗地讲就是某站点以主站方式操作,还是以从站方式操作,或者是二者兼备。
HDLC中常用的操作方式有以下三种:1)正常响应方式NRM;2)异步响应方式ARM;3)异步平衡方式ABM。
3.2 HDLC的帧格式和帧类型
一般采用如图2的HDLC的帧格式,根据控制字段可将HDLC数据帧分成三个类型:信息帧、监控帧、无编号帧。
4 HDLC协议在EPOS终端上的实现
EPOS终端上采用的HDLC协议符合一般HDLC的帧格式和特点,针对应用的单一性和稳定性,对HDLC协议进行了简化,使其能完成对同步和异步传输的控制。
4.1 应用方案
EPOS终端和银联平台(网控器)之间的连接是一种主从站的方式,HDLC采用的是正常响应方式NRM。
在这种连接方式下,终端与网控器间的通信分为三个阶段:链路建立阶段、数据传输阶段、链路终止阶段。在链路建立阶段,终端拨号后会获得平台下发的波特率,此时终端要求建立NRM传输模式,在进行相互确认之后链路建立,在此阶段主要采用的是监控帧和无编号帧;在数据传输阶段,终端和网控器之间进行数据的同步传输,在此阶段主要采用的是监控帧和信息帧;在链路终止阶段,终端发送终止连接请求,在得到平台的确认后链接终止(需要再次拨号才能建立链接)。
EPOS中HDLC的帧格式和一般帧格式相同,只是数据帧中的有些字段是由硬件(直连Modem)填充的,如标志字段和FCS校验字段。EPOS中的HDLC帧格式如下:
其中的地址字段在图3所示的点到点的链路中也是没有作用的,在实现时双方约定为0x30;控制字段表示了帧的类型和帧的标识;数据字段的0插入也是由硬件(Modem)完成的。
4.2 软件实现
4.2.1 功能概述
HDLC的软件功能实现主要包括向下接口(数据帧接收函数)、向上接口(数据帧发送函数)、内部函数(重传函数和初始化函数)。 HDLC协议软件架构如图5。
图中阴影部分属于HDLC协议软件实现部分,由于校验和0插入工作会由硬件完成,所以相比较一般的
HDLC协议实现起来简单一些。发送函数主要被上层协议调用发送上层的数据报,此函数会将其封装成HDLC数据帧发送;接收函数被底层驱动调用接收数据,通过此函数对数据帧进行分析,判断HDLC的帧类型。初始化函数在系统初始化时被调用,主要用来对HDLC协议所用到的数据结构(如发送和接收BUFFER)进行初始化,和创建重传定时器。重传函数作为重传定时器的定时溢出处理函数,用来定时重传发送BUFFER中还没有没对端所确认的帧。
4.2.2 数据结构
发送和接收BUFFER的实现,为了节省空间和使用方便,分别用一个单向循环链表来实现,并且给每个BUFFER三个操作指针:head、read、wrtie。
图中阴影部分表示有数据节点,空白部分表示空节点;节点的结构空间在初始化时分配,结构中的数据指针所指向的数据空间在发送或接受数据时分配和释放。
重要数据结构如下:
发送(接收)BUFFER结构:
HDLC帧信息结构:
4.2.3 数据流程
数据流程包括初始化流程、发送数据流程和接收数据流程。
HDLC的初始化流程是在系统对MODEM进行初始化完成之后进行的。其中主要完成了建立重发定时器和建立发送(接收)BUFFER链表的工作。
发送数据流程如图7所示。
4.3 实验结果及扩展应用
本系统中通过网控器作为HDLC服务器来建立链路连接,EPOS终端和网控器是通过PSTN来传输数据的。连接方式如图8所示。
从图8我们可以看出,终端是通过串口将需要发送的数据按照HDLC帧格式,并按照V.80规定的方式进行规避之后发送给MODEM,在直联MODEM中会对数据帧进行FCS校验位填充和0插入操作,然后对数字信号进行调制并通过电话线发送出去。
网控器接收到电话线上传过来的数据帧,进行解调之后再进行HDLC数据帧分离,并可将数据部分通过串口发送到PC机的串口上显示。
由于终端和平台是建立在NRM模式下,终端每发送一个数据帧,都需要等待网控器给其回复一个数据帧。所以在系统中我们通过在网控器端增加一个串口自动回复程序进行应答。
在以上的环境下我们进行了严格的测试保证了HDLC协议对数据传输的正确控制,并通过完成了银联协议(8583协议)的应用,进一步验证了链路上数据传输的正确性和完整性。
5 结束语
主要介绍了HDLC协议在基于SEP4020处理器的EPOS终端上的应用,该终端上使用的HDLC协议是一般HDLC协议的简化版本,这主要是由终端的链接方式和硬件功能所决定的。此种设计可以有效的支持MAC层上数据帧的同步及数据的异步传输,同时,定时器重传的引入也增加了传输的可靠性。软件设计的规范不仅使得应用上更加方便,也易于扩展。目前该系统已经在东南大学ASIC中心的EPOS实验板上调试通过,可正常工作。
参考文献:
[1] SEP4020移动终端应用处理器用户手册[S].国家用集成电路系统工程技术中心,2008.
[2] 李大军.POS系统应用[M].北京:清华大学出版,2004.
[3] Simpson W. PPP in HDLC-like Framing[S].RFC1662,1994.
[4] 陈明.网络协议教程[M].北京:清华大学出版,2004.
[5] Peter Marwedel. Embedded system design[M].北京:科学出版社,2007.