RFID 协议 | 学习笔记

简介: 快速学习 RFID 协议

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:RFID 协议】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11115


RFID 协议

一、RFID 协议

ISO/IEC 14443: 国际标准 ISO 14443 定义了两种信号接口、分别是 TypeA 和 TypeB 且互不兼容。

A 类卡用的较多

TypeA 类卡:

MIFARE Std 1k(MF1 IC S50): 国内常称 MF1 S50

MIFARE Std 4k (MF1 IC S70): 国内常称为 MF1 S70

广泛应用

TypeB 类卡:

我国第二代居民身份证:上海华虹、北京同方 THR9904、天津大塘和北京华大生产。

AT88RFO20: 美国爱特梅尔( ATMIL )生产,典型应用如广州地铁卡。

卡的状态

POWER OFF: 缺少载波能量

IDLE: 等待读写器发来的请求

READY: 收到读写器发来的请求

ACTIVE: 收到读写器发来的选择

HALT: 读写器发来的停止命令

卡片请求命令:

REQA: 请求未被 HALT 的 TypeA 卡-—Ox26

命令值是 26,将其下达到卡片中

WAKE-UP: 请求所有的 TypeA 卡——0x52

卡正常被使用需要经历几个状态,卡片本身对于无源卡来说,未被供电,是缺少载波能量的状态,一旦被供电,会进入供电状态,等待读写器的请求,如果读写器发来请求,会进入 READY 状态,是一个寻卡过程,寻卡目的得到卡号,一个阅读器有多个卡片进行处理,需要读取卡号,卡号获取后需要对某一张卡进行操作,需要激活卡片,要进行选卡操作,将卡片激活对其进行操作,不操作可以进入休眠状态。

image.png

此图为基本流程切换,首先卡片在没有阅读器施加能量的情况下,是断电的,一旦上电,会自动付费,付费完成后进入共享状态,进行寻卡,REQA Command 是寻卡命令,还要进行防冲突处理,明确寻找的是哪张卡片,通过防冲突将所有的卡号读取出来,卡号是唯一的,寻卡成功后进入 READY 状态,用读到的卡号选择卡片,如两个人同时刷卡,需要选择某一张卡操作,选中卡之对卡片进行各种操作,操作包括对密码进行验证,读写等操作或者同时进行扣款,都是在此状态下完成,如果不对卡片进行操作,通过HALT指令,是卡片进入停止状态,如果想进行操作,通过 WAKE-UP 唤醒。

以上是基本通讯流程,即提供协议所支持的流程切换

复位:阅读器通过特定协议验让卡片尖型,并切换状态为 IDLE

寻卡:获取复位时确定的卡的类型数据,并切换状态为 READY

防冲突:多卡操作,获取完整卡号 UID

选择:根据完整的 UID,选择相应的卡片,并切换状态为 ACTIVE

HALT:上停止该卡,百至 WAKE-LIP 话求

复位,进行寻卡,寻卡是防冲突并获取卡号 UID,完整的 UID,UID 是不完全一样,A 类是 4 个字,B 类是 8 个字,长度不一样,之后进行选卡,根据已获取的UID 选卡,如乘公交刷卡,多卡一起刷时,要防冲突,进行选择,之后进行停止或唤醒。

验证密码:指定加密类型,指定密码块号(0~63),指定密码,指定卡号

读块内容:验证密码通过后,可读取指定块(0~63)数据

写块内容:验证密码通过后,可写入指定块(0~63)数据

进入 ACTIVE 状态,激活后进行验证密码,读写数据,读写数据的前提是对密码进行指定,密码是十分重要的,起到保护的作用,有破解方法,但严格意义上是很难进行破解,密码是复杂的,读写内容都是在解析后进行的,修改密码也是在验证之后进行的。

充值扣款:

充值扣款前该块数据必须要先初始化成指定格式

每一块数据长度是 16 字节,但金额内容只有 4 字节,所以剩下 12 字节用于保存金额和块信息的校验值

充值扣款过程:验证密码通过后,可对指定块(0~63)数据进行充值扣款操作

CRC (初始化不同卡片时需要设置)

检验值为 6363( A 类卡)

校验值为 FFFF( B 类卡)

如果是单纯读写,找到卡片内部存储空间,写入或读取内容,如果要充值,必须要保证卡片内部数据拥有标准格式,有检验信息在内部,对 16 个字节空间进行初始化,只有符合充值条件、充值格式的模块才能充值成功或扣款成功,随便往内部写值是没有问题的,不用遵循初始化的指定格式,对不同的卡要做 CRC 的校验,保证数据的唯一性、正确性。

相关文章
|
1月前
|
人工智能 IDE 算法
Prompt、Skill、Agent、MCP 到底啥区别?一篇讲透 AI 工作体系
本文用生动比喻为测试新人厘清AI核心概念:大模型是“天才员工”,Prompt是临时口头交代,Agent是自主干活的模式,Skill是可复用的SOP手册,MCP是连接系统的“门禁卡”,IDE是智能办公室,Claude Code则是终端特种兵。重在构建AI工作体系,而非死记定义。
|
SQL Oracle 关系型数据库
Navicat15安装使用教程全网最细)
Navicat15安装使用教程全网最细)
908 1
Navicat15安装使用教程全网最细)
|
安全 算法 物联网
SSL/TLS:互联网通信的加密基石与安全实践
**简介:** 在数字化时代,互联网每天传输海量敏感数据,网络攻击频发。SSL/TLS协议作为网络安全的基石,通过加密技术确保数据安全传输。本文解析SSL/TLS的技术架构、密码学原理、应用场景及常见误区,探讨其在未来的发展趋势,强调持续演进以应对新型威胁的重要性。 SSL/TLS不仅保障Web安全,还广泛应用于API、邮件、物联网等领域,并遵循合规标准如PCI DSS和GDPR。
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的2FSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的2FSK调制解调系统,包含高斯信道、误码率统计模块及testbench。系统增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同SNR下的硬件测试,并提供操作视频指导。理论部分涵盖频移键控(FSK)原理,包括相位连续与不连续FSK信号的特点及功率谱密度特性。Verilog代码实现了FSK调制解调的核心功能,支持在不同开发板上移植。硬件测试结果展示了不同SNR下的性能表现。
515 6
|
算法
|
存储 数据管理 Linux
Linux命令sg的深入解析与应用
**Linux的`sg`命令用于高效管理SCSI设备,它基于DMA和Scatter-Gather技术,提供直接设备控制和高效数据传输。`sg`常通过`sg3_utils`工具集来使用,例如`sg_io`,用于执行SCSI命令。在实际应用中,需注意权限、数据安全和兼容性问题,遵循备份、详细阅读文档和逐步测试的最佳实践。**
|
异构计算 机器学习/深度学习 算法
探索FPGA在硬件加速中的应用
【5月更文挑战第31天】本文探讨了FPGA在硬件加速中的应用,阐述了FPGA基于可编程逻辑单元和连接资源实现高效并行处理的优势,如高性能、低功耗、可重构性和灵活性。FPGA广泛用于图像处理、数据压缩、深度学习加速和网络安全等领域。然而,FPGA也面临功耗、散热及开发复杂度的挑战。未来,FPGA将通过优化设计和工具,与CPU、GPU等协同工作,助力异构计算和新兴技术发展。
|
时序数据库
时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
【6月更文挑战第24天】时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
2282 0
|
编解码 JavaScript 编译器
[字符编码] 实战篇:QT中文乱码的解决办法
[字符编码] 实战篇:QT中文乱码的解决办法
3944 0

热门文章

最新文章