防冲撞协议原理实验报告概论.docx
《防冲撞协议原理实验报告概论.docx》由会员分享,可在线阅读,更多相关《防冲撞协议原理实验报告概论.docx(12页珍藏版)》请在冰豆网上搜索。
防冲撞协议原理实验报告概论
实验三防冲撞协议原理实验
1、实验目的
通过本实验使学生了解RFID的防冲撞原理的实现方法,掌握时间槽、VICC四种状态的含义以及状态的切换规律。
2、实验设备
TITRF7960读卡器一个、usb连接线一条、电脑一台、HFRFID实验上位机软件、ISO15693标签若干张
3、实验知识预备及原理
1、VICC状态
一个VICC可能处于以下4种状态中的一种:
断电
准备
静默
选择
这些状态间的转换在图6.22中有规定。
断电、准备和安静状态的支持是强制性的。
选择状态的支持是可选的。
(1)断电状态
当VICC不能被VCD激活的时候,它处于断电状态。
(2)准备状态
当VICC被VCD激活的时候,它处于准备状态。
选择标志没有置位时,它将处理任何请求。
(3)安静状态
当VICC处于安静状态,目录标志没有设置且寻址标志已设置情况下,VICC将处理任何请求。
(4)选择状态
只有处于选择状态的VICC才会处理选择标志已设置的请求。
注1:
状态转换方法的意图是,某一时间只有一个VICC应处于选择状态。
注2:
VICC状态转换图只图示出有效的转换。
在所有的其它情况下,当前的VICC状态保持不变。
当VICC
不能处理一个VCD请求(例如CRC错误,等等),它将仍然处于当前状态。
注3:
虚线表示的选择状态图示出VICC支持的选择状态是可选的。
2、上位机软件防碰撞算法实现流程
上位机界面打开默认设置:
支持ISO15693,高速率,数据编码1/4操作,寄存器会自动设置一些参数:
1).在询卡请求时检测标志位(B5)如果设置了,slots=1,如果没有设置,slots=16同时使能不反应中断。
2).初始化masklength=0;maskvalue=0
3).初始化slot数指针为0
4).发送询卡请求命令带上masklength,maskvalue值
5).等待发送完成中断
6).等待下一个中断,中断可能是以下情况:
a.接受完成
b.碰撞
c.没有反应
检测IRQ状态寄存器中断类型
如果是接收完成中断,就意味着没有错误/碰撞在FIFO接收UID过程中,从FIFO中可以读出完整的UID
如果是碰撞中断,在slot指针里记录碰撞位置,指针数值加1
如果是标签没反应中断,忽略。
7).复位FIFO
8).如果slots数是16,发送EOF;如果slots数是1,退出。
9).对以所有的16个slots重复步骤5和6,在16个slots结束时,屏蔽不反应中断。
10).检查slot指针数值,如果不为0,计算新的mask;如果为0,退出。
a.增加mask长度4bits
b.newmask=slot数(碰撞位置slot数)+oldmask
11).返回到第4步骤(newmaskvalue和length)
12)slot指针加1
13)返回到第10步骤
4、实验过程及分析
1、确保TITRF7960RFID与电脑连接正常,打开虚拟机软件,右击【我的电脑】---->【属性】---->【硬件】---->【设备管理器】,查看连接的端口,如下图:
2、将15693卡放在感应区,打开上位机软件无线龙RFID,标签类型选择15693,在端口处输入COM3,点击【选择端口】,显示命令:
08:
29:
23.781010*******
08:
29:
23.953010*******
TRF7960EVM
08:
29:
23.953****COMPortfound!
****
如下图:
3、选择【询卡】命令,点击【设置协议】---->【执行】,窗口输出命令如下:
08:
38:
18.278-->010C00030410002101000000
08:
38:
18.278\\.\COM3
08:
38:
18.590<--010C00030410002101000000
Registerwriterequest.
08:
38:
18.590010*******
08:
38:
18.715010*******
08:
38:
18.715010*******
08:
38:
18.840010*******
08:
38:
27.996-->010B000304140401000000
08:
38:
28.200<--010B000304140401000000
ISO15693Inventoryrequest.
[,40]
[,40]
[,40]
[,40]
[,40]
[F58E8E75000104E0,66]
[,40]
[,40]
[,40]
[,40]
[,40]
[,40]
[,40]
[,40]
[,40]
[,40]
4、保持等待[Stayquiet(0x02)]
当接受到Stayquiet命令时,芯片将进入quiet状态,而且不会返回响应。
对于Stayquiet命令是没有响应的。
操作:
(a)选择保持等待命令
(b)在UID下拉框中选择标签,如果只有一个标签默认选择
(c)选择执行命令
结果如下:
08:
40:
04.437-->010A0003041800020000
08:
40:
04.656<--010A0003041800020000
Requestmode.
[]
保持等待数据请求命令:
010A0003041800020000
5、选中命令[Select(0x25)]
当收到Select命令,如果UID等于芯片的UID,则进入selected状态,并返回响应。
如果
UID不相等,芯片返回Ready状态,不发出响应。
Select命令只能在Addressed模式下执行。
操作:
(a)选择保持等待命令
(b)在标签标志位中选择Addressed命令
(c)在UID下拉框中选择标签,如果只有一个标签默认选择
(d)选择执行命令
结果如下:
08:
45:
40.661-->0112000304182025F58E8E75000104E00000
08:
45:
40.802<--0112000304182025F58E8E75000104E00000
Requestmode.
[00]
选中命令数据请求命令:
0112000304182225408C4503000104E00000
标签返回值:
[00]有标签反应[]没有标签反应
6、复位到准备状态位[Resettoready(0x26)]收到Resettoready命令,芯片将返回到Ready
状态。
操作:
(a)选择复位到准备状态命令
(b)在标签标志位中选择高数据率命令(一般可以不选择)
(c)在UID下拉框中选择标签,如果只有一个标签默认选择
(d)选择执行命令
结果如下:
08:
50:
03.470-->010A0003041800260000
08:
50:
03.626<--010A0003041800260000
Requestmode.
[00]
复位到准备状态数据请求命令:
010A0003041800260000
标签返回数据:
[00]
7、单槽模式读卡(非防冲撞模式)
操作:
a)在标签标志位窗口中选择“单槽模式”
b)选择执行命令。
(当读卡器上方只有一张标签时,可正常读卡。
但是当放置多张标签时,则会出现标签冲撞情况,造成无法正常读取卡)实验时放两张ISO15693的卡在感应区,再进行单槽模式操作,结果如下图,UID处无法显示卡号,若不选择单槽模式,则可以显示卡号。
08:
53:
28.409-->010B000304142401000000
08:
53:
28.566<--010B000304142401000000
ISO15693Inventoryrequest.
[z{00},76]