使用MSP430启动板在LCD上读取和显示RFID号码的方式

描述

在本教程中,我们设计了一个使用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 位数字是卡号,后两位数字是卡号的异或结果。最后两位数字用于错误检查。

msp430

msp430

例如,从读卡器读取的卡号是0200107D0D62,那么卡上的卡号将如下所示。

02 – 序言

00107D0D = 十进制1080589。

62 是 (02 XOR 00 XOR 10 XOR 7D XOR 0D) 的 XOR 值。

因此,卡上的数字是0001080589。

MSP430 RFID阅读器电路图和工作原理图

msp430

我们将使用 MSP430 的硬件 UART,因此,请确保板上的 RXD 和 TXD 跳线处于硬件 UART 模式。然后将EM-18的发射连接到MSP430的RXD(P1.1)。

在进一步讨论之前,我们需要了解串行通信。这里的RFID模块以串行方式将数据发送到控制器。它具有其他通信模式,但为了便于通信,我们选择RS232。模块的RS232引脚连接到MSP430的RXD引脚。

RFID 模块发送的数据如下:

msp430

现在,为了在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。

msp430

代码和说明

我们将在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号码的方式。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分