找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 11781|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

RFID-RC522速成教程(基于msp430單片機(jī)的程序講解)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140725 發(fā)表于 2016-10-12 12:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

學(xué)習(xí)一種模塊,有很多種方法,其中一種方式是先去弄明白怎么使用這個模塊,親自體驗了這個模塊的大體功能之后,再回過頭來了解該模塊的工作原理,再去深層次的研究該模塊。
在這里,著重介紹怎么用程序?qū)崿F(xiàn)RC522模塊的一些功能,而RC522的結(jié)構(gòu),功能等便不再介紹。
這個程序的講解是基于MSP430F149/169單片機(jī)的。

模塊使用的是SPI接口,與單片機(jī)接口如下:

#define RF_LPCTL               BIT3  // P2.3 射頻卡休眠控制------RST   
#define RF_SS                  BIT7  // p2.7 射頻卡從機(jī)選擇(SS)---SDA
#define RF_SCLK                BIT6  // p2.6 射頻卡數(shù)據(jù)時鐘輸出(SCLK)
#define RF_DATA_OUT            BIT5  // p2.5 射頻卡數(shù)據(jù)輸出(MOSI)
#define RF_DATA_IN             BIT1  // p2.1 射頻模塊輸入(MISO)

要想對模塊內(nèi)部的數(shù)據(jù)塊進(jìn)行讀寫,需要完成4個步驟:尋卡→防沖突→選卡→讀/寫卡
第一步:尋卡。
   status2=PcdRequest(0x52,Temp);////尋卡 參數(shù)Temp為返回的卡類型
if(status2== MI_OK)
{
         tochar(Temp[0]);
tochar(Temp[1]);//輸出卡類型
}
其中0x52代表尋天線區(qū)內(nèi)全部卡。
卡類型(TagType):
0x4400 =Mifare_UltraLight
0x0400 =Mifare_One(S50)
0x0200 =Mifare_One(S70)
0x0800 =Mifare_Pro(X)
0x4403 =Mifare_DESFire
比如,當(dāng)Temp[0]=04,Temp[1]=00時,卡類型為S50。

第二步:防沖突。
         status2= PcdAnticoll(UID);  //防沖撞處理,輸出卡片序列號,4字節(jié)
   if(status2==MI_OK)
    {
       PutString0("Card Id is:");
       tochar(UID[0]);
       tochar(UID[1]);
       tochar(UID[2]);
       tochar(UID[3]); //輸出卡片序列號
}
第三步:選卡。
         status2= PcdSelect(UID);    //選擇卡片,輸入卡片序列號,4字節(jié)
第四步:在讀寫卡之前需要先進(jìn)行認(rèn)證。
         status2= PcdAuthState(PICC_AUTHENT1A, 1, Password_Buffer, UID);
其中四個參數(shù)分別代表:驗證A密鑰+塊地址+扇區(qū)密碼+卡序列號。
然后進(jìn)行寫操作:
status2=PcdWrite(1,writeData);//寫數(shù)據(jù),將數(shù)組writeData中的數(shù)寫入到卡中
其中第一個參數(shù)  1  代表寫入的地址為塊1.
或者進(jìn)行讀卡操作:
status2 = PcdRead(1, str);//讀卡
其中第一個參數(shù)  1  代表讀的地址為塊1.  
讀卡后得到的數(shù)據(jù)存放于數(shù)組str中。


至此,已將RC522的基本操作介紹了一遍,明白了以上這些函數(shù),就可以對卡進(jìn)行一些初步的操作,可以再結(jié)合程序研究一下。
如果需要進(jìn)一步了解RC522的工作原理,可以到網(wǎng)上搜資料,網(wǎng)上有很多的,也可以在下方留言,大家討論討論。


MSP430F149讀卡號參考例程.rar

404.19 KB, 下載次數(shù): 64, 下載積分: 黑幣 -5

RC522速成教程.pdf

318.93 KB, 下載次數(shù): 70, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

沙發(fā)
ID:185990 發(fā)表于 2017-4-4 13:47 | 只看該作者
有沒有51單片機(jī)的��!只會玩51單片機(jī)
回復(fù)

使用道具 舉報

板凳
ID:130231 發(fā)表于 2017-4-28 20:19 | 只看該作者
不錯哦
回復(fù)

使用道具 舉報

地板
ID:108558 發(fā)表于 2017-6-6 09:29 | 只看該作者
關(guān)于0扇區(qū)0塊的改寫特殊指令有人試過嗎?
uid復(fù)寫卡用普通指令還是不能更改0扇區(qū)0塊的值,其他都可以,這樣還是不能復(fù)制門禁啊
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表