当前位置:首页 > 模拟 > 模拟
[导读]介绍ISO7816-4及中国金融集成电路(IC)卡规范所规定的T=0协议的CPU卡与终端之间的接口特性和传输协议,及以C51语言设计的CPU卡复位、下电及读写程序。

 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 CPU卡的触点 

  表1 符号说明

   

  1.2 字符帧

  数据在I/O上以图2所示的字符帧方式传输。

  

  图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所示。

  

  图3 触点激活时序

  (2) 卡复位

  卡利用低电平复位来完成异步复位应答,随着触点的激活,终端将进行一个冷复位并从卡获得复位应答。冷复位时序如图4所示。

  

  图4 冷复位时序

  冷复位过程之后,如果收到的复位应答信号不满足标准的规定,终端将启动一个热复位并从卡获得复位响应。热复位时序如图5所示。

  

  图5 热复位时序

  在实际程序设计时,由Reset子程序实现触点激活和卡复位。

  (3) 触点释放时序

  触点释放时序过程如图6所示。

  

  图6 触点释放时序

  2 传输协议与卡命令处理程序

  ISO7816-4及中国金融集成电路(IC)卡规范所规定的异步半双工传输协议,是关于终端为实现传输控制和特殊控制而发出的命令的结构及其处理过程,包括了两种协议:字符传输协议(T = 0)和块传输协议(T = 1)。本文着重讨论字符传输协议(T = 0)协议,它是IC卡推荐使用的通信协议。

  2.1 命令

  命令包含1个连续4字节的命令头,用CLA、INS、P1和P2以及1个可变长度的条件体来表示。

  命令头定义如下:

  ◇ CLA:指令类别,除“FF”外的任何值;

  ◇ INS:在指令类别中的指令码,当最低位是“0”,并且高位半字节既不是“6”也不是“9”时,INS才有效;

  ◇ P1、P2完成INS的参数字节。

  条件体定义如下:

  ◇ Lc(发送数据长度)占1个字节,在命令中定义为发送数据的字节数,取值范围是1~255。

  ◇ Data为将要发送的命令数据域,字节数由Lc定义。

  ◇ Le (接收数据长度)占1个字节,指出命令响应中预期的数据最大字节数。Le的取值范围是0~255。如果Le=0,预期数据字节的最大长度是256。

  可能的命令结构的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 是卡命令处理程序,即终端与卡的信息交互过程的流程图,具体程序见本刊网站。

 

  

  图7 卡命令处理程序流程图

  以下是引脚说明。

  ECPU:决定卡的CLK触点上是否有CLK信号的引脚;

  ICVCC:终端与卡的Vcc触点相接触的引脚;

  ICIO: 终端与卡的I/O触点相接触的引脚;

  ICCLK:终端与卡的CLK触点相接触的引脚;

  ICRST:终端与卡的RST触点相接触的引脚。

  以下是程序中函数介绍。

  ◇ void isr_timer1(void) interrupt 3:定时器1中断子程序,用于按位发送和接收数据字节;

  ◇ void Snd(void): 发送数据子程序,由定时器1实现;

  ◇ void Rcv(BYTE bytenr,BYTE *Buffer):接收数据子程序(参数含义分别是:接收数据字节数、接收数据的存放处),由定时器1实现;

  ◇ 函数1 void Reset(BYTE *len, BYTE *resp):复位子程序(参数含义分别是:返回复位响应数据的长度、复位响应数据);

  ◇ 函数2 void Power_off(void):触点释放子程序;

  ◇ 函数3 WORD CPUC_Cmd(BYTE len,BYTE* comm, BYTE *lenr, BYTE* resp):CPU卡命令子程序(参数含义分别是:发送命令长度、发送命令、返回字节数、返回数据),函数返回状态字节SW1SW2。

  参考文献

  1 全国标准化技术委员。 中国金融集成电路(IC)卡规范(V1.0)。 北京:中国金融出版社

  2 中国华大集成电路设计中心。 CIU9102智能卡接口特性和通信规程

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

上海2025年8月15日 /美通社/ -- 在数字化转型浪潮与数据安全需求的双重驱动下,澜起科技今日重磅推出第六代津逮® 性能核 CPU (以下简称 C6P )。这款融合突破性架构、全栈兼容性与芯片级安全防护的高性能服...

关键字: CPU BSP 数字化 AI

采用分离式架构,充分利用主机 CPU 和 PCIe® 基础设施,克服传统存储瓶颈

关键字: CPU 数据中心 服务器

受生成式 AI 驱动, RISC-V 芯片市场快速发展。预计到2030年,RISC-V SoC出货量将达到1618.1亿颗,营收将达到927亿美元。其中,用于AI加速器的RISC-V SoC出货量将达到41亿颗,营收将达...

关键字: RISC-V CPU AI CUDA ARM 推理

7月21日消息,“全球最佳游戏CPU”锐龙7 9800X3D自去年11月上市以来,价格一直比较坚挺,前期还经常处于缺货状态。

关键字: CPU GPU

人工智能 (AI) 正在以惊人的速度发展。企业不再仅仅是探索 AI,而是积极推动 AI 的规模化落地,从实验性应用转向实际部署。随着生成式模型日益精简和高效,AI 的重心正从云端转向边缘侧。如今,人们不再质疑边缘 AI...

关键字: 人工智能 CPU GPU

在当今数字化时代,汽车不再仅仅是一种交通工具,更是一个移动的智能空间。随着人们对汽车电子设备依赖程度的不断提高,车内 USB 接口的重要性也日益凸显。从最初单纯为手机充电,到如今支持数据传输、连接各种智能设备,USB 接...

关键字: 接口 数据传输 汽车供电

CPU通过将代码转换为机器语言、通过指令集架构(ISA)识别代码、以及利用控制单元(CU)和算术逻辑单元(ALU)执行代码这三种主要方式来认识代码。CPU首先将编写的高级语言代码通过编译器转换为低级语言,即机器语言,这是...

关键字: CPU 机器语言

根据Semico Research的预测,到2025年RISC-V芯片出货量将达到624亿颗,覆盖计算、消费电子和工业等领域。而在这其中,RISC-V MCU是整个RISC-V生态的基本盘,以高质量、应用驱动的解决方案为...

关键字: 青稞 RISC-V 沁恒 接口 MCU
关闭