在本教程中,我们设计了一个使用MSP430和RFID Reader读取RFID卡的系统。RFID代表射频识别。每张卡都有唯一的ID,这使得它成为许多身份验证应用程序的理想选择,例如在办公室,大型购物中心以及许多只允许使用授权卡的人进入内部的其他地方。RFID用于购物商场,以防止盗窃的发生,该产品将被贴上RFID芯片的标签,如果有人用RFID芯片离开建筑物,则会自动发出警报,因此盗窃得以停止。RFID标签的设计尺寸与沙粒一样小。RFID认证系统易于设计并且成本低廉。如今,一些学校和学院使用RFID作为出勤记录。
所需材料
1. MSP430启动板
2. EM-18(RFID读取器模块)
3. 16 * 2液晶屏
4.电位器
5.面包板
6.跳线
软体: Energia IDE
EM-18 RFID读取器
每个RFID卡中都嵌入了一个唯一的ID,并且使用RFID阅读器读取RFID卡号。 EM-18 RFID阅读器的 工作频率为125 KHz,并带有片上天线,并可以使用5V电源供电。它提供串行输出以及weigand输出。范围是8-12厘米左右。串行通讯参数为9600bps,8个数据位,1个停止位。此无线射频识别已在许多系统中使用,例如
基于RFID的考勤系统
安全系统,
投票机
电子公路收费
在此处检查所有RFID项目。
EM-18 RFID阅读器提供的输出为12位ASCII格式。在12位数字中,前10位是卡号,后两位是卡号的XOR结果。后两位用于错误检查。
例如,从阅读器读取的卡号是0200107D0D62,则卡上的卡号将如下所示。
02 –前言
00107D0D = 1080589(十进制)
62是(02 XOR 00 XOR 10 XOR 7D XOR 0D)的XOR值。
因此,卡上的数字是0001080589。
MSP430 RFID读取器电路图和工作
我们将使用MSP430的硬件UART,因此,请确保板上的RXD和TXD跳线处于HW UART模式。然后将EM-18的Tx连接到MSP430的RXD(P1.1)。
在继续之前,我们需要了解串行通信。RFID模块在此以串行方式将数据发送到控制器。它具有其他通信模式,但是为了便于通信,我们选择RS232。模块的RS232引脚连接到MSP430的RXD引脚。
RFID模块发送的数据如下:
现在要在RFID阅读器和MSP430之间建立连接,我们需要在MSP430中启用串行通信。MSP430中的串行通信启用可以通过使用单个命令来完成。
Serial.begin(9600); 数据= Serial.read();
如上图所示,RFID的通信以每秒9600位的BAUD速率完成。因此,为了使MSP430建立这样的波特率并开始串行通信,我们使用命令 “ Serial.begin(9600);”。 9600是波特率,可以更改。
现在,一旦设置了波特率,MSP就可以接收串行数据了。该数据由命令 “ data = Serial.read();”获取。 通过此命令,串行数据被取入名为整数的“ 数据 ”中。
一旦卡片靠近读取器,读取器就会读取串行数据并将其发送给MSP,MSP将被编程为在LCD上显示该值,因此我们将在LCD上显示卡的ID。
代码和解释
我们将在Energia IDE中编写代码。它与Arduino IDE相同,易于使用。在该项目的最后给出了完整的代码,在这里我们解释其中的一些部分。
首先,包括用于LCD显示的库,并声明 char 数组以存储RFID编号。
#包括
在 设置 功能中,通过定义9600的波特率来启用LCD和串行通信。
void setup() { lcd.begin(16,2); Serial.begin(9600); ... ..
在 循环 功能中,我们将检查串行数据是否可用。如果可用,将数据存储在 Serial.read()的 输入 数组中,并使用 while 循环将其一一显示在LCD上。
while(Serial.available()&& count <12)//读取12个字符并将它们存储在输入数组中 { input = Serial.read(); //存储12个字符一个一的 Serial.print(input); lcd.print(输入); 延迟(300); 数++; 如果(count == 12) { lcd .print(“”); 计数= 0; //一次12个字符被读取GET开始,等待第二ID ... ...
这就是我们使用MSP430 Launchpad在LCD上读取和显示RFID编号的方式。现在,您可以进一步扩展该项目,并可以构建出勤系统,投票系统,安全系统等。