基于RI-R6C-001A IC与ISO15693标准的读卡器设计
通常在寄存器模式下,命令字节是1位,且该位为1。
ISO15693-3命令的一般格式如下:
起始位(S1)FLAGS命令顺号命令内容CRC16结束位(ES1)
在ISO15693命令序列中,FLAGS用于规定命令内容中某些可选域的存在。由于S1和ES1在ASIC命令序列中已经存在,所以只须把ISO15693命令序列中FLAGS、命令序号、命令内容、CRC16等域的内容取出并填入ASIC序列中的数据域然后打包即可。数据域的发送顺序为低位在先,即:LSBFIRST。
3.2响应结构
图4所示是VICC的响应时序。VICC响应的一般格式是:
起始位(S2)FLAGS响应内容CRC16结束位(ES2)
其中起始位S2用于表示VICC响应数据的开始,其定义是当SCLOCK为高电平时,DOUT产生一个上升沿(参见图4)。而结束位ES2则表示VICC响应数据的结束。它被定义为当SCLOCK为高电平时,DOUT产生一个下降沿(如图4)。
4结束语
考虑到命令字节(8位)发送的顺序是MSBFIRST,其它数据均是LSBFIRST;而且“S1011110110000000111000ES1”是时间寄存器的初始化序列;同时,在命令发送过程中,双向时钟SCLOCK线由MCU控制,因此,在接收VICC响应之前必须进行时钟线的切换,以将控制权交由ASIC控制。对于FIFO管理,发送每一位时都要检测DOUT的电平,DOUT为高时停止发送,直到DOUT恢复到低电平为止。发送命令字节后,应适当延时,以利于ASIC正确动作,同时应考虑电路的抗干扰能力。对于ISO15693-3规定的FLAGS、命令序列号、命令内容等字节,还应进行CRC16校验。关于反碰撞问题,可采用“二进制搜索”算法并选用曼彻斯特编码。为实现这种算法,需要一组命令并由应答器处理,同时应答器要拥有唯一的序列号(UID),例如磁场中有两张卡,其UID分别是:“E00700000234D1E1”和“E00700000234D2D8”,那么,用命令来查询当前磁场范围内卡的卡号,就能很好的解决碰撞问题。
《基于RI-R6C-001A IC与ISO15693标准的读卡器设计(第2页)》