欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    UHF特高频RFID实验(共14页).doc

    • 资源ID:14021868       资源大小:1.11MB        全文页数:14页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    UHF特高频RFID实验(共14页).doc

    精选优质文档-倾情为你奉上实验四 UHF特高频RFID实验一、 实验目的1.1 掌握UHF特高频通讯原理1.2 掌握UHF特高频通讯协议1.3 掌握读卡器操作流程1.4 了解UHF特高频应用二、 实验设备硬件:RFID实验箱套件,电脑等。软件:Keil。三、 实验原理3.1特高频RIFD系统典型的特高频UHF(Ultra-High Frequency)RFID系统包括阅读器(Reader)和电子标签(Tag,也称应答器Responder)。其结构示意图如下图4.1所示。工作步骤如下:阅读器发射电磁波到标签;标签从电磁波中提取工作所需要的能量;标签使用内部集成电路芯片存储的数据调制并反向散射一部分电磁波到阅读器;阅读器接收反向散射电磁波信号并解调以获得标签的数据信息。电子标签通过反向散射调制技术给读写器发送信息。反向散射技术是一种无源RFID电子标签将数据发回读写器时所采用的通信方式。根据要发送的数据的不同,通过控制电子标签的天线阻抗,使得反射的载波幅度产生微小的变化,这样反射的回波就携带了所需的传送数据。控制电子标签天线阻抗的方法有很多,都是基于一种称为“阻抗开关”的方法,即通过数据变化来控制负载电阻的接通和断开,那么这些数据就能够从标签传输到读写器。读写器 天线 Tag图 4.1 RFID系统结构示意图3.2电子标签存储结构特高频标签的工作频率在860MHz960MHz之间,可分为有源标签与无源标签两类。工作时,射频标签位于阅读器天线辐射场的远场区内,标签与阅读器之间的耦合方式为电磁耦合方式。阅读器天线辐射场为无源标签提供射频能量,将无源标签唤醒。目前UHF频段的标签芯片制造商主要有Alien、IMPINJ、TI、NXP、STM等,标签制造商通过设计天线并制作封装而生产出标签。标签的封装是各种各样,下图4.2是几种标签的外形。不同厂商的标签天线规格不同,同时天线的谐振频率点也不完全相同,这样当使用固定频点的读写器读一类标签时的效果很好,而读另一类标签的效果却会很差。电子标签芯片中的存储器EEPROM一般分为4个区,分别为保留内存(Reserved区)、EPC存储器(EPC区)、TID存储器(TID区)、用户存储器(USR区).有的标签可能没有USR区,而且标签的EEPROM存储器的大小会不同。比如有的标签的TID是8字节,有的是10个字节,其它区也一样。标签内部存储器具体结构如下图4.3所示,4.2 几种标签外形图 4.3标签内部存储结构 l 保留内存:保留内存包含灭活口令(杀死口令)和访问口令。灭活口令为存储在保留内存 00h 至 1Fh 的32 位数值,MSB 优先,默认(未编程时)值为零。询问机可以使用标签的灭活口令灭活标签,使其不对询问机做任何响应。但如果标签的灭活口令为零,则标签不会执行相关灭活操作。可能有些标签没有保留内存区,不含有灭活口令。对这类标签操作时,可以认为其内部有初始化为零值的灭活口令,且该口令被永久的读锁定和写锁定。访问口令为存储在保留内存 20h 至 3Fh的 32 位数值,MSB 优先,默认(未编程时)值为零。访问口令非零的标签在转为保护状态之前要求询问机发出正确的访问口令。可能有些标签没有保留内存区,不含有访问口令。对这类标签操作时,可以认为其内部有初始化为零值的访问口令,且该口令被永久的读锁定和写锁定。l EPC存储器:EPC 存储器包含在 00h 至 0Fh 存储位置的 16 位 StoredCR在 10h 至 1Fh 存储地址的协议控制字(StoredPC)和在 20h 开始的 EPC。有些标签还包含地址从 210h 开始的长为一个或两个字节的扩展协议控制字(XPC)。StoredCRC、StoredPC、EPC 应优先存储 MSB (EPC 的 MSB 应存储在20的存储位置)。StoredCRC 是标签为了保护在盘存操作期间反向散射的 StoredPC 位和 EPC 而使用的循环冗余码校验。上电后,表亲啊计算EPC存储器的末端,但必须直至StoredPC中的length field规定的EPC的末端),并将所有计算的CRC-16映射到EPC存储器00h值1FH中,MSB优先。StoredPC 被划分成 10h 至 14h 存储位置的 EPC 长度、15h 存储位置的用户存储区标识(UMI)、16h 存储位置的扩展协议控制字 XPC 标识(XI)和在 17h 至 1Fh 存储位置的系统编号标识(NSI)。StoredPC 默认(未编程时)值为 0000h。l TID存储器:TID 存储器应包含 00h 至 07h 存储位置的 8 位 ISO/IEC 15963 分配类识别(E0h 或 E2h)。07h以上存储位置的存储值由分配类识别的不同而不同。但一般包含制造商号和标签序号,同时还包含了足够的信息以保证读写器对 TID 存储区的正常操作。l 用户存储器:用户存储器允许存储用户指定数据。该存储器组织为用户定义。如果标签用户存储器未被编程,则其第一个字节的低五位(存储位置为 03h07h)应该为 0。注意所有存储体的逻辑寻址均从零(00h)开始,在一个逻辑存储体中的操作不应访问另 一存储体内的存储位置,物理内存映象图为提供商指定。访问存储器的命令需包含选择存储体类型的 MemBank 参数和以 EBV 格式选择该存储体内特定存储位置的地址参数。更详细内容请参考EPC相关标准。3.3 UHF读写器协议标准3.3.1 标准简介特高频读写系统使用ISO18000-6c或EPC class1Generation2标准。读写器工作频段是840Mhz960Mhz。本实验平台UHF模块采用后者作为设计标准。EPC Class1 Generation2标准中规定高的空中接口的基本标准有:l 读写器发送命令编码采用脉冲间隔编码PIE(Pulse-Interval Encode)。它采用脉冲时间的长短来表示数据0或1。l 阅读器到标签的发射信号调制方式为DSB-ASK,SSB-ASK,或PR-ASK,调制深度最小为80%l 电子标签返回信号编码方式FM0,Miller-2,Miller-4,或Miller-8l 电子标签返回信号调制方式ASK或者PSK(由标签芯片制造商决定)l 标准中还规定了整个读写标签的时序,标签的状态转换图等。同时各国家根据其国情而规定了具体使用的频段和有效的发射功率,在我国频率使用的相关规定有:l 工作频段840845Mhz和920925Mhzl 载波频率容限20e-6l 信道带宽(99%的能量)250Khzl 临道功率泄露比为40dB(第一邻道),60dB(第二邻道)l 发射功率2WE 3.3.2 标签状态EPC Class1 Gen2标准中规定了使用的命令集,命令可以分为通用命令、可选命令、以及定制命令,比如Select,Query,QueryRep,Ack,Req_RN,Read,Write等。读写器可以发送不同的命令,标签芯片根据接收到的不同命令转换其状态,标签有7种状态(图4.4),Ready,Arbitrate,Reply,Acknowledge,Open,Secured,Killed。UHF读写器通过发送不同命令,让标签在这7种状态之间进行转换。标签在不同的状态,会对写器发出的相同命令有不同的反应,时序表现也不尽相同。例如在标签进入了Open或Secured状态后,无论等多长时间,发送访问命令都会在这个状态,而在其它状态,会出现超时并进入Arbitrate状态。就绪(Ready)状态,就绪可以被视为通电标签被灭活或标签正参与某盘存周期的保持状态。进入激励射频场后,未灭活的标签应进入就绪状态。标签应保持其就绪状态直至收到其已盘参数(Query 命令规定的通话的已盘参数)和 sel 参数与其当前标记值匹配的 Query 命令。匹配标签应从其 RNG 中抽出 Q 位数,将该数字载入其槽计数器内,若该数字非零则转换到仲裁状态,若该数字为零则转换到应答状态。若处于除被灭活之外任何状态的标签电源断电,则应在恢复电源后即返回就绪状态。仲裁(Arbitrate)状态,仲裁可以被视为参与当前盘存周期但其槽计数器数值非零的标签的“保持状态”。处于仲裁状态的标签每次收到其通话参数与当前盘存周期通话匹配的 QueryRep命令后使其槽计数器减值,当槽计数器达到 0000h 时,应转换到应答状态。以0000h 的槽值转换到仲裁状态(例如从应答状态转换)的标签应使其槽计数器在下一个QueryRep 时从 0000h 减值到 7FFFh,由于其槽值此时非零,因此仍然处于仲裁状态。应答(Reply)状态,一旦进入应答状态,标签应反向散射 RN16。若标签收到有效确认(ACK),则转换到确认状态,反向散射其 PC、EPC 和 CRC-16。若标签未能接收到 ACK,或收到无效 ACK,则应返回仲裁状态。确认(Acknowledge)状态,处于确认状态的标签可以转换到除灭活之外的任何状态,视所收到的具体命令而定。保护(Secured)状态,处于确认状态的,其访问口令为零的标签收到Req_RN命令后应立即转换成保护状态,反向散射新的询问机应在随后的命令中使用的和标签在随后的应答中使用的RN16(标为句柄)。处于开放状态的其访问口令非零应在收到有效access命令即转换到保护状态,保持原来从确认状态转换到开放状态时反向散射的句柄不变。处于保护状态的标签可以执行所有访问命令。处于保护状态的标签可以转换到除开放或确认之外的任何状态,具体情况视所到的命令而定。灭活(Killed)状态,处于开放状态或保护状态的标签应在收到kill命令后以有效非零灭活口令和有效句柄进入灭活状态。进入灭活状态后,标签应通知询问机灭活操作成功,此后不再对询问机作出响应。被灭活的标签应在所有情况下都处于灭活状态,并在随后的开启电源的操作中立即进入灭活状态。灭活操作具有不可逆性。图4.4 UHF标签状态转换图3.4 UHF读写器特高频RFID读写器利用PIE编码的DSB-ASK、SSB-ASK或PR-ASK调制射频载波,与一个或一个以上的标签通信。读写器采用图 4.4 所示的三个基本操作管理标签群。每个操作均由一个或一个以上的命令组成。这三个基本的操作定义如下:1) 选择:读写器通过该命令选择标签群以便于存盘和访问。读写器可以以一个或一个以上的select命令则存盘之前选择特定的标签群。2) 存盘:读写器识别标签的过程。读写器在四个通话的其中一个通话中传输Query命令,开始一个盘存周期。一个或一个以上的标签可以应答。询问机查询某个标签的应答,请求该标签发出StoredPC、EPC和StoredCRC。同时只在一个通话中进行一个盘存周期。3) 访问: 读写器与各标签交易的过程。访问前必须要对标签进行识别,访问由多个命令组成。更多协议细节请阅读相关资料。3.5 实验箱ZHD型UHF RFID模块常用指令:IOT-L02-03型RFID实验箱内使用的UHF RFID模块为ZHD900+ UHF RFID模块,它 和上位机的通信协议详细介绍请参考配套光盘附件超高频资料 ZHD通信接口定义.pdf。在本实验中仅对几个常用指令进行验证性实验操作l 读取模块状态命令示例:l 读取功率命令示例:l 设置功率命令示例(将功率设置为1A既26dB):l 单标签查询示例:该命令启动标签识别循环,对单张标签进行识别时使用该命令。l 标签查询防冲撞指令:该命令启动标签识别循环,对多张标签进行识别时使用该指令。l 标签识别单步识别指令:该命令识别单张标签,与单标签识别和防冲撞识别不同的是该命令不启动识别循环。四、 实验步骤以下对相关器件的介绍只是一部分,详情见其手册。手册地址:光盘附件特高频资料4.1 打开光盘源代码上位机开发用RFID-UARTRVMDK工程目录,编译并烧写到实验箱,将实验箱上的UART-STM串口与PC机相连,打开电源,打开串口助手(光盘应用程序串口助手),并正确配置串口参数。可以发现此步与实验2中的4.1节相同,它们用的是同一个STM固件程序。根据之前学习的知识,测试3.5节中介绍的几个协议指令。4.2打开工程光盘源代码特高频UHF特高频RFID实验APP 下的工程文件,编译并下载至RFID实验箱。注意事项:不同操作之间请复位,比如单标签与防碰撞识别操作。实验平台的界面如图4.5,包括8个编辑框,长条显示卡号,短条显示读卡次数,最后一个显示按键值。底部有一些按钮,代表相应的操作包括单标签识别(single Tag),防碰撞识别(Multi ID),设置推荐功率(Set power),查看功率(Get Power),停止操作(stop)等。图 4.5 系统UI4.3源码解析及相关操作。界面UI由UCGUI开发,核心代码如下:UHF_Sys.c/* 定义了对话框资源列表 */*/static const GUI_WIDGET_CREATE_INFO aDialogCreate = FRAMEWIN_CreateIndirect, "UHF", 0, 0, 0, 272, 480, FRAMEWIN_CF_ACTIVE , EDIT_CreateIndirect, "", GUI_ID_EDIT0, 5, 10, 262, 25, EDIT_CF_RIGHT, 4 , EDIT_CreateIndirect, "", GUI_ID_EDIT1, 220, 45, 40, 25, EDIT_CF_RIGHT, 4 , EDIT_CreateIndirect, "", GUI_ID_EDIT2, 5, 80, 262, 25, EDIT_CF_RIGHT, 4 , EDIT_CreateIndirect, "", GUI_ID_EDIT3, 220, 115, 40, 25, EDIT_CF_RIGHT, 4 , EDIT_CreateIndirect, "", GUI_ID_EDIT4, 5, 145, 262, 25, EDIT_CF_RIGHT, 4 , EDIT_CreateIndirect, "", GUI_ID_EDIT5, 220, 180, 40, 25, EDIT_CF_RIGHT, 4 , EDIT_CreateIndirect, "", GUI_ID_EDIT6, 5, 215, 262, 25, EDIT_CF_RIGHT, 4 ,;/*仅列取部分代码,详见源码*/* 名 称:void Fun(void)* 功 能:显示及处理界面* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无 void Window(void) uint8_t i = 0; unsigned char edit_cur; GUI_CURSOR_Show(); /* 建立窗体,包含了资源列表,资源数目, 并指定回调函数 */ hWin = GUI_CreateDialogBox(aDialogCreate, GUI_COUNTOF(aDialogCreate), _cbCallback, 0, 0, 0); /* 设置窗体字体 */ FRAMEWIN_SetFont(hWin, &GUI_FontComic18B_1); FRAMEWIN_SetBarColor(hWin, 0, GUI_LIGHTCYAN); FRAMEWIN_SetClientColor(hWin, GUI_BLACK); /FRAMEWIN_SetDefaulteBorSize(0); /*BUTTON 部件句柄及参数设定*/ hButton_bussys0 = WM_GetDialogItem(hWin, GUI_ID_BUTTON0); BUTTON_SetFont(hButton_bussys0, &GUI_FontComic18B_1); BUTTON_SetTextColor(hButton_bussys0, 0, GUI_BLUE); BUTTON_SetBkColor(hButton_bussys0,0,GUI_LIGHTCYAN); /* 获得edit 部件的句柄 */ edit0 = WM_GetDialogItem(hWin, GUI_ID_EDIT0); /* 设置EDIT部件采用10进制 范围50-20000*/ EDIT_SetDecMode(edit1,0,0,2000,0,0);EDIT_SetMaxLen(edit0, 40);while(1)if (1 = rec_f2) rec_f2 = 0;if (RxBuffer21 > 3)atoh(RxBuffer2, hex, RxBuffer21 + 2); /字符转化成16进制显示if (0 = cardcount) memcpy(s_card0.id, hex, 38);s_card0.id38 = '0'EDIT_SetText(edit0, hex);EDIT_SetValue(edit1, +s_card0.times);Beep(); /蜂鸣器响应+cardcount; else for (n = 0; n < cardcount; n+)if(0 = strcmp(hex, s_cardn.id)EDIT_SetValue(editn*2 + 1, +s_cardn.times);Beep();break;if (cardcount < 4 && n = cardcount)memcpy(s_cardcardcount.id, hex, 38);s_cardcardcount.id39 = '0'EDIT_SetText(editcardcount * 2, hex);EDIT_SetValue(editcardcount *2 + 1, +s_cardcardcount.times);Beep();+cardcount;WM_Exec(); /窗口重绘以上代码只截取部分,详细代码请参看源码。4.4 点击Get Power按钮可以获取到当前功率。图 4.6 获取功率核心代码为按钮响应函数:UHF_Sys.cuint8_t link5 = 0xaa, 0x03, 0x11, 0x03, 0x55;uint8_t defpower6 = 0xaa, 0x04, 0x02, 0x01, 0x0f, 0x55;uint8_t single4 = 0xaa, 0x02, 0x10, 0x55;uint8_t power4 = 0xaa, 0x02, 0x01, 0x55;uint8_t stop4 = 0xaa, 0x02, 0x12, 0x55;static void _cbCallback(WM_MESSAGE * pMsg) int NCode, Id; switch (pMsg->MsgId) case WM_NOTIFY_PARENT: /通知父窗口有事件在窗口部件上发生 Id = WM_GetId(pMsg->hWinSrc); /获得对话框窗口里发生事件的部件的ID NCode = pMsg->Data.v; /通知代码 switch (NCode) case WM_NOTIFICATION_RELEASED: /窗体部件动作被释放 if (Id = GUI_ID_BUTTON1) USART2_OUT(defpower, 6); /通过串口发送设置功率指令 else if (Id = GUI_ID_BUTTON0) USART2_OUT(link, 5); /发送防碰撞识别指令 else if (Id = GUI_ID_BUTTON2) USART2_OUT(single, 4); /发送单标签识别指令 else if (Id = GUI_ID_BUTTON3) USART2_OUT(power, 4); /发送获取功率指令 else if (Id = GUI_ID_BUTTON4) USART2_OUT(stop, 4); /停止指令 break; default: break; default: WM_DefaultProc(pMsg); /默认程序来处理消息 break; 4.5 通过键盘输入想要设定的功率值范围1030请勿超出范围,推荐范围1520.点击Set Power按钮设置推荐功率,其值为15dbm,设置完可以查看结果。图5.6已经改为推荐功率,第5个字节表示功率为15dbm(功率字节有效位为低6为,所以8F代表15dbm)。4.6 点击Single Tag开始但标签识别模式,取一张标签靠近读卡器,可以读到卡号并在编辑框内显示读卡次数如图4.7。图 4.7 单标签识别4.7 点击Stop可以停止读卡。4.8 点击Multi Tag开始进入防碰撞识别模式,取多张卡片靠近读卡器,获取卡号。专心-专注-专业

    注意事项

    本文(UHF特高频RFID实验(共14页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开