📄 1.htm
字号:
1 0</B></DIV>
<TABLE borderColorDark=#ffffff width="100%"
borderColorLight=#000000 border=1>
<TBODY>
<TR>
<TD
width="25%">0
0</TD>
<TD width="25%">Rcv OFF</TD>
<TD width="25%">Power Down</TD>
<TD width="25%">COMMAND</TD></TR></TBODY></TABLE>
<DIV>Command命令类别如表2所示。<BR><BR><B>表2 Command命令类型</B></DIV>
<TABLE height=159 borderColorDark=#ffffff width="100%"
borderColorLight=#000000 border=1>
<TBODY>
<TR>
<TD align=middle width="50%" height=12>COMMAND(命令)</TD>
<TD align=middle width="50%" height=12>命令代码</TD></TR>
<TR>
<TD align=middle width="50%" height=12>Idle(空闲)</TD>
<TD align=middle width="50%" height=12>0000</TD></TR>
<TR>
<TD align=middle width="50%" height=12>CalcCRC(校验)</TD>
<TD align=middle width="50%" height=12>0011</TD></TR>
<TR>
<TD align=middle width="50%" height=12>Transmit(发送)</TD>
<TD align=middle width="50%" height=12>0100</TD></TR>
<TR>
<TD align=middle width="50%" height=12>NoCmd
Change(无命令改变)</TD>
<TD align=middle width="50%" height=12>0111</TD></TR>
<TR>
<TD align=middle width="50%" height=12>Recceive(接收)</TD>
<TD align=middle width="50%" height=12>1000</TD></TR>
<TR>
<TD align=middle width="50%" height=12>Transceive(收发)</TD>
<TD align=middle width="50%" height=12>1100</TD></TR>
<TR>
<TD align=middle width="50%" height=12>MFAuthent(认证)</TD>
<TD align=middle width="50%" height=12>1110</TD></TR>
<TR>
<TD align=middle width="50%" height=9>Soft
Reset(软件复位)</TD>
<TD align=middle width="50%"
height=9>1111</TD></TR></TBODY></TABLE>
<DIV>2.2 基本指令集</DIV>
<DIV>MF RC522有14种基本指令集,实现不同方式的数据传输,如表3所示。<BR><BR><B>表3
14种基本指令集</B></DIV>
<TABLE borderColorDark=#ffffff width="100%"
borderColorLight=#000000 border=1>
<TBODY>
<TR>
<TD align=middle width="50%">基本指令</TD>
<TD align=middle width="50%">指令代码</TD></TR>
<TR>
<TD align=middle width="50%">Request Std</TD>
<TD align=middle width="50%">0x26</TD></TR>
<TR>
<TD align=middle width="50%">Request All</TD>
<TD align=middle width="50%">0x52</TD></TR>
<TR>
<TD align=middle width="50%">AntiCollision(防重叠)</TD>
<TD align=middle width="50%">0x93</TD></TR>
<TR>
<TD align=middle width="50%">Select Tag(选卡片)</TD>
<TD align=middle width="50%">0x93</TD></TR>
<TR>
<TD align=middle width="50%">Authentication_A</TD>
<TD align=middle width="50%">0x60</TD></TR>
<TR>
<TD align=middle width="50%">Authentication_B</TD>
<TD align=middle width="50%">0x61</TD></TR>
<TR>
<TD align=middle width="50%">Read(读)</TD>
<TD align=middle width="50%">0x30</TD></TR>
<TR>
<TD align=middle width="50%">Write(写16Bytes)</TD>
<TD align=middle width="50%">0xA0</TD></TR>
<TR>
<TD align=middle width="50%">Write4(写4Bytes)</TD>
<TD align=middle width="50%">0xA2</TD></TR>
<TR>
<TD align=middle width="50%">Increment(增值)</TD>
<TD align=middle width="50%">0xC1</TD></TR>
<TR>
<TD align=middle width="50%">Destore(减值)</TD>
<TD align=middle width="50%">0xC0</TD></TR>
<TR>
<TD align=middle width="50%">Restore(重储)</TD>
<TD align=middle width="50%">0xC2</TD></TR>
<TR>
<TD align=middle width="50%">Transfer(传送)</TD>
<TD align=middle width="50%">0xB0</TD></TR>
<TR>
<TD align=middle width="50%">No command</TD>
<TD align=middle width="50%">0x50</TD></TR></TBODY></TABLE>
<DIV><B>3 软件设计</B></DIV>
<DIV>MSP430F413首先对MF RC522进行初始化配置,寄存器设置好后,MF
RC522可以接收控制执行命令执行操作,实现与Mifare 1 S50卡片通信;Mifare 1
S50卡根据接收到的指令进行相应操作。但是MSP430F413并不是通过简单的指令就可以读写IC卡片,需要一系列的操作才能完成通信。主要包括:(1)请求唤醒;(2)防重叠;(3)选择卡片;(4)密码认证;(5)读写操作。</DIV>
<DIV>MSP430F413对Mifare 1 S50卡片操作流程,如图3所示。</DIV>
<DIV>3.1 请求Request Std/Request All</DIV>
<DIV>当在天线有效工作距离内检测到卡片,MF RC522发送Request Std/Request
All请求指令,卡片接收到请求指令后返回握手信号,从而判断操作是否成功。<BR><IMG height=640
hspace=20
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/200671920506580.gif"
width=525 vspace=10 border=0><BR><FONT
size=3> </FONT>Request Std(0x26)连续读卡指令</DIV>
<DIV>Request All(0x52)非连续读卡指令</DIV>
<DIV>3.2 Atcollision(防重叠)</DIV>
<DIV>MF
RC522能够防止多张卡片重叠造成的数据错误。当在天线有效工作距离内检测到多张卡片时,MCU读取序列号进行判断检测。</DIV>
<DIV>Mifare 1
S50卡具有全球唯一4个字节的序列号,SN存放在Sector0的Block0内前4个字节,第5个字节存放校验码(4字节异或结果),MCU控制循环读取序列号,直到读取一个校验正确的序列号后,保存并退出循环;当然出错也会退出循环。</DIV>
<DIV>Sector0的Block0数据格式如表4所示。</DIV>
<DIV><IMG height=136
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/200671920506621.gif"
width=549 border=0></DIV>
<DIV>3.3 Select(选择卡片)</DIV>
<DIV>将Anticollision操作读取的序列号SN 4个字节还有异或的校验码发送到Mifare 1
S50卡上,卡片接收后与自身SN及校验码核对,只有完全一样才能选定卡片。</DIV>
<DIV>3.4 Authentication(密码认证)</DIV>
<DIV>Mifare 1
S50卡有1KB容量,分为16个扇区:Sector0到Sector15,每个Sector(扇区)包括4个Block(块),每个Block具有16个byte的存储容量。Block被分为Block0至Block3;整个Mifare
1 S50非接触式智能卡共有64个Block。</DIV>
<DIV>每个Sector的Block3都存放着本扇区自己的密码KeyA、KeyB和Access Bits。通过Access
Bits设置密码方式和数据块类型(Write/Read或Value)。</DIV>
<DIV>只有密码完全认证通过后,才可以对卡片进行Write/Read操作。</DIV>
<DIV>3.5 Write/Read(读写操作)</DIV>
<DIV>Authentication密码认证通过后,可以对64Block进行读写操作。其中Sector0中的Block0只能执行读操作。Mifare
1 S50读写时是以Block为单位的,读或写都是针对整个Block
16字节的数据,不能单个字节读写。为了确保数据的正确性,可进行数据校验。</DIV>
<DIV>3.6 Decrement/Increment(增值和减值操作)</DIV>
<DIV>当数据块通过设置Access
bits配置成Value型时,可以对其进行Decrement/Increment操作。为了防止数据出错,Value
Block设有复杂的数据格式。Value重复存放3次,其中原码存放2次,补码再存放1次;Adr重复存放4次,其中原码存放2次,补码再存放2次。</DIV>
<DIV>Value:增值或减值 Adr:操作Block地址</DIV>
<DIV>执行Decrement/Increment后,把结果存放在内部数据缓冲寄存器中,等待Transfer指令操作写入指定的目标Block中。</DIV>
<DIV>3.7 Restore</DIV>
<DIV>Restore指令是将Mifare 1
S50内某一Block内容读出,存放在内部数据缓冲寄存器中,等待Tranfer指令操作写入指定的目标Block中,相当于复制Block
a到Block b中.</DIV>
<DIV>3.8 Transfer(传送)</DIV>
<DIV>Transfer指令操作是将内部数据缓冲区内数据传送到目标Block中.执行Decrment/Increment和Restore指令操作都需要Transfer指令,数据才能成功传输.</DIV>
<DIV>3.9 Halt(停机)</DIV>
<DIV>Halt指令操作将结束MF RC522与Mifare S50通信。</DIV>
<DIV>MF
RC522作为新一代非接触IC卡与传统的IC卡相比有着很大的优势,具有较强的保密性能和防碰撞功能,特别是采用低电压供电大大降低功耗,能够与超低功耗MSP430单片机结合实现低功耗预付费水表的设计。
</DIV><SPAN class=style1>(<A class=link3
href="http://www.avrw.com/"
target=_parent>综合电子论坛</A>)</SPAN></TD></TR></TBODY></TABLE>
<P
align=center> *注:部份文章为网上收录供大家共同学习参考之用,并不代表本站意见。如存在版权问题请马上通知我们,我们将马上删除。</P></TD></TR></TBODY></TABLE></P></TD></TR></TBODY></TABLE>
<SCRIPT
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/floor.htm"></SCRIPT>
<SCRIPT
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/homeright.js"></SCRIPT>
<SCRIPT language=javascript
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/339405.js"
type=text/javascript></SCRIPT>
<NOSCRIPT><A href="http://www.51.la/?339405" target=_blank><IMG
style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"
alt=我要啦免费统计
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/s.gif"></A></NOSCRIPT>
<SCRIPT language=JavaScript
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/stat.htm"
charset=gb2312></SCRIPT>
<SCRIPT
src="新一代Mifare射频基站IC MF RC522在水表中的应用.files/shownum.htm"></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -