RC531操作说明分析(共14页).doc
《RC531操作说明分析(共14页).doc》由会员分享,可在线阅读,更多相关《RC531操作说明分析(共14页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上RC531操作说明1:上电初始化主要做SPI接口确认步骤:1:给rc531的RSTPD脚一个高电平脉冲至少100us,热复位RC5312:读command-reg 直到寄存器数值为0,表示芯片上电初始化完成3:写0x80到page-reg,让芯片开始处理接口时序4:读command-reg 直到寄存器数值为0,表示芯片接口时序初始化完成5:此时可以写0x00到page-reg,指定寄存器地址模式为线性地址模式 Note:见RC531第93页11.4 Initialising the Parallel Interface-Type说明 2:spi接口时序使用SPIMOD
2、E0模式,在时钟的上升沿发送和读取数据读时序:主机连续写地址,写第二个地址时,在时钟上升沿可以读到RC531返回的第一个地址的值要求,地址字节的最高位为1,中间6位为实际地址,最低位为0写时序:第一个字节是地址,后面可以是N个数据,都往这个地址写,这点在写FIFO时很方便要求,地址字节的最高位为0,中间6位为实际地址,最低位为0NOTE:见RC531第17页3:RC531操作, 通过写寄存器,一般两字节操作,addr+data 和卡的数据交互,写数据到RC531的FIFO寄存器 如(cs选中,addr写+data1+data2+.+dataN,cs释放) (cs选中,cmd-reg+0x1e(
3、发送接收命令)+cs释放) (cs选中,addr读,读出n字节,cs释放)4:和卡的交互 寻卡,使用命令0x52(对所有卡包括halt的卡有效),0x26(对standby的卡有效) 数据长度1字节, 返回2字节 返回说明,2字节卡类型 0x04= CARD_S50; 0x44=UL卡 0x08=CPU卡 0x03= SHUL卡; NOTE:格式要求:RC531关闭所有校验,关闭加密,只发送7bit数据(通过更改 531寄存器BitFraming), 见ISOA,7.2.3.2 WAKE-UP(REQA)指令 防冲撞:先使用命令 0x93,0x20 返回5字节,4字节卡号+1字节异或效验 例:
4、531设置:无发送CRC,无接收CRC,有奇校验,ZeroAfer=1; 发0x93,0x20; 收0x88,0x4,0x4b,0x7,0xc0 设置ZeroAfer=0;(必须有,否则之后操作不能完成) NOTE:格式要求:RC531关闭CRC,奇校验,通过设置DecodeControl接收控 制ZeroAfer置1,选卡:先使用命令 0x93,0x70 + 4字节卡号 + 卡号异或校验 返回1字节SAK 例:531设置:有发送CRC,接收CRC,有奇校验 发0x93,0x70,0x88,0x4,0x4b,0x7,0xc0 收0x04载入密码:验证:读卡: 先使用命令 0x30+block号
5、(对UL卡而言是page号) 返回16字节数据 例:531设置:有发送CRC,有接收CRC,有奇校验 发0x30,0x05 收:0x4,0x4b,0x7,0xc0,0x99,0x2c,0x25,0x84,0x14,0x48,0x0,0x0,0x0,0x0,0x0,0x0 NOTE:UL卡每扇区只有4字节,所以每次读出4扇区数据,共16字节数据 对于普通mafare卡,每个扇区读写都要重新认证密钥写卡: 第一步: 先使用命令 0xA0+block号(对UL卡而言是page号)确定写入地址有效 返回1字节ACK(0x0a) 例:531设置:有发送CRC,无接收CRC,有奇校验 发0xA0,0x05
6、 收0x0a 第二步: 写入16字节块数据 返回1字节ACK(0x0a) 例:531设置:有发送CRC,无接收CRC,有奇校验 发0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5 收0x0a NOTE:按照14443A标准,返回的ACK是4bit数据,所以在使用FM2701等 兼容芯片时,一定要取消接收CRC,否则接收不到ACK应答, 另:在写UL卡之前,要先读一下0扇区,确定块锁定状态,否则不能写入。 写入时,16字节数据仅前4字节有效,后12字节要设为0 对于普通mafare卡,每个扇区读写都要重新认证密钥ML卡
7、ML卡是一种小容量卡,共384位,适合于一卡一用。电气特性l 容量为384位l 16位的数值计算l 128位的数据区(如果不用钱包文件可达192位)l 用户可自定义控制权限l 唯一的32位序列号l 工作频率:13.56MHZl 通信速率:106KB波特率l 防冲 突:同一时间可处理多张卡l 读写距离:在10cm以内(与天线有关)l 卡内无需电源存储结构ML卡共384位,分为12页,每页为4个字节。存储结构如下:页号字节0字节1字节2字节3说明0SerNr(0)SerNr(1)SerNr(2)SerNr(3)Block 01SerNr(4)Size CodeType(0)Type(1)2Data
8、(0)Data(1)Data(2)Data(3)Data13Data(4)Data(5)Data(6)Data(7)4Value(0)Value(1)Value_b(0)Value_b(1)Value5Value(0)Value(1)Value_b(0)Value_b(1)6KeyA(0)KeyA(1)KeyA(2)KeyA(3)KeyA7KeyA(4)KeyA(5)AC-AAC-A_b8KeyB(0)KeyB(1)KeyB(2)KeyB(3)KeyB9KeyB(4)KeyB(5)AC-BAC-B_bAData(0)Data(1)Data(2)Data(3)Data2BData(4)Data(
9、5)Data(6)Data(7)(注:_b表示取反)(1)第0、1页存放着卡的序列号等信息,只可读。(2)第2、3页及A、B两页数据块,可存贮一般的数据。(3)第4、5页为数值块,可作为钱包使用,两字节的值以正和反两种形式存贮。只有减值操作,没有加值操作。如果不做钱包使用,则可以做为普通的数据块使用。(4)第6、7、8、9页存储着密码A(6字节)、密码B(6字节)及存取控制。(5)第7页的2字节、第9页的2字节为存储控制,存储控制以正和反的形式存两次。Bit 7Bit 6Bit 5Data2WriteEnableBit 4Data2readEnableBit 3Key+ACWriteEnabl
10、eBit 2ValueWriteEnableBit 1Data1WriteEnableBit 0Data1readEnable例如:AC-A的初始值为ff,即,即:Data1:可读、可写;Value:可写;AC-A:可写;Data2:可读、可写;(6)一次写一页(4个字节),一次读两页(8个字节)。UL卡M1卡0扇区0块厂商标识信息第04个字节为卡片的序列号,第5个字节为序列号的校验码; 第6个字节为卡片的容量“SIZE”字节; 第7,8个字节为卡片的类型号字节,即Tagtype字节; 其他字节由厂商另加定义。 UL卡储存规范,共16扇区,每扇区4字节,等效与M1卡的4个块,(select时,
11、返回4)存储结构:页号Byte0Byte1Byte2Byte3说明0SN0SN1SN2BCC0只读,存放卡的序列号:Page0前3字节+整个Page11SN3SN4SN5SN62BCC1保留LOCK0LOCK1只读,通过设置LOCK0和LOCK1可以讲16个page设为只读3OTP0OTP1OTP2OTP3可读写,一次性交易计数器,不可逆4Data0Data1Data2Data3可读写,数据存放区域5Data0Data1Data2Data36Data0Data1Data2Data37Data0Data1Data2Data38Data0Data1Data2Data39Data0Data1Data
12、2Data310Data0Data1Data2Data311Data0Data1Data2Data312Data0Data1Data2Data313Data0Data1Data2Data314Data0Data1Data2Data315Data0Data1Data2Data3红色的SN在读扇区0时,返回的是SN0,SN1,SN2,BCC,SN3,SN4,SN5,SN6,xx,xx,0,0,0,0,0,0所以实际取得的psnr(卡序列号)为SN0,SN1,SN2 + SN3,SN4,SN5,SN62.2.2 读卡和写卡指令14443A协议中并没有具体规定对射频卡的读写操作方式,故对每种卡的读写操
13、作都必须考虑该卡的存储区域组织形式和应答形式。MIFARE卡内部存储器是由E2PROM组成的,共划分为16个扇区,每个扇区4个块,每块16字节。对E2PROM的读写都以块为单位进行,即每次读写16字节。以写卡指令为例,MIFARE卡要求有两步握手,指令格式分别如下所述。注意:address值无意义,但value值写入时必须在47字节中存入取反值。一次写一页,一次读4页S50卡(常用标准卡)Mifare 1卡的存储结构2007-06-22 11:262、Mifare 1卡的存储结构1 2Mifare 1卡(简称M1卡)为8k位的IC卡。M1卡的存储结构如下。M1卡分为16个扇区,每个扇区4块(块
14、03),共64块,按块号编址为063,除了第0扇区的块0(即绝对地址0块)用于存放厂商代码不可更改外,其他各扇区的块0、块1、块2为数据块,用于存储数据;块3为控制块,存放密码A、存取控制、密码B,其结构如表1:A0A1A2A3A4A5PPB0B1B2B3B4B5密码A(6字节)存取控制(4字节)密码B(6字节)表1各扇区块3存储结构每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制,在存取控制中每个块都有相应的三个控制位,分别以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制
15、位在存取控制字节中的位置如表2所示(字节9为备用字节,默认值为0x69)。Bit76543210字节6C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b字节7C13C12C11C10C33_bC32_bC31_bC30_b字节8C33C32C31C30C23C22C21C20表2控制位在存取控制字节中的位置 (注:_b表示取反)每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制,扇区中的每个数据块的存取条件由密码和存取控制共同决定,他们的关系如表3所示。控制位(X:0.2)访问条件(对块0、1、2)C1XC2XC3X读写加值减值000Ke
16、yA|BKeyA|BKeyA|BKeyA|B010KeyA|BNeverNeverNever100KeyA|BKeyBNeverNever110KeyA|BKeyBKeyBKeyA|B001KeyA|BNeverNeverKeyA|B011KeyBKeyBNeverNever101KeyBNeverNeverNever111NeverNeverNeverNever表3数据块存取控制条件据此通过授权机制,对特定操作用户实现不同级别的读写控制。只有知道特定密码组合的操作用户才能更新卡中数据,从而大大增强了系统的性。射频卡的存储实现技术和工作原理决定了其良好特性,可适用于多种应用。其中射频卡具多个分
17、区、适合一卡多用的特性,使得射频卡在各种系统中得到广泛应用。M1卡读写失误常见问题 盲目操作: 造成某些区块误操作被锁死不能再使用。应当仔细参考控制位的权限后,预先得出操作后的结果是否 适合使用要求,并且列出操作顺序表单再操作。最好授权程序员对块3的设置作专人操作。 丢失密码: 在读写时造成密码认证出错而不能访问卡。特别要求在对MF卡进行块3编程操作时,必须及时记录相关卡 号的控制值、KeyA、KeyB等,而且应当有专人管理密码档案。 错误设置: 对MF1卡的块3控制位了解不透彻,错误的理解造成错误的设置。目前MF1卡的控制块仅只有8种数据 块控制权限和8种控制块设置权限,超出这16种权限的其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RC531 操作 说明 分析 14
限制150内