
IC卡接口芯片TDA8007的读写器设计.docx
6页IC卡接口芯片TDA8007的读写器设计摘要阐述=0传输协议,给出卡读写器中使用的卡指令流程和原理框图;重点介绍其中的卡接口芯片的8007,给出通过8007对卡上下电过程、具体程序及8007使用中应注意的问题关键词卡80077816卡即集成电路卡,是将一个集成电路芯片镶嵌于朔料基片中,圭寸装成卡的形式,外形与常用的覆盖磁条的磁卡相似卡芯片具有写入和存储数据的能力卡存储器中的内容根据需要可以有条件地供外部读取,或供内部信息处理和判定根据卡中所镶嵌的集成电路的不同,可以分成存储器卡、逻辑加密卡、卡三类其中卡即为由中央处理器、、随机存储器以及固化在只读存储器中的片内操作系统组成的卡卡按与外界数据传送的形式来分,有接触式和非接触式两种图1=0的卡指令实现流程1卡=0的协议介绍目前大多数卡采用=0模式所谓=0,即卡与接口设备即读写器中数据传输方式为异步半双工字符传输模式从=0协议的功能出发,该协议的实现可以分为物理层、数据链路层、终端传输层和应用层其中物理层和数据链路层可以具体参看7816标准在=0协议应用,终端传输层和应用层实际上是不易分割来说明的,下面简单说明终端传输层根据卡片返回的过程字符和状态字节执行相应的操作,使读写器对数据的处理过程明朗清晰。
卡片返回的过程字节和状态字节跟应用层发送给卡的,应用协议数据单元和使用等有关表1为未用时的终端传输层中返回的过程字节表1字节值结果空闲,所有其余的数据字节相继续被传送+空闲,下一个数据字节随后被传送12空闲,接口设备等待2字节应用层即为由、、1、2、3作为命令头组成的命令消息体的响应和应答处理层其中为指令类别,为指令码,1、2为参数,3为根据的不同格式为发送给卡的数据长度或期望响应的数据长度的几种情况如表2所列表2命令头发送数据长度发送的数据期望应答的数据长度通用1情况一1情况二1情况三1情况四12卡对接口设备即读写器的应答情况如表3所列表3体尾数据12其中体中的数据字节数由命令中的指出;1、2是必备的,可以指明命令执行正确或执行出错的错误类型2 基于=0传输协议的的指令流程根据目前卡的常用=0协议、自带编程升压电路的应用情况,以及本读写器接收卡数据报文直接发送机处理的特点,本读写器可行的命令和响应的处理流程如图1所示3 读写器的硬件组成读写器的硬件部分主要由接口管理芯片8007、8952、外部数据存储器24257、串口电平转换芯片3226、安全卡座即卡座、应用卡座、键盘口供电的串口通信线及其它相关元器件组成。
图2所示为通过机控制管理的外置于机的接触式卡读写器通过定制的数据线,该读写器的5直流电源可直接由键盘口提供,同时数据线还负责机与读写器的串行数据交换在大部分卡读写应用中,都涉及到卡的认证和数据读写的国解密问题,所以本读写器除了提供一个供用户使用的卡接口卡座外,还内置了一个卡,即安全卡卡座,以方便安装卡,保证应用卡读写时的数据安全,保护用户的利益范文先生网收集整理硬件的其它组成部分,如处理器,目前采用的8952其4的程序存储器可以满足读写器的程序空间需要由于机与8952、8952与8007的数据交换要求的暂存数据空间比较大,8952提供的256字节不够,需外加一片数据存储器本读写器中使用的是华邦的24257其有32存储容量,接口部分的主要芯片为的80074 卡接口芯片应用下面介绍一下8007及其应用8007的原理结构如图3所示8007芯片能够提供两个能同时满足7816标准及和11-11标准的卡读写接口在本读写器中,一个用于与应用通信,另一个用于与安全卡通信与上文卡的触点图相对应,、、、、、、4、8其中=1,2;4、8未用;可用于检测卡是否插入具体应用可参看8007的技术文档都直接由8007提供给卡接口相连,只需通过其接口控制并行通信来管理8007,便可实现对卡的上电、下电及读写数据处理。
其中,微处理器既可以通过总线复用把8007内部的所有寄存器作为外部存储器,用寻址,也可以通过非总线复用方式访问,此时8007用0〜3来区分内部各寄存器另外,8007的片选信号和外部中断信号线可以方便读写器处理多个卡头8007的特别硬件处理、接口短路处理、电源出错处理等也给卡和卡读写器提供了比较高的安全保护;同时,8007内部集成的电源管理功能允许8007的供电范围可达27〜60,并且8007通过电源管理可以给卡提供50、30及18的电源,以适合不同工作电压的卡应用图3卡接口芯片8007的原理框图本读写器是通过总线复用对8007的寄存器进行控制的其中的15为8007的片选,0口为与之通信的8位数据线,8007的各寄存器预先被宏定义的成微处理器的一个外部数据单元下面电程序处的定义,从而方便访问面结合8007寄存器的定义和位分配,给出应用8007接口芯片对卡进行上电激活和下电的程序8007的寄存器主要三类第一类,通用寄存器①卡槽选择;②硬件状态;③定时器1、2、3第二类,7816串行处理寄存器①串行状态;②混合状态;③串行发送;④串行接收;⑤队列控制第三类,卡专属寄存器①可编程分频;②保护时间;③串行控制1、2;④时钟配置;⑤上电控制。
注意对于卡专属的寄存器,即卡接口1、卡接口2分别对应的寄存器,逻辑上具有相同的名及访问地址,因而,对不同的瞳操作,需要通过选择对应的卡槽来切换卡专卡属寄存器的映射的物理空间所以,接口设备每次从一个卡的上下电或读写转向另一卡,都需要访设定对应的卡槽对于每个寄存器的位定义不再多述,主动性者可参看8007的技术文档5 上下电过程及具体程序图4为卡的上电时序图要实现之,需对进行写操作其中=0,=2,上升表示激活了8007中的电压转换电路当置高时,只要能检测到选定卡槽中的卡存在,且没有8007能检测到并在中指示的硬件错误出现,则对应卡接口的1或2将能被提供响应的电平5、3或18随后对应卡的数据线被置成高状态状态,给卡提供设定的时钟信号,常用为35712大约在置高108后,置高因为为的拷贝,则对应卡的被置高然后,用8007提供的定时器3、2设定对即复位应答首字节的最大等待时间120,设定定时器工作方式,便开始等待首字节到来后做相应处理至此,卡上电激活工作完成,随后可以根据字节的要求的工作方式对卡进行相应的读写处理具体见上电程序图48007产生满足7816标准诉卡上电激活时序8007寄存器访问的预定义##[08000]表示等各寄存器上电程序如下15=0;片选8007&=08;|=;选择卡,=1,2&=07;|=07;|=008;复位的寄存器2&=07;异步模式,=0&=0;时钟停止于低电平2|=060;关闭附加中断及收发中断=0;保持时间12==1为函数变量|=008;18卡用==3|=002;3卡用&=0;5卡用2&=0;==0,--31=000;1奇偶校验1=00;=12=000;不分频&=0;=02|=004;不自动转换1=001;正向约定1&=07;接收模式3=0;复位定时标志=0;接收首字节定时标志|=001;激活2=06;3=000;=061;拉高前等待1083==0;定时时间到,在中断中设置3=1=000;关闭定时器|=004;给复位拉高2=078;3=000;=061;拉高前等待=1;;复位应答处理函数图5为卡的下电时序图。
相对于上电时序,下电过程对时间的要求不是很严格,只要设计者控制8007按照一定的顺序置低、和停止即可,然后8007会自动逐步释放、具体处理见下电程序下电程序15=0;&=0;=0;下电&=0;卡的复位脚保持0&=0;停止时钟于低|=010;停止时钟15=1;6使用8007应当注意的问题8007对于、出错,芯片过热如图卡为电源短路卡或金属片,或卡插入拔出时都会产生中断输出每次中断处理结束,应注意把中的值读入一个临时地址,以便清楚中的标志每次发送数据到前,即接收卡的最后一个数据之前,应设置寄存器1中的位,以便接收完卡的数据后,自动切换成发送状态对8007部分布线时应注意,时钟信号线与其它线的隔离最好被地线包围对于电路板上8007部分的电容应尽量靠近8007,其中电容、、尤其如此,并最好不要在这些电容连向8007引脚过程中使用过孔;同时,、、电容的要尽量小对8007处理的两个卡座中的任何一个执行上电、下电、读写卡操作之前,必须执行选择卡座的操作函数,以便选中具体的卡进行处理对卡操作中上电时序中的定时,读写卡字节间等待定时等都可使用8007中的定时器及定时控制器操作,注意其定时器为向下计数方式。
结语本文主要从卡的=0的协议出发,介绍此类读写器设计的一些技术问题值得指出的是,=0协议仅仅是卡与外界数据交换的一种传输协议,只要在软件上适当修改并利用接口芯片8007突出的处理能力,本读写器完全可以实现对其它7816卡、、'11-11卡的读写。
