在读卡器和智能卡之间进行数据传输,需要通过两个触点引线的协商:CLK和I/O。I/O引线根据它相对于GND的电压,在每个由CLK定义的单位时间内传送一个比特的信息。可以用+5V或0V电压来表示逻辑’1’,实际操作中,这由智能卡传送给读卡器的ATR中的“初始字符” 也被称作TS所决定。在I/O引线上每传送10个比特代表一个字节的信息;最先的是“起始位”,最后一位是偶校验位。I/O信号线可以用高电平(H)也可以用低电平(L)来表示一个比特位,TS字符为HLHHLLLLLLH时,表示智能卡使用“反向约定”,即H表示’0’,L表示’1’。TS符号为HLHHLHHHLLH时,表示智能卡使用“正向约定”,即H表示’1’,L表示’0’。
反向约定和正向约定同样也控制在智能卡和读卡器之间传输的每个字节的比特顺序。在正向约定下,起始位后的第一个比特是字节的最低位,然后依次是高次序位。在反向约定下,起始位后的第一个比特是字节的最高位,然后依次是低次序位。每个传输的字节必须使用偶校验;这意味着字节中包括校验位在内,必须有偶数个’1’。
I/O信号线是一个半双工通道,这表示,智能卡或者读卡器可以在同一个通道上传输数据,但是两者不能同时传输。所以作为启动顺序的一部分,读卡器和智能卡都进入接收状态,侦听I/O信号线。在开始复位操作时,读卡器处于接收状态,而智能卡必须进入发送状态,并发送ATR至读卡器。从此之后,通道两端在发送和接收两个状态之间互相交替。 |