实验一. RFID自动读卡实验
- 实验目的
- 实验环境
- 实验内容
- 实验步骤
-
- 实验结果
- 串口设置
实验目的
- 了解RFID相关知识。
- 掌握RFID模块自动识别IC卡工作原理。
实验环境
- 软件:IAR SWSTM8 1.30。
- 硬件:RFID射频模块,电子标签,ST-Link。
实验内容
- 熟悉实验箱的操作流程,认识RFID模块。
- 用 ST-LINK烧写、调试程序。
- 编程使用RFID模块,完成自动识别读取IC卡卡号功能。
实验步骤
实验代码
1) 初始化MFRC531
- 若MFRC531_Init()==MI_OK,则蜂鸣声响200ms,并亮灯。
if(MFRC531_Init() == MI_OK){BEEP_On();delay_ms(200);BEEP_Off();LED_On();}else{BEEP_On();delay_ms(200);BEEP_Off();delay_ms(200);BEEP_On();delay_ms(200);BEEP_Off();LED_Off();while(1);}
2) 寻卡
- 若未寻到卡,则tx_buf的5至12位皆为0;若寻到卡,则tx_buf的第5位置为0x01,7至10位用于保存卡序列号,并发送数据帧。
while(1)
{if(MI_OK != PcdRequest(req_code[0],atq)){tx_buf[5] = 0;tx_buf[6] = 0;tx_buf[7] = 0;tx_buf[8] = 0;tx_buf[9] = 0;tx_buf[10] = 0;tx_buf[11] = 0;tx_buf[12] = 0;delay_ms(400);}else{if(MI_OK == PcdAnticoll(g_cSNR)){tx_buf[5] = 0x01;tx_buf[6] = 0;tx_buf[7] = g_cSNR[0]; tx_buf[8] = g_cSNR[1];tx_buf[9] = g_cSNR[2];tx_buf[10] = g_cSNR[3];tx_buf[11] = 0;tx_buf[12] = 0;BEEP_On();delay_ms(200);BEEP_Off();delay_ms(200);}}PcdHalt();UART2_SendString(tx_buf, 14);LED_Toggle();
}
硬件连接
- 把RFID模块插到实验箱的主板上的串口
- 把ST-Link配合JTAG仿真器插到标有ST-Link标志的串口上
- 把仿真器一端的USB线插到PC机的USB端口,通过主板上的“加”“减”按键调整要实验的RFID模块(会有黄色LED灯提示),硬件连接完毕。
编译、烧录并测试
- 我们用IAR SWSTM8 1.30软件,打开…\RFID_读卡号实验\Project\MFRC531_ATM8.eww。
- 工程编译:点击“Project”->“Rebuild All”。
- 点击“Rebuild All”进行编译。
- 将卡片放在烧录板上,把程序烧到模块里,点击“ ”中间的Download and Debug进行烧录,完成后听到蜂鸣器响一声。
- 关闭上述已打开程序,打开串口测试软件,将传感器模块连接到串口转USB模块上,将USB2UART模块的USB线连接到PC机的USB端口,然后打开串口工具,配置好串口,波特率115200,8个数据位,一个停止位,无校验位,串口开始工作。
实验结果
- 无卡时串口返回:EE CC FE 01 01 00 00 00 00 00 00 00 00 FF
- 有卡时串口返回:EE CC FE 01 01 01 00 8D D2 0B 51 00 00 FF
- 对于返回内容,前五组(两位为一组,从零开始编号)是固定的,为EE CC FE 01 01;第五组表示是否寻到卡片,若未寻到,则为00,若寻到,则为01;第七到第十组为卡序列号,若未寻到卡,则卡序列号为00 00 00 00,若寻到卡,则输出卡序列号,这里是8D D2 0B 51;最后一组为FF,表示结束;其余组为00。
串口设置
- 将板上的串口用串口线与电脑主机相连,若电脑上没有串口,可以使用串口转usb接口与电脑相连,此时,如果电脑没有激活过这样的端口,则需要激活端口,并记录下该端口号,在串口软件的串口设置中,端口号选择对应的COM号。
- 具体的端口激活可参见网上教程。