在本教程中,我们设计了一个使用MSP430 和 RFID 阅读器读取 RFID卡的系统。RFID 代表 射频识别。每张卡都有一个唯一的ID,这使其成为许多身份验证应用程序的完美选择,例如在办公室,购物中心和许多其他地方,只允许持有授权卡的人进入。RFID在购物中心用于阻止盗窃的发生,产品将被标记为RFID芯片,如果有人带着RFID芯片离开建筑物,则会自动发出警报,从而停止盗窃。RFID标签设计得像沙粒一样小。RFID认证系统易于设计且成本低廉。如今,一些学校和学院使用RFID作为出勤登记。
所需材料
1. MSP430 启动板
2. EM-18 (无线射频识别读写器模块)
3. 16*2液晶显示器
4. 电位器
5. 面包板
6. 跳线
软件:Energia IDE
EM-18 无线射频识别读写器
每张RFID卡中都嵌入了一个唯一的ID,RFID阅读器用于读取RFID卡号。EM-18 RFID阅读器的工作频率为125 KHz,并配有片上天线,可采用5V电源供电。它提供串行输出以及 weigand 输出。范围约为8-12厘米。串行通信参数为9600bps,8个数据位,1个停止位。
EM-18 RFID阅读器提供的输出为12位ASCII格式。在 12 位数字中,前 10 位数字是卡号,后两位数字是卡号的异或结果。最后两位数字用于错误检查。
例如,从读卡器读取的卡号是0200107D0D62,那么卡上的卡号将如下所示。
02 – 序言
00107D0D = 十进制1080589。
62 是 (02 XOR 00 XOR 10 XOR 7D XOR 0D) 的 XOR 值。
因此,卡上的数字是0001080589。
MSP430 RFID阅读器电路图和工作原理图
我们将使用 MSP430 的硬件 UART,因此,请确保板上的 RXD 和 TXD 跳线处于硬件 UART 模式。然后将EM-18的发射连接到MSP430的RXD(P1.1)。
在进一步讨论之前,我们需要了解串行通信。这里的RFID模块以串行方式将数据发送到控制器。它具有其他通信模式,但为了便于通信,我们选择RS232。模块的RS232引脚连接到MSP430的RXD引脚。
RFID 模块发送的数据如下:
现在,为了在RFID阅读器和MSP430之间建立连接,我们需要在MSP430中启用串行通信。MSP430 中的串行通信可以通过使用单个命令来完成。
Serial.begin(9600);
data = Serial.read();
如上图所示,RFID的通信是通过每秒9600比特的波特率完成的。因此,为了使MSP430建立这样的波特率并开始串行通信,我们使用命令“Serial.begin(9600);”。这里 9600 是波特率,是可变的。
现在,一旦设置波特率,MSP就可以接收串行数据了。此数据由命令“data = Serial.read();”获取。通过此命令,串行数据以名为整数的“数据”形式获取。
一旦将卡靠近读卡器,读卡器读取串行数据并将其发送到MSP,MSP将被编程为在LCD中显示该值,因此我们将在LCD上具有卡的ID。
代码和说明
我们将在Energia IDE中编写代码。它与Arduino IDE相同,易于使用。在这个项目的末尾给出了完整的代码,在这里我们解释了它的几个部分。
首先,包括用于LCD显示的库,并声明字符数组以存储RFID号码。
#include
LiquidCrystal lcd(P2_0, P2_1, P2_2, P2_3, P2_4, P2_5);
char input[12];
在设置功能中,通过定义波特率9600来启用LCD和串行通信。
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
...
..
在循环功能中,我们将检查串行数据是否可用。如果可用,将数据存储在 Serial.read() 的输入[计数] 数组中,并使用 while 循环将其逐个显示在 LCD 上。
while(Serial.available() && count < 12) // Read 12 characters and store them in input array
{
input[count] = Serial.read(); //storing 12 characters one by one
Serial.print(input[count]);
lcd.print(input[count]);
delay(300);
count++;
if (count==12)
{
lcd.print(" ");
count = 0; // once 12 characters are read get to start and wait for second ID
…
…
这就是我们使用MSP430启动板在LCD上读取和显示RFID号码的方式。
全部0条评论
快来发表一下你的评论吧 !