实验一. RFID自动读卡实验

news/2024/11/17 23:32:38/

实验一. RFID自动读卡实验

  • 实验目的
  • 实验环境
  • 实验内容
  • 实验步骤
    • 实验代码
      • 1) 初始化MFRC531
      • 2) 寻卡
    • 硬件连接
    • 编译、烧录并测试
  • 实验结果
  • 串口设置

实验目的

  • 了解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号。
  • 具体的端口激活可参见网上教程。

http://www.ppmy.cn/news/527418.html

相关文章

智能卡操作(非接触CPU卡又称智能卡) 总结

1-数据传输格式和初始化 对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭。尤其是在看到复位应答中的F和D设置以及对应的etu的时候,会觉得有些复杂和难以理解。 其实从本质上…

java智能卡接口_java – 尝试使用智能卡I / O API读取和写入智能卡的字符串

我正在使用ACS AET65读卡器尝试将字符串存储到智能卡中,然后将其读回.我正在使用智能卡IO API,我可以获得终端并与卡连接.但是,我一直在阅读ISO 7816规范,我真的迷路了. 我需要做的就是给卡写一个3K字符串,然后再读回来.而已.根据我的研究,看起来这些卡应该安装了applet,但我确…

Arduino与RC522读卡测试代码

RC522与Arduino读卡代码 做了Arduino作品集4年多了,让我印象比较深刻的是每当有人用RC522的时候都会遇到同样一个问题,就是为什么我的卡读取不了卡号,我明明是用网上的教程啊?在这里我声明一点,网上的教程不一定是正确…

分享一组开关按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>豆子开关</title><style>* {margin: 0;padding: 0;box-sizing: border-box;-webkit-tap-hi…

Endnote中字体大小怎么改变?

Endnote中看文献字体太小&#xff0c;可以通过以下步骤来放大 1.找到上方工具栏“Edit”下的“Preference” 2.如下图&#xff0c;在“Display Fonts”中点击右侧的“Change Font”就可以改字体啦&#xff01; PS&#xff1a;“Library”只是改变参考文献字体大小&#xff1b;“…

网页转pdf乱码问题,楷体部分出乱码

网页转PDF&#xff0c;一直正常使用&#xff0c;今天突然乱码。。。 以为是网页编码问题。。。最后看了一下处理的后的网页&#xff0c;发现没问题。。。 最后发现是wkhtmltopdf的问题&#xff0c;无法解码楷体网页 删除楷体style后&#xff0c;转化正常 记录一下

psychopy设置中文显示字体 楷体、宋体、微软雅黑

2019独角兽企业重金招聘Python工程师标准>>> 3个要点&#xff1a; 1、使用pygame引擎绘制文本 2、使用字体文件名作为标识&#xff0c;而不是字体名。如msya&#xff1a;微软雅黑&#xff0c;simkai&#xff1a;楷体&#xff0c;simsun&#xff1a;宋体。 3、把字体…

如何在线查看.woff, .ttf 文件里有什么图标

文章目录 如何解决使用步骤 如何解决 使用 百度字体编辑器 就可以在线查看.woff, .ttf 文件里有什么图标&#xff0c;支持对图标进行下载和编辑。这个网站目前是免费使用滴&#xff01; 使用步骤 第一步&#xff0c;打开任意一个.ttf 、.woff 文件&#xff0c;就可以看到文件…