深圳大学-智能网络与计算-实验一:RFID原理与读写操作
实验目的与要求
- 掌握超高频RFID标签的寻卡操作。
- 掌握超高频RFID标签的读写操作。
- 掌握超高频RFID标签多张卡读取时的防冲突机制。
方法,步骤
- 软硬件的连接与设置
- 超高频RFID寻卡操作
- 超高频RFID防冲突机制
- 超高频RFID读写卡操作
实验过程及内容
一.软硬件的连接与设置
(1) 从实验箱中取出超高频 RFID 读写器模块
(2) 跳线帽如下
(3) 用跳线帽将读写器模块的跳线跳至 USB 端
(4) 900MHz 超高频RFID读写器与 PC 端连线
使用 USB 线将超高频读写器模块与电脑连接后,模块上的 Power 指示灯会常亮,如图所示。说明超高频读写器模块功能正常;随后,将超高频 RFID 标签置于读写器上方一定距离,即可开始实验。
二.超高频RFID寻卡操作
(1) 打开 PC 端的 RFIDDemo 软件
(2) 在左侧边栏选择“超高频900M”模块,软件将自动设置串口号、波特率。打开串口,界面如下:
(3) 寻卡。将 900M 的超高频 RFID 标签放在射频识别模块上方。单击底部的“单次寻卡”,卡号信息就被读取出来,在“寻卡操作”区和 “数据读写”区的卡号框内显示。
三.超高频RFID防冲突机制
(1) 原理:如果在读写器附近同时出现几张卡,可以看到不同的卡号相继被读出。当需要获取其中某一张卡片的信息时,在右侧的卡号下拉框中选中要操作的卡号即可对卡片进行读写操作
(2) 将多张卡一起放在检测区域旁边,观察RFIDDemo软件读出来的结果,结果如下:
(3) 通过上述操作,我们可以发现:
- 超高频RFID读写器是可以同时读取多张900M电子标签的,具有防冲突机制。
- 寻卡操作读出的卡号是 EPC 存储器存储的电子产品代码(EPC 编码),共 12 字节,即 96bit-EPC。
例如:上面读出的 900M 标签 EPC 编码为 E2 00 00 1D 71 13 01 34 24 00 66 13。
E2(H)为标头;固定为 8bit,用于识别 EPC 的长度、类型、结构、版本号 ;
00001D7(H)为厂商识别代码;固定为 28bit,识别公司或企业实体 ;
113013(H)为对象分类代码,固定为 24bit;
424006613(H)为序列号,固定为 36bit。
四.超高频RFID读写卡操作
1.各内存区数据读取操作
“卡号”下方是“内存区域”,有四个下拉选项,分别是 RFU、EPC、TID、USER。
其中,EPC、TID 区 是不可写入的。选择 EPC、TID 区时,最下方的写入按钮是无效的。如图所示
“内存区域”下方是“起始读取地址”,默认从 0 开始;读取以1个字(16bit)为单位长度,例如读取长度为4,则代表读4个字(64bit)的数据
(1) 选择内存区域为 RFU,单击“读取”按钮进行 RFU 数据读取,且 RFU 保留区数据读取要求“起 始读取地址”+“读取长度”不得大于4,否则会出现“重新输入起始读取地址和读取长度”的提示。因此,RFU区一次性能读取的最大存储空间为4个字。如图所示:
(2) 选择内存区域为 EPC。这里可以查看卡片的 EPC 号码。首先选择起始读取地址为0,读取长度为4,单击读取按钮,查看读取信息。
对上述数据进行分析:根据超高频 RFID 标签存储结构,我们可知,EPC存储区的第 1~2 字节为 CRC-16 校验,第3~4个字节是 PC 数据,第5~16字节为 EPC 编码号。因此,本张超高频 RFID 标签的 CRC-16校验是 AB 17,PC 为 34 00。可是EPC编码是12字节(96bit)的数据,这里只显示了E2 00 00 1D,共 4 个字节的数据,这是怎么回事呢?这是因为读取长度和读取地址造成的。
保持最大读取长度4不变,更改“起始读取地址”为4,继续读取EPC编码。
将上述两段数据进行拼接,即可得到完整的 EPC 存储区数据。是否可以继续读取呢?进行尝试,当起始读取地址填入5,读取长度为4时,就会出现如下错误提示(如下图所示)。这是因为起始读取地址+读取长度的值不得大于8造成的,现起始读取地址为5,读取长度为4,5+4>8,故出现错误提示。因此,EPC区一次性能读取的最大存储空间为8个字。
(3) 读TID区。TID码是不同标签之间的识别码,具有唯一性。
由上测试,我们可以发现,当起始读取地址填入8,读取长度为2时,出现了错误提示。这是因为 读取TID区数据时,要求“起始读取地址”+“读取长度”之和不得大于9,否则会出现“重新输入起始读取地址和读取长度”的提示。因此,TID区一次性能读取的最大存储空间为 9个字。
(4) 选择 UESR 内存区,单击读取。
当起始读取地址填入16,读取长度为5时,出现了错误提示。这是因为读取TID区数据时,要求“起始读取地址”+“读取长度”之和不得大于20,否则会出现“重新输入起始读取地址和读取长度”的提示。如下图所示,由此可知USER区一次性能读取的最大存储空间为20个字节。
2. 各内存区数据写入操作
根据实验手册指示,在USER区进行写入数据操作
(1) 在内存区域,选择“USER”
(2) 在最下方的写入栏,指定“起始写入地址”,“写入长度”为系统计算,单击“写入”按钮,写入信息。
出现写入成功提示
再单击读取,读取信息栏会显示写入后的数据
第二次写入信息。
出现写入成功提示
第二次读取到的内容
3. 其他设置
在RFIDDemo软件的左侧,还可以获取射频模块的一些数据并对其进行设置,如地区的设置、功率的设置以及 RF 频道的设置。
实验结论
1.工作原理:
RFID系统由读写器和标签组成。读写器通过发送射频信号与标签通信,标签接收射频信号并回复包含其识别信息的数据。RFID标签通常包括一个芯片和一个天线。当标签处于读写器的射频场内时,射频能量激活标签芯片,使其能够回复数据。
2.寻卡操作:
寻卡操作是读写器向周围环境发送射频信号,使得附近的RFID标签被激活并回复。读写器接收并解码标签回复的数据,识别特定标签的存在和位置。
3. 读写操作:
读写操作是指读写器向标签发送指令,要求标签回复其存储的数据。标签收到指令后,将存储的数据回复给读写器,读写器解码并显示或存储这些数据。
4. 防冲突机制:
在多张卡同时读取时,可能出现多个标签同时响应的问题,即冲突。RFID系统采用不同的防冲突机制来处理这种情况,如时间分割多址或碰撞检测算法,以确保每个标签都能被正确读取而不受干扰。
心得体会
在本次实验中,我接触并了解了RFID技术,我对其在物联网和智能化领域中的广泛应用有了更深刻的认识。RFID技术不仅可以用于物品追踪和管理,还可以在各行各业中提高工作效率、简化流程,并为数据采集和分析提供更多可能性。
例如在交通领域,RFID技术可用于电子收费、智能停车场管理、车辆识别等,提升交通运输效率,改善交通拥堵问题。
总的来说,RFID技术不仅在物联网领域有着广泛应用,还在各行各业中发挥着重要作用,为实现智能化、自动化和数字化提供了强有力的支持和基础。
相关文章:
深圳大学-智能网络与计算-实验一:RFID原理与读写操作
实验目的与要求 掌握超高频RFID标签的寻卡操作。掌握超高频RFID标签的读写操作。掌握超高频RFID标签多张卡读取时的防冲突机制。 方法,步骤 软硬件的连接与设置超高频RFID寻卡操作超高频RFID防冲突机制超高频RFID读写卡操作 实验过程及内容 一.软硬…...
文献引用指南ChatGPT提示词分享
文献引用指南 在学术写作中,准确引用是至关重要的环节。它不仅能够为您的研究提供坚实的学术基础,还能确保您尊重并认可他人的学术成果,从而有效避免抄袭的问题。而ChatGPT在这一方面同样能够为您提供有力的支持。借助ChatGPT,您…...
什么是计算机应用基础知识
计算机应用基础知识是指学习和掌握计算机的基本理论、硬件、软件、网络和应用技能的基础内容。它是为使用计算机进行日常工作、学习和解决实际问题打下的基础。计算机应用基础知识涉及多个领域,主要包括以下几个方面: 一、计算机硬件基础 计算机硬件组成:了解计算机的基本组…...
SpringBoot集成Flink-CDC,实现对数据库数据的监听
一、什么是 CDC ? CDC 是Change Data Capture(变更数据获取)的简称。 核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、 更新以及删除等),将这些变更按发生的顺序完整记录下来&…...
微信小程序云开发服务端存储API 从云存储空间删除文件
deleteFile 从云存储空间删除文件 const cloud require(wx-server-sdk)exports.main async (event, context) > {const fileIDs [xxx, xxx]const result await cloud.deleteFile({fileList: fileIDs,})return result.fileList }写的资式如有不对,请各位大神多…...
[操作系统] 深入进程地址空间
程序地址空间回顾 在C语言学习的时,对程序的函数、变量、代码等数据的存储有一个大致的轮廓。在语言层面上存储的地方叫做程序地址空间,不同类型的数据有着不同的存储地址。 下图为程序地址空间的存储分布和和特性: 使用以下代码来验证一下…...
gitlab处理空文件夹的提交或空文件夹提交失败
问题描述 厂家发给了我一个压缩包文件,压缩包解压之后本地编译没问题;推送到gitlab之后,再编译就报错了; 问题原因 经过分析之后发现,压缩包解压之后存在很多空文件夹;但是gitlab推送的时候,…...
C++ —— 智能指针 unique_ptr (上)
C —— 智能指针 unique_ptr (上) 普通指针的不足普通指针的释放智能指针智能指针 unique_ptr智能指针初始化错误用法get()方法返回裸指针智能指针不支持指针的运算(、-、、- -) 普通指针的不足 new和new [] 的内存需要用delete和…...
ruoyi-vue-pro集成magic-api(图文代码)
目录 前言1. 配置依赖2. 集成登录3. 成功展示前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 原先写过简单的集成:了解 magic-api的基本用法 附实战代码 magic-api相关文档推荐阅读:接口鉴权 相关的Java代码推荐阅读: java框架 零基础从入门到精…...
【线上问题定位处理】及【性能优化】系列文章
目录 性能优化 性能优化 九大服务架构性能优化方式 如何进行GC调优 如何排查线上系统出现的Full GC MySQL - 性能优化 MySQL - 分库分表 大数据查询的处理方案 MySQL优化手段有哪些 服务CPU100%问题如何快速定位? 服务内存OOM问题如何快速定位? JVM调优6大步骤 线…...
如何解压rar格式文件?8种方法(Win/Mac/手机/网页端)
RAR 文件是一种常见的压缩文件格式,由尤金・罗谢尔(Eugene Roshal)开发,因其扩展名 “rar” 而得名。它通过特定算法将一个或多个文件、文件夹进行压缩,大幅减小存储空间,方便数据传输与备份。然而…...
GORM 支持的数据库解析
GORM 是一个流行的 Go 语言 ORM(对象关系映射)库,它简化了 Go 与数据库之间的交互。作为一款功能强大的库,GORM 支持多种主流关系型数据库,满足不同开发场景下的需求。本文将探讨 GORM 支持的主要数据库及其特点&#…...
分布式光纤应变监测是一种高精度、分布式的监测技术
一、土木工程领域 桥梁结构健康监测 主跨应变监测:在大跨度桥梁的主跨部分,如悬索桥的主缆、斜拉桥的斜拉索和主梁,分布式光纤应变传感器可以沿着这些关键结构部件进行铺设。通过实时监测应变情况,能够精确捕捉到车辆荷载、风荷…...
如何在oracle关闭情况下如何修改spfile的参数
如何在oracle关闭情况下如何修改spfile的参数 一、问题背景二、处理方案 一、问题背景 在ORACLE数据库启动状态下通过下列代码修改了最大连接数 alter system set processes2000 scopespfile sid*;关闭了数据库再重新启动提示如下报错: ORA-00838: Specified valu…...
[ Spring ] Spring Cloud Gateway 2025 Comprehensive Overview
文章目录 Spring Gateway ArchitectureProject Level DependencyService CenterService ProviderGateway ServiceLaunch All Service Spring Gateway Architecture Service Center : register and find service providerService Provider : programs that provide actual serv…...
软考信安27~Windows操作系统安全相关
1、Windows账户与组管理 1.1、用户账户查看 whoami #查看当前登录的用户名称 whoami /all #查看当前系统的用户名和组信息,以及SID whoami /user #查看当前用户的SID net user #查看系统中包含哪些用户 wmic useraccount get name,sid #查看…...
2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型
2025年数学建模美赛 A题分析(1)Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析(2)楼梯磨损分析模型 2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型 2025年数学建模美赛 A题分…...
Spring整合Mybatis、junit纯注解
如何创建一个Spring项目 错误问题 不知道什么原因,大概是依赖版本不兼容、java版本不对的问题,折磨了好久就是搞不成。 主要原因看pom.xml配置 pom.xml配置 java版本 由于是跟着22年黑马视频做的,java版本换成了jdk-11,用21以…...
HAM-TTS大模型:基于token的零样本文字转语音分层声学建模
HAM-TTS大模型:基于token的零样本文字转语音分层声学建模 吉利自研语音大模型HAM-TTS的全称是:Hierarchical Acoustic Modeling for Token-Based Zero-Shot Text-to-Speech,直译是基于token的零样本文字转语音分层声学建模,是星睿AI大模型体系下的重要一员。顾名思义…...
SpringBoot开发(三)SpringBoot介绍、项目创建、运行
1. SpringBoot 1.1. SpringBoot介绍 Spring Boot给世界程序员带来了春天,越来越多的企业选择使用spring boot来开发他们的软件,因此学习spring boot是科技发展的必然趋势。本门课程将从web最基础的知识点开始讲起,逐步带你攻破spring boot的…...
SQL Server 建立每日自动log备份的维护计划
SQLServer数据库可以使用维护计划完成数据库的自动备份,下面以在SQL Server 2012为例说明具体配置方法。 1.启动SQL Server Management Studio,在【对象资源管理器】窗格中选择数据库实例,然后依次选择【管理】→【维护计划】选项࿰…...
git Bash通过SSH key 登录github的详细步骤
1 问题 通过在windows 终端中的通过git登录github 不再是通过密码登录了,需要本地生成一个密钥,配置到gihub中才能使用 2 步骤 (1)首先配置用户名和邮箱 git config --global user.name "用户名"git config --global…...
软件越跑越慢的原因分析
如果是qt软件,可以用Qt Creator Profiler 作性能监控如果是通过web请求,可以用JMeter监控。 软件运行过程中逐渐变慢的现象,通常是因为系统资源(如 CPU、内存、磁盘 I/O 等)逐渐被消耗或软件中存在性能瓶颈。这个问题…...
C++AVL树(二)详解
文章目录 AVL树旋转单旋右单旋左单旋 双旋左右双旋右左双旋 平衡因子的更新左右双旋右左双旋 判断是不是AVL树时间复杂度分析全部的代码 AVL树 旋转 单旋 单旋是纯粹的一边高 单旋平衡因子是同号 右单旋 a,b,c自身不能发生旋转 并且也不能不向上继续更新(不能停…...
【GoLang】利用validator包实现服务端参数校验时自定义错误信息
在C/S架构下,服务端在校验请求参数时,若出现参数错误,要响应给客户端一个错误消息,通常我们会统一响应“参数错误”。 但是,如果只是一味的提示参数错误,我并不知道具体是哪个参数错了呀!能不能…...
AIP-128 声明友好接口
编号128原文链接AIP-128: Declarative-friendly interfaces状态批准创建日期2020-10-06更新日期2020-10-06 许多服务需要与常见的DevOps工具交互,特别是创建和管理可网络寻址资源(如虚拟机、负载均衡器、数据库实例等)的工具。这些工具采用“…...
【Jave全栈】Java与JavaScript比较
文章目录 前言一、Java1、 历史与背景2、语言特点3、应用场景4、生态系统 二、JavaScript1、历史与背景2、语言特点3、应用场景4、 生态系统 三、相同点四、不同点1、语言类型2、用途3、语法和结构4、性能5、生态系统6、开发模式 前言 Java和JavaScript是两种不同的编程语言&a…...
钉钉群机器人设置——python版本
钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点) 参考文档及博客:…...
报错:{‘csrf_token‘: [‘The CSRF token is missing.‘]}
flask实现一个简单的注册界面报错 register.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <form action"" method"post&…...
STM32新建不同工程的方式
新建工程的方式 1. 安装开发工具 MDK5 / keil52. CMSIS 标准3. 新建工程3.1 寄存器版工程3.2 标准库版工程3.3 HAL/LL库版工程3.4 HAL库、LL库、标准库和寄存器对比3.5 库开发和寄存器的关系 4. STM32CubeMX工具的作用 1. 安装开发工具 MDK5 / keil5 MDK5 由两个部分组成&#…...
Java数据库操作指南:快速上手JDBC【学术会议-2025年数字化教育与信息技术(DEIT 2025】
大会官网:www.ic-deit.org 前言 在现代企业应用中,数据库是数据存储和管理的重要组成部分。Java作为一种广泛使用的编程语言,提供了多种方式与数据库进行交互。本文将介绍 JDBC(Java Database Connectivity)&#x…...
基于Springboot + vue实现的在线装修管理系统
“前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能学习网站” 💖学习知识需费心, 📕整理归纳更费神。 🎉源码免费人人喜…...
计算机网络之应用层
本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 05 应用层 在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。 王道考研 计算机网络笔记 第六章:应用层_王道考研 应用层 笔记-CSDN博客 DNS&#x…...
SpringMVC框架
第1章 SpringMVC入门 1.1 SpringMVC简介 Spring MVC 全称:Spring Web MVC是 Spring 框架的一部分,专注于实现 Web 应用程序的模型-视图-控制器(Model-View-Controller, MVC)设计模式。它为构建灵活且松耦合的 Web 应用提供了强大的功能&…...
将 OneLake 数据索引到 Elasticsearch - 第 1 部分
作者:来自 Elastic Gustavo Llermaly 学习配置 OneLake,使用 Python 消费数据并在 Elasticsearch 中索引文档,然后运行语义搜索。 OneLake 是一款工具,可让你连接到不同的 Microsoft 数据源,例如 Power BI、Data Activ…...
flutter跨端UI框架简介
flutter跨端UI框架简介 简介 Flutter是由Google开发的开源应用开发框架,主要用于构建高性能、跨平台的移动、Web和桌面应用程序。Flutter使用Dart语言,提供了一套丰富的Widgets,使开发者能够快速创建美观的用户界面。其最大特点是热重载功能…...
Centos 修改历史读录( HISTSIZE)
history命令 -c #清空命令历史 -r #读历史文件附加到历史列表 -w #保存历史列表到指定的历史文件 命令历史相关环境变量 HISTSIZE #命令历史记录的条数 HISTFILE #指定历史文件,默认为~/.bash_history HISTFILESIZE #命令历史文件记录历史的条数 以上变量可以 exp…...
利用ML.NET精准提取人名
在当今信息爆炸的时代,文本处理任务层出不穷,其中人名提取作为基础且重要的工作,广泛应用于信息检索、社交网络分析、客户关系管理等领域。随着人工智能不断进步,ML.NET作为微软推出的开源机器学习框架,为开发者提供了…...
关于deepin上运行Qt开发的程序
国产化替代是将来各单位的主流趋势,探索自行开发应用程序在国产操作系统上正常运行是将来的主要工作之一。本文浅尝gui程序在统信社区版——deepin上遇到的小问题。 使用Qt在deepin上做了一个类似gif的帧动画弹窗,在编译运行时,程序可以正常…...
3.3 Go函数可变参数
可变参数(variadic parameters)是一种允许函数接受任意数量参数的机制。它在函数定义中使用 ...type 来声明参数类型,所有传递的参数会被收集为一个切片,函数内部可以像操作普通切片一样处理这些参数。 package mainimport "…...
Queries Acceleration -Tuning- Tuning Execution 学习笔记
1 Adjustment of RuntimeFilter Wait Time 1.1 Case: Too Short RuntimeFilter Wait Time 1.1.1 没有看懂,好像是等待时间过小也会导致性能下降 1.1.2 set runtime_filter_wait_time_ms = 3000; 2 Data Skew Handling 2.1 Case 1: Bucket Data Skew Leading to Suboptimal …...
VS C++ 配置OPENCV环境
VS C 配置OPENCV环境 1.下载opencv2.安装环境3.opencv环境4.VS配置opencv环境5.EXE执行文件路径的环境lib和dll需要根据是debug还是release环境来区分使用哪个 6.Windows环境 1.下载opencv 链接: link 2.安装环境 双击运行即可 3.opencv环境 include文件路径:opencv\build\…...
Midscene.js:重新定义UI自动化的新时代工具
前言 Midscene.js 是一个创新的、面向开发者的 UI 自动化解决方案,并通过人工智能技术简化自动化脚本的编写与维护。 它提供了三种核心方法——交互(.ai, .aiAction)、提取(.aiQuery)和断言(.aiAssert&am…...
记录让cursor帮我给ruoyi-vue后台管理项目整合mybatis-plus
自己整合过程中会出现 work.web.exception.GlobalExceptionHandler :100 | 请求地址/admin/device/install/detail/1,发生未知异常. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.fire.mapper.DeviceInstallMapper.selectById at o…...
uniapp中h5的微应用解决办法
考虑过用wujie,参考官网Vue组件封装 | 无界的教程,虽然没报错,但是子应用的vue节点根本没挂载上,不知道什么原因,如下图所示 后面采用iframe方式将子应用导入进来: 父应用: <template>&…...
再尝Semantic Kernel,planning特性很香
背景 书接上回《浅尝semantic kernel》; 上次只试了试SK框架的插件特性,这次试了下编排的特性,也就是把多个本地任务按顺序按逻辑执行,没想到效果也是出奇的好! 关键步骤 架构层面的代码本篇不在赘述,这…...
华为OD机试真题---战场索敌
华为OD机试真题“战场索敌”是一道考察算法和数据结构应用能力的题目。以下是对该题目的详细解析: 一、题目描述 有一个大小是NM的战场地图,被墙壁’#‘分隔成大小不同的区域。上下左右四个方向相邻的空地’.‘属于同一个区域,只有空地上可…...
Case逢无意难休——深度解析JAVA中case穿透问题
Case逢无意难休——深度解析JAVA中case穿透问题~ 不作溢美之词,不作浮夸文章,此文与功名进取毫不相关也!与大家共勉!! 更多文章:个人主页 系列文章:JAVA专栏 欢迎各位大佬来访哦~互三必回&#…...
HTML入门知识
目录 一、什么是HTML 二、HTML文档的语法规则 三、HTML基本标签 四、HTML注释与特殊字符 1、注释 2、特殊字符 五、HTML属性 六、常见误区与建议 一、什么是HTML HTML,全称Hyper Text Markup Language,即超文本标记语言,是一种用于创…...
idea maven本地有jar包,但还要从远程下载
idea 中,java 工程执行 maven reimport,报jar报无法下载。 我奇了个怪,我明明在本地仓库有啊,你非得从远程下载? 我从供应商那里拿来的,远程当然没有了。 这太奇葩了吧,折腾好久不行。 后来…...