智能卡技术笔记_畅想未来の水星_百度空间

智能卡(Smartcard 或 IC Card),又称智慧卡、聪明卡、集成电路卡,是指粘贴或嵌有集成电路芯片的一种便携式卡片塑胶。卡片包含了微处理器、I/O接口及内存,提供了资料的运算、存取控制及储存功能,卡片的大小、接点定义目前是由ISO规范统一,主要规范在ISO7816中。常见的有电话IC卡、身份IC卡,以及一些交通票证和存储卡。

历史
IC卡是一种外形与信用卡一样,卡上含有一个符合ISO 标准的集成电路芯片卡片,又称“集成电路卡”、智能卡,英文名称“Integrated Circuit Card”或“Smart card”,是法国人Ro-land morono于1974年发明的,将具有存储加密及数据处理能力的集成电路芯片模组封装于和信用卡尺寸一样大小的塑胶片基中,便构成了IC卡。法国布尔(BULL)公司于1976年首先制成IC卡产品,并开始应用在各个领域。

组成
基片:现在多为PVC材质,也有塑料或是纸制
接触面:金属材质,一般为铜制薄片,集成电路的输入输出端连结到大的接触面上,这样便于读写器的操作,大的接触面也有助于延长卡片使用寿命;触点一般有8个(C1 C2 C3 C4 C5 C6 C7 C8, C4和C8设计为将来保留用),但由于历史原因有的智能卡设计成6个触点(C1 C2 C3 C5 C6 C7)。另外,C6原来设计为对EEPROM供电,但因后来EEPROM所需的程式电压(Programming Voltage)由芯片内直接控制,所以C6通常也就不再使用了。
集成芯片:通常非常薄,在0.5mm以内,直径大约1/4厘米,一般成圆形,方形的也有,内部芯片一般有CPU RAM ROM EPROM.

参数
智能卡与接口设备(IFD?)电压分别有3V 5 V ± 10%,即 2.7 V to 5.5 V.
GSM智能卡也是5V,但手机内部其他部件都是3V,所以和智能卡有个额外的电压转换部件。

依资料传输方式分类
接触式 (Contact card) 读写需要IO线路接触。
非接触式 (Contact less card) 使用RF、红外线、感应电动势、非IO线路接触,(非接触技术类似RFID技术)。
混合式(Hybrid-card 或 Combi-card)同时拥有接触与非接触接口。

目前主要应用在
身份辨识-运用内含微电脑系统对资料进行数学运算,确认其{wy}性。
点数计算-内建计数器(counter)替代成货币、红利点数、等,数字型的资料。


运作
卡片内部运作除了硬件之外还有其软件,通常会需要一个核心COS(Card Operating System)提供服务,其内部软件系统架构如下: 硬件 (Hardware) → COS → AP (Application)

相关标准
ISO 7816(接触式智能卡,规定了规格/电气特性/通讯协议/部件等各方面) ISO 14443(非接触式智能卡)

---
触点号        分配 触点号      分配
C1 电源电压(VCC) C5 地 (GND)
C2 复位(RST) C6 编程电压 (VPP)
C3 时钟(CLK) C7 输入/输出 (I/O)
C4 保留待未来使用 C8 保留待未来使用
其中:
GND 地,基准电压。
VCC 电源输入。
I/O 串行数据的输入/输出。
CLK 时钟信号输入。
RST 复位信号输入。
VPP 编程电压输入,由卡选用。

T=0,异步半双工字符传输协议
T=1,异步半双工块传输协议

---
命令总是由接口设备启动,他以一个5字节的报头通知卡做什么,并且允许在卡发出的过程字节的控制下传输数据字节。

接口设备通过五个连续字节传送一个报头,这五个字节指定为CLA,INS,P1,P2,P3。
    ——CLA是指令类别,值’FF’为PTS保留(见8.3.3)。
    ——INS是指令类别中的指令代码。指令代码只有当{zg}有效半字节不是‘6’和‘9’时才有效。
    ——P1、P2是一个完成指令代码的参考符号(例如地址)。
    ——P3对指令期间被传输的数据字节(D1…Dn)的数目n编码。在输出数据的传输命令中,P3=0表示从卡发送256个字节的数据。在输入数据的传输命令中,P3=0代表无数据输入。
这样,在一个5字节报头传输之后,接口设备等待一个过程字节。

过程字节的值将指明接口设备请求的动作。已规定了三种类型的过程字节:
    —— NULL的值为60。
    ——在ACK中,除了值‘6X‘和‘9X‘以外,在ACK字节中的七个{zg}有效位(b8至b2)全都等于INS字节中相应位或与之互补。
    ——SW1的值为‘6X’或‘9X’,但不包括‘60’。
    在每一个过程字节中,卡可以用一个ACK或NULL字节来把这个命令继续进行下去,或以适当的不应答表示不赞同,或用结束序列SW1-SW2结束这个命令。

---
《ISO7816-4.doc》
5.3 APDU报文结构
应用协议中的一个步骤由发送命令、接收实体处理它以及发回的响应组成。因此,特定的响应对应于特定的命令,称作为命令响应对。
应用协议数据单元(APDU)可包含有命令报文或响应报文,它从接口设备发送到卡,或者相反地由卡发送到接口设备。

命令APDU
命令APDU由下列内容组成:
——必备的4字节首标(CLA INS P1 P2);
——有条件的可变长度主体([Lc字段][数据字段][Le字段])。

在命令APDU的数据字段中呈现的字节数用Lc来表示。
在响应APDU的数据字段中期望的字节{zd0}数用Le(期望数据的长度)来表示。当Le字段只包含0时,则要求有效数据字节的{zd0}数。(对于短的长度不超过256,或者对于扩展的长度不超过65536)

命令APDU的4种结构:
1.命令首标
2.命令首标 Le字段
3.命令首标 Lc字段 数据字段
4.命令首标 Lc字段 数据字段 Le字段


响应APDU
响应APDU由下列内容组成:
——有条件的可变长度主体;
——必备的2字节尾标(SW1 SW2)。

响应APDU结构:
主体          尾标
[数据字段] SW1 SW2


SW1—SW2 含      义
正常的处理
‘9000’ —无进一步限定
‘61XX’ —SW2指示仍然有效的响应字节数


5.4.5 状态字节
响应的状态字节SW1—SW2表示了卡内的处理状态。

INS
‘A4’ SELECT FILE 6.11
‘CO’ GET RESPONSE 7.1节

---
《某芯片用户手册》

6.19 智能卡接口控制器(SIM)

ISO7816 标准是个标准的半双工接口,本模块作为主设备,控制SIM 卡的操作,SIM 卡
作为从设备只有在两种情况下产生应答信号:
收到RST 信号后发送ATR、接到命令后应答。

因此,SIM 卡驱动模块作为主设备,主要完成两个操作:发送RST 等待ATR,发送命令并等
待SIM 卡的应答。

TX, XMT, 发送transmit
RX, RCV, 接收Receive

---
ATR(answer to reset) 复位应答
SIM模块和SIM卡建立初始通信需要交换一些协议数据,这个交换通过ISO7816规定的ATR协议来完成。ATR协议通过SIM模块对sim_rst信号的控制来实现.
SIM卡有可能会在sim_rst为低期间或sim_rst为高期间返回应答信号。如果sim_rst保持高电平40000个sim_clk周期后仍然没有收到SIM卡的ATR应答信号,则表明SIM不存在或者传输通道有问题。

SIM卡返回的ATR应答信号的{dy}个字符表示SIM卡支持传输方式是直接模式还是反转模式,这个字符定义为初始字符。如果SIM返回的是11011100,则表示SIM卡支持直接模式;如果SIM卡返回的是11000000,则表示SIM卡支持的是反转模式。

根据定义,复位应答是一系列字节的值,这些字节是由卡作为对复位命令的响应发送给接口设备的。在I/O电路上,每个字节在一个异步字符中传输。
    每个成功的复位操作都会导致I/O上的一个初始字符TS,TS后面按照下面的次序跟有最多32个字符:
    T0…………………………………………格式字符,强制性
    TA(i) TB(i) TC(i) TD(i)…………… 接口字符,可选的
    T1 T2…Tk…………………………………历史字符,可选的
    Tck……………………………………… 检测字符,有条件的
• 初始字符定义了所有后继字符的解码协议。。
• 格式字符声明了{dy}组接口字符和所有历史字符。
• 接口字符由格式字符声明的位图技术来指明。
• 历史字符由编码在格式字符中的一个数字来指明。
• 校检字符依赖于某些接口字符中参数T的值。
为了表示简明,以下用[TS] T0 TA(i)…T1…Tck表示字节及传送字节的字符。


例:
ATR: 3b | 6c | 0 0 | 4e 54 49 43 32 64 8 1 4a 3 0 0

ATR-ATlength:16

SIM模块支持自动初始字符检测。当SIM模块准备ATR接收时,可以先通过SIM_CNTL寄存器的ICM比特将接收机设置初始字符检测模式。然后SIM模块会根据收到的初始字符,自动调整接收方式,并自动改变SIM_CNTL寄存器的传输模式IC比特。


ETU(Elementary Time Unit)
一个ETU的时间可以由软件选定,在ISO7816标准中规定了几个ETU传输时间的标准规格,其中标准时间为372个sim_clk时钟,另外还有一些增强速率的时间。SIM模块支持所有的ISO7816规定的ETU模式。


每帧数据采用Byte字符方式,一个Byte由8比特组成。每帧的传输由起始位、 字符数据(8位)、校验位和停止位组成,其中起始位为一个ETU(Elementary Time Unit)的低电平,数据位占用8个ETU的时间,校验位占用一个ETU的时间,停止位比特为高电平,占用2个ETU的时间。

ISO7816协议中还规定了一种紧凑的传输方式,此时停止比特只有1位,一个数据帧包含11个ETU,可以通过SIM_GUARD寄存器的RCVR11来配置SIM模块支持这种传输方式。


FIFO不是寄存器,而是通过寄存器写入的, FIFO是16*8, 但发送缓冲寄存器(SIM_XMT_BUF)是8位.

整理 by



郑重声明:资讯 【智能卡技术笔记_畅想未来の水星_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——