
表1中标有“—”的字节由用户定义,出厂时初始值为0。
①Pseudo Unique PICC Identifier。卡唯一序列号,卡序列号由卡厂家写入,不能被修改。 ②Applicatlon Data。应用数据,这个数据被作为ATQB回复信息的一部分由卡传输到读写器中。 ③counter。计数器,每执行一次COUNT指令,计数器的值就加1,初始值由厂家设为0。 ④Signature。签名(用于加密),这个数据位于第2页的前6个字节,可以通过COUNT指令修改,counter和Signature 可以提供更进一步的安全保护。 ⑤Password。密码,密码放在第3页中,不能读出。 ⑥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()返回的设备描述符。pupi:Pseudo—Unique PICC Identifier。param:设为0。cid:卡片ID号(0~15),这个值存储在卡片中供后面操作使用。 brTx:由CD(近耦合设备)到PICC(近耦合集成电路卡)的波特率,对于AT88RF020,0x00代表106 kb/s。 brRx:由PICC到PCD的波特率,对于AT88RF020,0x00代表106 kb/s。
④返回值。等于0表示成功;不等于0表示失败。
⑤例程。 int st; unsigned char Mode=0; unsigned char_Data[15]; unsigned long pupi=0; st=rf_requestb(iedev,Mode,0~0 Data); if(st==0){ memcpy(
本文章更多内容:<<上一页 - 1 - 2 |