小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MFRC522開發(fā)筆記

 圓錐的布袋 2017-11-11

一、了解基本概念

①ISO-14443A協(xié)議:( 國(guó)際標(biāo)準(zhǔn)化組織:International Organization for Standardization)RFID協(xié)議的一種;
   PICC:臨近卡(分為A型和B型)、PCD:臨近耦合設(shè)備--指MFRC522模塊、
   ATQ:對(duì)請(qǐng)求的應(yīng)答、ATQA 對(duì)A型卡請(qǐng)求的應(yīng)答、ATQB 對(duì)B型卡請(qǐng)求的應(yīng)答
   REQA:對(duì)A型卡的請(qǐng)求、REQB:對(duì)B型卡的請(qǐng)求、WUPA:A型卡的喚醒命令(更多縮寫意思百度:ISO14443)
   ASK:選擇確認(rèn)

②MIFARE: 恩智浦半導(dǎo)體(NXP Semiconductors)擁有的商標(biāo)之一;

③MIFARE卡(M1卡):兼具讀寫功能,主要是非接觸式,有快速防沖突機(jī)制 – 處理多卡同時(shí)進(jìn)入感應(yīng)區(qū)的機(jī)制,其特殊的存儲(chǔ)結(jié)構(gòu)適合一卡多用,目前主要芯片philip mifare1 S50、 S70等;

④官方網(wǎng)站:http://www.cn./ 網(wǎng)站中可以下載MFRC522芯片手冊(cè)和各種智能卡的使用手冊(cè)。

⑤MFRC522特性:

   非接觸式讀寫卡芯片、最大通信速率13.56MHz、

   支持接口:UART、SPI(Speed_max=10Mbit/s)、IIC(快速:400Kbit/s,高速:3400Kbit/s)

   通信協(xié)議:ISO-14443A 或者叫 MIFARE

   收發(fā)緩沖:64字節(jié)

   支持中斷模式、可編程定時(shí)器、CRC協(xié)處理器

二、MFRC522與M1卡通信

     在學(xué)習(xí)RFID打卡模塊時(shí),需要涉及的操作原理主要有兩方面。一方面是MFRC522模塊的操作原理,即主機(jī)要怎樣才能操作控制這個(gè)模塊的問題。另一方面是MFRC522與M1卡之間的通信原理。只有兩方面都正確進(jìn)行了,主機(jī)才能通過MFRC522模塊和M1卡進(jìn)行通信。

①M(fèi)FRC522基本原理實(shí)現(xiàn)
其SPI接口通信原理:主機(jī)負(fù)責(zé)產(chǎn)生(控制)SCK信號(hào)-主從機(jī)通信時(shí)鐘,以下是SPI線上操作的時(shí)序。
讀字節(jié)數(shù)據(jù):主機(jī)寫地址---先發(fā)要讀的數(shù)據(jù)字節(jié)地址的MSB位放到MOSI引腳,直到LSB位發(fā)完,SCK=1時(shí)RC522模塊獲取MOSI引腳值作為其中一地址位,SCK=0時(shí)RC522準(zhǔn)備讀下一位地址;
                 主機(jī)讀數(shù)據(jù)---寫完地址之后即可開始讀MISO引腳數(shù)據(jù),先從這個(gè)引腳讀取電平當(dāng)做數(shù)據(jù)的MSB位,SCK = 1時(shí),MISO數(shù)據(jù)保持不變,SCK = 0時(shí),MISO切換到下一位的值。
寫字節(jié)數(shù)據(jù):也是先串行寫目的地址到MOSI引腳,然后同樣再串行寫數(shù)據(jù)到MOSI引腳,MSB位為起始發(fā)送位。
(通常在51類型的單片機(jī)中是用軟件來實(shí)現(xiàn)SPI的通信時(shí)序,我們常把這種方法稱為軟件模擬SPI方式,但是在ARM這類比較高端的SOC處理器中是集成了SPI硬件控制器的,通常讀寫SPI外設(shè)只需要把地址/數(shù)據(jù)放到指定的寄存器即可,硬件會(huì)自動(dòng)完成發(fā)送)
FIFO工作原理:64字節(jié)的FIFO負(fù)責(zé)緩沖RC522接收(來自主機(jī))和發(fā)送的數(shù)據(jù)。訪問FIFO緩沖區(qū)主要通過其內(nèi)部FIFODataReg寄存器,由于主機(jī)一次操作只能是讀或者是寫,F(xiàn)IFO緩沖區(qū)中數(shù)據(jù)要么就是主機(jī)寫進(jìn)去的內(nèi)容,要不就是主機(jī)即將讀出來的內(nèi)容—IC卡片發(fā)送給RC522模塊的數(shù)據(jù)。相關(guān)操作:
FIFO清除----操作FIFOLevelReg寄存器的bit7-FlushBuffer
查看FIFO中數(shù)據(jù)量----訪問FIFOLevelReg寄存器的FIFOLevel段,主機(jī)往FIFODataReg寫數(shù)據(jù)時(shí),F(xiàn)IFOLevel自動(dòng)加1,相反,減1.
主要狀態(tài):
空狀態(tài)警告----FIFO數(shù)據(jù)空間小于等于WaterLevelReg的WaterLevel值時(shí),Status1Reg的LoAlert置1

滿狀態(tài)警告----FIFO剩余空間小于等于WaterLevelReg的WaterLevel值時(shí),Status1Reg的HiAlert置1
(硬件的巧妙設(shè)計(jì):一個(gè)WaterLevel值起到兩個(gè)作用)

②M1-IC-S50卡工作原理/操作流程

M1卡結(jié)構(gòu)
共16個(gè)扇區(qū),每個(gè)扇區(qū)4塊(塊0~3),共64塊,按塊號(hào)編址為0~63。
第0扇區(qū)的塊0(即絕對(duì)地址0塊)用于存放廠商代碼,已經(jīng)固化,不可更改。
其他各扇區(qū):
塊0、塊1、塊2為數(shù)據(jù)塊,用于存貯數(shù)據(jù);
塊3為控制塊,存放密碼A、存取控制、密碼B。

【對(duì)塊3中蘊(yùn)藏的原理的理解是操作RFID模塊的關(guān)鍵所在】
每個(gè)扇區(qū)的密碼和存取控制都是獨(dú)立的,可以根據(jù)實(shí)際需要設(shè)定各自的密碼及存取控制。
注:加密是針對(duì)一個(gè)扇區(qū)來進(jìn)行的,千萬(wàn)不要理解成對(duì)每一個(gè)數(shù)據(jù)塊進(jìn)行加密?。?!
MFRC522模塊與MF-IC卡通信流程:詳情得看MF1S50XX的手冊(cè)第八章

(1)M1卡得電復(fù)位(RPO:Power-On Restset),是MFRC522天線發(fā)出電磁波導(dǎo)致,意味著有命令REQA過來,稱為標(biāo)準(zhǔn)的請(qǐng)求,這種情況是M1卡進(jìn)入感應(yīng)區(qū)后首次與MFRC522通信。其他情況,M1卡進(jìn)入休眠狀態(tài)或之前的操作已經(jīng)終止,Halt之后被WUPA命令再次喚醒,稱為獲得所有的請(qǐng)求。獲得請(qǐng)求之后M1卡發(fā)送回應(yīng)ATQA碼。ATQA是卡的類型碼:S50的類型碼是0x04,S70的類型碼是0x02。
(2)M1卡獲得請(qǐng)求后再次獲得防沖突命令執(zhí)行防沖突機(jī)制。情景分析:有這么一種情況,一個(gè)時(shí)刻多張卡同時(shí)出現(xiàn)在MFRC522感應(yīng)區(qū),這時(shí)候RC522必須要專一,同時(shí)和幾張卡發(fā)生關(guān)系早晚都是要出事的,那么RC522必須要認(rèn)定其中一張卡。當(dāng)然事情還要講究?jī)蓭樵甘前桑?22問人家了,這就要求M1卡能夠主動(dòng)告知RC522“我就是你的唯一的標(biāo)識(shí)”。于是,事情就變成了這樣:RC522獲得最先主動(dòng)告訴它的M1卡的UID,即卡的SN(4Bytes)+校驗(yàn)(1Byte) ,作為下一步選擇通信卡的依據(jù),這個(gè)SN需要主機(jī)從MFRC522中讀出來暫時(shí)保存。
(3)選卡:在主機(jī)控制下MFRC522需要把選卡的命令和上一步獲取的卡SN依次發(fā)送給M1卡,卡收到信息之后很老實(shí),是選自己的信息就主動(dòng)返回SAK信息,1Byte,實(shí)際上就是卡片的容量。

(4)驗(yàn)證密碼:這是極其關(guān)鍵的一步了,里面涉及比較多比較復(fù)雜的協(xié)議。在PCD選中卡之后,接著主機(jī)控制他指出將要訪問的存儲(chǔ)器位置,然后連同驗(yàn)證密碼命令、驗(yàn)證秘鑰A|B一起發(fā)送給卡,三次密碼確認(rèn)(硬件)成功之后,MFRC522的Status2Reg的Bit_4置位,之后的數(shù)據(jù)傳輸都是經(jīng)過加密的。(對(duì)一個(gè)扇區(qū)一次驗(yàn)證密碼成功之后根據(jù)控制字的設(shè)置可以對(duì)該扇區(qū)的數(shù)據(jù)塊進(jìn)行相應(yīng)讀寫操作直到執(zhí)行Halt終止或驗(yàn)證其他扇區(qū)的密碼,在選擇另一扇區(qū)時(shí),需要先進(jìn)行這一扇區(qū)密碼校驗(yàn)。細(xì)心觀察上面那幅流程圖的箭頭也可以發(fā)現(xiàn)這個(gè)要求)
此外,有一點(diǎn)必須要說明的就是:默認(rèn)控制下FF07806時(shí)A秘鑰:不可讀出,具有所有權(quán)限;B秘鑰:可讀出,沒有任何權(quán)限??刂谱趾兔罔€之間的聯(lián)系,推薦使用這個(gè)軟件:http://pan.baidu.com/s/1eQuCCvw

(5)存儲(chǔ)器操作:最終目的。

數(shù)據(jù)塊寫、數(shù)據(jù)塊讀:通過向M1卡發(fā)送WRITE、READ命令,分別是0xA0、0x30;

數(shù)據(jù)塊增值、數(shù)據(jù)塊減值:通過發(fā)M1卡的INCREMENT、DECREMENT指令,分別是0xC1、0xC0;
(寫數(shù)據(jù)塊時(shí)命令連同數(shù)據(jù)值一塊發(fā)送。)

(6)終止卡操作:HALT指令進(jìn)入終止休眠模式。

(7)數(shù)據(jù)完整性措施:PCD和PICC之間的數(shù)據(jù)傳輸
每個(gè)塊16位CRC校驗(yàn)、每個(gè)字節(jié)都有奇偶校驗(yàn)位、位計(jì)數(shù)檢查、位編碼區(qū)別“1”“0”“無信息”、信道監(jiān)控。
CRC16校驗(yàn): MFRC522內(nèi)部有CRC16協(xié)處理器,主機(jī)通過軟件設(shè)置CRC初始值,然后把要發(fā)送的數(shù)據(jù)發(fā)送給MFRC522,激活CRC16協(xié)處理器后,等待一小會(huì)讀取CRCResultReg寄存器值即CRC16校驗(yàn)值,然后把這個(gè)16位的校驗(yàn)值附加到數(shù)據(jù)值后再通過MFRC522發(fā)送給M1卡片。至于其他校驗(yàn)是硬件自動(dòng)完成的,我們只需要自己去讀取MFRC522的Status1Reg寄存器看檢驗(yàn)完成情況,讀ErrorReg寄存器就可知道成功與否。
三、問題解決

問1.各個(gè)扇區(qū)的默認(rèn)秘鑰是多少?
答1.S50卡的初始密碼A和B是12個(gè)F。
問2.如何對(duì)加密扇區(qū)的某一數(shù)據(jù)塊進(jìn)行讀寫數(shù)據(jù)?
答2.選中卡之后,首先要知道這個(gè)扇區(qū)的控制字,標(biāo)準(zhǔn)MF卡的控制字缺省值是0xFF078069,然后根據(jù)控制字要求驗(yàn)證扇區(qū)的密碼A或密碼B,驗(yàn)證成功之后就可以進(jìn)行讀寫數(shù)據(jù)塊操作了。

問3.如何修改扇區(qū)的秘鑰?寫出具體編程步驟。
答3.扇區(qū)的秘鑰AB存放在該扇區(qū)的數(shù)據(jù)塊3,因此要修改扇區(qū)的密碼事先就要先知道這個(gè)扇區(qū)的控制字和原先的秘鑰A或B,根據(jù)控制字的要求驗(yàn)證秘鑰A或B成功之后即可對(duì)存放在數(shù)據(jù)塊3的秘鑰AB進(jìn)行修改。
編程步驟:就是MFRC522模塊與M1卡的通信流程。
問4.控制字有什么作用,如何進(jìn)行修改?
答4.作用:是該扇區(qū)的各個(gè)數(shù)據(jù)塊的讀寫權(quán)限控制中心??刂谱值男薷暮托薷拿罔€的方法步驟一樣,只要根據(jù)控制字的需要密碼驗(yàn)證成功之后即可對(duì)數(shù)據(jù)塊3的控制字域的值進(jìn)行修改。這里先推測(cè),修改密碼和控制字時(shí),都是一起進(jìn)行寫操作的,因?yàn)樗麄冊(cè)谕粋€(gè)數(shù)據(jù)區(qū)。

四、程序設(shè)計(jì)思路

模塊化編程:

1.基本操作函數(shù)

主機(jī)的SPI接口的配置函數(shù)、收發(fā)函數(shù),讀寫RFID模塊寄存器的函數(shù)等主機(jī)與模塊的操作函數(shù)。

2.主機(jī)與M1卡通信函數(shù)——封裝基本操作函數(shù)做成標(biāo)準(zhǔn)接口。

最快的方法就是找一份51的程序通讀一遍,理解后直接移植到自己的平臺(tái),賊快了。

 

下雨天做什么好呢?吃個(gè)早餐先,再計(jì)劃計(jì)劃^_^

08:09:53

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多