RFID(Radio Frequency Identification)是一种无线通信技术,它通过利用无线电波实现对特定目标的自动识别和数据交换,而无需相互接触。其基本原理可以分为三个部分:标签、阅读器和中间件[1][2],如图1所示。
① 标签:RFID标签是嵌入或附着在目标物体上的微型电子设备,它包含一个唯一的标识符(UID)和一个无线天线,用于接收和发送信号。标签可以分为无源标签和有源标签两种类型,无源标签仅能反射返回的信号,而有源标签则可以主动发送信号。
② 阅读器:RFID阅读器是一种可以发送和接收无线电波信号的设备,它可以激活电子标签并读取或写入其中的数据。阅读器通常由耦合模块、收发模块、控制模块和接口单元组成。在读取标签信息时,阅读器会发射一束无线电波能量,这些能量会被标签反射或吸收,并被阅读器接收和解读。
③ 中间件:中间件是一种软件系统,它可以连接阅读器和后端应用程序,实现数据的采集、过滤、整合和传递。中间件可以与阅读器进行通信,将读取到的数据传输到后端系统中进行处理和应用。
设计一款校园卡外形的RFID电子标签,标签表面焊接有LED灯,可以直观地通过LED灯的亮灭来判断RFID电子标签的识别情况。同时,还通过编程RFID芯片,在前端执行自动化指令。
恩智浦的NTAG系列连接型RFID标签为许多电子设备增加了即触即连的功能。NT3H1101 NFC芯片作为恩智浦NTAG系列的第一款产品,是本设计的核心部件。考虑到应用需求、成本和板面布局,选用NXP公司NTAG系列 NT3H1101W0FHKH NFC芯片作为卡片交互核心。芯片采用XQFN-8封装,十分小巧。
NT3H1101芯片与微控制器遵循IIC通信协议,RFID协议为2型NFC通信标准。如图2所示,芯片通过PCB上射频天线从接触的有源RFID设备上获取能量,并完成数据交互。交互的数据被写入片上EEPROM用以掉电后的再次读写。另一边,RFID标签经过芯片转换电磁波获得的能量被供给到外部设备,同时芯片通过IIC与板载外部设备(微控制器)通信。可以看出,NTAG芯片在过程中起到了触碰信息转移和触碰能量传递的中间介质。
在本设计中,由于电子标签无需实现外部控制,所以信息的传递主要存在于NT3H1101芯片和触碰设备之间。芯片获得的能量被传递给LED灯,用于点亮灯珠显示。
射频天线是电子标签通电和通讯的关键,设计电子标签一般需要以下步骤[3],如图3所示。
天线可以用电感LA来描述,电感LA具有非常小的损耗电阻RA。当环形天线感应到磁场时,其中会感应出电流,并且其端子处出现开路电压VOC。RFID芯片可以用输入电阻RS和内置调谐电容CS来描述。输入电阻RS、天线电阻RA和内置调谐电容CS一起与天线的电感LA形成串联谐振电路,如图4所示。
串联RLC电路的谐振频率由下式给出:
已知NT3H1101芯片采用NFC通信标准,该标准规定的工作频率为13,56 MHz,而NT3H1101调谐电容为50 pF,则计算电感值为:
在PCB上设计具有特定电感的环形天线是可能的,天线可以采用各种形状,如:矩形、方形、圆形等,但必须遵守几何约束,因为在高频环境下,天线需要考虑阻抗匹配问题,这关系到设备的通信质量和性能。
天线阻抗包括电阻和电抗两个组成部分,因此,要实现阻抗匹配,需要同时考虑这两个部分。具体来说,需要使电阻相等,电抗部分的大小也相等但符号相反,以达到共轭匹配。实现天线的阻抗匹配有多种方法,其中常见的一种是使用阻抗匹配网络,该网络包括电阻、电容和电感等元件。对于每种形状,通过阻抗匹配对应一个特定的公式,该公式根据尺寸、匝数、轨道宽度、铺铜厚度等给出等效电感值。
由于我设计的电子标签是校园卡外形,所以选择与之外形匹配的矩形天线,其几何形状如图5所示:
通过查阅NXP官方天线设计指南,对于此特定几何形状,天线等效电感LA由下式给出:
其中:a0和b0是天线的整体尺寸
aavg和bavg是天线的平均尺寸
t是天线铺铜厚度
w是矩形天线宽度
g是内外矩形天线间隙宽度
Nant是天线匝数
d是天线的等效直径
此外,NXP官方天线设计指南还提供了完整的解决方案,包括天线设计的参考。虽然可以通过上述公式计算出板载天线的尺寸,但在本次设计中,考虑到设计效率和卡片空间的充分利用,直接选择了天线设计指南中的“4型”天线设计方案[5],该方案旨在提供最佳的天线性能和尺寸,适用于各种电子标签和读卡器应用场景。
再完善NTAG芯片及外围电路设计后,电子标签整体电路图如图6所示:
编程需要的工具是一部带NFC的手机和一个可以使用NFC读取和写入标签的应用程序,在NFC应用程序中,选择要读取或写入的RFID电子标签的类型和扇区。扇区是RFID电子标签的存储单元,每个扇区包含若干个块,每个块包含若干个字节。通过在手机端读取并改写RFID不同扇区的存储信息,完成数据的接受与发送。
将RFID电子标签贴近阅读器,阅读器可以是带NFC功能的手机或者门禁系统,RFID电子标签上的指示灯亮起,并传递相应信息给阅读器,如图7:
此外还可以配合相应APP完成各种有趣的功能,比如:通过NFC自动打开音乐、展示个人信息等。
考虑到NT3H1101芯片单片售价4块多,与传统IC卡相比不具有性价比,因此仿照以上步骤,采用国产复旦M1-UCID芯片,单价仅0.8块,也能够完成上述电子标签的全部功能,效果展示如图8:
文章浏览阅读632次。FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec。官方网站:http://www.ffmpeg.org/项目组成libavformat封装模块,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于..._ffmpeg读取分辨的库
文章浏览阅读9.6k次。申明:小弟openwrt初学,很多东西都不知道,在偶然的机会用到openwrt,想要将自己写的驱动程序编译进内核中,费了九牛二虎之力,最终还是直接在内核源码中进行增加才搞定,过程尽可能的详细,也是自己的一个学习过程,也是给自己做一个笔记后面遇到可以借鉴。另外,第一次写博客,希望大家不喜勿喷哦,当然文档中有任何问题都欢迎能指出来,而且在过程中遇到了一个问题到现在没有找出为什么,希望大家看到了..._openwrt中添加驱动编译进内核
文章浏览阅读1.7k次。在2d空间上,假设角色的自身的y轴方向为正方向,如果要让角色随时面向一个目标点。这里假设(0,0)点为目标点第一种:Vector3 v = Vector3.zero - transform.position; //首先获得目标方向 v.z = 0; ..._unity 2d中哪个方向是forward
文章浏览阅读7.4k次,点赞16次,收藏100次。基于XDMA 的PCIE读写DDR概述: 想实现基于FPGA的PCIe通信,查阅互联网各种转载…基本都是对PCIe的描述,所以想写一下基于XDMA的PCIe通信的实现(PCIe结构仅做简单的描述(笔记),了解详细结构移至互联网)。实现功能:PC通过PCIE读写DDR,同时用户通过逻辑代码可以读取被写入DDR内的数据(我是通过VIO实现DDR任意地址,任意数据大小的读取。)。实践实践!!!说明:参考文档:PCI Express Base Specification Revision 3.0P_xdma ddr
文章浏览阅读1.7k次。本文主要介绍在使用缓存过程中经常会遇到的几个问题:缓存击穿、缓存雪崩、缓存穿透,以及其解决方案。之后会对缓存穿透的解决方案之一布隆过滤器,进行详细讲解。_缓存穿透 布隆过滤器
文章浏览阅读1.4k次。1、代码:主要写入时表要为小写,否则报错Could not reflect: requested table(s) not available in Enginefrom sqlalchemy import create_engineconn_string='oracle+cx_oracle://admin:[email protected]:1521/ORCL?charset=utf8'..._pandas cx_oracle 写入
文章浏览阅读3.1k次,点赞55次,收藏63次。【数学建模】元胞自动机_元胞自动机
文章浏览阅读1.4k次。1 介绍在基因结构分析或其他生物功能分析中会时常用到 CDS 序列,以及其他诸如 mRNA 序列,misc RNA序列等具有生物意义的序列片段。而NCBI 的基因库中已经包含有这些的信息,但是只有一部分是整理可下载的。而剩下的一部分可以通过 genbank给出的位点信息来提取,个人能力有限,这里只做抛转之用。下面以提取 CDS 为例,记录提取序列过程,其他特征序列类似。2 结构目录3 Python..._提取dna中cds序列
文章浏览阅读753次。个人习惯使用面向对象的方式来操作mysql。首先定义一个二维数组,用来存储结果。结果集取得一行就是一个数组,因为有多行数据,所以是二维。$data=array();这条代码$result->fetch_assoc()是: 从结果集中取得一行作为关联数组:那么就有:while($row = $result->fetch_assoc()){ array_push($data,$row);}不断从结果集读取数据,并将每行数据加到二维数组data中,直到读取完毕_mysql 将多行数据添加到数组
文章浏览阅读677次。目录一、zip函数(内建函数)1.1 定义基本语法:参数说明:返回值:示例:1.2 处理列表1.3 处理元组 1.4 处理字典 1.5 处理一个参数和空列表一、zip函数(内建函数)1.1 定义 Python 2:zip() 函数用于将可迭代的对象(字典,列表,元组,集合,字符串等)作为参数,将对象中..._python in zip
文章浏览阅读383次。网络攻防技术在不断演进,新的威胁和安全措施不断出现。因此,持续学习和跟进是至关重要的。订阅安全博客、参加安全研讨会、阅读最新的安全报告等方式,可以帮助你保持对新技术和趋势的了解。_网络攻防自学
文章浏览阅读1.1k次,点赞2次,收藏5次。Table of Contents0-1字典树例题1. CSU 1216:异或最大值:给定一些数,任意两个数的最大异或值例题2.HDU 4825Xor Sum:每次询问给出一个数,找出一个与它异或结果最大的数例题3.HDU 5536Chip Factory: 计算(s[i] + s[j]) ^ s[k] 的最大值例题4.POJ 3764The xor-longe..._字典树例题 poj