在本篇文章中,我們將使用STM32和RFID讀卡器設(shè)計(jì)一個(gè)讀取RFID卡的系統(tǒng)。 RFID表示射頻識(shí)別,它使用無線電頻率讀取信息。 RFID用于許多認(rèn)證系統(tǒng),如電梯乘坐系統(tǒng)、自動(dòng)收費(fèi)系統(tǒng)、醫(yī)院患者信息維護(hù)系統(tǒng)、自動(dòng)數(shù)據(jù)收集等。本文中,我們將學(xué)習(xí)如何使用STM32F103C8微控制器連接EM-18 RFID讀卡器模塊來讀取RFID標(biāo)簽的唯一ID。
所需的組件
● STM32F103C8控制器
● EM-18 RFID讀卡器模塊
● RFID卡
● 1602 LCD顯示屏模塊
● 面包板
● 連接線
在將RFID與STM32連接之前,首先我們將了解RFID標(biāo)簽和RFID讀卡器。
RFID標(biāo)簽
RFID標(biāo)簽由一組盤繞天線和一片微芯片組成,可以與附近的讀卡器無線通信。市場上有各種形狀和尺寸的不同類型的RFID標(biāo)簽。很少有人使用不同的頻率進(jìn)行通信。我們將使用125Khz無源RFID卡,其中包含唯一的ID數(shù)據(jù)。
當(dāng)您將RFID標(biāo)簽放在明亮的燈光前時(shí),您可以觀察標(biāo)簽內(nèi)部的線圈和微芯片。
基本上有兩種類型的RFID標(biāo)簽:無源和有源
無源RFID標(biāo)簽從EM-18等讀卡器模塊產(chǎn)生的磁場中獲取能量,并用它為微芯片的電路供電。然后芯片將信息發(fā)送給讀卡器。
有源RFID標(biāo)簽需要單獨(dú)供電,并包含高達(dá)1MB的讀/寫內(nèi)存。
EM-18 RFID讀卡器
每個(gè)RFID卡都嵌入有一個(gè)唯一ID,并且使用RFID讀取器可以讀取RFID卡號(hào)。 EM-18 RFID讀卡器的工作頻率為125 KHz,它配有一個(gè)片上天線,可以用5V電源供電。它提供串行輸出。范圍大約8-12厘米。串行通信參數(shù)為9600bps、8個(gè)數(shù)據(jù)位、1個(gè)停止位。這種無線射頻識(shí)別用于許多系統(tǒng),如基于RFID的考勤系統(tǒng)、安全系統(tǒng)、投票機(jī)以及電子收費(fèi)公路定價(jià)等等。
EM-18 RFID讀器卡提供的輸出為12位ASCII格式。在12位數(shù)中,前10位是卡號(hào),后兩位是卡號(hào)的XOR結(jié)果。最后兩位數(shù)字用于錯(cuò)誤校驗(yàn)。
例如,從讀卡器讀取到的卡號(hào)為0200107D0D62,然后卡上的卡號(hào)將如下所示。
02- 前導(dǎo)符
00107D0D =十進(jìn)制的1080589。
62是(02 XOR 00 XOR 10 XOR 7D XOR 0D)的XOR值。
因此卡上的號(hào)碼是0001080589。
EM-18的引腳詳細(xì)信息
EM-18 RFID讀卡器有九個(gè)引腳。在9個(gè)引腳中,2個(gè)引腳沒有連接,所以我們只需要考慮7個(gè)端子。下表顯示了EM-18的引腳說明。
EM-18 RFID模塊的規(guī)格參數(shù)
● 讀取距離:10厘米
● 工作溫度:0oC至+80oC
● 通訊參數(shù):9600bps
● 電流消耗:<50mA
● 工作頻率:125 kHz
● 工作電壓:5v
電路圖和連接
STM32F103C8和EM-18讀卡器模塊之間的連接如下:
編程STM32F103C8用于讀取RFID
在之前的文章中,我們了解了使用USB端口編程STM32F103C8T6板。所以我們現(xiàn)在不需要FTDI燒寫器。只需通過STM32的USB端口將其連接到PC,然后開始使用ARDUINO IDE進(jìn)行編程。在ARDUINO IDE中對(duì)STM32進(jìn)行編程以讀取RFID標(biāo)簽非常簡單
1.首先,包括用于使用LCD顯示函數(shù)的LCD顯示庫。然后定義LCD引腳并初始化LCD顯示屏。
#include
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
2.接下來在void setup()函數(shù)中,我們需要將LCD顯示模式設(shè)置為16x2,并使用PA10引腳以波特率9600開始串行通信(這是STM32F103C8的SERIAL1通信端口RX1,它與EM-18 TX引腳相連。
lcd.begin(16, 2);
Serial1.begin(9600);
pinMode(PA10,INPUT);
3.接下來顯示歡迎信息并在一段時(shí)間后擦除屏幕。
lcd.print("CIRCUIT DIGEST"); //Prints at LCD display
lcd.setCursor(0, 1); //Set courser to second line
lcd.print("RFID WITH STM32"); //Prints at LCD display
delay(5000); //Delay for 5 Seconds
lcd.clear(); //Clears LCD display
lcd.setCursor(0,0); //Sets cursor at First Line
lcd.print("RFID TAG NO:"); //Prints at LCD display
lcd.setCursor(0,1);
4.在void loop()函數(shù)中,一旦STM32F103C8的串行引腳提供EM-18 RFID讀取器模塊(標(biāo)簽ID)的數(shù)據(jù),該字符將逐位存儲(chǔ)并在LCD顯示屏上逐個(gè)顯示。
{
while(Serial1.available() && count < 12)? ?? ?? ?
{
RFID[count] = Serial1.read();
count++;
lcd.print(RFID[count]);
if (count==12)
{
lcd.print(" ");
count = 0;
lcd.setCursor(0, 1);
}
}
}
現(xiàn)在只需在STM32中上傳完整的代碼,您的系統(tǒng)即可運(yùn)行。然后將RFID標(biāo)簽放在RFID閱讀器上,您就會(huì)看到標(biāo)簽ID出現(xiàn)在1602 LCD顯示屏上。
編輯:hfy
-
RFID
+關(guān)注
關(guān)注
386文章
6005瀏覽量
236613 -
讀卡器
+關(guān)注
關(guān)注
2文章
407瀏覽量
39210 -
STM32
+關(guān)注
關(guān)注
2257文章
10828瀏覽量
352468 -
燒寫器
+關(guān)注
關(guān)注
0文章
18瀏覽量
13132 -
STM32F103C8
+關(guān)注
關(guān)注
1文章
23瀏覽量
8054
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論