实验5 基于stm32的HF高频RFID通信协议

1.1  掌握高频读卡器的通讯协议

1.2  掌握本平台高频模块的操作过程

1.3  掌握高频模块工作原理

硬件:RFID实验箱套件,电脑等。

软件:Keil,串口调试助手。

3.1 高频RFID系统

典型的高频HF(13.56MHz)RFID系统包括阅读器(Reader)和电子标签(Tag,也称应答器Responder)。电子标签通常选用非接触式IC卡,全称集成电路卡又称智能卡,可读写,容量大,有加密功能,数据记录可靠。IC卡相比ID卡而言,使用更方便,目前已经大量使用在校园一卡通系统、消费系统、考勤系统、公交消费系统等。目前市场上使用最多的是PHILIPS的Mifare系列IC卡。读写器(也称为“阅读器”)包含有高频模块(发送器和接收器)、控制单元以及与卡连接的耦合元件。由高频模块和耦合元件发送电磁场,以提供非接触式IC卡所需要的工作能量以及发送数据给卡,同时接收来自卡的数据。此外,大多数非接触式IC卡读写器都配有上传接口,以便将所获取的数据上传给另外的系统(个人计算机、机器人控制装置等)。IC卡由主控芯片ASIC(专用集成电路)和天线组成,标签的天线只由

线圈组成,很适合封状到卡片中,常见IC卡内部结构如图2.1所示。

图 2.1 IC卡内部结构图

较常见的高频RFID应用系统如图2.2所示,IC卡通过电感耦合的方式从读卡器处获得能量。

图 2.2 常见高频 RFID 应用系统组成

下面以典型的IC卡MIARE 1为例,说明电子标签获得能量的整个过程。读卡器向IC卡发送一组固定频率的电磁波,标签内有一个LC串联谐振电路(如图  2.3),其谐振频率与读写器发出的频率相同,这样当标签进入读写器范围时便产生电磁共振,从而使电容内有了电荷,

在电容的另一端接有一个单向通的电子泵,将电容内的电荷送到另一个电容内储存,当储存积累的电荷达到2V时,此电源可作为其他电路提供工作电压,将标签内数据发射出去或接收读写器的数据。

图  2.3  IC卡功能结构图

3.2 非接触式IC卡

目前市面上有多种类型的非接触式IC卡,它们按照遵从的不同协议大体可以分为三类,

各类IC卡特点及工作特性如图2.4所示,PHILIPS的Mifare 1卡(简称M1卡)属于PICC卡,该类卡的读写器可以称为PCD。

图2.4 IC卡分类

高频RFID系统选用PICC类IC卡作为其电子标签,这里以 Philips公司典型的PICC卡Mifare  1为例,详细讲解IC卡内部结构。Philips是世界上最早研制非接触式IC卡的公司,其Mifare技术已经被制定为IS0  14443  TYPE  A国际标准。本平台选用用Mifare  1(S50)卡作为电子标签,其内部原理如图2.5所示。

图2.5 M1卡内部原理

射频接口部分主要包括有波形转换模块。它可将读写器发出的13.56MHZ的无线电调制频率接收,一方面送调制/解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理,包括稳压等,最终输出供给卡片上的各电路。数字控制单元主要针对接收到的数据进行相关处理,包括选卡、防冲突等。

Mifare1卡片采取EEPROM作为存储介质,其内部可以分为16个扇区,每个扇区由4块组成,(我们也将 16 个扇区的 64 个块按绝对地址编号为 0-63,存贮结构如下图2.6所示:

图 2.6 MFI卡片存储结构

第 0 扇区的块 0(即绝对地址 0 块),它用于存放厂商代码,已经固化,不可更改。其中:第 0~3 个字节为卡片的序列号;第4个字节为序列号的校验码;第5个字节为卡片内容“size”字节,第6~7个字节为卡片的类型字节。

每个扇区的块 0、块 1、块 2 为数据块,可用于存贮数据。数据块可作两种应用:

用作一般的数据保存,可以进行读、写操作。例如在食堂消费时采用输入饭菜金额的方式扣款。用做数据值,可以进行初始化加值、减值、读值操作。例如在食堂消费时对于定额套餐采用输入餐号的方式加以扣款,又如公交/地铁等行业的检票/收费系统中的扣费。每个扇区的块 3 为控制块,包括了密码 A、存取控制、密码 B。具体结构如下,

A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5

其中其中 A0—A5 代表密码 A 的六个字节;B0—B5 代表密码 B 的六个字节;FF 07 80 69 为四字节存取控制字的默认值,FF 为低字节。每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为 4 个字节,共 32 位,扇区中的每个块(包括数据块和的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:

块 0:  C10 C20 C30

块 1:  C11 C21 C31

块 2:  C12 C22 C32

块 3:  C13 C23 C33

三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证 KEY  A,进行加值操作必须验证 KEY  B,等等)。三个控制位在存取控制字节中的位置,以块 0 为例,如下所示:

Bit 7     6     5      4       3     2      1      0

C20_

b

C10_

b

C10

C30_

b

C30

C20

字节6

字节7

字节8

字节9

3.3 ISO 14443协议标准简介

ISO 14443协议是超短距离智慧卡标准,该标准定义出读取距离7-15公分的短距离非接触智能卡的功能及运作标准,ISO  14443  标准分为TYPE  A和  TYPE  B两种。TYPE  A  的产品具有更高的市场占有率,如Philips公司的MIFARE系列占有了当前约80%的市场,且在较为恶劣的工作环境下有很高的优势。而TYPE B在安全性、高速率和适应性方面有很好的前景,特别适合于CPU卡。这里重点介绍MIFARE  1符合的ISO  14443  TYPE  A标准。

1) ISO 14443  TYPE  A标准中规定的基本空中接口基本标准

PCD到PICC(数据传输)调制为:ASK,调制指数100%

PCD到PICC(数据传输)位编码为:改进的Miller编码

PICC到PCD(数据传输)调制为:  频率为847kHz的副载波负载调制

PICC到PCD位编码为:曼彻斯特编码

数据传输速率为106kbps

射频工作区的载波频率为13.56MHz

最小未调制工作场的值是1.5A/mrms(以Hmin表示),最大未调制工作场的值是7.5A/mrms  (以Hmax表示)  ,邻近卡应持续工作在Hmin和Hmax之间

PICC的能量是通过发送频率为13.56MHz的阅读器的交变磁场来提供。由阅读器产生的磁场必须在1.5A/m-7.5A/m之间

2) ISO  14443  TYPE  A标准中规定的PICC标签状态集,读卡器对进入其工作范围的多张IC卡的有效命令有:

REQA:TYPE  A请求命令

WAKE  UP:唤醒命令

ANTICOLLISION:防冲突命令

SELECT:选择命令

HALT:停止命令

图  2.7为PICC(IC卡)接收到PCD(读卡器)发送命令后,可能引起状态的转换图。传输错误的命令(不符合ISO  14443  TYPE  A协议的命令)不包括在内。

图 2.7 PICC状态转化图

掉电状态(POWER  OFF):在没有提供足够的载波能量的情况下,PICC不能对PCD发射的命令做出应答,也不能向PCD发送反射波;当PICC进入耦合场后,立即复位,进入闲置状态。

闲置状态(IDLE  STATE):当PICC进入闲置状态时,标签已经上电,能够解调PCD发射的信号;当PICC接收到PCD发送的有效的REQA(对A型卡请求的应答)命令后,PICC将进入就绪状态。

就绪状态(  READY  STATE):在就绪状态下,执行位帧防碰撞算法或其他可行的防碰撞算法;当PICC标签处于就绪状态时,采用防冲突方法,用UID(惟一标识符)从多张PICC标签中选择出一张PICC;然后PCD发送含有UID的SEL命令,当PICC接收到有效的SEL命令时,PICC就进入激活状态(ACTIVE  STATE)。

激活状态(ACTIVE STATE):在激活状态下,PICC应该完成本次应用所要求的所有操作(例如,读写PICC内部存储器);当处于激活状态的PICC接收到有效的HALT命令后,PICC就立即进入停止状态。

停止状态(HALT  STATE):   PICC完成本次应用所有操作后,应进入停止状态;当处于停止状态的PICC接收到有效的WAKE_UP命令时,PICC立即进入就绪状态。注意:当PICC处于停止状态下时,在重新进入就绪状态和激活状态后, PICC接受到相应命令,不在是进入闲置状态,而是进入停止状态。

3.4 高频RFID系统读写器

3.4.1 通信流程

高频RFID系统读写器与IC卡通信过程如图2.8所示,主要步骤有:

复位应答(Answer  to  request):M1射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。

防冲突机制(Anticollision  Loop):当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。具体防冲突设计细节可参考相关协议手册。

选择卡片(Select  Tag)选择被选中的卡的序列号,并同时返回卡的容量代码。

三次互相确认(3  Pass  Authentication):选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯(在选择另一扇区时,则必须进行另一扇区密码校验)。

对数据块的操作:包括读、写、加、减、存储、传输、终止。

图2.8  读卡器与IC通讯流程

3.4.2  防冲突

当读写器读写范围内部有多张PICC标签时,读写器利用各卡的UID(惟一标识符)从多张标签中选择出一张PICC标签。不同IC卡其内部的UID大小不同,通常UID由4、7或10个UID字节组成。PICC将这些字节按照其字节数封装在几个串联级别中发送给读卡器,每个串联级别内包含5个数据字节,其中包括3个或4个UID字节,见图2.9,从图可知PICC最多会发送三个串联级别(串联级别数又可以称为UID大小)。

图2.9 UID结构

图中CT为级联信号,表示在下一级中还有UID;BCC为本级检验码。由图可知,PICC最多应处理3个串联级别,以得到所有UID字节。阅读器防冲突过程如下:

1)首先由PCD发送REQA命令或WAKE  UP命令,使卡进入READY状态(参见标签状态转换图)。这两个命令的差别是:REQA命令使卡从IDLE状态进入READY状态,而WAKE  UP命令使卡从HALT状态进入READY状态。

2)PICC接收到命令后,所有处在PCD电磁场范围内的PICC同步发出ATQA应答,说明本卡UID的大小(1、2或3),之后进入READY状态,执行防冲突循环操作。

3)PCD通过发送ANTICOLLISION和SELECT命令执行防冲突循环操作,命令格式如下所示:

3.5 上位机与高频RFID模块间的通讯协议

在LF低频RFID实验中,上位机和低频RFID模块之间没有任何的协议通信,这是因为低频RFID功能简单,低频RFID模块只有一个工作状态就是监听状态,此时模块只需将监听到的标签数据传给上位机即可。而高频RFID以及之后将要学习的超高频RFID、2.4GRFID模块的功能就要多得多。除了简单的读卡外,还有写入数据,修改密码的功能,这就需要上位机和这些RFID模块之间进行通信。以下便是上位机和高频RFID之间的一些协议。

以下数据均为16进制,第一字节表示此次发生的字节长度

读卡号

02 A0

读数据

09 A1 Key0 Key1 Key2 Key3 Key4 Key5 Kn.

例:0xA1为读数据标志。

该卡密码A为16进制:ff ff ff ff ff ff 对应Key0 Key1 Key2 Key3 Key4 Key5;

要读的块数为第4块 即 Kn=4;

则发送:09 A1 ff ff ff ff ff ff 04 .

返回第4块的16字节数据.

写数据

19 A2 Key0 Key1 Key2 Key3 Key4 Key5 Kn Num0 Num1 Num2 Num3 Num4 Num5 Num6 Num7 Num8 Num9 Num10 Num11 Num12 Num13 Num14 Num15.

例:0xA2为写数据标志。

该卡密码A为16进制:FF FF FF FF FF FF 对应Key0 Key1 Key2 Key3 Key4 Key5;

要写的块数为第4块 即 Kn=4;

要写的数据位 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

则发送:19 A2 FF FF FF FF FF FF 04 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F.

4.1 打开\光盘\源代码\上位机开发\APP工程目录,编译并烧写到实验箱,将实验箱上的UART-STM串口与PC机相连,打开电源,点击屏幕HF按钮选择高频模块,如图2.10所示。这时高频模块的电源指示灯会被点亮如图2.11所示。

图 2.10 选择高频模块

图 2.11 电源指示灯亮

4.2 读卡号操作打开串口助手配置如图2.12,将显示区选择为十六进制显示,发送字节0x02 0xA0,并进行高频标签的刷卡操作,观察是否有数据返回。如果模块工作正常则会返回高频卡号。如图2.13所示。

图 2.12 串口参数配置

图2.13

4.3  读数据操作。在串口助手发送区发送十六进制字符串09 A1 ff ff ff ff ff ff 04,观察返回值,并解析09 A1 ff ff ff ff ff ff 04这条指令的意义。实例如图2.14所示。

图 2.14返回块4数据

  1. 写数据操作。在串口助手发送区发送十六进制字符串19 A2 FF FF FF FF FF FF 04 CC 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F,观察返回值,并解析这条指令的意义。完成后再次执行读卡操作验证结果,如图2.15所示。

图 2.15 写卡验证

实验5 基于stm32的HF高频RFID通信协议相关推荐

  1. 基于STM32开发板CAN总线通信协议浅析

    基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...

  2. ARM开发(9)基于STM32的简单四则运算计算器

    基于STM32的简单四则运算计算器 一 计算器原理: 1.1 本实验实现基于STM32的简单四则运算计算器 1.2 实验思路:理解计算器原理(按键扫描,字符实时显示,运算表达式计算,浮点数转字符串,字 ...

  3. UHF超高频RFID通信协议实验步骤

    一.实验要求 线上观看UHF超高频RFID通信协议实验,理解并写实验报告 二.实验原理 1.UHF超高频阅读器发射电磁波到标签,标签从电磁波中提取工作所需要的能量,标签内部集成电路芯片存储的数据调制并 ...

  4. 基于 STM32 的 RFID 射频计数标签物联网ONENET平台全套资料

    基于 STM32 的 RFID 射频计数标签物联网ONENET平台(实物图+源程序+原理图+参考论文) 资料编号:018 该设计通过RC522识别IC卡,然后通过ESP8266上传到ONENET云平台 ...

  5. 基于STM32单片机智能RFID刷卡汽车位锁设计(论文

    基于STM32单片机智能RFID刷卡汽车位锁设计(论文) 摘要 在车位日益紧张的今天,如何避免私家车位被他人抢占,是令人头痛的事.日前面市的一种新型车位锁,不仅有效解决了这一问题,还可对车辆起到防盗作 ...

  6. 基于STM32单片机智能RFID刷卡汽车位锁设计(开题报告)

    基于STM32单片机智能RFID刷卡汽车位锁设计(开题报告) 文章目录 基于STM32单片机智能RFID刷卡汽车位锁设计(开题报告) 一.课题的背景及意义 二.国内外研究状况: 三.系统功能分析及体系 ...

  7. 基于STM32的TFT-LCD触摸屏实验(HAL库)

    前言:TFT-LCD作为显示终端必不可少的设备,目前大部分的TFT-LCD都具备了触摸功能.无论是在MCU亦或是SOC(MPU)中,触摸屏的使用都是十分常见的.触摸屏LCD通常分为2种:电阻触摸屏,电 ...

  8. 基于stm32的模拟楼道光控开关的实验

    实验目的:本文基于stm32开发板做一个模拟光控开关的实验,实验最后的实现的功能是,在光照强度大于临界值LED灯就变暗,如果光照强度小于临界值LED灯就变亮. 文章目录 一.硬件设计 1.本实验所用到 ...

  9. 基于STM32单片机和RFID的智能考勤系统设计

    提示:记录2022年4月做的毕设 文章目录 前言 一.任务书 1.1设计(研究)目标: 1.2设计(研究)内容: 二.思路 三.硬件 3.1RFID模块 3.2 时钟模块 3.3 按键模块 四.联系我 ...

最新文章

  1. jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)
  2. Windows活动目录系列---活动目录版本迁移概述
  3. wps怎么投递简历发到boss直聘_2020年疫情时期,在厦门的你怎么开启新工作
  4. 团购网站的兴衰与启示
  5. SynchronizationContext
  6. C++自学21:动态分配内存(malloc/calloc/realloc/new)/回收内存(free/delete)
  7. Nhibernate出现No row with the given identifier exists问题的产生原因及解决方法
  8. LINUX进程内存占用查看
  9. Android View layout方法的简单使用案例
  10. SHELL 002 -- ps命令常用方法
  11. uC/os内存优化——TLSF算法
  12. Python tolist()用法
  13. oppo手机linux模式,OPPO工程模式怎么进 OPPO手机指令有哪些
  14. Unity3d——4种灯光的简介
  15. TCP和 UDP的区别
  16. JVM面试题整理大全
  17. 高一计算机课的总结,高中《信息技术》期末教学总结范文
  18. 汽车整车生产厂MES解决方案
  19. 计算机专业英语时间跨度,这是我见过的最变态的英语考试,没有之一
  20. python二级第三方库汇总

热门文章

  1. 英特尔®傲腾™持久内存+MemVerge软硬结合发挥极致性能
  2. 疫情环境下,如何保证企业员工远程办公效率?
  3. 基于JAVA评标专家管理信息系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  4. 前端学习笔记(11)之过渡属性(transition)详解
  5. Arduino 开发板介绍及对比
  6. 一起自学SLAM算法:8.2 Cartographer算法
  7. 36进制--Java
  8. [含论文+源码等]高校科研项目管理系统[包运行成功]
  9. pycrypto下载
  10. 大文件上传时如何做到秒传?(荣耀典藏版)