0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

电子设计 来源:郭婷 作者:电子设计 2018-12-07 08:46 次阅读

CPU卡也称智能卡,卡内的集成电路中带有微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM以及芯片操作系统COS。装有COS的CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能。要了解什么是CPU卡,就必须从IC卡说起。

IC卡是集成电路卡的简称,是镶嵌集成电路芯片的塑料卡片,其外形和尺寸都遵循国际标准(ISO)。芯片一般采用不易挥发性的存储器(ROM、EEPROM)、保护逻辑电路、甚至带微处理器CPU。带有CPU的IC卡才是真正的智能卡。按照嵌入集成电路芯片的形式和芯片类型的不同IC卡大致可分为接触式,非接触式、双界面卡。CPU卡既有接触式也有非接触式的。非加密存储器卡:卡内的集成电路芯片主要是EEPROM,具有数据存储功能,不具有数据处理功能和硬件加密功能。逻辑加密存储器卡:在非加密存储器卡的基础上增加了加密逻辑电路,加密逻辑电路通过校验密码方式来保护卡内的数据对于外部访问是否开放,但只是低层次的安全保护,无法防范恶意性的攻击。由于没有掌握关键的生产工艺,原来我国设计的CPU卡芯片一直在国外生产。这次我国自主设计、制造的CPU卡容量达到了128K。CPU卡可适用于金融、保险、交警、政府行业等多个领域,具有用户空间大、读取速度快、支持一卡多用等特点,并已经通过中国人民银行和国家商秘委的认证

1 CPU卡的接口特性

1.1 触点定义

触点的定义遵循ISO7816-2的规定,如图1所示。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

符号说明如表1所列。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

表1 符号说明

1.2 字符帧

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

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

每个位宽是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所示。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

(2)卡复位

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

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

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

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

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

(3)触点释放时序

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

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

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所列。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

表2

命令全部由终端应用层(TAL)初始化。它通过终端传输层(TTL)向卡发送1个由5个字节组成的命令头,并等待一个过程字节。

2.2 过程字节

卡收到命令后,紧接着返回一个过程字节给TTL,指明下一步该作什么,如表3所列。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

表3

在(1)、(2)情况中,TTL完成动作后将等待另一个过程字节。在(3)情况中,第二个过程字节或状态码(SW2)被收到后,TTL将做以下事情:

◇ 如果过程字节为"61",TTL将发送一个最大长度(P3)为"XX"的得到响应命令(GET RESPONSE)给卡,"XX"为SW2的值。GET RESPONSE命令仅适用于T = 0协议。命令报文的结构如表4所列。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

表4

◇ 如果过程字节为"6C",TTL将立即重发前一个命令的命令头给卡,它的P3值用"XX"代替。"XX"是SW2的值。

◇ 如果过程字节是"6X"(除"60"、"61"及"6C"之外)或"9X",与前两者TTL自己处理不同,TTL将通过命令响应返回状态码给上一层--终端应用层(TAL),由TAL处理,并等待下一个命令。

2.3 卡命令处理程序流程图

图 7 是卡命令处理程序,即终端与卡的信息交互过程的流程图。

CPU卡的接口的基本特性、通信协议与卡命令处理程序设定介绍

以下是引脚说明。

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。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 集成电路
    +关注

    关注

    5320

    文章

    10719

    浏览量

    353301
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10434

    浏览量

    206522
  • 微处理器
    +关注

    关注

    11

    文章

    2128

    浏览量

    81397
收藏 人收藏

    评论

    相关推荐

    主站与采集终端通信协议

    大家谁用C写过 电力用户用电信息采集系统通信协议第一部分 主站与采集终端通信协议程序,可否贴一小段,在下第一次接触者中接口程序,毫无思路,
    发表于 02-17 14:23

    主站与采集终端通信协议程序

    大家谁用C写过 电力用户用电信息采集系统通信协议第一部分 主站与采集终端通信协议程序,可否贴一小段,在下第一次接触者中接口程序,毫无思路,
    发表于 02-18 11:01

    单片机通信协议处理方式介绍

    系统只是处理一些简单的命令,那么可以直接把数据包的解析过程放入到中断处理函数中,当收到正确的数据包的时候,置位相应的标志,在主程序中再对命令
    发表于 07-13 09:12

    SPI通信协议

    EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的
    发表于 10-12 11:30

    采用Nios II软核处理器实现SD接口设计

    *1.4mm.图1 SD 的形状和接口处理器和SD之间的接口电路,要符合一定的约定,这个在SD
    发表于 05-29 05:00

    MultiMediacard大容量串行Flash存储

    协议简单易用,兼容性好,便于和单片机连接使用。本设计采用SPI通信协议,下文将详细介绍。2.2 内部逻辑结构MMC的内部逻辑结构可分为四部分:MMC/SPI
    发表于 06-20 05:00

    无线串口通信协议的相关资料分享

    一、概述本通信协议主要应用于MCU 和无线模组形式的物联终端设备中,其应用场景如下图所示:MCU作为系统主控,主要负责通过外部接口对外设(LED、开关灯)进行控制,完成设备业务逻辑,并利用通信协议
    发表于 11-03 06:47

    SD是什么?SD命令有哪些基本特性

    SD是什么?分为哪几类?SD的物理结构是由哪些部分组成的?SD命令有哪些基本特性呢?
    发表于 12-10 07:06

    UUU脚本FB和FBK命令通信协议是否使用相同的FastBoot协议

    您好 UUU 脚本 FB 和 FBK 命令通信协议是否使用相同的 FastBoot 协议
    发表于 06-08 07:36

    RS485通信协议

    RS485通信协议 、RS485 通信协议1.概述C320 系列变频器提供标准RS485 通信接口,用户可通过PC/PLC 实现集中监控(发送运行
    发表于 04-07 17:26 88次下载

    RS485 通信协议教程

    RS485 通信协议教程 概述C320 系列变频器提供标准RS485 通信接口,用户可通过PC/PLC 实现集中监控(发送运行命令设定,变
    发表于 04-13 14:54 91次下载

    RS485接口通信协议教程

    C320 系列变频器提供标准RS485 通信接口,用户可通过PC/PLC 实现集中监控(发送运行命令设定, 变频器的工作参数和读取变频器的工作状态),以适应特定的使用要求。本附录的
    发表于 03-04 15:46 601次下载

    Modbus通信协议教程

    Modbus通信协议教程Modbus通信协议教程Modbus通信协议教程
    发表于 12-08 14:14 69次下载

    STM32的三种串口通信协议介绍

    本文首先介绍了STM32串口硬件电路及串口编程,其次介绍了STM32的三种串口通信协议,最后介绍了STM32串口通信
    发表于 05-25 09:33 3.7w次阅读
    STM32的三种串口<b class='flag-5'>通信协议</b><b class='flag-5'>介绍</b>

    Robin通信协议程序和工程文件免费下载

    本文档的主要内容详细介绍的是Robin通信协议程序和工程文件免费下载
    发表于 07-09 08:00 0次下载
    Robin<b class='flag-5'>通信协议</b>的<b class='flag-5'>程序</b>和工程文件免费下载