在本教程中,我們?cè)O(shè)計(jì)了一個(gè)使用MSP430 和 RFID 閱讀器讀取 RFID卡的系統(tǒng)。RFID 代表 射頻識(shí)別。每張卡都有一個(gè)唯一的ID,這使其成為許多身份驗(yàn)證應(yīng)用程序的完美選擇,例如在辦公室,購(gòu)物中心和許多其他地方,只允許持有授權(quán)卡的人進(jìn)入。RFID在購(gòu)物中心用于阻止盜竊的發(fā)生,產(chǎn)品將被標(biāo)記為RFID芯片,如果有人帶著RFID芯片離開(kāi)建筑物,則會(huì)自動(dòng)發(fā)出警報(bào),從而停止盜竊。RFID標(biāo)簽設(shè)計(jì)得像沙粒一樣小。RFID認(rèn)證系統(tǒng)易于設(shè)計(jì)且成本低廉。如今,一些學(xué)校和學(xué)院使用RFID作為出勤登記。
所需材料
1. MSP430 啟動(dòng)板
2. EM-18 (無(wú)線射頻識(shí)別讀寫(xiě)器模塊)
3. 16*2液晶顯示器
4. 電位器
5. 面包板
6. 跳線
軟件:Energia IDE
EM-18 無(wú)線射頻識(shí)別讀寫(xiě)器
每張RFID卡中都嵌入了一個(gè)唯一的ID,RFID閱讀器用于讀取RFID卡號(hào)。EM-18 RFID閱讀器的工作頻率為125 KHz,并配有片上天線,可采用5V電源供電。它提供串行輸出以及 weigand 輸出。范圍約為8-12厘米。串行通信參數(shù)為9600bps,8個(gè)數(shù)據(jù)位,1個(gè)停止位。
EM-18 RFID閱讀器提供的輸出為12位ASCII格式。在 12 位數(shù)字中,前 10 位數(shù)字是卡號(hào),后兩位數(shù)字是卡號(hào)的異或結(jié)果。最后兩位數(shù)字用于錯(cuò)誤檢查。
例如,從讀卡器讀取的卡號(hào)是0200107D0D62,那么卡上的卡號(hào)將如下所示。
02 – 序言
00107D0D = 十進(jìn)制1080589。
62 是 (02 XOR 00 XOR 10 XOR 7D XOR 0D) 的 XOR 值。
因此,卡上的數(shù)字是0001080589。
MSP430 RFID閱讀器電路圖和工作原理圖
我們將使用 MSP430 的硬件 UART,因此,請(qǐng)確保板上的 RXD 和 TXD 跳線處于硬件 UART 模式。然后將EM-18的發(fā)射連接到MSP430的RXD(P1.1)。
在進(jìn)一步討論之前,我們需要了解串行通信。這里的RFID模塊以串行方式將數(shù)據(jù)發(fā)送到控制器。它具有其他通信模式,但為了便于通信,我們選擇RS232。模塊的RS232引腳連接到MSP430的RXD引腳。
RFID 模塊發(fā)送的數(shù)據(jù)如下:
現(xiàn)在,為了在RFID閱讀器和MSP430之間建立連接,我們需要在MSP430中啟用串行通信。MSP430 中的串行通信可以通過(guò)使用單個(gè)命令來(lái)完成。
Serial.begin(9600);
data = Serial.read();
如上圖所示,RFID的通信是通過(guò)每秒9600比特的波特率完成的。因此,為了使MSP430建立這樣的波特率并開(kāi)始串行通信,我們使用命令“Serial.begin(9600);”。這里 9600 是波特率,是可變的。
現(xiàn)在,一旦設(shè)置波特率,MSP就可以接收串行數(shù)據(jù)了。此數(shù)據(jù)由命令“data = Serial.read();”獲取。通過(guò)此命令,串行數(shù)據(jù)以名為整數(shù)的“數(shù)據(jù)”形式獲取。
一旦將卡靠近讀卡器,讀卡器讀取串行數(shù)據(jù)并將其發(fā)送到MSP,MSP將被編程為在LCD中顯示該值,因此我們將在LCD上具有卡的ID。
代碼和說(shuō)明
我們將在Energia IDE中編寫(xiě)代碼。它與Arduino IDE相同,易于使用。在這個(gè)項(xiàng)目的末尾給出了完整的代碼,在這里我們解釋了它的幾個(gè)部分。
首先,包括用于LCD顯示的庫(kù),并聲明字符數(shù)組以存儲(chǔ)RFID號(hào)碼。
#include
LiquidCrystal lcd(P2_0, P2_1, P2_2, P2_3, P2_4, P2_5);
char input[12];
在設(shè)置功能中,通過(guò)定義波特率9600來(lái)啟用LCD和串行通信。
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
...
..
在循環(huán)功能中,我們將檢查串行數(shù)據(jù)是否可用。如果可用,將數(shù)據(jù)存儲(chǔ)在 Serial.read() 的輸入[計(jì)數(shù)] 數(shù)組中,并使用 while 循環(huán)將其逐個(gè)顯示在 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啟動(dòng)板在LCD上讀取和顯示RFID號(hào)碼的方式。
-
RFID
+關(guān)注
關(guān)注
390文章
6374瀏覽量
240947 -
msp430
+關(guān)注
關(guān)注
181文章
2405瀏覽量
230661 -
閱讀器
+關(guān)注
關(guān)注
0文章
303瀏覽量
28235
發(fā)布評(píng)論請(qǐng)先 登錄
通過(guò)RTC模塊DS3231與MSP430連接來(lái)制作數(shù)字時(shí)鐘

怎么判斷MSP430是否適合您的LCD應(yīng)用
MSP430讀取SD卡文件
MSP430 Ultra-Low-Power MCUs an
使用MSP430? MCU和段式LCD進(jìn)行設(shè)計(jì)_應(yīng)用報(bào)告

MSP430如何在液晶顯示上應(yīng)用
基于MSP430單片機(jī)的LCD1602顯示(嵌入式期末作業(yè))

MSP430 F149 單片機(jī) AHT10 溫濕度 LCD1602 顯示

MSP430+LCD1602顯示實(shí)驗(yàn)

使用MSP430? MCU和段式LCD進(jìn)行設(shè)計(jì)

利用MSP430的LCD外設(shè)驅(qū)動(dòng)大型LCD

評(píng)論