標題: RFID-RC522速成教程(基于msp430單片機的程序講解) [打印本頁]
作者: 51hei學習技術中 時間: 2016-10-12 12:46
標題: RFID-RC522速成教程(基于msp430單片機的程序講解)
0.png (502.84 KB, 下載次數: 126)
下載附件
2016-10-12 12:45 上傳
學習一種模塊,有很多種方法,其中一種方式是先去弄明白怎么使用這個模塊,親自體驗了這個模塊的大體功能之后,再回過頭來了解該模塊的工作原理,再去深層次的研究該模塊。
在這里,著重介紹怎么用程序實現RC522模塊的一些功能,而RC522的結構,功能等便不再介紹。
這個程序的講解是基于MSP430F149/169單片機的。
模塊使用的是SPI接口,與單片機接口如下:
#define RF_LPCTL BIT3 // P2.3 射頻卡休眠控制------RST
#define RF_SS BIT7 // p2.7 射頻卡從機選擇(SS)---SDA
#define RF_SCLK BIT6 // p2.6 射頻卡數據時鐘輸出(SCLK)
#define RF_DATA_OUT BIT5 // p2.5 射頻卡數據輸出(MOSI)
#define RF_DATA_IN BIT1 // p2.1 射頻模塊輸入(MISO)
要想對模塊內部的數據塊進行讀寫,需要完成4個步驟:尋卡→防沖突→選卡→讀/寫卡;
第一步:尋卡。
status2=PcdRequest(0x52,Temp);////尋卡 參數Temp為返回的卡類型
if(status2== MI_OK)
{
tochar(Temp[0]);
tochar(Temp[1]);//輸出卡類型
}
其中0x52代表尋天線區內全部卡。
卡類型(TagType):
0x4400 =Mifare_UltraLight
0x0400 =Mifare_One(S50)
0x0200 =Mifare_One(S70)
0x0800 =Mifare_Pro(X)
0x4403 =Mifare_DESFire
比如,當Temp[0]=04,Temp[1]=00時,卡類型為S50。
第二步:防沖突。
status2= PcdAnticoll(UID); //防沖撞處理,輸出卡片序列號,4字節
if(status2==MI_OK)
{
PutString0("Card Id is:");
tochar(UID[0]);
tochar(UID[1]);
tochar(UID[2]);
tochar(UID[3]); //輸出卡片序列號
}
第三步:選卡。
status2= PcdSelect(UID); //選擇卡片,輸入卡片序列號,4字節
第四步:在讀寫卡之前需要先進行認證。
status2= PcdAuthState(PICC_AUTHENT1A, 1, Password_Buffer, UID);
其中四個參數分別代表:驗證A密鑰+塊地址+扇區密碼+卡序列號。
然后進行寫操作:
status2=PcdWrite(1,writeData);//寫數據,將數組writeData中的數寫入到卡中
其中第一個參數 1 代表寫入的地址為塊1.
或者進行讀卡操作:
status2 = PcdRead(1, str);//讀卡
其中第一個參數 1 代表讀的地址為塊1.
讀卡后得到的數據存放于數組str中。
至此,已將RC522的基本操作介紹了一遍,明白了以上這些函數,就可以對卡進行一些初步的操作,可以再結合程序研究一下。
如果需要進一步了解RC522的工作原理,可以到網上搜資料,網上有很多的,也可以在下方留言,大家討論討論。
0.png (48.81 KB, 下載次數: 108)
下載附件
2016-10-12 12:45 上傳
-
-
MSP430F149讀卡號參考例程.rar
2016-10-12 12:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
404.19 KB, 下載次數: 64, 下載積分: 黑幣 -5
-
-
RC522速成教程.pdf
2016-10-12 12:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
318.93 KB, 下載次數: 70, 下載積分: 黑幣 -5
作者: a572295347 時間: 2017-4-4 13:47
有沒有51單片機的啊!只會玩51單片機
作者: zqy181818 時間: 2017-4-28 20:19
不錯哦


作者: 464893214 時間: 2017-6-6 09:29
關于0扇區0塊的改寫特殊指令有人試過嗎?
uid復寫卡用普通指令還是不能更改0扇區0塊的值,其他都可以,這樣還是不能復制門禁啊
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |