实验一 RFID设备调试及软件开发_学

更新时间:2023-05-22 08:52:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 RFID读写器调试

学号: 姓名:

一、实验目的

1、学习各类RFID读卡器的使用。 2、掌握RFID读卡器程序设计的方法。 3、理解基于QT的RFID案例程序。

二、实验内容

调试CBT-IOT赛百特物联网实验箱HF高频读卡器,对ISO14443A卡进行识别、数据操作,并分析其通信协议。

调试FR105 HF高频读卡器,对ISO15693、ISO14443A卡进行识别,以及数据操作,并分析其通信协议。

调试FR1200 UHF超高频读卡器,对ISO18000-6C卡进行识别,以及数据操作,并分析其通信协议。

调试基于各种RFID读卡器的QT程序,包括电子钱包、公交卡充值、上班刷卡考勤系统、车流量统计、药品出入库、电子锁控制等应用,分析程序与读卡器之间的串口通信。

三、 实验预备知识

1、CBT-IOT实验箱HF高频读写器

CBT- IOT实验箱HF板载模块特点:

串口设置:波特率115200bps,数据位8,停止位1,无校验位 通信协议:

工作频率:13.56MHz

芯片:MF RC531(高集成非接触读写卡芯片) 支持ISO/IEC 14443A/B和MIFARE经典协议 支持mifare1 S50等多种卡类型

最大工作距离:100mm,最高波特率:424kb/s

支持lCrypto1加密算法并含有安全的非易失性内部密匙存储器 处理器 STM8S105高性能8位架构的微控制器,主频24MHz

通信方式:串口TTL,可直接插接无线通讯模块组网开发,多模块无线组网通讯 电源:DC 5V

说明:

SOF:固定为0xEE 0xCC,标志一帧的开始。 Sensor typle:传感器类型,RFID为0xFE。 Sensor id:固定为0x01,为RFID读卡器的编号。

Cmd id:命令ID,0x01为充值,0x02为扣款,0x03为查询。

ID0~3:4 字节卡号 DATA0~3:4 字节数据

END:固定为0xFF,标志一帧的结束。

CBT-IOT HF RFID模块充值扣费功能通信协议详细说明: 识别:

发送:不用发送指令,读卡器一直在不停的读卡 返回:EE CC FE 01 03 XX XX XX XX XX XX XX XX FF 充值:

发送:CC EE FE 01 01 XX XX XX XX FF

(ID省略)

返回:EE CC FE 01 01 XX XX XX XX XX XX XX XX FF 扣款:

发送:CC EE FE 01 02 XX XX XX XX FF (ID省略) 返回:EE CC FE 01 02 XX XX XX XX XX XX XX XX FF

2、FR105 HF高频读写器

FR105读卡器特点:

工作频率:13.56MHz

支持协议:ISO15693、ISO14443A协议 读卡距离:10cm 电源:DC 5V1A

通信接口:RS232串口

串口设置:波特率115200/57600bps,数据位8,停止位1,无校验位

3、FR1200 UHF超高频读写器

FR1200 超高频读写器特点:

工作频率:902~928MHz(可根据用户需要定制) 工作方式:以广谱跳频或定频发射方式 射频功率:10~30dBm

支持协议:ISO-18000-6C(EPC G2)标准 读卡距离:3-5米(和标签及天线有关) 平均功耗:小于10瓦 电源:DC 5V2A 通信接口:RS232

串口设置:波特率57600bps,数据位8,停止位1,无校验位

通信协议:

发送指令:SOF LEN CMD [DATA] END

接收数据:SOF LEN CMD STATUS [DATA] END 解释:

SOF:固定为0xAA,数据帧的起始标志。

LEN:数据帧的长度,不包括数据帧的起始标志0xAA。

CMD:命令ID及参数,简单命令无参数。连接设备0x00,读取功率0x01,设置功

率0x02,读取频率0x05,设置频率0x06,单标签识别0x10,防碰撞识别0x11,停止识别0x12。

STATUS:命令执行结果,执行成功通常为0x00,或0x01;

DATA:命令参数,或返回的数据,例如标签号、读取的数据。部分指令无DATA部

分。

END:固定为0x55。

4、ISO18000-6C电子标签

协议规定,标签存储器分为四个存储体,每个存储体可以由一个或一个以上的存储器组成。

a) 保留内存 保留内存应包含杀死口令和访问口令。杀死口令应存储在00h至1Fn的存储地址内。访问口令应存储在20h至3Fn的存储地址内。

b) EPC存储器 EPC存储器应包含在00h至1Fn存储位置的CRC-16、在10h至1Fh存储地址的协议-控制(PC)位和在20h开始的EPC。PC被划分成10h至14Fh存储位置的EPC长度、15h至17Fh存储位置的RFU位和在18h至1Fh存储位置的编号系统识别(NSI),CRC-16、PC、EPC应优先存储MSB (EPC的MSB应存储在20h的存储位置)。

c) TID存储器 TID存储器应包含00h至07n存储位置的8位ISO15963分配类识别(对于EPCglobal为111000102)、08h至13n存储位置的12位任务掩模设计识别(EPCglobal成员免费)和14h至1Fn存储位置的12位标签型号。标签可以在1Fn以上的TID存储器中包含标签指定数据和提供商指定数据(例如,标签序号)。

d) 用户存储器 用户存储器允许存储用户指定数据。该存储器组织为用户定义。

杀死口令

保留内存的00h至1Fh存储电子标签的杀死口令,杀死口令为1 word,即2 bytes。电子标签出厂时的默认杀死指令为0000h。用户可以对杀死指令进行修改。用户可以对杀死口令进行锁存,一经锁存后,用户必须提供正确的访问口令,才能对杀死口令进行读写。 访问口令

保留内存的20h至3Fh存储电子标签的访问口令,访问口令为1 word,即2 bytes。电子标签出厂时的默认访问指令为0000h。用户可以对访问指令进行修改。用户可以对访问口令进行锁存,一经锁存后,用户必须提供正确的访问口令,才能对访问口令进行读写。 EPC

EPC为识别标签对象的电子产品码。EPC存储在以20h存储地址开始的EPC存储器内,MSB优先。询问机可以发出选择命令,包括全部或部分规范的EPC。询问机可以发出ACK命令,使标签反向散射其PC、EPC和CRC-16(在特定情况下该标签可以截断应答-参见6.3.2.10.1.1)。最后,询问机可以发出Read命令,读取整个或部分EPC。PC+EPC也称为UII。

注意:实验过程中,请勿随意修改访问口令、杀死口令。

5、CBT-IOT 继电器模块

继电器模块特点:

型号:CBT-RelaySwitch 处理器:STM8S 开关通道:1路 动作时间:≤8ms 释放时间:≤5ms

通信接口:UART(TTL电平),可插在CBT串口调试板上使用 触电形式:1A

触电负载:10A 125VAC;5A 250VAC;5A 30VDC 阻抗:≤100mΩ 电器寿命:≥10万回

供电:DC 5V,由调试板供电

串口设置:波特率115200,数据位8,停止位1,无校验位。 通信协议:

传感器发送串口数据包:

说明:

SOF:固定为0xEE 0xCC,标志一帧的开始。 Sensor typle:传感器类型,继电器为0x0F。 Sensor id:固定为0x01。 Cmd id:固定为0x01。

Data::为6Byte 传感器数据域,打开00 00 00 00 00 01,关闭00 00 00 00 00

00。 Exten Data:固定为0x0000,为

2Byte 扩展数据域。 END:固定为0xFF,标志一帧的结束。

6、RFID读写器调试过程

调试思路及过程:

1、 运行PC端RFID软件,通过菜单、按钮等操作,测试RFID读卡器。主要操作为参

数设定、单卡识别、多卡识别、数据块写入、数据块读取。 2、串口工具接收到PC端软件通过上位机向读卡器发出的各种指令。

3、串口工具模拟PC端RFID软件,发出各种操作指令,并接收读卡器回复数据,进行分析。

PC端软件 串口调试工具

7、QT串口编程

在Qt中并没有特定的串口控制类,大部分人使用的是第三方写的qextserialport类。 windows下只需要使用其中的6个文件:

qextserialbase.cpp和qextserialbase.h qextserialport.cpp和qextserialport.h win_qextserialport.cpp和win_qextserialport.h

如果在Linux下只需将win_qextserialport.cpp和win_qextserialport.h 换为 posix_qextserialport.cpp和posix_qextserialport.h即可。

使用方法:

(1)将上面所说的6个文件复制到工程文件夹下。

(2)在Qt Creator中左侧的文件列表上,鼠标右击工程文件夹,在弹出的菜单中选择Add Existing Files,添加这6个文件。

(3)在需要使用串口类的窗口类的头文件中: 添加头文件#include "win_qextserialport.h" 添加对象声明Win_QextSerialPort *myCom 添加槽函数声明 void readMyCom()

(4)窗口类.cpp的类的构造函数,或“打开串口”按钮中添加初始化串口语句。 myCom = new QextSerialPort(portName,QextSerialBase::EventDriven); myCom ->open(QIODevice::ReadWrite);

//设置波特率、等

connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));

(5)在.cpp添加readMyCom()函数代码,实现串口数据的接收和处理。 QByteArray temp = myCom->readAll();

//数据分析及处理

四、实验设备及工具

硬件: CBT-IOT赛百特物联网实验箱(HF RFID模块、继电器模块)、FR105读卡器、FR1200读卡器,配套RFID卡片ISO14443A、ISO15693、ISO18000-6C若干。 软件:QT5.0环境的Windows系统。

五、实验步骤

1、软件安装(1分)

1、安装实验箱USB转串口线驱动

程序:(1)Z-tek-ZE533-CDM20830_Setup;(2)HL-340

安装方法:(1)直接运行安装包内的可执行程序。(2)手动指定驱动程序位置,

进行驱动安装和更新。

安装成功后,将USB转串口线的USB接口一端插入笔记本电脑,查看“设备管理器”--“端口”,记录其串口号。

注意:(1)更换笔记本电脑的插入USB接口,其串口号可能会变化。建议实验过

程中,一直插入一个固定不变的USB接口。

(2)如果串口号大于COM8,则需要手动修改,右键点击该设备,选择“属

性”—“端口设置”—“高级”—“COM端口号”,在下拉列表中选择小的。

图:USB转串口设备号

图:手动更改串口号

记录实验串口设备号(USB转串口线):

2、安装实验箱串口调试板驱动:驱动CBT USB2UART模块驱动

安装方法:将CBT USB串口调试板的USB接口一端插入笔记本电脑,查看“设备管

理器”,发现该设备,自动弹出驱动安装界面。或者手动右键点击该设备(通常前面有个黄色感叹号),选择“更新驱动”。之后选择手动选择驱动安装路径,浏览目录,找到解压后的驱动安装包路径,按照提示进行后续操作。

安装成功后,查看“设备管理器”--“端口”,记录其串口号。

记录实验串口设备号(CBT串口调试板):3、安装串口调试助手:串口调试工具AccessPort.rar,绿色免安装,解压后可直接用。 4、下载、解压“PC端程序”包,里面包含了各种RFID读卡器的PC端演示程序,绿色免安装。

2、CBT-IOT HF模块调试(2分)

1、物理连接和设置

HF RFID模块拨码开关设为“_ _ _ |”,其他模块设为“_ _ _ _”。即,只有HF RFID模块使用Debug UART进行输出调试。并打开模块下方的电源开关,以及实验箱左上角的电源开关。

通信线路:笔记本USB接口——USB转串口线——RS232串口线——实验箱Debug UART接口——HF RFID模块。 2、使用串口调试工具AccessPort调试

运行AccessPort,设置好串口号及相关参数,收发数据皆为Hex格式,打开串口。

C

将RFID卡放置在其读写器感应区域内,读卡器读卡,并发出“滴”的声音,代表

正确识别了该RFID卡片。然后按照协议分析该数据,得到卡号和余额。

按照通信协议,发送指令,充入一定的金额。例如,充入100元(0x64)。

按照通信协议,发送指令,扣除一定的金额。例如,充入2元。

识别卡片:

接收数据: 分析卡号:

字节

分析金额:

充值操作:

冲入金额:

发送指令: EE CC FE 01 01 00 00 00 64 FF

接收数据: 分析金额:

扣款操作:

扣掉金额:

发送指令: EE CC FE 01 02 00 00 00 64 FF

接收数据: 分析金额:实验操作抓图(最后操作的一个结果图):

3、调试基于QT + CBT-IOT HF RFID模块的“公交卡充值系统” 程序:RFID_Board_Bus_Win

注意:QT程序放置的路径不能有中文。

将源代码拷贝到合适目录中,编译程序,并运行。根据实际情况选择正确的串口号

以及通信参数,打开通信串口。

放上ISO14443A卡片。

测试程序的“识别”、“充值”、“扣款”功能。

操作后,使得卡内金额的尾数为班级+学号的3位数,例如1班10号,即金额后三

位为110。然后进行抓图。

实验结果抓图:

测试“数据手动打包发送信息”功能,实现充值20元。点击“发送数据”,观察

充值后金额是否正确。

实验结果抓图:

4、调试基于QT + CBT-IOT HF RFID模块的“电子钱包” 程序:RFID_Board_money_win

将源代码拷贝到合适目录中,根据实际情况修改串口号(USB转串口线虚拟的串口,

可查看“设备管理器”--“端口”),保存代码,编译程序,并运行。

测试程序的“识别”、“充值”、“扣款”功能。

操作后,使得卡内金额的尾数为班级+学号的3位数,例如1班10号,即金额后三

位为110。然后进行抓图。

实验结果抓图:

3、FR105 HF读写器调试(2分)

1、物理连接和设置

通信线路:笔记本USB接口——USB转串口线——RS232串口线(公母口)——FR105 RFID读写器

供电:为RF105读写器连接电源适配器(DC 5V1A)。

2、使用PC端工具进行调试

2.1读写ISO15693卡:打开串口进行相应设置和操作,并将重要结果抓图。 操作步骤:

(1)打开通信串口

(2)单卡单次识别(Single+FSK+Inventory) 读写器调制方式:频移键控FSK 、幅移键控ASK 读写器寻卡方式:寻单卡Single、寻多卡Multiple

(3)测试“单卡单次识别”时,放置多张卡,是否能够成功?并解释原因。

答: 不能成功,因为只是识别一张卡

(4)单卡连续识别(Single+FSK+AutoRun

(5)多卡单次识别(Multiple +FSK+Inventory,放置2张以上卡)

(6)多卡连续识别(Multiple+FSK+AutoRun,放置2张以上卡)

(7)读数据:Read Single Block(从0位开始的4个数据块)

本文来源:https://www.bwwdw.com/article/duj4.html

Top