2026年9月16日10 分钟阅读技术文章

从条码到 RFID:我对物联网识别技术的一次系统梳理

从最常见的条形码、二维码,到 RFID、门禁、生物识别、车牌识别、ETC、电子车牌,再到 NFC 与移动支付,这门课让我逐渐理解了物联网是如何给现实世界中的“人、车、物”建立数字身份的。本文结合课程学习与实验实践,对物联网识别技术的核心原理、典型系统以及它们在日常生活中的实际作用进行一次完整梳理。

想交流这篇内容?评论区在文末。
写评论

从一张卡、一个码到一辆车:我的《物联网识别技术》课程总结

刚开始接触《物联网识别技术》时,我对“识别”这两个字的理解其实很简单:扫码枪扫一下条码、门禁卡碰一下读卡器、手机扫一下二维码,这些都算识别。真正把整门课学下来,再把几个实验从读卡、写卡一路做到指纹、二维码、智能道闸和 NFC 之后,我才发现,识别技术远不只是“把一个编号读出来”。

它真正解决的是一个很基础、也很关键的问题:现实世界里的一个人、一件商品、一辆车、一个包裹,怎样在数字系统里拥有可以被机器理解的身份。

从这个角度再看日常生活,会发现很多看起来理所当然的功能,其实都建立在同一条技术链路上:先给对象一个身份,再把身份编码到某种载体里,通过设备采集和解析,交给后台系统判断,最后触发真实业务。快递入库、门禁开门、停车场抬杆、ETC 扣费、扫码支付、手机碰一碰,背后的逻辑并没有想象中那么割裂。

这也是我学完这门课之后最大的变化:以前看到的是一个个设备,现在更容易看到设备后面完整的系统。

一、我真正理解的“自动识别”是什么

自动识别最核心的价值,是让机器尽可能少依赖人工录入,自动获取对象的信息。把整个过程拆开后,我觉得可以概括成一条很清楚的链路:

信息 → 编码 → 载体 → 识别设备 → 解码与校验 → 后台业务 → 实际动作。

比如商品的编号本身只是信息,把它按规则变成 EAN-13、Code 128 或二维码之后,才形成机器可以读取的编码;编码印在包装上,包装就成了信息载体;扫码器再利用光学系统把它转换成电信号,经过放大、整形和译码,最终得到商品编号。这个编号传给收银系统之后,才会进一步查出商品名称、价格和库存。

RFID 也是一样。卡片或电子标签里保存的是数字信息,RC522 一类读写器通过射频完成寻卡、通信和数据读写,程序再把读取结果交给门禁、消费或身份认证逻辑。二维码、指纹、车牌识别、NFC 的实现方式不同,但都在完成“现实对象到数字身份”的映射。

这也让我重新理解了物联网的三层结构。感知层并不只是温度、光照、气体这些传感器,识别本身也是感知的重要组成部分。传感器更多回答“现在是什么状态”,识别技术则经常回答“它是谁”。网络层负责把这些数据送出去,应用层再决定怎么使用这些数据。三层真正连起来之后,才形成完整的物联网业务。

二、条码看起来最普通,却是我理解自动识别的起点

条码是整门课里最容易在生活中找到实物的一类技术。超市商品、快递面单、图书、药品包装、仓库箱码,到处都有它。

以前我只知道“黑白条纹里有数字”,学完识读原理后才真正知道扫描枪为什么能读出来。光源照到条码后,黑色条和白色空白区域对光的吸收、反射不同,光电器件把反射光转换成电信号,再经过放大、滤波和整形,把原本连续、带噪声的模拟信号变成清晰的数字方波。译码程序最后按照对应码制的规则,把条和空的宽度组合还原成字符。

所以一次很快的“滴”声,实际上已经走完了光学采集、光电转换、信号处理、码制判断、数据校验和结果输出。

一维码也不是只有超市里常见的那一种。EAN、UPC、Code 39、ITF25、Code 128、GS1-128 都有不同的设计目标。EAN/UPC 更适合标准商品编号;Code 39 能表示数字、字母和部分符号;Code 128 编码密度更高,字符范围也更丰富;GS1-128 则把 Code 128 放进了标准化的物流标识体系里,可以通过应用标识符继续表达批次、日期、序列号、数量、位置等信息。

我觉得物流场景特别能体现“统一编码”到底有多重要。一件货物从制造商出库,到物流企业运输,再到仓库、零售门店,如果每个环节都自己重新编号,整个供应链的数据很快就会乱掉。标准化的物流单元编码、贸易项目编码和位置码,本质上是在解决“大家如何用同一种方式描述同一个对象”的问题。

这也是条码在生活里最直接的帮助:它不只是让收银快一点,而是让商品和包裹从生产、仓储、运输到销售的整个过程都能被记录和追踪。我们今天查快递轨迹时觉得这是一个很普通的功能,但前提正是每一个物流节点都能快速、准确地识别那个包裹是谁。

三、RFID 是整门课里让我理解最深的一条技术主线

如果说条码让我理解了“机器怎么读取身份”,RFID 则让我第一次把无线通信、存储结构、身份认证和业务逻辑真正连到了一起。

RFID 系统通常围绕电子标签、阅读器、天线和上层应用工作。低频、高频、超高频系统的工作方式并不完全一样。低频和高频 RFID 常见的是电感耦合,可以把阅读器和标签理解成通过交变磁场耦合的两个线圈;超高频 RFID 更常利用电磁反向散射,标签改变自身反射特性,把数据调制到返回的电磁波上。

这里有一个很有意思的问题:如果阅读器范围里只有一张卡,通信并不难;如果同时出现很多标签,大家一起响应,就会发生碰撞。因此 RFID 还必须解决防碰撞问题。基于 ALOHA 的方法让标签随机选择通信机会,基于二进制树的方法则按标签身份逐步划分和搜索。以前我看到仓库一次盘点很多标签,只觉得是“读卡距离更远”,学到这里才意识到,真正困难的还有“同时有很多卡时,系统怎么把它们一个个分开”。

这部分理论最后在 RC522 的几个连续实验里落到了非常具体的代码上。

1. RFID 读取实验:一次刷卡并不是直接读 UID

第一个实验做的是 RFID 读取。程序并不是上电后直接得到卡号,而是按顺序经历寻卡、执行防冲撞、选定卡片,再读取并组合卡片类型和 UID,处理完成后让卡进入睡眠状态。

我第一次把 SearchAnticollSelect 这些步骤连起来之后,对 RFID 的感觉就完全不一样了。以前看到门禁“刷一下就开”,会觉得读卡器只是把卡号读出来;现在知道,在那一瞬间里,读写器其实先确认有没有卡,再解决可能出现的多卡冲突,锁定目标卡,最后才进入后面的操作。

实验还会识别不同卡型,并把卡类型和 ID 显示出来。这样一来,UID 不再只是屏幕上的一串十六进制数字,而是整个身份识别链路里最基础的身份数据。

2. RFID 写入实验:真正重要的是理解卡片的存储结构

第二个实验开始往 MIFARE 卡里写数据,这时最重要的已经不是“写成功”本身,而是搞清楚什么位置能写,什么位置绝对不能乱写。

实验使用的卡按照扇区和块来组织存储空间。一个扇区包含多个数据块和控制块,其中控制块保存密钥及访问条件。程序特意避开了每个扇区的尾块,因为这里不是普通数据区。如果把普通数据误写进去,很可能直接破坏这个扇区后续的访问权限。

实验默认使用第 1 扇区,先使用 Key A 完成密码认证,然后分别把 123456this is a test0x30 0x31 0x32 0x33 写入三个数据块,也可以把三个数据块清零。每次写完还会重新读取,串口和屏幕都能看到最终结果。

这个实验让我真正建立起一个很实用的概念:“读到一张卡”和“有权操作卡里的某一块数据”是两回事。 后面的充值消费、数据加密,其实都建立在这个基础上。

3. RFID 应用设计实验:从“存数据”走到了“做业务”

第三个实验是我觉得最像真实产品的一个 RFID 实验。它把卡片直接做成了一个简单电子钱包。

卡片初始化后余额为 10 元,四个按键分别对应扣 1 元、扣 5 元、充值 100 元和初始化。程序不再把余额当作普通字符串写进去,而是使用 MIFARE 的数值块结构,通过增值、减值操作完成余额变化,同时会判断余额是否足够,再把更新后的金额重新读取并显示出来。

做完这个实验以后,我对校园卡、公交卡这一类系统的理解更具体了。它们当然比课堂实验复杂得多,但“身份认证—读取账户状态—执行规则—更新状态—给出结果”这条业务链已经出现了。

我也第一次明显感觉到,嵌入式实验一旦加上业务规则,就不再只是驱动硬件。扣 1 元还是扣 5 元、余额不足怎么办、初始化状态怎么判断,这些已经是应用层的问题。一个真正可用的物联网系统,硬件、通信协议和业务逻辑缺一不可。

4. RFID 读写加密实验:身份认证之外,还有数据本身的保护

第四个实验又往前走了一步:把 RFID 块数据做加密和解密。

程序先通过正常的 MIFARE 认证访问扇区,然后把一个 16 字节数据块拆成两个 8 字节部分,使用 DES 进行加密。加密后的数据重新写回卡片,同时在另一个数据块里写入 0x5A 0xA5 作为加密状态标记;解密时先检查这个标记,再把两个 8 字节部分恢复,最后清除标记。初始化操作则会重新写入原始的 123456

这个实验让我把两个以前容易混在一起的概念分开了:访问认证解决“你能不能读写这个区域”,数据加密解决“这里面的内容以什么形式保存”。 两层机制关注的不是同一件事。

从读取 UID,到写普通数据,再到数值钱包和加密读写,前四个实验其实正好形成了一条很完整的递进路线。RFID 也因此成为我对这门课理解最扎实的一部分。

四、生物识别让我看到:人本身也可以成为“身份载体”

RFID 依赖卡片,二维码依赖图形,而生物识别最大的不同,是身份特征直接来自人本身。

指纹、人脸、虹膜、声纹、步态都可以用于身份识别,只是使用的特征不同。指纹识别的基本思路并不是保存一张“指纹照片”然后每次整张对比,而是采集图像、提取特征、生成模板,再拿新采集到的模板与已有模板进行匹配。

生物识别实验使用的是 AS608 指纹模块。录入指纹时,需要连续采集两次指纹,分别生成特征,然后比较两次采集是否来自同一手指。匹配通过后再生成指纹模板,并保存到指定 ID。识别时重新采集指纹、生成特征,再在指纹库里高速搜索;实验还支持删除单个指纹和查询剩余指纹库空间。

这一套流程让我明白,手机指纹解锁或者考勤机上的“按一下”只是用户看到的最外层操作。设备内部至少要经历采集质量判断、特征生成、模板管理和匹配判断。

生物识别在生活中的帮助非常明显。门禁、考勤、手机解锁、身份核验都可以少带一张卡、少记一个密码。但它也让我意识到,身份识别越方便,权限边界就越重要。卡丢了可以换卡,密码泄露可以改密码,而生物特征和人的绑定关系更强,因此系统设计时不能只盯着“识别成功率”,还要考虑模板管理、权限控制和信息保护。

五、二维码让我重新理解了“一个黑白方块里到底装了什么”

二维码是日常生活中使用频率最高的识别方式之一。付款、登录、加好友、取快递、坐车、开票、设备配网,几乎随处可见。

二维码和一维码最大的直观区别,是信息从一条线扩展到了一个二维矩阵,因此单位面积能容纳更多信息。QR Code 还通过位置探测图形帮助读码器快速确定方向,通过纠错码提高受污损、遮挡情况下的数据恢复能力。译码也不是简单地“看黑白格子”,而是要先定位、采样模块,再提取数据码字和纠错码字,完成校验、纠错,最后按照编码模式还原文字、网址或二进制内容。

除了最常见的 QR Code,还有 PDF417、Data Matrix、汉信码等不同码制。它们在容量、形状、纠错能力、应用环境上各有侧重。真正做系统时,不能因为“二维码都能扫码”就把所有码制看成一回事。

二维码实验本身很直观:程序把 Hello world!1234567890.?@#!$%^&* 编码成二维码并显示到 LCD 上。看起来只是生成一张图,但它把抽象的“编码”变成了肉眼可以直接看到的结果——一段普通字符串经过编码规则,变成黑白模块;手机再扫码,又把模块恢复成原始字符串。

这一来一回,把“信息—编码—图形载体—识别—还原信息”的过程展示得非常完整。

六、智能道闸让我第一次看到“识别之后真的让设备动起来”

前面的实验大部分到“读出结果、显示结果”为止,智能道闸实验则把识别结果真正接到了执行机构上。

实验里生成的车辆二维码包含车牌参数,示例车牌是 A123。系统把二维码用于车牌信息交互,再通过网络等待校验结果。如果车牌校验成功,程序会更新状态并控制舵机打开道闸;打开后还设置了倒计时,约 5 秒后自动关闭。LCD 同时显示“车牌校验成功/失败”和“道闸打开/关闭”等状态。

这个实验最有价值的地方,并不是“舵机转了一下”,而是它已经具备一个小型智能交通系统的闭环:

车辆身份 → 信息提交 → 后台校验 → 返回判断 → 道闸执行 → 状态显示 → 自动复位。

再往真实停车场去看,前端身份来源可以换成摄像头车牌识别,也可以换成电子车牌;后台可以接停车计费、会员、黑白名单;出口还能接无感支付。课堂上的小场景一扩展,就能直接对应现实中的停车场入口。

车牌识别本身属于图像识别。一个完整流程会经历图像采集、车辆检测、车牌定位、字符分割、OCR 字符识别,再把车牌号码和时间、地点等数据组合起来。复杂光照、污损、雨雪、运动模糊都会影响识别,因此真实系统还必须考虑补光、摄像机安装角度、图像质量和算法适应性。

如果不想完全依赖视觉,还可以给车辆增加基于超高频 RFID 的电子车牌。电子标签保存车辆唯一身份,路侧读写器在车辆经过时完成非接触识别。ETC 又是另一条典型路线,通过车载 OBU、路侧 RSU、车辆检测设备和收费后台配合,在车辆通过收费车道时完成身份交互和扣费。

这些技术放在一起之后,我才发现“智慧交通”不是某一个摄像头或者某一个 ETC 设备,而是感知、识别、通信、平台决策和现场控制共同组成的系统。

生活里最容易体会到的帮助,就是停车和通行效率。停车场进门不用取纸票,离场可以自动识别车牌;大型商场还能记录车辆停放位置,通过车牌查询做反向寻车;高速收费不用停车交费。每省掉一次人工确认,背后都是一次识别链路的自动化。

七、NFC 实验把 RFID 和手机真正连接了起来

NFC 和 RFID 的关系在没学之前很容易混淆。NFC 同样使用射频通信,工作在 13.56 MHz,通信距离很短,适合需要明确“靠近、碰一碰”动作的场景。它可以工作在卡模拟、读写器和点对点等模式,所以既能让手机模拟一张卡,也能让手机去读取标签,还可以让两个 NFC 设备直接交换数据。

NFC 实验使用 NT3H 芯片,通过 I2C 与主控通信。程序初始化 NFC 存储区之后,向标签写入两条 NDEF 记录:一条文本 Hello NFC,一条 URI 123.com,随后再读取用户存储区,并提示使用手机 NFC 靠近读取。

这个实验让我觉得特别有意思的一点是:让手机“读到数据”并不是随便往芯片里塞几个字节就行。 手机之所以知道这是一段文本、那是一个网址,是因为数据按 NDEF 和对应记录类型组织好了。协议的意义就在这里——双方并不需要提前约定“第几个字节表示什么”,只要都遵循标准,就能理解对方的数据。

现实里的 NFC 支付、公交卡、门禁卡、设备碰一碰配对,本质上都在利用这种近距离、非接触的数据交互。尤其在支付场景中,用户看到的是“手机靠一下 POS 机”,而底层还涉及卡模拟、安全元件或主机卡模拟、支付平台、发卡方和清算系统。便利只是表面,后面依然是一整套系统协作。

八、EPC 和无人超市让我看到:识别的终点不是“读到编号”,而是追踪对象的一生

如果只看单次识别,条码或 RFID 读出一个编号以后,任务似乎就完成了。但 EPC 追溯系统把这个问题继续往后推了一层:我不只要知道它是谁,还要知道这个身份对应的完整信息在哪里。

EPC 给物品分配唯一的电子产品代码,RFID 标签保存这个代码,阅读器负责采集。中间件对大量原始读取数据进行过滤和处理,ONS 用类似 DNS 的思路把 EPC 身份解析到对应的信息服务地址,EPCIS 再提供物品更完整的流通和业务信息。

这样一来,一个标签就不必把产品所有信息都塞在本地。标签更像一个“入口”,真正的生产、库存、运输、销售等信息可以放在网络系统里,通过身份去找到。

我觉得这对理解无人超市非常有帮助。无人零售并不是单纯把收银员换成机器,而是把进店身份、商品识别、订单生成、支付和出门控制连成一个自动流程。商品可以通过条码、RFID 等方式识别,结算可以通过扫码、NFC、闪付等方式完成,后台还要同步库存和交易记录。

这种思路对供应链同样重要。商品一旦有稳定的唯一身份,就可以把生产批次、仓储位置、运输节点、销售去向串起来。对于普通消费者来说,最直观的价值是查物流、查来源、查真伪;对于企业来说,则是盘点、追溯、库存控制和异常定位。

九、扫码支付和刷脸支付让我明白:识别只是支付链路的入口

二维码支付平时用得太多,以至于我以前很容易把“扫码”和“支付”看成同一件事。学完这部分以后,我才把它们真正分开。

二维码只是支付信息的载体和识别入口。用户扫商家码时,手机负责读取二维码并进入对应支付流程;商家扫用户付款码时,扫码设备读取的是用户客户端动态展示的付款信息。真正的交易还要经过支付接入、账户、风控、交易处理和清结算等后台系统。

也就是说,“识别成功”不等于“支付成功”。 识别只是把一次交易需要的身份或订单信息正确带进支付系统,后面还有账户状态、交易校验、风险判断和资金结算。

刷脸支付也一样。摄像头采集人脸只是第一步,系统还需要完成身份匹配、账号关联和支付确认。如果刷脸失败,还可以回退到扫码流程。从系统设计角度看,这种备用路径很重要,因为现实环境永远不会像实验室一样每次都完美识别。

十、把八个实验放在一起,我看到了一条非常清楚的成长路线

做完全部实验后,我回头看它们,发现顺序设计其实很有逻辑:

实验

我真正学到的核心

对应的真实场景

RFID 读取

寻卡、防冲撞、选卡、UID/卡型识别

门禁、考勤、身份识别

RFID 写入

扇区、数据块、密钥认证、读写权限

IC 卡数据存储、设备配置

RFID 应用设计

数值块、充值、扣费、余额判断

校园卡、储值卡、交通卡

RFID 读写加密

数据加密/解密与状态管理

身份数据、业务数据保护

生物识别

指纹采集、特征生成、模板注册与搜索

手机解锁、考勤、门禁

二维码

信息编码成二维图形并再次识别

支付、票务、物流、信息分享

智能道闸

身份校验与执行机构形成闭环

停车场、园区车辆通行

NFC

NDEF 标准记录、近场非接触交互

手机碰一碰、门禁、公交、支付

最开始只是“读出一个卡号”,最后已经变成“让真实设备根据识别结果做动作”。这条变化让我感觉到,课程真正想训练的不是记住多少种卡、多少种码,而是把识别技术放进一个完整业务系统里思考。

十一、这门课对我最大的帮助,是改变了我分析现实系统的方法

现在再看到一个识别系统,我会下意识地问几个以前不会问的问题:对象的唯一身份是什么?身份被放在哪种载体上?设备怎样获取它?同时出现多个对象怎么办?数据怎样校验?有没有权限控制?识别以后交给谁处理?处理结果最终会触发什么动作?

这些问题基本可以把一个系统从头到尾拆开。

比如门禁,不能只看读卡器,还要看身份凭证、权限数据库、控制器和电锁;停车场不能只看摄像头,还要看车牌识别、订单、支付和道闸;快递不能只看面单,还要看统一编码、分拣设备、物流节点和后台信息系统;NFC 也不能只理解成“靠近就能传数据”,还要知道工作模式、数据格式和上层业务。

这对我以后做软件和物联网项目也有很直接的帮助。以前更容易从“我要做一个页面”或者“我要接一个模块”开始,现在会更愿意先确定数据从哪里来、身份怎样定义、设备和后台怎样交互、异常情况下怎样处理。很多系统问题,其实在画清楚这条数据链之后就已经解决了一半。

十二、生活里那些“无感”的便利,我现在能看懂一部分了

学完这门课以后,我最明显的感受不是突然多会用了几个设备,而是生活里很多原本不会注意的细节开始变得有意思。

在超市看到商品条码,我会想到条空反射率、码制和校验;刷校园卡时,会想到读写器先寻卡、选卡,再认证对应扇区;手机扫码时,会想到定位图形、数据码字和纠错;碰一下 NFC 标签,会想到 13.56 MHz 的近场通信和 NDEF;停车场摄像头扫过车头,会想到车辆检测、车牌定位、字符分割和 OCR;高速经过 ETC 车道,会想到车载单元和路侧单元在很短时间里完成身份交互;指纹解锁时,也会知道手机不是在简单比较两张图片,而是在做特征模板匹配。

技术真正成熟之后,往往会把复杂性藏起来。用户只需要“扫一下”“碰一下”“看一眼”“开过去”,背后几十个步骤最好都不要让人感觉到。

我现在反而觉得,这正是物联网识别技术最有价值的地方:它不是让人学习如何配合机器,而是在尽量让机器主动认识现实世界。

结语

如果让我用一句话总结《物联网识别技术》,我不会再说它是一门介绍 RFID、二维码、NFC 和车牌识别的课。

我更愿意把它理解成一门研究“现实对象如何获得数字身份,以及数字系统如何利用这个身份完成业务”的课程。

一张 RFID 卡、一枚二维码、一个指纹、一块电子车牌,看起来差别很大,但它们都在做同一件事:把现实世界里的对象准确地带进信息系统。再往后,网络把数据送到后台,程序完成判断,设备执行动作,最终才形成我们每天都在使用的门禁、物流、支付、停车、交通和零售系统。

从最初只会看“刷卡有没有成功”,到现在能顺着寻卡、认证、读写、编码、校验、网络、业务逻辑一路往下分析,我觉得这才是这门课真正留下来的东西。

写评论

读完想说的,写在这里。

等待第一条评论

加载评论中…