RFID期末复习总结

news2024/9/22 13:34:22

一.概念部分

1.基础概念

射频识别=无线电频率识别=RFID

应答器:存放识别信息的电子数据载体

阅读器:将识别信息从应答器中读出(还可以写入数据)

应答器是统称,在各种专业场合有专业名字,比如射频卡(门禁卡、校园卡),标签(商品标签)等。

阅读器也可以叫读/写器、基站等(都不准确,但遇到这些把他们当作阅读器)

耦合:指天线(阅读器)和标签(应答器)之间的电磁相互作用。

当一个 RFID 标签进入天线的工作范围内时,天线会向空间发射一定频率的电磁波,这些电磁波会被标签接收并利用它们来传输数据。当电磁波通过标签的天线时,它会激发标签中的电路并产生一个反馈信号,这个信号会被读取器天线接收并解码。这种相互作用被称为耦合。

读写器(阅读器)则是RFID系统中控制天线工作的设备,通常由计算机或嵌入式系统控制。读写器向天线提供能量和命令,并从天线接收标签返回的数据。在RFID系统中,读写器是与计算机或嵌入式系统交互的主要方式,可以通过它来实现对标签的管理和控制。

这里请注意,阅读器不是标签,但是为了方便理解耦合,我们可以理解为阅读器和应答器之间的相互作用,毕竟我们这里只是学习了解,不是专门进入这个领域。

2.耦合方式

RFID主要可以分为电感耦合方式(磁耦合)与反向散射耦合方式(电磁场耦合)两大类。

电感耦合方式:

  • 1.射频载波频率fc (工作频率)为13.56MHz或者小于135kHz的频段
  • 2.应答器与阅读器的工作距离在1m以下
  • 3.应答器几乎是无源的,能量(电源)从阅读器获得
  • 4.应答器向阅读器数据传输方法:负载调制
  • 5.阅读器向应答器数据传输方法:多种数字调制,通常指的是幅移键控(ASK)
  • 6.方式的变形:1)时序方式 2)扫频法 3)分频信号检测法

反向散射耦合方式:

  • 1.声表面波器件(ASW)以压电效应和与表面弹性相关的低速传播的声波为依据。
  • 2.方式变形:谐波检测法

3.应答器分类

  • 无源应答器:不附有电池 ,从阅读器发出射频能量中提取工作所需的电能。采用电感耦合方式的应答器多为无源应答器。
  • 半无源应答器 :内装有电池,起辅助作用,对维持数据的电路供电或对应答器芯片工作所需的电压作辅助支持,用于传输通信的射频能量源自阅读器。
  • 有源应答器:工作电源完全由内部电池供给,同时内部电池能量也部分地转换为应答器与阅读器通信所需的射频能量。

二.条码原理

1.说明

什么条码的概念就不说了,我们的目的是学会人为读取条形码即可。

本部分参考原文链接:条码原文

2.条码位数

  • 条形码一共有13位

  • 前2位或者前3位称为前缀,表示国家、地区或者某种特定的商品类型

  • 中国区条形码开头:690~699

  • 图书类条形码开头:978~979

  • 前缀后的4位或者5位称为厂商代码,表示产品制造商

  • 厂商代码后5位称为商品代码,表示具体的商品项目

  • 最后1位是校验码,根据前12位计算而出,可以用来防伪以及识别校验

3.条形码编码说明

条形码一共有8个区域:左侧空白区->起始符->左侧数据符->中间分隔符->右侧数据符->校验符->终止符->右侧空白区

  • 字符为0~9
  • 除空白区外的区域和字符都采用二进制编码表示,1表示bar(黑条),0表示space(白条)
  • 起始符,终止符编码为101,分隔符编码为01010
  • 0~9每种字符有3种编码方式,AB为左侧数据奇偶编码,C为右侧数据偶编码

  • 左侧数据的奇偶性由前置符决定

4.其他解码方式

以宽度为编码,去掉起始码,终止码,中间分隔码,不管白条还是黑条都算一个编码,最窄一节为1(最窄的为单位宽度),两个单位宽度就是2,三单位长度为3,四单位宽度为4。

四条(不管黑条还是白条都算条)代表一个数字,这里只管宽度不区分0和1

四条长度数字
32110
22211
21222
14113
11324
12315
11146
13127
12138
31129

5.校验码的计算方法

以下图所示的条形码举例说明:

  • 条形码的位数起始位为最右一位,即校验位,检验码计算方法如下:

  • 偶位数数值相加乘3((0+2+0+8+1+9)*3=60)

  • 不含校验位的奇位数相加(7+4+7+9+3+6=36)

  • 将前两步的结果相加(60+36=96)

  • 用10减去上一步结果的个位数数值(10-6=4)

  • 上一步结果的个位数即为校验码(4)

后面实验篇会有关于二维码识别的实验,期末会考关于其识别的实验题,本质上,二维码也是一种条形码,所以这里也就是一部分原理。

这里赠送一个条形码生成网站,可以自己尝试玩玩:生成条码

三.编码与调制

1.基础理解

  • 1.数据与信号(这个不想说了,太简单了)
  • 2.数字信号和模拟信号(单片机玩过没,玩过就知道了)
  • 3.输介质:传输介质是数据传输系统里发送器和接收器之间的物理通路。
  • 4.延迟变形:参考课本P63
  • 5.多径效应:无线信号通过直射、折射、反射等不同路径到达同一点时因信号叠加或相互抵消产生多经效应。(大学物理中应该接触过)

2.通信原理部分

  • 1.在数字通信中,一个数字脉冲称为一个码元。如字母A的ASCII码是01000001,可用7个脉冲来表示,亦可认为由7个码元组成,码元携带的信息量由码元的离散值个数决定。
  • 2.码元传输速率简称传码率,又称符号速率等。它表示单位时间内传输码元的数目,单位是波特 ,记为B。这是为了纪念电报码的发明者法国人波特(Baudot),故码元传输速率也称为波特率。
  • 3.对在给定条件,给定通信路径或信道上的数据传输速率称为信道容量。
  • 数据传输速率=码元传输速率×log2M

  • 信道的最大容量C为C=2BW log2M

  • 带宽受限且有高斯白噪声干扰的信道最大容量 C= BW log2(1+S/N)

这一部分通信原理里面涉及到,计算机网络里也有。

3.作业1的题目

作业1:曼切斯特编码碰撞检测的方法

曼切斯特编码数字“0”前半周期为低电平,后半周期为高电平,数字“1”前半周期为高电平,后半周期为低电平表示,因此,0,1组成的数字信号不可能出现连续3个半周期为高或低电平,如果出现连续3个半周期为高或低电平,那么,可以判断一个碰撞发生了。

作业2:RFID多标签识别时,碰撞是如何发生

当一个阅读器同时读多个RFID标签的信息,标签随机选择一个时间片和阅读器通信(时分多路访问机制),当两个以上标签同时和标签发生通信时,碰撞发生,通过曼切斯特碰撞检测方法阅读器就可以知道碰撞发生了。

4.补充

曼彻斯特编码:看中间突变,上升沿为0,下降沿为1。

本学期的第一个实验就是曼彻斯特编码的防冲突算法,老师说了,几乎所有的题都围绕几个实验来设计,那么实验的原理是重点,就看平时你的实验怎么完成的了,实验部分我放在最后面单独写。

四.二维码的原理

1.说明

具体的二维码原理不需要知道,我们只需要像了解条形码一样,去了解它的结构就行了,并学会用python编写生成和识别二维码,这是大题里面的送分题,记住代码,生成加识别代码就几行。

2.QR码特点

1.存储大容量信息

  • 传统的条形码只能处理20位左右的信息量,与此相比,QR码可处理条形码的几十倍到几百倍的信息量。

  • 支持所有类型的数据。(如:数字、英文字母、日文字母、汉字、符号、二进制、控制码等)。

2.在小空间内打印

  • QR码使用纵向和横向两个方向处理数据
  • 如果是相同的信息量,QR码所占空间为条形码的十分之一左右。

3.纠错功能

  • 即使部分编码变脏或破损,也可以恢复数据。

    数据恢复以码字为单位(是组成内部数据的单位,在QR码的情况下,每8比特代表1码字),最多可以纠错约30%

QR码的纠错功能原理

是通过将RS编码附加到原数据中的方式实现的,由于RS编码的存在,即使在QR码中出现一定数量的像素损坏或丢失,也能够通过纠错机制来保证数据的完整性和准确性。
因此,在不同的纠错等级下,QR码所能存储的真实数据容量并没有太大差异。RS编码提供了一定的冗余,增强了QR码的容错性等级选择。

3.python需要安装的包

  • pip install opencv-python #cv2

  • pip install pillow #(anaconda3 已安装)

  • pip install myqr

  • pip install qrcode

  • pip install zxing

4.读取顺序

  • 1.定位:使用下方的三个大框、一个小框和两个横条

  • 2.了解编码的基本信息:下面红色区域部分

  • 3.纠错和实际数据:其余部分

  • 4.黄色是纠错区域,随着纠错等级增加,可存储区域减小

    在不同的纠错等级下,QR码所能存储的真实数据容量并没有太大差异

    存储数据较多时,可以选择较低的纠错等级

  • 5.为了避免出现大规模的黑和白,所以可以使用掩码操作

5.源码1:二维码的生成

import qrcode

# 创建 QRCode 对象,并指定需要生成二维码的内容
qr = qrcode.QRCode(
    version=1,
    box_size=10,
    border=5,
    error_correction=qrcode.constants.ERROR_CORRECT_Q,  # 设置错误纠正等级为 Q
)

qr.add_data("CSDN@墨城烟柳ベ旧人殇\n我的主页是:https://blog.csdn.net/weixin_51496226?spm=1000.2115.3001.5343")  # 内容
qr.make(fit=True)  # 生成可以使用 make_image() 方法创建图像的 QR 码图案

# 生成图片,并保存到本地文件
img = qr.make_image(fill_color="black", back_color="#F5DEB3")  # 设置填充色为黑色,背景颜色为 "#F5DEB3"(淡褐色)
img.save("1.jpg")

结果:

在这里插入图片描述

6.源码2:二维码的识别

import cv2

qrcode_filename = "1.jpg"
qrcode_image = cv2.imread(qrcode_filename)
qrCodeDetector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = qrCodeDetector.detectAndDecode(qrcode_image)

print(data)

五.其他部分

1.M1卡存取识别

参考链接

这篇文章有点长,耐心看完,老师根据这个来出题。

2.arduino读写RFID

参考链接

 #include <SPI.h>      //include the SPI bus library
 #include <MFRC522.h>  //include the RFID reader library#define SS_PIN 10  //slave select pin选择引脚
 #define RST_PIN 5  //reset pin重置别针
 ​
 MFRC522 mfrc522(SS_PIN, RST_PIN);  // 实例化MFRC522读取器对象.
 MFRC522::MIFARE_Key key;          //创建一个名为'key '的mifare_key struct,它将保存卡信息这是我们将写入然后阅读的块号
 int block=2;  
 ​
 byte blockcontent[16] = {"Last-Minute-Engg"};  //定义了16个字节的数组
 //byte blockcontent[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};  //all zeros. 这可以用来删除一个块。//此数组用于读取一个块。
 byte readbackblock[18];void setup() 
 {
     Serial.begin(9600);        // Initialize serial communications with the PC
     SPI.begin();               // Init SPI bus
     mfrc522.PCD_Init();        // INIT MFRC522卡(如果您想知道PCD的含义:接近耦合设备)
     Serial.println("Scan a MIFARE Classic card");
   
   //为读取功能准备安全键。
   for (byte i = 0; i < 6; i++) {
     key.keyByte[i] = 0xFF;  //keyByte is defined in the "MIFARE_Key" 'struct' definition in the .h file of the library
   }
 }void loop()
 {  
   // Look for new cards
   if ( ! mfrc522.PICC_IsNewCardPresent()) {
     return;
   }
   
   // Select one of the cards
   if ( ! mfrc522.PICC_ReadCardSerial()) 
   {
     return;
   }
     Serial.println("card selected");
          
    //the blockcontent array is written into the card block
    writeBlock(block, blockcontent);
    
    //read the block back
    readBlock(block, readbackblock);
    //如果您想查看整个1K内存,则在线下方的块。
    //mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
    
    //print the block contents
    Serial.print("read block: ");
    for (int j=0 ; j<16 ; j++)
    {
      Serial.write (readbackblock[j]);
    }
    Serial.println("");
 }
 

六.实验参考

由于实验涉及相当多,平时大部分实验也几乎独立完成并写了博客,针对每个实验我给出参考链接,复习看一遍就完事了。

  • 实验1:曼彻斯特编码与防碰撞算法点我阅读

  • 实验2:CRC循环冗余检验点我阅读

  • 实验3:实现ALOHA协议模拟算法点我阅读

  • 实验4:RFID的三次认证过程点我阅读

  • 实验5:二维码的识别点我阅读

  • 实验6:对象解析服务点我阅读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pikachu靶场-PHP反序列化

在理解这个漏洞前,你需要先搞清楚php中serialize()&#xff0c;unserialize()这两个函数。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{public $test"pikachu";}$snew S(); //创建一个对象serialize($s); //…

FPGA时序约束--进阶篇(主时钟约束)

在FPGA设计中&#xff0c;时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中&#xff0c;已经详细介绍了FPGA时序约束的基础知识。 本文将重点讲解主时钟约束设置&#xff0c;给出详细的约束命令&#xff0c;并介绍了在Vivado中如何写入主时钟约束。 一、主时…

一文详解!接口测试(http与rpc)总结

目录 前言&#xff1a; 一、了解一下HTTP与RPC 二、HTTP接口测试 三、RPC接口测试 四、接口测试用例设计 五、测试思路总结 前言&#xff1a; 在接口测试方面&#xff0c;常见的接口类型有HTTP接口和RPC接口。这两者的测试方法略有不同&#xff0c;在测试前需要进行技术选…

[INFO] [copilotIgnore] inactive,github copilot没反应怎么解决

在使用github copilot的时候&#xff0c;插件不工作&#xff0c;后台出现了这种输出&#xff0c; 这种情况下就是它的激活出现了问题&#xff0c;如果账号的使用权没有问题的话&#xff0c;就将该插件disable之后再重新enable&#xff0c;重新观察输出&#xff0c;就会看到copi…

LAMP架构搭建实操

目录 一、LAMP架构概述 二、LAMP框架搭建 1.准备工作 2.部署apache 3.部署mysql 4.部署php 三、部署BBS论坛 一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态Web站点服务及其应用…

win11系统提示msvcp140.dll丢失的三个解决方法,简单实用

Win11系统在运行photoshop或其他软件&#xff0c;游戏的时候&#xff0c;电脑提示“找不到msvcp140.dll”&#xff0c;“msvcp140.dll丢失”&#xff0c;“无法定位输入点msvcp140.dll”等问题&#xff0c;都是由于Windows11系统中的msvcp140.dll文件丢失或者损坏了。 问题场景…

数据结构 串

串 术语概念 在数据结构中&#xff0c;串&#xff08;String&#xff09;是由零个或多个字符组成的有限序列。它是一种常见的数据类型&#xff0c;常用于表示文本、字符串和符号序列等信息。串可以包含任意字符&#xff0c;包括字母、数字、符号以及空格等。 主串&#xff08…

CANDENCE : 如何绘制元器件

如何绘制元器件 绘制元器件之前先新建一个原理图库。 step1:打开某一个原理图工程 step2:在该工程系下新建一个库文件&#xff0c;如下图&#xff1a; 新建完成&#xff0c;如下图&#xff1a; 右键点击保存&#xff1a;save。 命名并保存&#xff0c;保存的位置自己决定 …

AI - stable-diffusion 艺术化二维码

系列文章&#xff1a; 《AI - stable-diffusion(AI 绘画)的搭建与使用》《AI - AI 绘画的精准控图(ControlNet)》 一、介绍 近日&#xff0c;AI 绘画&#xff08;stable-diffusion&#xff09;用来艺术化二维码算是比较火热的事了&#xff0c;这个 idea 是由国人用 Checkpoi…

Spring Security 实战篇

文章目录 前言内存版(memory)数据库库版(jdbc)自定义登录 - 单体&#xff08;custom-login-single&#xff09;自定义登录 - 前后分离会话一致性方案方案一方案二方案三为什么不用JWT 登录改json方式登录&#xff08;custom-login-json&#xff09;认证密码加密登录&#xff08…

【欧瑞博智能家居】ZigBee Mini网关、超静音智能开合帘电机 添加操作流程

目录 一、添加ZigBee Mini网关 二、添加超静音智能开合帘电机 参考资料 一、添加ZigBee Mini网关 1. 下载《智家365》APP 2. 网关通电&#xff0c;用网线连接路由器的网线接口 3. 再次扫描产品手册里面的二维码添加ZigBee Mini网关&#xff0c;注意手机wifi要在同一个网络…

Nucleo-F411RE (STM32F411)LL库体验 10 - RT-Thread nano finsh的移植

Nucleo-F411RE &#xff08;STM32F411&#xff09;LL库体验 10 - RT-Thread nano finsh的移植 1、Makefile中添加finsh的编译 编译报错如下&#xff1a; 在rtconfig.h添加#include “finsh_config.h” 继续编译&#xff0c;继续报错&#xff1a; 这里是个WEAK函数&#xff…

【python中对点云PCL库的下载安装与配置】

需要的资料&#xff1a; python_pcl-0.3.1-cp36-cp36m-win_amd64.whl 压缩包&#xff1a;pcl-1.12.1-pdb-msvc2019-win64 pcl程序&#xff1a;PCL-1.12.1-AllInOne-msvc2019-win64 网盘链接&#xff1a;https://pan.baidu.com/s/184yY7fc5rqwwd9F4cMncDw 提取码&#xff1a…

SpringSecurity(一):权限管理设计与实现(官文英解+源码调试+基本环境搭建)

权限管理设计与实现 前言权限管理认证授权安全管理框架 整体架构认证AuthenticationManagerAuthenticationSecurityContextHolder 授权AccessDecisionManagerAccessDecisionVoterConfigAttribute 环境搭建技术栈创建项目整合Spring Security 实现原理官方文档解读A Review of F…

Jmeter多接口测试之参数传递

目录 前言&#xff1a; 接口示例 正则表达式提取器 正则表达式提取实例 Json提取器 Json提取器实例 前言&#xff1a; 在进行多接口测试时&#xff0c;有些情况下需要将前一个接口返回数据作为后一个接口的参数&#xff0c;以模拟实际场景。JMeter作为一款常用的性能测试…

【百问百答】可靠性基础知识第六期

1.跌落试验需要确认哪些试验条件? 试验条件包括&#xff1a;释放高度&#xff0c;释放方法和试验表面。 2.什么是跌落试验的试验表面? 试验表面应该是混凝土或者是钢制的平滑坚硬的刚性表面&#xff0c;必要时&#xff0c;可按照相关规范规定其他表面。 3.什么是跌落高度? 指…

云安全技术(二)之云计算参考架构

云计算参考架构 1.1 描述云计算参考架构 Describe Cloud Reference Architecture 多个主要组件组合在一起形成云架构(Cloud Architecture)和云实现的全貌。涉及的组件包括管理和运营云环境的活动(Activity)、角色(Role)和能力(Capability)&#xff0c;以及基于云托管和服务交…

CSDN如何快速获得粉丝和高质量铁粉

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

Linux:DNS服务(bind)

目录 环境 主服务器和从服务器的配置环境 主服务器 从服务器 主DNS配置文件 dns从服务器配置 环境 如果你只需要主dns服务器那么你只需要挑着主dns服务器配置看即可 我这里使用了4台虚拟机&#xff0c;你也可以不使用这么多根据你的电脑性能去调整 他们必须要在同一个网段…

什么是渗透测试?渗透等于入侵?

什么是渗透测试&#xff1f; 渗透测试 (penetration test)并没有一个标准的定义&#xff0c;国外一些安全组织达成共识的通用说法是&#xff1a;渗透测试是通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术…