EFT POS终端系统中MODEM模块的解决方案
内容导读:
EFT POS终端系统中MODEM模块的解决方案 中南大学、湖南计算机股份有限公司黄深喜 中南大学樊晓平 长沙电力学院杨安平 摘要介绍电子金融卡交易终端(EFT POS)系统中MODEM模块的一种实现方案。该方案解决了EFT POS终端中MODEM必须具备的快速握手、通信稳定、良好的传输损伤承受能力以及支持HDLC同步协议等重要问题。 关键词电子金融卡交易终端(EFT POS)嵌入式MODEM数据泵(data pump)数据访问装置(DAA)HDLC 总体概述 现代社会里,信用卡应用已经非常普及。与现金相比,它具有携带方便、安全易用、便于结算等优点。随着信用卡的发行量急剧增大,信用卡的关键服务设备电子金融卡交易终端(EFT POS)\[1\]需求量大增。由于技术难度等问题,大部分EFT POS由国外进口,国内只有几家有实力的厂商研制了此类产品。 MODEM\[2\]模块是EFT POS的重要组成部分之一,也是设计难点之一。MODEM模块设计好坏直接影响着EFT POS的设计能否成功。 EFT POS的MODEM模块与通用MODEM有很大差异,它专用于信用卡金融数据的传输,不需要语音和传真功能。信用卡金融数据通信的数据量很小,因此通信速率不超过2400bps;但要求每次刷卡通信响应很快,因此MODEM应有快速握手能力。另外,为保证信用卡金融数据传输的稳定、安全和可靠,要求MODEM具备良好的传输损伤承受能力,采用HDLC同步协议通信。 根据EFT POS应用的特殊要求,我们在设计MODEM模块时精心选型,最后确认采用Zilog公司的MODEM数据泵Z02922\[3\]作为该模块的核心部分,并利用80C188 \[4\]CPU控制该数据泵,实现符合上述特殊要求的MODEM。该模块的功能框图如图1所示。 图1MODEM模块的功能框图一、 硬件设计 MODEM模块的硬件设计主要包括:Z02922与主控CPU(80C188)的接口电路以及Z02922与电话线之间的数据访问装置(DAA)\[5\]电路。 1. Z02922的关键特性 · 集成了数据泵(data pump)和模拟前端(AFE); · 支持V.22bis,V.22,V.21,V.23,Bell 212A,Bell 103数据模式\[2,3\]; · 采用FSK、DPSK或QAM编码; · V.29快速连接握手(小于50ms); · 内含集成合成电路; · 自动握手功能; · 所有速率均支持HDLC同步协议。 2. 引脚说明 Z02922数据泵采用PLCC封装,其引脚排列如图2所示,引脚功能如表1所列。 3. 与CPU的接口电路 Z02922在EFT POS终端中直接采用主CPU(80C188)控制,因此Z02922的串行模式禁用,使用并行模式与80C188接口。仔细分析二者的时序关系,可知Z02922能直接挂在80C188的总线上。与CPU的接口电路如图3所示。 4. DAA电路 MODEM数据泵是通过数据访问装置(DAA)电路与公用电话网(PSTN)接口的。DAA电路中有一个隔离变压器,它完成电平转换和阻抗匹配功能。采用阻容电路将Z02922的TXO+/TXO-和RXI+/RXI-信号转换合成为TRXA1和TRXA2后接入变压器的次级,实现4线收发与2线收发之间的转换功能。 隔离变压器的初级经继电器控制后接入PSTN图3EFT POS MODEM模块的原理示意图图2Z02922引脚图表1Z02922引脚功能 引脚〖〗符号〖〗功能说明1〖〗RESET〖〗复位信号线2〖〗GND〖〗数字地3〖〗TEST1〖〗测试引脚,正常操作应接GND4〖〗EYECLK〖〗眼图形时钟5〖〗EYEOUT〖〗眼图形输出6〖〗EYESTB〖〗串行眼图形使能7〖〗AVDD〖〗模拟部分的电源(+5V)8〖〗TXO+〖〗发送差分模拟输出端+9〖〗TXO-〖〗发送差分模拟输出端-10〖〗AGND〖〗模拟地11〖〗Vref〖〗参考电压12〖〗AGND〖〗模拟地13~14〖〗CF1~CF2〖〗电容连接端,CF1与CF2之间连接82pF的电容15〖〗RXI-〖〗接收差分模拟输入端-16〖〗RXI+〖〗接收差分模拟输入端+17〖〗AVDD〖〗模拟部分的电源(+5V)18〖〗HCS〖〗片选引脚〖〗符号〖〗功能说明19~21〖〗HA0~HA2〖〗地址线22〖〗HIRQ〖〗中断输出端23〖〗HWR〖〗写控制端24〖〗VDD〖〗数字电源(+5V)25〖〗HRD〖〗读控制端26〖〗GND〖〗数字地27~34〖〗HD0~HD7〖〗数据输入输出35〖〗RLSD〖〗振铃检测端36〖〗RXD〖〗串口输入37〖〗TCLK〖〗串口发送时钟38〖〗TXD〖〗串口输出39〖〗OH〖〗摘机继电器控制端40〖〗RTS〖〗串口请求发送信号41〖〗TEST2/RCLK〖〗测试端2/串口接收时钟42〖〗XTAL〖〗晶振输出端43〖〗EXTAL〖〗晶振输入端44〖〗VDD〖〗数字电源(+5V)网。由于驱动继电器的电流较大,故不能直接采用逻辑电路的控制信号来驱动。控制信号需要用三极管2N3906放大后才能驱动继电器。 为了检测振铃信号,在变压器初级采用光电耦合管4N35。4N35将振铃信号隔离并转换成TTL电平,供CPU(80C188)检测。 Z02922是针对金融交易处理设计的MODEM数据泵。在我们设计DAA电路时遵循了通信行业标准YD/T 938-1997《销售点终端(POS)入网技术要求和检测方法》\[5\]和其它有关标准的要求。设计好的MODEM模块具有良好的传输损伤承受能力,可保证通信的稳定性和可靠性。 二、 软件设计及其关键点 MODEM模块的软件设计包括:发送音频与音频检测、呼叫进程监控、音频与脉冲拨号、MODEM握手控制与数据模式设定、HDLC协议处理和V.29快速连接握手控制以及AT命令解释器7个模块。其中,对于信用卡金融数据交易来说,HDLC协议处理、V.29快速连接握手控制是至关重要的。 1. 软件接口 Z02922提供7个寄存器,如表2所列,和512字(数据为16位)RAM作为与CPU的软件接口。80C188通过这个软件接口来控制MODEM配置、获取MODEM状态、接收通信数据以及装载要发送的数据。 表2Z02922寄存器 序号〖〗寄存器功能〖〗地址〖〗bit7〖〗bit6〖〗bit7〖〗bit6〖〗bit7〖〗bit6〖〗bit7〖〗bit6〖〗访问方式1〖〗RAM访问低〖〗000〖〗RAMDL(数据泵RAM数据,低八位数据)〖〗读写2〖〗RAM访问高〖〗001〖〗RAMDH(数据泵RAM数据,高八位数据)〖〗读写3〖〗RAM访问地址〖〗010〖〗RAMAL(数据泵RAM数据,地址)〖〗只写4〖〗并行数据〖〗011〖〗DATAP(数据泵并行数据)〖〗读写5〖〗RAM控制及状态〖〗100〖〗TXIE〖〗RXIE〖〗RAMIE〖〗TPDM〖〗RTSP〖〗RAMRW〖〗RAMRQ〖〗RAMAH〖〗读写6〖〗MODEM状态〖〗101〖〗TXI〖〗RXI〖〗RAMI〖〗DPBUSY〖〗〖〗RTRND〖〗CDET〖〗RES〖〗只读7〖〗HDLC〖〗111〖〗0〖〗0〖〗0〖〗0〖〗0〖〗TEND〖〗RXERR〖〗EOF〖〗读写2. 关键之一:HDLC协议处理 Z02922内嵌HDLC协议固件,可在所有通信速率下操作。HDLC协议固件能执行将数据打包成HDLC帧格式或将HDLC帧格式数据拆包的功能,包括:自动开关标志发生器、插入0或删除0、标志和废弃检测以及CRC校验和的计算和检测。HDLC协议处理过程如下。 发送过程: (1) 当Reg5.TXI=1时,写Byte1到DATAP,重复这一步直至所有数据发送传输完毕。如果Reg4.TXIE=1,则数据泵在准备传输下一字节时,即Reg5.TXI=1时,产生中断。 (2) 当最后一字节ByteN发送完毕,等待数据泵将Reg7.TEND设置为1。这表明数据泵已经结束当前帧。现在数据泵计算并传输当前帧的CRC校验和及传输结束标志,直到数据泵设置Reg4.TXI=1(以指明数据泵在准备接收另外一个字节)之后至少8位时间,才会设置Reg7.TEND=1。为了传输其它帧,则重复(1)~(2)步。 (3) 当数据泵开始发送帧结束标志时,设置Reg7.TEND=0。本帧在数据泵设置Reg7.REND=0之后8位时间,本帧传输结束。 接收过程: (1) 准备接收新帧。 (2) 当Reg5.RXI=1时,数据泵已经接收一字节。先读Reg7,然后读DATAP。如果Reg4.RXIE=1,则当设置Reg.RXI=1时,数据泵产生中断。 (3) 此步根据REG7的值进行: ① 如果RXERROR=0且EOF=0,则步骤(2)读出的DATAP值为HDLC帧字节。重复第(2)步接收完余下的帧字节。 ② 如果RXERROR=0且EOF=1,则带正确校验和的HDLC帧已经接收。如果Byte1…ByteN+3已经读完,并且DATAP中的字节N+3正在读,则前两个字节——字节N+1、字节N+2是帧校验和字节,并且余下的Byte1…ByteN为帧数据字节。继续第①步接收下一帧。如果RXERROR=1,则废弃接收到的帧字节,并重复第①步以接收下一帧。 ③ 如果DATAP的值为0FFH,则收到了HDLC废弃序列;如果DATAP为07EH,则收到了带错误校验和的HDLC帧。 3. 关键之二:V.29快速握手 在V.29快速握手模式下,速率为9600bps,为半双工同步通信,握手时间小于50ms,这种特性对信用卡金融数据通信来说非常有用。V.29快速握手的过程如下。 发送过程: (1) 电话线连接建立后,在每个MODEM首次传输之前,设置Dpctrl.TXSTRN=0,进行长训练系列;对于后续训练,则设置Dpctrl.TXSTRN=1进行短训练序列。 (2) 设置Confi.MODE=020H(9600bps,V29)或021H(7200bps,V29)。 (3) 设置Reg4.RTSP=1,使数据泵开始发送。 (4) 如有需要,在Config.MODE发送返回保护音的同时,设置Config.ECHOPRTEN和Config.ECHOPRTLEN。 (5) 检测Reg5.CDET,当Reg5.CDET=1时,CPU开始传输数据;如果要求在并行模式下产生传输中断信号,则设置Reg5.TXIE=1。 (6) 如有需要,设置Reg4.RTSP=0以结束发送。等待Reg5.DPBUSY=0,指明开始接收或挂机之前数据泵完成发送。 接收过程: (1) 在电话网线连接已经建立之后,每个MODEM开始接收之前,设置Dpctrl. RXSTRN=0。 (2) 设置Confi.MODE=020H(9600bps,V29)或021H(7200bps,V29)。 (3) Reg4.RTSP=0,使数据泵开始接收。 (4) 检测Reg5.CDET,当Reg5.CDET=1时,CPU开始传输数据;如果要求在并行模式下产生传输中断信号,则设置Reg5.TXIE=1。 (5) 接收数据至少50ms,然后设置Dpctrl.RXSTRN=1,以便使数据泵进行数据接收的后续短训练系列。 (6) 当数据泵检测到载波信号消失时,则设置Reg5.CDET=0。在接收终止前持续等待Reg5.CDET=1至少50ms,一旦接收结束,CPU就可以将数据泵设置为发送模式或挂机。 结束语 EFT POS终端是一种技术含量很高的产品,MODEM模块是EFT POS的关键部件之一,MODEM模块的好坏直接关系到该产品的成败。本文提出的解决方案能很好地满足EFT POS的特殊要求,作为一种合理的方案可供国内同行借鉴。MES 参考文献 1中国建设银行龙卡EFT POS系统技术规范.1995.9 2电话网上的数据通信 V系列建议.CCITT蓝皮书,1990,Ⅷ(Ⅰ) 3Z02922 TRANSCTION PROCESSING MODEM DATA SHEET.Zilog Inc. 480C186XL/80C188XL Microprocessor User’s Manual. INTEL Co. 5中华人民共和国通信行业标准 YD/T938-1997.销售点终端(POS)入网技术要求和检测方法
标签:
来源:单片机与嵌入式系统应用 作者:中南大学 湖南计算机股份有限公司 黄深喜
中南大学 樊晓平
长沙电力学院 杨安平 时间:2006/2/12 0:00:00