Atmel的AT88Rt020射频卡芯片有2048位的存储容量,分成32页,每页8个字节,存储组织结构如表1所列。
点击看原图
表1中标有“—”的字节由用户定义,出厂时初始值为0。
①Pseudo Unique PICC Identifier。卡唯一序列号,卡序列号由卡厂家写入,不能被修改。
②Applicatlon Data。应用数据,这个数据被作为ATQB回复信息的一部分由卡传输到读写器中。
③counter。计数器,每执行一次COUNT指令,计数器的值就加1,初始值由厂家设为0。
④Signature。签名(用于加密),这个数据位于第2页的前6个字节,可以通过COUNT指令修改,counter和Signature 可以提供更进一步的安全保护。
⑤Password。密码,密码放在第3页中,不能读出。
&n
bsp; ⑥Lock Bits。锁定位,位于第0页,验证密码后,能用LocK命令修改。锁定位中的每一位与内存各页对应,如果某位被设为“1”,则对应的页就被锁死,不能再进行写操作,也没有机制解锁,所以某页一旦被锁,其内容再也不能修改,出厂初始值为0。
AT88RF020通电或重启的工作流程如图3所示。

5 RFlD卡AT88RF020的常用命令与函数
5.1 AT88RF020的常用命令
①REQB/WUPB:用于寻卡或者唤醒处于HALT状态的卡,这种卡只响应应用代码(API)为00或01的情况,如果接收到一个带有无效API代码的WUPB命令,那么卡仍然处于HALT状态。
②ATTRIB:用于从所有响应REQB/WUPB的卡中选择一张卡,此后,卡进入AC-TIVE状态。
③Slot MARKER:为读写器提供了一种用于查询随机数大于1的卡。
④HALTB:设置卡处于HALT状态,此后只能执行WUPB命令。
⑤READ:用于读取卡中的数据,读取页0~2可以不必验证密码,而第3页的数据不能读出,只能通过PASS—WORD命令修改,其他的页验证密码后可以读出。
⑥WRITE:用于对卡写入数据。
⑦LOCK:只有在验证密码之后才能执行,用于锁定某一地址区域,被锁定的地址区域在验证密码之后只可以进行读操作。
⑧CHECK PASSWORD:密码校验命令,在设备进入就绪状态之后执行。
⑨DESELECT:如果对处于ACTIVE状态的卡执行该命令,且通过,则卡发送一个正确的回答信息,并进入HALT状态。
⑩COUNT:用于写第2页。COUNT命令中所带的数据写入到第2页的前6个字节中,后2个字节被用做计数器使用,每执行一次COUNT命令,计数器的值就增1,如果计数器的值达到2的15次方,就不能再执行COUNT操作,且第2页被锁定,不能再修改。执行该命令之前要验证密码。
5.2 AT88RF020的函数
下面以rf_attrib()函数为例来说明AT88RF020的函数用法。
①函数rLattrib()的格式: int rI_attrib(HANDLE icdev,unsigned long pupi,unsigned char param,unsigned char cid,unsigned charbrTx,unsigned char brRx);
②函数的功能。从已响应REQB/WUPB命令的卡中选取一张卡,同时给每一张卡分配一个ID号。
③函数的参数描述。
icdev:rf_init(