天天看点

STM32F401CCU6与MFRC522接线及读取示例

硬件准备

stm32f401ccu6最小开发板

rfid-rc522开发板

usb2ttl转接, 可以用pl2303, ch340, CP2102, FT232

Mifare 1K卡, UID长度4字节的版本

软件准备

Keil uVision5

putty, xshell等可以连接com口的终端

MFRC522 13.56MHZ射频卡读卡器

STM32F401CCU6与MFRC522接线及读取示例

SPI是Serial Peripheral Interface的缩写, 是一种同步的短距离串口通信接口规范, 由摩托罗拉与80年代开发, 主要用于嵌入式系统, 特别是SD卡和LCD显示. SPI设备由一主(master)多从(slave)组成, 通过SS(slave select)或者CS(chip select)选择通信. 通信需要的接口一般为4个:

SCLK: Serial Clock (output from master)

MOSI: Master Out Slave In (data output from master)

MISO: Master In Slave Out (data output from slave)

SS: Slave Select (often active low, output from master)

stm32f401ccu6与rfid-rc522和usb2ttl的接线

MFRC522 <====> STM32F401, 在rc522.c中设置, PA5, PA6和PA7是datasheet中定义的SPI1

PL2303/CH340 <====> STM32F401, 在main.c的UARTmain_Init()方法中设置, PB6和PB7是datasheet中定义的USART1

M1卡(Mifare 1K Card)

容量为8K位EEPROM, 8192 bits(1K bytes)

分为16 个扇区,每个扇区为4 块,每块16 个字节,以块为存取单位

每个扇区有独立的一组密码及访问控制

每张卡有唯一序列号,为32 位

具有防冲突机制,支持多卡操作

无电源,自带天线,内含加密控制逻辑和通讯逻辑电路

数据保存期10年,可改写10万次,读无限次

工作温度:-20℃ ~ 50℃(温度为90%), PET 材料封装的M1卡温度可达100℃。

工作频 :13.56MHZ

通信速 :106Kbps

读写距离:10cm以内(与读写器有关)

M1卡分为16个扇区, 每个扇区分为4块(块0、块1、块2、块3), 也可以将16个扇区的64个块按绝对地址编号为 0 - 63

第0扇区的块0用于存放厂商代码, 已经固化, 不可更改

UID分为4byte, 7byte等版本

每个扇区的块0、块1、块2为数据块, 可用于存贮数据. 数据块可作两种应用

用作一般的数据保存,可以进行读、写操作

用作数据值,可以进行初始化值、加值、减值、读值操作

每个扇区的块3为控制块,包括了密码A(6 byte)、存取控制(4 byte)、密码B(6 byte)

每个扇区的密码和存取控制都是独立的, 可以根据实际需要设定各自的密码及存取控制.

存取控制为4个字节共32 位

扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的

在存取控制中每个块都有相应的三个控制位

三个控制位以正和反两种形式存在于存取控制字节中, 决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)

实物图及检测输出

接线图

STM32F401CCU6与MFRC522接线及读取示例
STM32F401CCU6与MFRC522接线及读取示例

输出格式

STM32F401CCU6与MFRC522接线及读取示例

代码说明

在Keil MDK5中可以直接打开项目运行, 需要有STM32F401CCUx的依赖库

项目中使用USART1作为printf的输出

为了在stm32f401中可以使用, 将USART1设置为PB6和PB7, 如果要调整, 需要修改main.c的UARTmain_Init()方法

SPI脚如果要调整, 需要修改rc522.c, PA5, PA6和PA7是datasheet中定义的SPI1

仅支持UID长度为4byte的M1卡

运行中会循环读取靠近的射频卡, 当读取成功时

读取前4个字节, 作异或(^)校验, 将结果与第5个字节比较, 不相同则返回错误

与预设的MyID作比较, 判断是否相同并展示

循环依次将64个区块读出并展示

下载

https://pan.baidu.com/s/1618xzotP3IG9aNII39CJ0g 提取码: 4c8c

参考

rc522 https://thongrobot.wordpress.com/2017/07/22/stm32f407-rfid-project-full-code/

f4串口 https://stm32f4-discovery.net/2014/04/library-04-connect-stm32f429-discovery-to-computer-with-usart/

f4串口 javascript:void(0)

继续阅读