//ATR = 3B FD 11 18 00 B1 81 00 F1 20 4D 01 1F 01 88 99 99 99 99 99 99 99 99 99 99 99 99 CF
//复位应答信号以字符为单位(称为字符帧)进行传送
//
//----在传送字符前,I/O处于Z状态
//----每个字符由10位组成,起始位(1位)状态为A
//--------8位数据位ba ~ bh, 第10位bi为偶校验
//----复位应答期间,1etu = 372个clock
//----一个数据字节由b1-b8组成,b1为LSB,b8为MSB。接收方在每一位的中间采样,采样时间应该小于0.2etu。
//----两连续字符之间的延时(两起始位下降沿之间)至少为12个etu,包括字符宽度10(+/-0.2)个etu和一段保护时间。
//----两连续字符之间的延时(两起始位下降沿之间)最大不超过9600个etu,这个最大值称为
//----------初始等待时间。
//----在保护时间内,读卡器和卡都处于接收状态,I/O线处于状态Z。
//----发送方在下降沿开始后的第11个etu处检查I/O状态,
//--------当奇偶校验不正确时,从起始位下降沿之后的10.5个etu开始,
//--------接收方发送状态A做为出错信息,该信号宽度为1-2个etu。
//--------如果发送方检查I/O状态为Z,则表示接收是正确的,反之则认为是错误的,
//--------接收方希望重新发送此字节。
//--------对于T=0的卡必须重发,对于其他卡是可以选择的
//------------------------------------------------------------
//----------<<<在TS之后发送的字符数不超过32个,复位应答格式如下>>>
//-- - T0 ................... Format character (Mandatory)
//-- - TAi, TBi, TCi, TDi ... Interface characters (Optional)
//-- - T1, T2, ... ,TK ...... Historical characters (Optional)
//-- - TCK .................. Check character (Conditional)
//
//-- TS : Initial character
//-- TO : Format character
//-- TAi : Interface character [ codes FI,DI ]
//-- TBi : Interface character [ codes II,PI1 ]
//-- TCi : Interface character [ codes N ]
//-- TDi : Interface character [ codes Yi+1, T ]
//-- T1, ... , TK : Historical characters (max,15)
//-- TCK : Check character
//--------------------------------------------------------------------------------
//TS( The Initial character ) = 3B
//
//--- 正向约定:Z表示1,A表示0,传输时先传输LSB,则TS应该是
//----(Z)AZZAZZZAAZ,0 1 1 0 1 1 1 0 0 1 即16进制数3B
//----bd, be, bf为ZZZ。
//--- 反向约定:Z表示0,A表示1,传输时先传输MSB,则TS应该是
//----(Z)AZZAAAAAAZ,1 0 0 1 1 1 1 1 1 0 即16进制数3F
//----bd, be, bf为AAA。
//----此字节表示 正向约定,高电平为1,低电平为0,传输时先传输LSB,最后传输MSB
//--------------------------------------------------------------------------------
//T0( The Format character ) = FD
//--
//--Y1 : 接口字符是否存在的指示符
//-- b4 = 1,发送TA1
//-- b5 = 1,发送TB1
//-- b6 = 1,发送TC1
//-- b7 = 1,发送TD1
//--K : 历史字节数(0~15)
//-- 格式字符 T0 提供的信息
//--T0表示接口字符的个数和历史字节的数量
//----其高4位有几个bit为1,则表示后续有几个接口字符,其低4位表示有多少个历史字节(0-15)
//--------高4位 = F( 1 1 1 1 )表示后续字符中存在 TA1 TB1 TC1 TD1
//--------------------( TA1, TB1, TC1, TA2, TB2 是全局接口字符,TC2是专用接口字符 )
//----低4位 = D,表示后面有13个历史字节
//--------------------------------------------------------------------------------
//TA1 = 11
//----表示有增强的波特率,公式 "baudrate = f / ( F / D )"
//------其中,f是读卡器提供的时钟,常用 f = 3571200(单位HZ)
//--------F由TA1的高4位(FI)查表得出,D由TA1的低4位(DI)查表得出
//----FI = 01 ,查下表,则F = 372
//------
//----DI = 01 ,查下表,则D = 1
//------
//----复位之后推荐波特率为 9600
//--------------------------------------------------------------------------------
//TB1 = 18
//----TB1现在已经废除,在早期规范中其bit 6 - bit 0用来表示卡片编程电压和电流
//------在2006版之后,如果出现TB1,其值应该为0,表示该卡不使用专用触点 C6 来提供编程电压
//------TB1的最高位应该为0,若不为0,应该视为0
//----TB1 bit 6, 5(base 0)指定最大编程电流因子 I
//--------bit 4-0(base 0)最大编程电压因子 P,定义了VPP的工作状态
//------
//--------bit 6, 5 = 0( 0 0 )
//--------bit 4-0 = 18( 1 1 0 0 0 )( 24 )
//----编程电压为 0.0 V(出现TB2,由TB2指出),电流为 25 毫安
//--------------------------------------------------------------------------------
//TC1 = 00
//----指示出额外保护时间N
//------额外保护时间是两个字符发送的起始下降沿之间的最小间隔
//--------出现 T = 15
//--------N = 0(0x00),额外保护时间EGT = 12 etu + N * TA1指定的etu
//-------- = 12 etu + 0 * TA1指定的etu
//--------------------------------------------------------------------------------
//TD1 = B1
//--TD1 : 高4位是后续接口字符是否存在的指示器
//-- b4 = 1,发送TA2
//-- b5 = 1,发送TB2
//-- b6 = 1,发送TC2
//-- b7 = 1,发送TD2
//-- 低4位是通讯协议
//-- TD1 提供的信息
//--------高4位 = B( 1 0 1 1 )表示后续字符中存在 TA2 TB2 TD2
//--------低4位 = 1,表示通讯协议是T = 1
//--------------------------------------------------------------------------------
//TA2 = 81
//---------- 二进制 1 0 0 0 0 0 0 1
//--TA2存在,表明卡处于专用模式
//----TA2的 bit 7( based 0 )为1,则表明卡片没有更改能力
//----TA2的 bit 4( based 0 )为0,则使用TA1指定的F, D
//----低4位表示使用的协议 T = 1
//----专用模式,卡片没有改变模式的能力,通讯速率由TA1指定,TA1 = 11 通讯协议 T = 01
//--------------------------------------------------------------------------------
//TB2 = 00
//----TB2是全局参数,自2006版以来已经废除,如果存在TB2,应该忽略
//------在1997版中,TB2取值应该在50-250之间(更早的版本中TB2不存在)
//------以0.1V的精度取代TB1的编程电压
//----编程电压为 0.0 V
//--------------------------------------------------------------------------------
//TD2 = F1
//--TD2 : 高4位是后续接口字符是否存在的指示器
//-- b4 = 1,发送TA3
//-- b5 = 1,发送TB3
//-- b6 = 1,发送TC3
//-- b7 = 1,发送TD3
//-- 低4位是通讯协议
//-- TD2 提供的信息
//--------高4位 = F( 1 1 1 1 )表示后续字符中存在 TA3 TB3 TC3 TD3
//--------低4位 = 1,表示通讯协议是T = 1
//--------------------------------------------------------------------------------
//TA3 = 20
//----TA3指示了卡端信息字段长度(IFSC)
//------IFSC是T = 1协议下,卡片接收数据域的最大长度
//------TA3在 01 - FE 之间有效,00 和 FF保留
//--------
//----T = 1协议下信息域的最大长度是 32
//--------------------------------------------------------------------------------
//TB3 = 4D
//----TB3指示了T = 1协议下,BWI和CWI的值
//------高4位是BWI,低4位是CWI
//--------BWI是块传输中,两个块之间最大的等待参数
//----------BWI默认值为4
//----------BWT = 11 etu + ( 2^BWI * 960 * Fd / f )
//------------当前BWI = 4(0x04)
//--------------Fd = 1, 表示 372 个clock
//--------------一个etu = 372.0 个clock
//----块等待时间BWT = 11 + ( 2^4 * 960 * 372 ) / 372.0 = 15371.0 个etu
//--------CWI是块传输中,块内两个字符之间最大的等待参数
//----------CWI默认值为13
//----------CWT = (11 + 2^CWI) etu
//------------当前CWI = 13(0x0D)
//----块内字符等待时间CWT = 11 + 2^13 = 8203 个etu
//--------------------------------------------------------------------------------
//TC3 = 01
//----T = 1块传输块校验机制
//------LRC 纵向冗余校验
//--------从NAC到LRC所有字节异或运算时结果应该为0
//------CRC 循环冗余校验
//--------见 ISO/IEC 13239
//----校验方式为 CRC 循环冗余校验
//--------------------------------------------------------------------------------
//TD3 = 1F
//--TD3 : 高4位是后续接口字符是否存在的指示器
//-- b4 = 1,发送TA4
//-- b5 = 1,发送TB4
//-- b6 = 1,发送TC4
//-- b7 = 1,发送TD4
//-- 低4位是通讯协议
//-- TD3 提供的信息
//--------高4位 = 1( 0 0 0 1 )表示后续字符中存在 TA4
//--------低4位 = F,表示通讯协议是T = 15, T = 15不属于传输协议,仅指明了全局接口字节的类型
//--------------------------------------------------------------------------------
//TA4 = 01
//----TA4是T = 15时,用于指出 时钟停止 以及 卡片电压支持 的参数
//------
//------
//----------二进制 = 0 0 0 0 0 0 0 1
//----bit 7,6 = 00,不支持时钟停止
//----bit 5-0 = 1,只支持A类(5.0V)
//--------------------------------------------------------------------------------
//88 99 99 99 99 99 99 99 99 99 99 99 99
//----是历史字节
//--------------------------------------------------------------------------------
//TCK = CF
//--TCK值正确