资讯动态

RFID 写入功能详解:从原理到代码实现

发布时间:2026/9/6 7:58:08 来源:尧图企业网站定制
目录一、RFID 写入功能是什么二、使用步骤三、实验遇到的问题与踩坑记录四、实验分析与思考五、总结一、RFID 写入功能是什么RFID射频识别是一种通过无线电波自动识别目标对象并获取相关数据的技术。RFID 写入功能是指将数据通过读写器编码后写入到 RFID 电子标签的存储区中使标签携带特定的标识信息供后续读取与识别使用。RFID 标签通常包含芯片与天线芯片内部有多个存储区如 EPC 区、TID 区、用户区等写入功能主要针对 EPC 区和用户区进行操作。EPC 区用于存放物品的唯一编码用户区则可用于存储自定义的业务数据如生产批次、有效期、资产编号等。相比传统条码、二维码等识别技术RFID 具有以下显著优势优势说明非接触识别无需对准扫描标签在读写器有效范围内即可自动识别支持批量快速读取读写能力强不仅可读取还可写入、修改标签数据支持动态更新物品信息穿透性好可穿透纸张、塑料、木材等非金属材质进行识别不受视线遮挡限制抗污染耐用标签封装后防水、防尘、耐磨损适用于恶劣工业环境数据容量大相比条码可存储更多信息且支持分区管理EPC 区、用户区等安全性高支持密码保护与锁定机制防止数据被非法篡改或复制使用寿命长无源标签无需电池可反复读写数十万次长期使用成本低这些优势使 RFID 在仓储物流、资产管理、生产制造、门禁考勤等领域得到广泛应用尤其适合需要频繁更新物品状态或批量快速识别的场景。下面列举几个典型的 RFID 应用场景帮助理解其实际价值应用领域具体场景使用的 RFID 类型解决的问题仓储物流托盘、周转箱出入库自动盘点超高频UHF无源标签批量快速读取无需逐个扫码提升盘点效率资产管理设备巡检、固定资产盘点超高频UHF无源标签快速定位设备位置减少人工登记遗漏生产制造工单绑定、工序追踪、防错防漏高频HF/ 超高频UHF实时记录产品流转信息实现质量追溯门禁考勤员工刷卡进出、会议签到低频LF/ 高频HF非接触快速通行记录出入时间交通收费高速公路不停车收费ETC微波MW有源标签车辆高速通过时自动扣费避免拥堵动物管理宠物身份识别、牲畜溯源低频LF植入式标签唯一标识便于防疫与溯源图书管理图书馆自助借还、馆藏盘点高频HF多本图书同时识别简化借还流程零售服装门店防盗、库存实时更新超高频UHF试穿、结账时自动识别减少缺货与失窃医疗健康手术器械追踪、患者腕带识别高频HF防止器械遗漏确保患者身份核对无误冷链物流疫苗、生鲜运输温度监控半有源标签Semi-active记录运输全程温度保障品质安全从上述例子可以看出RFID 的应用几乎覆盖了从生产、流通到消费的各个环节。选择具体方案时需要结合读写距离、环境干扰、标签成本与数据容量等因素综合评估。根据工作频率的不同RFID 系统可分为以下几类类别工作频率典型读写距离常见应用场景低频LF125 kHz ~ 134 kHz约 10 cm 以内动物耳标、门禁卡、车辆防盗高频HF13.56 MHz约 10 cm ~ 1 m公交卡、身份证、图书管理超高频UHF860 MHz ~ 960 MHz约 1 m ~ 10 m仓储物流、资产管理、生产制造微波MW2.45 GHz / 5.8 GHz约 1 m ~ 15 m高速公路不停车收费ETC、车辆识别不同频率的标签在写入时通信协议与指令格式差异较大实际选型需结合读写距离、抗干扰能力与成本综合考量。此外根据供电方式的不同RFID 标签也可分为以下几类类别供电方式典型读写距离常见应用场景无源标签Passive由读写器发射的射频能量供电约 1 m ~ 10 m仓储物流、门禁卡、图书管理有源标签Active内置电池供电约 10 m ~ 100 m车辆追踪、集装箱管理、人员定位半有源标签Semi-active电池供电但通信时依赖读写器唤醒约 1 m ~ 30 m冷链物流、贵重资产监控、收费站无源标签成本低、寿命长但读写距离较短有源标签读写距离远、可主动发送信号但成本较高且需定期更换电池。实际选型时需结合供电条件、读写距离与维护成本综合权衡。二、使用步骤1. 引入库代码如下示例importserialimporttimefrompymodbus.clientimportModbusSerialClient2. 初始化读写器代码如下示例# 初始化串口连接serserial.Serial(portCOM3,baudrate115200,timeout1)# 构造写入命令帧示例EPC 区写入defbuild_write_command(epc_data):# 根据读写器协议构造命令帧此处为示意# 常见格式帧头 命令字 数据长度 数据 校验headbytes([0xAA,0xBB])cmdbytes([0x01])# 0x01 表示写入命令lengthbytes([len(epc_data)])checksumbytes([sum(epc_data)0xFF])returnheadcmdlengthepc_datachecksum# 发送写入指令defwrite_rfid(epc_data):commandbuild_write_command(epc_data)ser.write(command)responseser.read(32)returnresponse# 写入 EPC 区defwrite_epc(epc_hex):epc_databytes.fromhex(epc_hex)responsewrite_rfid(epc_data)ifresponseandresponse[0]0xAA:print(EPC 写入成功)returnTrueelse:print(EPC 写入失败)returnFalse# 写入用户区自定义业务数据defwrite_user_area(data_str):user_datadata_str.encode(utf-8)responsewrite_rfid(user_data)ifresponseandresponse[0]0xAA:print(用户区写入成功)returnTrueelse:print(用户区写入失败)returnFalse# 读取验证写入结果defread_rfid():# 发送读取命令read_cmdbytes([0xAA,0xBB,0x02,0x00,0x00])ser.write(read_cmd)responseser.read(64)returnresponse# 关闭连接defclose_connection():ser.close()print(串口已关闭)# 使用示例if__name____main__:# 写入 EPC 区write_epc(3039383132333435)# 写入用户区write_user_area(Batch:20250101,SN:ABC123)# 读取验证dataread_rfid()print(读取结果:,data.hex())# 关闭连接close_connection()该处使用的是串口通信方式连接 RFID 读写器。实际项目中读写器通常通过串口、USB 或网络TCP/IP与上位机通信具体取决于设备型号与现场部署环境。3. 发送写入指令代码如下示例# 发送写入指令defwrite_rfid(epc_data):commandbuild_write_command(epc_data)ser.write(command)responseser.read(32)returnresponse4. 写入 EPC 区defwrite_epc(epc_hex):epc_databytes.fromhex(epc_hex)responsewrite_rfid(epc_data)ifresponseandresponse[0]0xAA:print(EPC 写入成功)returnTrueelse:print(EPC 写入失败)returnFalse5. 写入用户区代码如下示例# 写入用户区自定义业务数据defwrite_user_area(data_str):user_datadata_str.encode(utf-8)responsewrite_rfid(user_data)ifresponseandresponse[0]0xAA:print(用户区写入成功)returnTrueelse:print(用户区写入失败)returnFalse6. 读取验证代码如下示例# 读取验证写入结果defread_rfid():# 发送读取命令read_cmdbytes([0xAA,0xBB,0x02,0x00,0x00])ser.write(read_cmd)responseser.read(64)returnresponse7. 关闭连接代码如下示例# 关闭连接defclose_connection():ser.close()print(串口已关闭)8. 完整运行示例代码如下示例if__name____main__:# 写入 EPC 区write_epc(3039383132333435)# 写入用户区write_user_area(Batch:20250101,SN:ABC123)# 读取验证dataread_rfid()print(读取结果:,data.hex())# 关闭连接close_connection()三、实验遇到的问题与踩坑记录问题现象可能原因排查与解决方法写入时提示“标签未找到”标签未进入读写器有效场区或天线方向不对将标签贴近天线中心调整标签角度确认读写器功率足够写入成功但读取为空写入校验未通过或标签已锁定Lock检查返回状态码确认标签未锁定重新写入并立即读取验证串口打开失败串口号错误或端口被其他程序占用在设备管理器中核对串口号关闭占用端口的程序后重试写入数据乱码波特率不一致或数据编码方式不匹配核对读写器与代码中的波特率如 115200确认数据为十六进制或 UTF-8 编码部分标签写入失败标签存储区容量不足或协议不兼容确认目标存储区容量核对标签支持的协议ISO 14443 / ISO 15693 / EPC Gen2读写距离明显缩短天线接触不良或周围金属干扰检查天线连接远离金属物体适当提高发射功率四、实验分析与思考通过本次实验可以得出以下几点认识协议匹配是写入成功的前提。不同频率、不同厂商的标签遵循不同的通信协议写入前必须确认读写器与标签协议一致否则即使指令格式正确也无法写入。校验机制保障数据可靠性。写入命令帧中的校验和用于检测传输错误实际项目中还应结合读写器返回的状态码做二次确认避免“假成功”。存储区规划影响业务设计。EPC 区适合存放固定标识用户区适合存放可变业务数据。设计时应根据数据更新频率合理分区避免频繁擦写导致存储区寿命下降。环境因素不可忽视。金属、液体、电磁干扰都会影响读写距离与成功率现场部署时需通过调整天线位置、功率与标签选型来优化。调试工具是排障利器。遇到疑难问题时使用读写器厂商提供的调试工具查看原始返回帧往往能比单纯看打印信息更快定位问题。五、总结以上就是今天要讲的内容本文从实验原理、硬件软件环境、实验步骤、常见问题与踩坑记录、实验分析思考等方面系统介绍了 RFID 写入功能的实现过程。实际项目中RFID 写入广泛应用于仓储物流托盘/周转箱标识、资产管理设备巡检、生产制造工单绑定、门禁考勤人员身份卡等场景。在实验过程中常见问题包括标签未进入写入区导致写入失败、读写器与标签协议不匹配如 ISO 14443 与 ISO 15693、EPC 区写入后无法读取可能是写入校验未通过或标签已锁定、串口波特率设置不一致导致通信异常等。遇到这些问题时建议先检查标签是否在读写器有效读写范围内再核对通信参数与协议类型必要时使用读写器自带的调试工具查看返回状态码。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价