NFC学习笔记(2)——NFC基础知识

article/2025/11/10 11:25:44

书接上文

在等待PN532板子到货的同时,需要了解一些NFC的知识。

NFC卡分为5类

* I 型卡(不支持防冲突)

* II 型卡 Mifare Ultralight卡

* III 型卡 Sony FeliCa卡

* IV 型卡 NXP DESFire卡

* V 型卡  NXP Mifare Classic卡

平时最常使用的是NXP Mifare Classic卡。

除了III 型卡(Sony的FeliCa,基本只在日本使用),其他的卡都是基于ISO-14443A标准

传输速率在106Kbps,存储空间最大到KB级别

除了I 型卡外,其他类型卡都支持防冲突

所有类型卡片都有只读和可读写卡两种

NDEF

NDEF(NFC Data Exchange Format),NFC数据交互格式

该格式规定了NFC如何交换数据

NDEF由二进制数据构成,由这些二进制数据构成message

一个message由多个record构成

每个record由header和payload组成

header包含record的元数据,如长度、record类型等

payload为message的内容

NFC可传输的数据很短,一般只由一个message构成

NDEF结构图见下图:

 以快递地址举例子

一个快递地址就是一个message

快递地址由多个字段构成,省、市、区县、街道、小区,收件人,联系电话

每个字段就是一个record,多个record构成一个完成的message

一个record由头和载荷组成

头记载了这个record的信息,载荷就是要传输的数据

record头记录的信息有:

* TNF(1字节)

* 类型长度(1字节)

* 载荷长度(4字节)

* ID长度(1字节)

* 载荷类型(变长)

* 载荷ID(变长)

从载荷长度为4字节可以看出,理论上载荷最大长度为2^{32}-1,当然,这个只是理论值,一般NFC卡片的存储容量在KB级

下面聊一聊TNF(Type Name Format)

TNF由一个字节构成,8个位分别代表

* message开始(1 bit)

* message结束(1 bit)

* 块标识(1 bit)

* 短record(1 bit)

* ID长度(1 bit)

* 类型格式(3 bits)

上面说到一个message由多个record构成,message中第一个record,message开始位为1;message中最后一个record,message结束位为1;中间的record开始位结束位都为0;如果一个message只有一个record,开始位结束位都为1

块标识为1时表明record分块传输

短record标识为1时载荷长度使用短record

ID长度位为1时存在ID长度域

TNF由3位构成,也就是说有8种情况:

0:空

      空record,没有类型或载荷

1:Well-Known

      NFC协会定义的预置类型

2:MIME media-type

      RFC2046定义的网络媒体类型

3:Absolute URI

      RFC3986定义的URI

4:External

      基于NFC协会定义的用户定义值

5:Unknown

      该类型未知,类型长度必须位0

6:Unchanged

      只在分块传输的中间和结束record中出现,类型长度必须为0

7:Reserved

      NFC协会保留类型

如果传输长度大于4个字节所定义的长度(2^{32}-1),则需要分块传输

相信一般用不到分块传输的情况

好了,今天就先写到这。


http://chatgpt.dhexx.cn/article/PyQTIQSB.shtml

相关文章

Low-Light Image Enhancement with Normalizing Flow

基础理论知识点: 李宏毅flow-model: 参考博客、flow-model视频 Flow-model参考博客 3 Methodology 在本节中,首先介绍以往基于像素级重建损失的微光增强方法的局限性。然后,介绍了图2中我们的框架的总体范式。最后,我们提出的框架…

Ultra Edit使用技巧

Ultra Edit使用技巧 1.去掉横向滚动条(自动换行) 在菜单栏选择“高级->配置”,进入如下界面。然后在“编辑器”选项的“自动换行”界面里,选择“默认为每个文件启用自动换行”。 2.列编辑模式 按“ALT c”组合键可进入列编辑模式,可以按…

HighlightingSystem插件使用(边缘发光)

插件链接: http://pan.baidu.com/s/1dFwkaTr 密码: nw2c 导入Unity里面可能会报错,不过没关系,直接注释掉就可以了,我用的是Unity5.1的版本 可以看到如下文件夹,HighlighingSystemDemo是一些实例,可以看一下&#xff0…

HighlightPlus物体自发光

只介绍常用的几个参数与使用:

Deep Retinex Decomposition for Low-Light Enhancement

参考 Deep Retinex Decomposition for Low-Light Enhancement - 云社区 - 腾讯云 目录 摘要 1、简介 2、弱光增强的视黄素网 2.1、数据驱动的图像分解 2.2、支持结构平滑损失 2.3、多尺度照明调整 2.4、反射上的去噪 3、数据集 3.1、真实场景中捕获的数据集 3.2、从…

霓虹灯(light)

【题目描述】 小石家旁边有一个大型商场,晚上会有不停变换的霓虹灯,各种各样的颜色非 常漂亮,小石每天晚上都喜欢站在窗口看不停变换的霓虹灯。这个商场的霓虹灯 在每个时刻都是同一种颜色。小石每天晚上会在商场开始亮灯时就站在窗口观看。 …

ultralight搭建/运行/打包

0、ultralight的github更新 截至2023年3月17日,ultralight的github仓库最近的提交时间为2022年12月10日。 1、ultralight ultralight是使用C或C语言和HTML/JS构建界面,基于WebKit的HTML渲染器。 支持系统:Windows(7、x64)、macOS(Sierra或…

rpi4 实现 qiuqiu - Ultralight-SimplePose

qiuqiu Ultralight-SimplePose:https://github.com/dog-qiuqiu/Ultralight-SimplePose 💻​ OS Linux raspberrypi 5.10.60-v8 #1448 SMP PREEMPT Sat Aug 21 10:48:18 BST 2021 aarch64 GNU/Linux⚡️ 安装 protobuf sudo apt-get install autoconf au…

射频识别技术漫谈(16)——Mifare UltraLight

【转自】http://blog.sina.com.cn/s/blog_9ed067ad01010t8k.html Mifare UltraLight又称为MF0,从UltraLight(超轻的)这个名字就可以看出来,它是一个低成本、小容量的卡片。低成本,是指它是目前市场中价格最低的遵守ISO14443A协议的芯片之一&a…

low-light系列:Lightening Network for Low-light Image Enhancement

前言 文章下载链接在后面 这是一篇顶刊TIP2020的文章,重点在于: 文章将暗光增强任务视为一个求residual(残差)的任务LBP模块的提出,借用了SR(超分辨率)任务中的back-projection思想可调亮度的…

Low-light images enhancement系列:EnlightenGAN:Deep Light Enhancement without Paired Supervision

众所周知,在暗光增强任务中,要获取到适合的成对的暗光/正常曝光训练图像是非常困难的,甚至是不存在唯一的定义良好的正常曝光ground truth图片。如果用正常曝光的图像去合成带噪点的暗光图像作为训练集,很可能导致最终应用在真实世…

RC522读取NFC Forum Type2 Tag流程及代码解析——Mifare Ultralight卡片读取(采用PHY6212平台,可移植)

RC522作为一款NFC读写芯片,性价比还是很高的,因为在项目里需要采用NFC OOB配对,所以需要读取配对方模拟的NFC卡片信息 读取对象采用NRF52832,使用其NFC功能模拟type2 tag,但是读取方式和M1卡不一样,踩了不…

Lighting - 光的亮度衰减

一些零零碎碎的笔记归档; 光的亮度衰减: 在物理正确的情况下,光的衰减遵循反比例平方衰减;因为光在传播过程中如下图: 随着距离的增加,单位平面上所接受的光照强度与距离的计算关系; 公式可简单…

PFLD+GhostNet+MobileOne=PFLD_GhostOne,重参数化让PFLD重生,精度提升超过4%,速度提升超过55%,代码已开源

在两年前,我曾经分享过利用GhostNet对PFLD进行优化的文章——《人脸关键点检测算法PFLD的优化实战记录》,那里面介绍了经过各种奇技淫巧,GhostNet确实能够提升PFLD的速度和精度,暂且称呼这个方法为PFLD-GhostNet,而且分…

LightGBM -- Light Gradient Boosting Machine

LightGBM 是微软开源的一个基于决策树和XGBoost的机器学习算法。具有分布式和高效处理大量数据的特点。 更快的训练速度,比XGBoost的准确性更高更低的内存使用率,通过使用直方图算法将连续特征提取为离散特征,实现了惊人的快速训练速度和较低…

Mifare UltraLight

Mifare UltraLight又称为MF0,从UltraLight(超轻的)这个名字就可以看出来,它是一个低成本、小容量的卡片。低成本,是指它是目前市场中价格最低的遵守ISO14443A协议的芯片之一;小容量,是指其存储容量只有512bit(Mifare S…

Low-light images enhancement/暗光/低光/微光增强系列:Attention-guided Low-light Image Enhancement(详解)

以下文字为博主翻译并添加了自己的理解,斜体为博主自己的想法,若有出错请指出。 摘要 暗光图像增强需要同时有效地处理颜色、亮度、对比度、伪影和噪声等多种因素。本文提出了一种新颖的注意力引导增强方案,并在此基础上构建了 端到端多分支…

STM32+PN532写UltraLight标签

第一次写博客记录下日常开发,最近公司一个项目需要用到NFC模块,所以开始了解NFC相关的一些知识,并在此MARK一下。 1、项目背景: 需要一个NFC模块为一个Mifare UltraLight的NFC标签写入一个蓝牙MAC地址,让手持设备接触…

零基础CSS入门教程(30)–CSS布局实例

点此查看 所有教程、项目、源码导航 本文目录 1. 前言2. 本章任务3. 开发过程3.1 设定全局样式3.2 头部标题栏样式3.3 导航栏样式3.4 内容区域3.5 底部版权区域 4. 小结 1. 前言 本篇是JavaWeb学习之路,CSS部分的最后一章。 从第24章初识CSS,到第53章C…

HTML+CSS的小实例

通过一个月以来对HTML5CSS的学习。这篇随笔给大家来做一个简单的网页中常见的导航栏。 这些都称之为网页中的导航栏。 我简单的做了一个某宝和58同城的导航栏,供大家学习参考。 一、58同城导航栏: 解析:首先我们来看到这个导航栏,…