ISO7816协议的块传输协议

时间:2023-03-08 23:18:03
ISO7816协议的块传输协议

1.块传输协议中的前三个字节是强制必须有的

NAD节点地址:

当终端支持多个卡槽,终端和这些卡槽以总线的方式通讯时,该字节有用,其他情况下,默认为0

bit1-3:定义了源地址

bit5-7:定义了目的地址

其它位默认为0X00

该域不能为0XFF

PCB域:

bit8为0代表I-BLOCK这种情况下,其它位的定义如下:

bit7为发送序列号

bit6为数据位的位数

bit5-1:RFU

当bit8:bit7为10时,表示R-BLOCK,这种情况下,bit6-bit1的定义如下:

0-N(R)-0000 表示对接收的数据帧的无错确认.
    0-N(R)-0001 表示该帧的EDC错误或者有字节的奇偶校验错误.

0-N(R)-0010 表示其它错误.
   其他值RFU.

当bit8:bit7为11时,表示S-BLOCK,这种情况下,bit6-bit1的定义如下:

000000 表示同步请求; 100000 表示同步响应.
  000001 表示IFS请求;  100001 表示 IFS响应.
  000010 表示ABORT请求;100010 表示ABORT响应.
  000011 表示WTX请求;  100011 表示WTX响应.
  100100 表示不支持.
  其他值RFU

3.长度域

00:表示INF不存在.
  01-FE: INF存在.
  FF:RFU

EDC的算法分为两种:LRC算法或者CRC算法,当使用LRC算法时,从NAD到LRC的亦或运算必须为0X00,其它的无效,是采用LRC算法还是CRC算法室友ATR返回的第一个TC值确定的,如果该TC.0为1表示CRC算法,否则为LRC算法,如果TC不存在则默认采用LRC算法