3.物联网射频识别,(高频)RFID应用ISO14443-2协议,(校园卡)Mifare S50卡
一。ISO14443-2协议简介
1.ISO14443协议组成及部分缩略语
(1)14443协议组成(下面的协议简介会详细介绍)
14443-1 物理特性
14443-2 射频功率和信号接口
14443-3 初始化和防冲突 (分为Type A、Type B两种接口)
14443-4 传输协议 (一般不使用,只有哪些银行卡刷卡等重要领域的器件才需要使用)
(2)针对前两节的名词,对应的英语缩略语
PCD:近场耦合设备(读写器)
PICC:近场卡或物体(标签)
RF:射频
ASK:振幅键控
OOK:二进制振幅键控
BPSK:二进制相移键控
2.ISO14443-1协议简介
(1)物理特性:ID-1,长86mm,宽54mm,厚0.84mm


(2)ISO14443-2功率接口
频率:13.56MHz±7kHz
工作场强度:Hmin=1.5A/m, Hmax=7.5A/m
(3)ISO14443-2信号接口
问题:如何看懂图?
我们看到的图会有很多英文,但是这个英文很可能是缩略英文,并代表一定的含义。所以我们在看图之前,可以找到他的缩略英文标(或者类似手册),边查边看。
例如上面提到的缩略语。我们在下面经常看到这些缩略语。
PCD-PICC信号接口
接口速率:fc/128=13.56M/128≈106kbps
PICC-PCD信号接口
副载波频率:848kHz
二。ISO14443-3 Type A协议简介
1.ISO14443-3部分缩略语
S:通信开始
E:通信结束
P:校验位,Type A
UID:唯一标识符
2.Type A的帧格式
注意:不需要把他记下来,只需要有印象,主要是观察创作者在对待不同的帧如何规定与处理。
1.短帧
2.标准帧
(1)字节低位在先
(2)校验位P为奇校验,仅仅在PICC到PCD 且速率为106k以上时,最后一个字节的P为偶校验
3.基于位的防冲突帧
3.Type A PICC的状态
这是读写器与标签的工作方式,如果仔细分析我们会消耗大量的时间,并没有太大的必要。主要关注的是别人画流程图的方式:各方面都需要思考,并且把应答的数据也标注出来,使用缩略语使图像变得简洁。
4.Type A 的PCD命令及PICC应答
众多周知,这些缩略语只是标识符,关键是对应的二进制数据。所以需要分配数据的使用。这也是一个开发者需要考虑的内容。
请求(REQA )和唤醒(WUPA)
请求应答(ATQA)
5.补充:Type A 的PCD命令及PICC应答
(1)UID介绍
(2)防冲突(Anticollision)流程
面向比特的防冲突方式
(3)防冲突(Anticollision)命令格式
(4)防冲突(Anticollision)命令中的NVB
(5)防冲突(Anticollision)命令举例
(6)选择(SELECT)和选择应答(SAK)
1.SELECT
2.SAK
三。Mifare S50卡的内部存储结构
Mifare S50卡是一种接触式智能卡,也被称为Mifare Classic卡。它是由NXP公司推出的一种RFID(射频识别)技术的智能卡。Mifare S50卡采用13.56MHz的高频射频技术,具有非接触式读写能力。
Mifare S50卡具有存储和处理数据的能力,可以用于实现安全访问控制、身份验证、电子钱包等功能。它采用ISO 14443A标准,具有16个扇区,每个扇区包含4个块,每个块可以存储16个字节的数据。
Mifare S50卡广泛应用于公共交通、门禁系统、学生卡、员工卡等领域。它具有较高的安全性,支持密码验证和加密传输,能够防止数据泄露和非法复制。
然而,Mifare S50卡也存在一些安全漏洞,容易受到破解和攻击。因此,在实际应用中,需要采取一些额外的安全措施来保护卡片和数据的安全。
以下主要是对Mifare S50卡的内部分析。Mifare S50卡存储结构,控制块的使用等。
1.Mifare系列介绍
NXP公司出品的系列遵循ISO14443-A标准的射频卡

2.Mifare S50卡存储结构
(1)Mifare S50卡存储结构

(2)Mifare S50卡数据块的值结构
1. 值(Value):一个带符号的4 字节值,小端模式(低地址存最低值)。
2.值按2次正常和1次取反(~表示)存储了3次。
3.地址(Addr)表示1字节的块编号,分2次正常和2次取反值存储。
4.可以执行Decrement、Increment、Transfer、Restore命令。
(3)Mifare S50卡每个扇区的控制块(块3)
一扇一密,便于一卡多用
每个扇区有独立的控制字,每块由3位组合C1x C2x C3x控制
(4)Mifare S50卡扇区数据块(块0~2) 访问权限
例如:当块0的存取控制位C10 C20 C30=100时,验证密钥A或密钥B后可读;验证密钥B后可写;不能进行值类操作。
(5)Mifare S50卡扇区控制块(块3) 访问权限
例如:当块3的控制位——C13 C23 C33 = 0 0 1时,表示:密钥A:不可读,验证KEYA正确后,可写 ; 控制字段:验证KEYA后,可读、可写;密钥B:验证KEYA正确后,可读、可写。
四。Mifare S50卡的访问流程
1.Mifare S50卡的访问流程

Mifare S50卡三次认证流程
1.挑战值:RB, B产生的随机数;RA A产生的随机数。
2.TokenAB, A对随机数RB使用认证的密钥进行加密计算后的应答值。
3.TokenBA, B对随机数RA使用认证的密钥进行加密计算后的应答值。
4.加密算法为Mifare未公开的“crypto1”,后两步的通信数据是加密的。
2.Mifare S50卡的命令
Mifare S50卡的命令
Mifare S50卡的ACK及NAK应答
S50Authentication命令流程
Addr指块的顺序编号0~63
不切换扇区,同一个扇区只需要认证一次
Read命令流程
Write命令流程
Increment Decrement Restore 命令流程
Transfer命令流程
相关文章:
3.物联网射频识别,(高频)RFID应用ISO14443-2协议,(校园卡)Mifare S50卡
一。ISO14443-2协议简介 1.ISO14443协议组成及部分缩略语 (1)14443协议组成(下面的协议简介会详细介绍) 14443-1 物理特性 14443-2 射频功率和信号接口 14443-3 初始化和防冲突 (分为Type A、Type B两种接口&…...
【IDEA】IDEA 单行注释开头添加空格
操作 打开 IDEA 的 Settings 对话框(快捷键为CtrlAltS);在左侧面板中选择Editor -> Code Style -> Java;在右侧面板中选择Code Generation选项卡;将Line comment at first column选项设置为false使注释加在行开…...
三等分功分器[波导]设计详细教程
想必大家通过阅读相关文献可以发现三等分实现可以有很多不同的方法,这里采用的是先不等分再等分的方式,仅供参考。 主要指标 中心频率为280GHz,采用WR-3频段的标准波导,将2:1不等功率分配耦合器与3dB等功率分配耦合器级联&#…...
Mysql分库分表
1.原理 2.Sharding JDBC 官网https://shardingsphere.apache.org/ 2.1 水平拆分 创建一个新的springboot项目 导入依赖,直接将原本的dependencies给覆盖掉 <dependencies><!-- ShardingJDBC依赖 --><dependency><groupId>org.apache.shardings…...
【算法学习】-【双指针】-【复写零】
LeetCode原题链接:1089. 复写零 下面是题目描述: 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 …...
【算法优选】双指针专题——叁
文章目录 😎前言🌳[两数之和](https://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/)🚩题目描述:🚩算法思路:🚩算法流程:🚩代码实现 🎄[三数之和]…...
Java栈的压入、弹出序列(详解)
目录 1.题目描述 2.题解 方法1 方法2 1.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序…...
RabbitMQ学习笔记(消息发布确认,死信队列,集群,交换机,持久化,生产者、消费者)
MQ(message queue):本质上是个队列,遵循FIFO原则,队列中存放的是message,是一种跨进程的通信机制,用于上下游传递消息。MQ提供“逻辑解耦物理解耦”的消息通信服务。使用了MQ之后消息发送上游只…...
PyTorch - 模型训练损失 (Loss) NaN 问题的解决方案
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/133378367 在模型训练中,如果出现 NaN 的问题,严重影响 Loss 的反传过程,因此,需要加入一些微小值…...
8、Nacos服务注册服务端源码分析(七)
本文收录于专栏 Nacos 中 。 文章目录 前言确定前端路由CatalogController.listDetail()ServiceManager总结 前言 前文我们分析了Nacos中客户端注册时数据分发的设计链路,本文根据Nacos前端页面请求,看下前端页面中的服务列表的数据源于哪里。 确定前端…...
MySQL使用Xtrabackup在线做主从
1、主库上操作 1.1前提 172.16.11.2(主库) 172.16.11.4(从库) 在执行备份之前,确保数据库没有锁定,以避免备份期间的任何写操作。 确保主库上的 MySQL 服务器正在运行,以便备份数据的一致性。…...
scala基础入门
一、Scala安装 下载网址:Install | The Scala Programming Language ideal安装 (1)下载安装Scala plugins (2)统一JDK环境,统一为8 (3)加载Scala (4)创建工…...
【Java-LangChain:面向开发者的提示工程-5】推断
第五章 推断 推断任务可以看作是模型接收文本作为输入,并执行某种分析的过程。其中涉及提取标签、提取实体、理解文本情感等等。如果你想要从一段文本中提取正面或负面情感,在传统的机器学习工作流程中,需要收集标签数据集、训练模型、确定如…...
【C++】手撕vector(vector的模拟实现)
手撕vector目录: 一、基本实现思路方针 二、vector的构造函数剖析(构造歧义拷贝构造) 2.1构造函数使用的歧义问题 2.2 vector的拷贝构造和赋值重载(赋值重载不是构造哦,为了方便写在一起) 三、vector的…...
智能指针那些事
《Effective Modern C》学习笔记之条款二十一:优先选用std::make_unique和std::make_shared,而非直接new - 知乎...
Fiddler抓取手机https包的步骤
做接口测试时,有时我们需要使用fiddler进行抓包分析,那么如何抓取https包。主要分为以下七步: 1.设置fiddler选项:Tools->Options,按如下图勾选 2.下载并安装Fiddler证书生成器 下载地址:http://www.telerik.com/…...
idea没有maven工具栏解决方法
背景:接手的一些旧项目,有pom文件,但是用idea打开的时候,没有认为是maven文件,所以没有maven工具栏,不能进行重新加载pom文件中的依赖。 解决方法:选中pom.xml文件,右键 选择添加为…...
levelDB引擎
一、背景 1.1、影响磁盘性能的因素: 主要受限于磁盘的寻道时间,优化磁盘数据访问的方法是尽量减少磁盘的IO次数。磁盘数据访问效率取决于磁盘IO次数,而磁盘IO次数又取决于数据在磁盘上的组织方式。磁盘数据存储大多采用B树类型数据结构&…...
IM同步服务
设计概述 后台同步方案的设计就是数据存储结构的设计,如何快速体现“信息变化”,如何快速计算出“变化信息”。后台数据存储结构是由同步协议中同步契约决定的。 设计方案 该方案的同步是按照业务粒度来划分,只需要同步sdk要求同步的数据。…...
MySQL 运维常用脚本
常用功能脚本 1.导出整个数据库 mysqldump -u 用户名 -p –default-character-setlatin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...






































