摘要: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.