MFRC500采用寄存器写数据和写命令的形式来控制卡片数据的读和写。大概有以下步骤: ① 请求之应答。Answer to Request(ATR) . Mifare卡片处在天线范围内时,读写器向卡发出REQUEST all(或REQUEST std)命令后,卡片ATR启动,将卡片Block0的卡片类型(TagType)号共2字节传送到读写器,这样建立第一步联系。卡片返回数据 0004H。
② AntiCollision模块。防止卡片重叠,当多张卡片一起放入天线范围时,AntiCollision模块的防重叠功能将被启动。MFRC500将与每张卡片进行通信,取得每张卡的序列号。由于每张Mifarel卡片都具有唯一的序列号,不会相同,因此MFRC500可以通过序列号来区别,区分选中的卡片。AntiCollision模块启动时,卡片读写器将得到卡片的序列号(Serial Number)。序列号存储在卡片的Block0中,共有5字节(实际用的是4字节,另一个字节为序列号的校验字节)。返回值为卡片序列号。
③ Select Application模块,主要用于卡片选择。当卡片与读写器完成了上述2个步骤,读写器要对卡片读写操作,必须对卡片进行“Select”操作,使卡片真正被选中。被选中的卡片将卡片上存储在Block 0中的卡片容量“Size”字节传送到读写器。当读写器收到这一字节后,将明确对卡进行深入操作。读写器收到的字节可能是88H。