|
|
| | -文章搜索 - 最新文章 - | |
CPU卡的接口特性、传输协议与读写程序设计 |
| 发布时间:2006年3月4日 点击次数:2218 |
| 来源:单片机与嵌入式系统应用 作者:北京恒基伟业中端产品开发部 陈峰;国瑞数码安全有限公司工程部 尹寒 |
摘要 介绍ISO7816-4及中国金融集成电路(IC)卡规范所规定的T=0协议的CPU卡与终端之间的接口特性和传输协议,及以C51语言设计的CPU卡复位、下电及读写程序。 关键词 IC卡 CPU卡 终端 复位 字符传输协议(T=0协议) IC卡的概念是20世纪70年代提出的。法国BULL公司首创IC卡产品,并将这项技术应用到金融、交通、医疗、身份证明等多个方面。IC卡的核心是集成电路芯片,一般为3μm以下的半导体技术制造。IC卡具有写入数据和存储数据的能力。IC可存储其中的内容,根据需要可以有条件地供外部读取,或供内部信息处理或校验用。 根据各种集成电路的不同,IC卡可以分为以下三类:存储器卡、逻辑加密卡与CPU卡。其中,存储器卡仅有数据存储能力,没有安全措施;逻辑加密卡仅有几个字节的密码,卡中有一个错误计数器,如果指定次数验证密码失败,则卡中数据被自动锁死,该卡数据不能再更改;CPU卡是这三类IC卡中最高级的卡,一般有ROM、RAM和EEPROM三种存储器。ROM中存放的是程序,程序是为IC卡的CPU专门设计的,用来解释读写器终端送来的命令。IC卡应用系统根据应用需要由终端送一系列命令到CPU卡,通过改变命令的内容和命令的顺序就可以满足不同的需要,因此有较高的灵活性;同时,因为CPU有计算功能,存储容量又大,可以进行比较复杂的加密/解密运算,极大提高了安全性。EEPROM主要用来存放一些应用数据,其容量比逻辑加密卡大,可实现一卡多用,是目前最安全的卡类型。因此,CPU卡是目前IC卡的重要发展方向之一。 1 CPU卡的接口特性 1.1 触点定义 触点的定义遵循ISO7816-2的规定,如图1所示。符号说明如表1所列。
表1 符号说明 1.2 字符帧 数据在I/O上以图2所示的字符帧方式传输。
每个位宽是1个etu,etu = 372/f。在此处,f = 3.57 MHz。 起始位由接收端通过对I/O周期采样获得,采样周期应小于0.2 etu。2个连续字符起始位上升沿之间的间隔时间等于(10±0.2)etu加上1个保护时间(最少2个etu)。在保护时间内,卡与终端都应处于接收模式(I/O为高电平状态)。如果卡或终端作为接收方检测出奇偶错误,则I/O被置为低电平,以向发送方表明出现错误。 1.3 卡操作 卡操作的步骤如下: ① 将卡插入终端接口设备,使两者的触点相接并激活触点; ② 将卡复位,建立卡与终端间的通信; ③ 执行操作; ④ 释放触点,并从接口设备取出卡片。 以下是除第③步(执行操作)以外,各步的时序要求。 (1) 触点激活 时序如图3所示。
(2) 卡复位 卡利用低电平复位来完成异步复位应答,随着触点的激活,终端将进行一个冷复位并从卡获得复位应答。冷复位时序如图4所示。
冷复位过程之后,如果收到的复位应答信号不满足标准的规定,终端将启动一个热复位并从卡获得复位响应。热复位时序如图5所示。
在实际程序设计时,由Reset子程序实现触点激活和卡复位。 (3) 触点释放时序 触点释放时序过程如图6所示。
2 传输协议与卡命令处理程序 ISO7816-4及中国金融集成电路(IC)卡规范所规定的异步半双工传输协议,是关于终端为实现传输控制和特殊控制而发出的命令的结构及其处理过程,包括了两种协议:字符传输协议(T = 0)和块传输协议(T = 1)。本文着重讨论字符传输协议(T = 0)协议,它是IC卡推荐使用的通信协议。 2.1 命令 命令包含1个连续4字节的命令头,用CLA、INS、P1和P2以及1个可变长度的条件体来表示。 命令头定义如下: ◇ CLA:指令类别,除"FF"外的任何值; 条件体定义如下: ◇ Lc(发送数据长度)占1个字节,在命令中定义为发送数据的字节数,取值范围是1~255。 可能的命令结构的4种情况定义如表2所列。 表2 命令全部由终端应用层(TAL)初始化。它通过终端传输层(TTL)向卡发送1个由5个字节组成的命令头,并等待一个过程字节。 2.2 过程字节 卡收到命令后,紧接着返回一个过程字节给TTL,指明下一步该作什么,如表3所列。 表3 在(1)、(2)情况中,TTL完成动作后将等待另一个过程字节。在(3)情况中,第二个过程字节或状态码(SW2)被收到后,TTL将做以下事情: ◇ 如果过程字节为"61",TTL将发送一个最大长度(P3)为"XX"的得到响应命令(GET RESPONSE)给卡,"XX"为SW2的值。GET RESPONSE命令仅适用于T = 0协议。命令报文的结构如表4所列。 表4 ◇ 如果过程字节为"6C",TTL将立即重发前一个命令的命令头给卡,它的P3值用"XX"代替。"XX"是SW2的值。 ◇ 如果过程字节是"6X"(除"60"、"61"及"6C"之外)或"9X",与前两者TTL自己处理不同,TTL将通过命令响应返回状态码给上一层--终端应用层(TAL),由TAL处理,并等待下一个命令。 2.3 卡命令处理程序流程图 图 7 是卡命令处理程序,即终端与卡的信息交互过程的流程图,具体程序见本刊网站。
以下是引脚说明。 ECPU:决定卡的CLK触点上是否有CLK信号的引脚; 以下是程序中函数介绍。 ◇ void isr_timer1(void) interrupt 3:定时器1中断子程序,用于按位发送和接收数据字节; 参考文献 1 全国标准化技术委员. 中国金融集成电路(IC)卡规范(V1.0). 北京:中国金融出版社 |
|
|
|
|
[技术文章] 相关文章: 单片机应用系统中去除工频干扰的快速实现简介:
摘要 工频干扰是各类工控测量系统中最常见的一种干扰信号,对有用信号的检测起着极大的妨碍作用。因此,在各类测量系统中,都需考虑工频干扰的抑制问题。本文以自适应相干模板法为基础,讨论用该方法在单片机应用系统中去除工频干扰的快速实现问题。 关键词 工频干扰 自适应相干模板法 滤波 引言 针对工频干扰的特点,本文使用参考文献1所提出的自适应相干模板法。这是一种极其简单、有效的滤除工频干扰的算法,十分有利于单片机快速实现,在采样率不太高的情况下,能达到实时滤波。该算法之所以利于单片机快速实现,是因为算法本身多数为加法和减法运算,不涉及乘法运算,且通过合理的选择M...... 时变电磁场的边界条件
SMB可测性设计
多芯片封装技术及其应用
CANopen协议在伺服电机控制系统中的实现
嵌入式应用设计模式
在单片机平台上建立规范化的液晶显示接口
在51系列单片机上实现非抢先式消息驱动机制的RTOS
VxWorks操作系统及实时多任务程序设计
单片机智能化仪器嵌入式在线仿真设计方法 |
|
|
|