| EFT POS終端系統(tǒng)中MODEM模塊的解決方案 中南大學(xué)、湖南計(jì)算機(jī)股份有限公司黃深喜 中南大學(xué)樊曉平 長沙電力學(xué)院楊安平 摘要介紹電子金融卡交易終端(EFT POS)系統(tǒng)中MODEM模塊的一種實(shí)現(xiàn)方案。該方案解決了EFT POS終端中MODEM必須具備的快速握手、通信穩(wěn)定、良好的傳輸損傷承受能力以及支持HDLC同步協(xié)議等重要問題。 關(guān)鍵詞電子金融卡交易終端(EFT POS)嵌入式MODEM數(shù)據(jù)泵(data pump)數(shù)據(jù)訪問裝置(DAA)HDLC 總體概述 現(xiàn)代社會里,信用卡應(yīng)用已經(jīng)非常普及。與現(xiàn)金相比,它具有攜帶方便、安全易用、便于結(jié)算等優(yōu)點(diǎn)。隨著信用卡的發(fā)行量急劇增大,信用卡的關(guān)鍵服務(wù)設(shè)備電子金融卡交易終端(EFT POS)\[1\]需求量大增。由于技術(shù)難度等問題,大部分EFT POS由國外進(jìn)口,國內(nèi)只有幾家有實(shí)力的廠商研制了此類產(chǎn)品。 MODEM\[2\]模塊是EFT POS的重要組成部分之一,也是設(shè)計(jì)難點(diǎn)之一。MODEM模塊設(shè)計(jì)好壞直接影響著EFT POS的設(shè)計(jì)能否成功。 EFT POS的MODEM模塊與通用MODEM有很大差異,它專用于信用卡金融數(shù)據(jù)的傳輸,不需要語音和傳真功能。信用卡金融數(shù)據(jù)通信的數(shù)據(jù)量很小,因此通信速率不超過2400bps;但要求每次刷卡通信響應(yīng)很快,因此MODEM應(yīng)有快速握手能力。另外,為保證信用卡金融數(shù)據(jù)傳輸?shù)姆(wěn)定、安全和可靠,要求MODEM具備良好的傳輸損傷承受能力,采用HDLC同步協(xié)議通信。 根據(jù)EFT POS應(yīng)用的特殊要求,我們在設(shè)計(jì)MODEM模塊時(shí)精心選型,最后確認(rèn)采用Zilog公司的MODEM數(shù)據(jù)泵Z02922\[3\]作為該模塊的核心部分,并利用80C188 \[4\]CPU控制該數(shù)據(jù)泵,實(shí)現(xiàn)符合上述特殊要求的MODEM。該模塊的功能框圖如圖1所示。 圖1MODEM模塊的功能框圖一、 硬件設(shè)計(jì) MODEM模塊的硬件設(shè)計(jì)主要包括:Z02922與主控CPU(80C188)的接口電路以及Z02922與電話線之間的數(shù)據(jù)訪問裝置(DAA)\[5\]電路。 1. Z02922的關(guān)鍵特性 · 集成了數(shù)據(jù)泵(data pump)和模擬前端(AFE); · 支持V.22bis,V.22,V.21,V.23,Bell 212A,Bell 103數(shù)據(jù)模式\[2,3\]; · 采用FSK、DPSK或QAM編碼; · V.29快速連接握手(小于50ms); · 內(nèi)含集成合成電路; · 自動握手功能; · 所有速率均支持HDLC同步協(xié)議。 2. 引腳說明 Z02922數(shù)據(jù)泵采用PLCC封裝,其引腳排列如圖2所示,引腳功能如表1所列。 3. 與CPU的接口電路 Z02922在EFT POS終端中直接采用主CPU(80C188)控制,因此Z02922的串行模式禁用,使用并行模式與80C188接口。仔細(xì)分析二者的時(shí)序關(guān)系,可知Z02922能直接掛在80C188的總線上。與CPU的接口電路如圖3所示。 4. DAA電路 MODEM數(shù)據(jù)泵是通過數(shù)據(jù)訪問裝置(DAA)電路與公用電話網(wǎng)(PSTN)接口的。DAA電路中有一個(gè)隔離變壓器,它完成電平轉(zhuǎn)換和阻抗匹配功能。采用阻容電路將Z02922的TXO+/TXO-和RXI+/RXI-信號轉(zhuǎn)換合成為TRXA1和TRXA2后接入變壓器的次級,實(shí)現(xiàn)4線收發(fā)與2線收發(fā)之間的轉(zhuǎn)換功能。 隔離變壓器的初級經(jīng)繼電器控制后接入PSTN圖3EFT POS MODEM模塊的原理示意圖圖2Z02922引腳圖表1Z02922引腳功能 引腳〖〗符號〖〗功能說明1〖〗RESET〖〗復(fù)位信號線2〖〗GND〖〗數(shù)字地3〖〗TEST1〖〗測試引腳,正常操作應(yīng)接GND4〖〗EYECLK〖〗眼圖形時(shí)鐘5〖〗EYEOUT〖〗眼圖形輸出6〖〗EYESTB〖〗串行眼圖形使能7〖〗AVDD〖〗模擬部分的電源(+5V)8〖〗TXO+〖〗發(fā)送差分模擬輸出端+9〖〗TXO-〖〗發(fā)送差分模擬輸出端-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〖〗數(shù)字電源(+5V)25〖〗HRD〖〗讀控制端26〖〗GND〖〗數(shù)字地27~34〖〗HD0~HD7〖〗數(shù)據(jù)輸入輸出35〖〗RLSD〖〗振鈴檢測端36〖〗RXD〖〗串口輸入37〖〗TCLK〖〗串口發(fā)送時(shí)鐘38〖〗TXD〖〗串口輸出39〖〗OH〖〗摘機(jī)繼電器控制端40〖〗RTS〖〗串口請求發(fā)送信號41〖〗TEST2/RCLK〖〗測試端2/串口接收時(shí)鐘42〖〗XTAL〖〗晶振輸出端43〖〗EXTAL〖〗晶振輸入端44〖〗VDD〖〗數(shù)字電源(+5V)網(wǎng)。由于驅(qū)動繼電器的電流較大,故不能直接采用邏輯電路的控制信號來驅(qū)動?刂菩盘栃枰萌龢O管2N3906放大后才能驅(qū)動繼電器。 為了檢測振鈴信號,在變壓器初級采用光電耦合管4N35。4N35將振鈴信號隔離并轉(zhuǎn)換成TTL電平,供CPU(80C188)檢測。 Z02922是針對金融交易處理設(shè)計(jì)的MODEM數(shù)據(jù)泵。在我們設(shè)計(jì)DAA電路時(shí)遵循了通信行業(yè)標(biāo)準(zhǔn)YD/T 938-1997《銷售點(diǎn)終端(POS)入網(wǎng)技術(shù)要求和檢測方法》\[5\]和其它有關(guān)標(biāo)準(zhǔn)的要求。設(shè)計(jì)好的MODEM模塊具有良好的傳輸損傷承受能力,可保證通信的穩(wěn)定性和可靠性。 二、 軟件設(shè)計(jì)及其關(guān)鍵點(diǎn) MODEM模塊的軟件設(shè)計(jì)包括:發(fā)送音頻與音頻檢測、呼叫進(jìn)程監(jiān)控、音頻與脈沖撥號、MODEM握手控制與數(shù)據(jù)模式設(shè)定、HDLC協(xié)議處理和V.29快速連接握手控制以及AT命令解釋器7個(gè)模塊。其中,對于信用卡金融數(shù)據(jù)交易來說,HDLC協(xié)議處理、V.29快速連接握手控制是至關(guān)重要的。 1. 軟件接口 Z02922提供7個(gè)寄存器,如表2所列,和512字(數(shù)據(jù)為16位)RAM作為與CPU的軟件接口。80C188通過這個(gè)軟件接口來控制MODEM配置、獲取MODEM狀態(tài)、接收通信數(shù)據(jù)以及裝載要發(fā)送的數(shù)據(jù)。 表2Z02922寄存器 序號〖〗寄存器功能〖〗地址〖〗bit7〖〗bit6〖〗bit7〖〗bit6〖〗bit7〖〗bit6〖〗bit7〖〗bit6〖〗訪問方式1〖〗RAM訪問低〖〗000〖〗RAMDL(數(shù)據(jù)泵RAM數(shù)據(jù),低八位數(shù)據(jù))〖〗讀寫2〖〗RAM訪問高〖〗001〖〗RAMDH(數(shù)據(jù)泵RAM數(shù)據(jù),高八位數(shù)據(jù))〖〗讀寫3〖〗RAM訪問地址〖〗010〖〗RAMAL(數(shù)據(jù)泵RAM數(shù)據(jù),地址)〖〗只寫4〖〗并行數(shù)據(jù)〖〗011〖〗DATAP(數(shù)據(jù)泵并行數(shù)據(jù))〖〗讀寫5〖〗RAM控制及狀態(tài)〖〗100〖〗TXIE〖〗RXIE〖〗RAMIE〖〗TPDM〖〗RTSP〖〗RAMRW〖〗RAMRQ〖〗RAMAH〖〗讀寫6〖〗MODEM狀態(tài)〖〗101〖〗TXI〖〗RXI〖〗RAMI〖〗DPBUSY〖〗〖〗RTRND〖〗CDET〖〗RES〖〗只讀7〖〗HDLC〖〗111〖〗0〖〗0〖〗0〖〗0〖〗0〖〗TEND〖〗RXERR〖〗EOF〖〗讀寫2. 關(guān)鍵之一:HDLC協(xié)議處理 Z02922內(nèi)嵌HDLC協(xié)議固件,可在所有通信速率下操作。HDLC協(xié)議固件能執(zhí)行將數(shù)據(jù)打包成HDLC幀格式或?qū)DLC幀格式數(shù)據(jù)拆包的功能,包括:自動開關(guān)標(biāo)志發(fā)生器、插入0或刪除0、標(biāo)志和廢棄檢測以及CRC校驗(yàn)和的計(jì)算和檢測。HDLC協(xié)議處理過程如下。 發(fā)送過程: (1) 當(dāng)Reg5.TXI=1時(shí),寫B(tài)yte1到DATAP,重復(fù)這一步直至所有數(shù)據(jù)發(fā)送傳輸完畢。如果Reg4.TXIE=1,則數(shù)據(jù)泵在準(zhǔn)備傳輸下一字節(jié)時(shí),即Reg5.TXI=1時(shí),產(chǎn)生中斷。 (2) 當(dāng)最后一字節(jié)ByteN發(fā)送完畢,等待數(shù)據(jù)泵將Reg7.TEND設(shè)置為1。這表明數(shù)據(jù)泵已經(jīng)結(jié)束當(dāng)前幀。現(xiàn)在數(shù)據(jù)泵計(jì)算并傳輸當(dāng)前幀的CRC校驗(yàn)和及傳輸結(jié)束標(biāo)志,直到數(shù)據(jù)泵設(shè)置Reg4.TXI=1(以指明數(shù)據(jù)泵在準(zhǔn)備接收另外一個(gè)字節(jié))之后至少8位時(shí)間,才會設(shè)置Reg7.TEND=1。為了傳輸其它幀,則重復(fù)(1)~(2)步。 (3) 當(dāng)數(shù)據(jù)泵開始發(fā)送幀結(jié)束標(biāo)志時(shí),設(shè)置Reg7.TEND=0。本幀在數(shù)據(jù)泵設(shè)置Reg7.REND=0之后8位時(shí)間,本幀傳輸結(jié)束。 接收過程: (1) 準(zhǔn)備接收新幀。 (2) 當(dāng)Reg5.RXI=1時(shí),數(shù)據(jù)泵已經(jīng)接收一字節(jié)。先讀Reg7,然后讀DATAP。如果Reg4.RXIE=1,則當(dāng)設(shè)置Reg.RXI=1時(shí),數(shù)據(jù)泵產(chǎn)生中斷。 (3) 此步根據(jù)REG7的值進(jìn)行: ① 如果RXERROR=0且EOF=0,則步驟(2)讀出的DATAP值為HDLC幀字節(jié)。重復(fù)第(2)步接收完余下的幀字節(jié)。 ② 如果RXERROR=0且EOF=1,則帶正確校驗(yàn)和的HDLC幀已經(jīng)接收。如果Byte1…ByteN+3已經(jīng)讀完,并且DATAP中的字節(jié)N+3正在讀,則前兩個(gè)字節(jié)——字節(jié)N+1、字節(jié)N+2是幀校驗(yàn)和字節(jié),并且余下的Byte1…ByteN為幀數(shù)據(jù)字節(jié)。繼續(xù)第①步接收下一幀。如果RXERROR=1,則廢棄接收到的幀字節(jié),并重復(fù)第①步以接收下一幀。 ③ 如果DATAP的值為0FFH,則收到了HDLC廢棄序列;如果DATAP為07EH,則收到了帶錯(cuò)誤校驗(yàn)和的HDLC幀。 3. 關(guān)鍵之二:V.29快速握手 在V.29快速握手模式下,速率為9600bps,為半雙工同步通信,握手時(shí)間小于50ms,這種特性對信用卡金融數(shù)據(jù)通信來說非常有用。V.29快速握手的過程如下。 發(fā)送過程: (1) 電話線連接建立后,在每個(gè)MODEM首次傳輸之前,設(shè)置Dpctrl.TXSTRN=0,進(jìn)行長訓(xùn)練系列;對于后續(xù)訓(xùn)練,則設(shè)置Dpctrl.TXSTRN=1進(jìn)行短訓(xùn)練序列。 (2) 設(shè)置Confi.MODE=020H(9600bps,V29)或021H(7200bps,V29)。 (3) 設(shè)置Reg4.RTSP=1,使數(shù)據(jù)泵開始發(fā)送。 (4) 如有需要,在Config.MODE發(fā)送返回保護(hù)音的同時(shí),設(shè)置Config.ECHOPRTEN和Config.ECHOPRTLEN。 (5) 檢測Reg5.CDET,當(dāng)Reg5.CDET=1時(shí),CPU開始傳輸數(shù)據(jù);如果要求在并行模式下產(chǎn)生傳輸中斷信號,則設(shè)置Reg5.TXIE=1。 (6) 如有需要,設(shè)置Reg4.RTSP=0以結(jié)束發(fā)送。等待Reg5.DPBUSY=0,指明開始接收或掛機(jī)之前數(shù)據(jù)泵完成發(fā)送。 接收過程: (1) 在電話網(wǎng)線連接已經(jīng)建立之后,每個(gè)MODEM開始接收之前,設(shè)置Dpctrl. RXSTRN=0。 (2) 設(shè)置Confi.MODE=020H(9600bps,V29)或021H(7200bps,V29)。 (3) Reg4.RTSP=0,使數(shù)據(jù)泵開始接收。 (4) 檢測Reg5.CDET,當(dāng)Reg5.CDET=1時(shí),CPU開始傳輸數(shù)據(jù);如果要求在并行模式下產(chǎn)生傳輸中斷信號,則設(shè)置Reg5.TXIE=1。 (5) 接收數(shù)據(jù)至少50ms,然后設(shè)置Dpctrl.RXSTRN=1,以便使數(shù)據(jù)泵進(jìn)行數(shù)據(jù)接收的后續(xù)短訓(xùn)練系列。 (6) 當(dāng)數(shù)據(jù)泵檢測到載波信號消失時(shí),則設(shè)置Reg5.CDET=0。在接收終止前持續(xù)等待Reg5.CDET=1至少50ms,一旦接收結(jié)束,CPU就可以將數(shù)據(jù)泵設(shè)置為發(fā)送模式或掛機(jī)。 結(jié)束語 EFT POS終端是一種技術(shù)含量很高的產(chǎn)品,MODEM模塊是EFT POS的關(guān)鍵部件之一,MODEM模塊的好壞直接關(guān)系到該產(chǎn)品的成敗。本文提出的解決方案能很好地滿足EFT POS的特殊要求,作為一種合理的方案可供國內(nèi)同行借鑒。MES 參考文獻(xiàn) 1中國建設(shè)銀行龍卡EFT POS系統(tǒng)技術(shù)規(guī)范.1995.9 2電話網(wǎng)上的數(shù)據(jù)通信 V系列建議.CCITT藍(lán)皮書,1990,Ⅷ(Ⅰ) 3Z02922 TRANSCTION PROCESSING MODEM DATA SHEET.Zilog Inc. 480C186XL/80C188XL Microprocessor User’s Manual. INTEL Co. 5中華人民共和國通信行業(yè)標(biāo)準(zhǔn) YD/T938-1997.銷售點(diǎn)終端(POS)入網(wǎng)技術(shù)要求和檢測方法 |