zoukankan      html  css  js  c++  java
  • 防冲撞协议原理实验报告

    实验三  防冲撞协议原理实验

    一、实验目的

    通过本实验使学生了解 RFID 的防冲撞原理的实现方法,掌握时间槽、VICC 四种状态的含义以及状态的切换规律。

    二、实验设备

    TI TRF7960 读卡器一个、usb 连接线一条、电脑一台、HF RFID 实验 上位机软件、ISO15693标签若干张

    三、实验知识预备及原理

    1、VICC 状态

    一个 VICC 可能处于以下 4 种状态中的一种:

    l  断电

    l  准备

    l  静默

    l  选择

    这些状态间的转换在图 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). 初始化 mask length=0;mask value=0

    3).初始化 slot 数指针为 0

    4). 发送询卡请求命令带上 mask length,mask value 值

    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 长度 4 bits

    b.new mask=slot 数(碰撞位置 slot 数)+old mask

    11).返回到第 4 步骤(new mask value 和 length)

    12) slot 指针加 1

    13) 返回到第 10 步骤

    四、实验过程及分析

    1、确保 TI TRF7960RFID 与电脑连接正常,打开虚拟机软件,右击【我的电脑】---->【属性】---->【硬件】---->【设备管理器】,查看连接的端口,如下图:

     

    2、将15693卡放在感应区,打开上位机软件无线龙 RFID,标签类型选择 15693,在端口处输入COM3,点击【选择端口】,显示命令:

    08:29:23.781 --> 0108000304FF0000

    08:29:23.953 <-- 0108000304FF0000

    TRF7960 EVM 

    08:29:23.953 **** COM Port found! ****

    如下图:

     

    3、选择【询卡】命令,点击【设置协议】---->【执行】,窗口输出命令如下:

    08:38:18.278 --> 010C00030410002101000000

    08:38:18.278 \.COM3

    08:38:18.590 <-- 010C00030410002101000000

    Register write request.

    08:38:18.590 --> 0109000304F0000000

    08:38:18.715 <-- 0109000304F0000000

    08:38:18.715 --> 0109000304F1FF0000

    08:38:18.840 <-- 0109000304F1FF0000

    08:38:27.996 --> 010B000304140401000000

    08:38:28.200 <-- 010B000304140401000000

    ISO 15693 Inventory request.

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

    [F58E8E75000104E0,66]

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

    [,40]

     

    4、保持等待[Stay quiet(0x02)]

    当接受到 Stay quiet 命令时,芯片将进入 quiet 状态,而且不会返回响应。对于 Stay quiet 命令是没有响应的。

    操作:

    (a)选择保持等待命令

    (b)在 UID 下拉框中选择标签,如果只有一个标签默认选择

    (c)选择执行命令

    结果如下:

    08:40:04.437 --> 010A0003041800020000

    08:40:04.656 <-- 010A0003041800020000

    Request mode.

    []

     

    分析:

     

    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

    Request mode.

    [00]

     

    分析:

     

    6、复位到准备状态位[Reset to ready(0x26)] 收到 Reset to ready 命令,芯片将返回到 Ready

    状态。

    操作:

    (a)选择复位到准备状态命令

    (b)在标签标志位中选择高数据率命令(一般可以不选择)

    (c)在 UID 下拉框中选择标签,如果只有一个标签默认选择

    (d)选择执行命令

    结果如下:

    08:50:03.470 --> 010A0003041800260000

    08:50:03.626 <-- 010A0003041800260000

    Request mode.

    [00]

     

     分析:

     

    7、单槽模式读卡(非防冲撞模式)

    操作:

    a) 在标签标志位窗口中 选择“单槽模式”

    b) 选择执行命令。

    (当读卡器上方只有一张标签时,可正常读卡。但是当放置多张标签时,则会出现标签冲撞情况,造成无法正常读取卡)实验时放两张ISO 15693的卡在感应区,再进行单槽模式操作,结果如下图,UID处无法显示卡号,若不选择单槽模式,则可以显示卡号。

    08:53:28.409 --> 010B000304142401000000

    08:53:28.566 <-- 010B000304142401000000

    ISO 15693 Inventory request.

    [z{00},76]

     

  • 相关阅读:
    Rocky Linux8国内镜像源
    强制缓存和协商缓存的区别
    从源码来看VUE的执行流程
    plugin
    判断数据类型的方法
    获取函数参数
    BFC
    VUE的$nextTick
    HTTP
    JavaScript创建和触发自定义事件
  • 原文地址:https://www.cnblogs.com/jasmine-95/p/4972084.html
Copyright © 2011-2022 走看看