实验一. RFID自动读卡实验

实验目的

  • 了解RFID相关知识。
  • 掌握RFID模块自动识别IC卡工作原理。

实验环境

  • 软件:IAR SWSTM8 1.30。
  • 硬件:RFID射频模块,电子标签,ST-Link。

实验内容

  1. 熟悉实验箱的操作流程,认识RFID模块。
  2. 用 ST-LINK烧写、调试程序。
  3. 编程使用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位用于保存卡序列号,并发送数据帧。
//enableInterrupts();

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();
}

硬件连接

  1. 把RFID模块插到实验箱的主板上的串口
  2. 把ST-Link配合JTAG仿真器插到标有ST-Link标志的串口上
  3. 把仿真器一端的USB线插到PC机的USB端口,通过主板上的“加”“减”按键调整要实验的RFID模块(会有黄色LED灯提示),硬件连接完毕。

编译、烧录并测试

  1. 我们用IAR SWSTM8 1.30软件,打开…\RFID_读卡号实验\Project\MFRC531_ATM8.eww。
  2. 工程编译:点击“Project”->“Rebuild All”。
  3. 点击“Rebuild All”进行编译。
  4. 将卡片放在烧录板上,把程序烧到模块里,点击“ ”中间的Download and Debug进行烧录,完成后听到蜂鸣器响一声。
  5. 关闭上述已打开程序,打开串口测试软件,将传感器模块连接到串口转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号。
  • 具体的端口激活可参见网上教程。
  • 6
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路灯谣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值