基于STM32F103系列的RFID低频读卡器设计项目(保姆级教程)_stm32 rfid识别

该教程详细介绍了基于STM32F103的RFID低频读卡器设计,包括读卡器功能配置、地址修改和校验和计算。内容涵盖读卡器的数值帧指令分析、读卡器地址的修改步骤以及功能测试,旨在帮助用户理解和实现读卡器的通信与控制。
摘要由CSDN通过智能技术生成

1.读卡器介绍

(1)前言

首先畅科读卡器在出厂的时候内置了一些功能,比如我购买的是带有蜂鸣器的RS485协议的读卡器,我放卡上去会听到“滴”的一声,并且芯片上的LED灯会常亮,于此同时读卡器会发送一帧数据返回若干信息。卡片离开时LED灯会灭,并且会发送一帧数据显示已离开读卡器。我们可以配置相关功能比如检测到卡片时是否会“滴”的一声,检测到卡片时要不要主动返回数据给上位机,以及卡片离开时是否发送数据提示卡片已离开,还能设置波特率。顺便说一下通讯指令用到的都是十六进制位,数据类型用的是unsigned char。如果用多个读卡器的话,多个读卡器接到RS485转TTL芯片,STM32用一个串口跟这芯片相连,那么我们怎么区分哪个读卡器读到卡呢?这就要用到读卡器的地址了,我们还要修改读卡器的地址,比如出厂的读卡器模块地址都是0x00,我们要把多余的读卡器地址设置为0x01、0x02等等,反正不与0x00相同就行。

(2)数值帧指令分析

我们来看读卡器的功能配置指令(如图3),以上我说的相关功能都可以在这里配置。

图3 功能配置指令

由上图可知,一帧数据指令是由以上若干格式组成的。我们要更改相关功能只需要修改对应的值即可,以下贴出读卡器使用说明中各个位指令的作用(如图5)。

图4 各个位的作用

这里要注意的是校验和,上面可能说得不太清楚,根据我的理解是先把BCC校验(异或校验)算出来,然后把得出来的二进制位全部取反,取反后得到的就是校验和。写个例子,比如根据上面的功能配置指令,我写出来了一帧配置指令:

20 00 2C 04 00 00 96 00 校验和 03

配置指令的意思是开启主动输出卡号,主动输出卡片离开数据,9600的波特率,开启蜂鸣器提醒。我现在开始要算校验和,根据指示我得出来00 2C 04 00 00 96 00。

然后计算BBC校验码,如图5。

图5 BBC校验码计算

得出二进制位是1011 1110,按位取反获得0100 0001。

转换为十六进制为:41

所以我们的校验和是41,填入后完整的数据指令是:

20 00 2C 04 00 00 96 00 41 03

需要注意的是,数据指令的第二个位是读卡器的地址,你要改哪个读卡器的话就用地址定位你要改的读卡器。

2.准备步骤

(1)修改读卡器地址

如果你打算只使用一个读卡器完成测试的话,那就可以跳过这一步,否则的话请按照此步骤将读卡器的地址设置为不同的值。两个以上读卡器的话要修改读卡器地址,因为指令发送是发送给单个读卡器的,你需要读卡器的唯一地址才能确定这指令发给谁,否则后面发送指令时一样的地址会导致冲突。其中一个读卡器默认地址就为0x00就行了(如果你不想要0x00的话改成其他也行),其他的改成其他值(0xFF以内)。首先我们先把要改地址的读卡器接好线,电源线接3.3V,A、B线接到RS485转TTL芯片的A、B线,然后RS485转TTL芯片的串口线接到我们的USB转串口芯片上,j接好后插电脑。打开串口调试助手,按如图3所示配置:

图6 串口调试助手的相关配置

接下来我们查看修改模块地址指令(如图7)。

图7 修改模块地址指令

我们可以看到,我们要修改的有两个值,一个是原地址,一个是新地址,分别位于第2和第5个字节。由于读卡器出厂都是默认地址为0x00,原地址就填0x00。新地址的话填你想要的值,我填的是0x01,发送成功后会接受到反馈指令,如图8。

图8 修改读卡器地址

(2)测试读卡器功能

如果我们用默认功能配置的话,是开启主动输出卡号,主动输出卡片离开数据,9600的波特率,开启蜂鸣器提醒。所以我们先测试的时候是把卡片放到天线上去,可以听到蜂鸣器响一声,并且串口调试助手接受到数据(如图9)。卡片拿走后返回卡片离开数据(如图10)。(这里我使用的是地址为0x01的读卡器,所以数据帧第二个字节是01)

图9 检测到卡片时返回的数据

图10 卡片已离开

我们不仅要它读到卡号返回数据,还要随时能够确定读卡器天线上有没有卡片,接下来测试读卡指令,先看读卡指令的通讯格式(如图11)。

图11 寻卡指令格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值