• 正文
    • NFC通信原理
    • NFC的卡片分類
    • 如何操作一個卡片
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

探索一下NFC

03/28 09:07
388
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

NFC已經(jīng)遍布了我們生活的方方面面,我們的銀行卡,公交卡,門禁卡,乃至電動車鑰匙,快遞包裹等上面隨處可見,甚至在各個便利店的冰柜櫥窗里也隨處可見。

NFC其實是“Near Field Communication”的縮寫,翻譯成中文就是近場通信。它由飛利浦半導(dǎo)體(現(xiàn)恩智浦半導(dǎo)體公司)、諾基亞和索尼共同研制開發(fā)的以RFID及互連技術(shù)為基礎(chǔ)的一種短距高頻的無線電技術(shù)。它可以在移動設(shè)備、消費類電子產(chǎn)品、PC和智能控件工具間進行近距離無線通信,有效傳輸距離為10厘米以內(nèi)。

NFC的傳輸速度有106 Kbit/秒、212 Kbit/秒或者424 Kbit/秒三種。是在單一芯片上結(jié)合感應(yīng)式讀卡器、感應(yīng)式卡片和點對點的功能,能在短距離內(nèi)與兼容設(shè)備進行識別和數(shù)據(jù)交換。

這項技術(shù)最開始讓人著迷的地方在于,它的卡片一端可以無需供電,以前工藝還不夠好,還需要把它封在一張厚厚的卡片里面,比如我們的門禁卡。如今加持了更為先進的芯片工藝,這種卡片可以輕松的做到指甲蓋大小的波紙片。

NFC通信原理

NFC本身是一種無線通信,只不過在無線調(diào)制解調(diào)的基礎(chǔ)上增加了供電功能,我們知道電能是可以通過線圈的磁場感應(yīng)進行傳播的,最早期的器件就是變壓器,只不過這里我們把變壓器的磁芯移走,只留下了原邊和副邊的線圈。

傳遞能量只需要一個固定頻率的載波即可,如果想要在這一對線圈之間增加通信,那么可以借鑒無線通信中的調(diào)制解調(diào)方法,將數(shù)字信號調(diào)制到提供電能的載波上面,通信雙方就可以進行通信了。當(dāng)然,從機是不可能主動發(fā)起通信的,因為它沒有電。

其實,我們生活中還有一種將數(shù)字信號調(diào)制在載波上面進行通信的有線通信,它叫電力載波,也就是我們消費電子中常說的電力貓,它可以通過220V的插排將以太網(wǎng)布滿整個網(wǎng)絡(luò)。

還有,我們現(xiàn)在手機無線充電,其原理跟NFC是一模一樣的,只不過因為選擇了不同的頻率,不同的線圈而已。有些頻率是可以傳輸電能,有些頻率適合傳遞信號。

NFC的卡片分類

NFC卡片主要分為兩類,ID卡IC卡。

ID卡主要用來給NFC讀設(shè)備讀取數(shù)據(jù);IC卡里面有專門處理卡片數(shù)據(jù)的芯片。

ID 卡:僅僅記錄卡號,卡內(nèi)的卡號讀取無任何權(quán)限,易于仿制。ID 卡「不可寫入」數(shù)據(jù),其記錄內(nèi)容(卡號)只可由芯片生產(chǎn)廠一次性寫入,開發(fā)商只可讀出卡號加以利用,無法根據(jù)系統(tǒng)的實際需要制訂新的號碼管理制度。

IC 卡:ID內(nèi)所記錄數(shù)據(jù)的讀取,寫入均需相應(yīng)的密碼認(rèn)證,甚至卡片內(nèi)每個區(qū)均有不同的密碼保護,全面保護數(shù)據(jù)安全,IC 卡寫數(shù)據(jù)的密碼與讀出數(shù)據(jù)密碼可設(shè)為不同,提供了良好分級管理方式,確保系統(tǒng)安全。IC 卡不僅可由授權(quán)用戶讀出大量數(shù)據(jù),而且亦可由授權(quán)用戶寫入大量數(shù)據(jù)(如新的卡號,用戶的權(quán)限,用戶資料等),IC 卡所記錄內(nèi)容可反復(fù)擦寫,IC 卡的安全性遠(yuǎn)大于 ID 卡。

「IC卡還可再分類」

「M1卡」:普通IC卡,0扇區(qū)不可修改,其他扇區(qū)可以反復(fù)擦寫;通常我們使用的門禁卡、電梯卡都是M1卡。M1卡是NXP公司研發(fā)的IC卡,全稱為NXP Mifare1系列,目前大多數(shù)手機廠商使用的NFC芯片都是NXP。

「UID卡」:普通復(fù)制卡,可以反復(fù)擦寫所有扇區(qū),門禁有防火墻則失效。

「CUID」:升級復(fù)制卡,可以反復(fù)擦寫所有扇區(qū),可以穿透大部分防火墻。

「FUID」:高級復(fù)制卡,0扇區(qū)只能寫入一次,寫入后變?yōu)镸1卡。

「UFUID」:超高級復(fù)制卡,0扇區(qū)只能寫入一次,封卡后變?yōu)镸1卡,不封卡變?yōu)閁ID卡。

M1卡的介紹

對于M1卡,我們?nèi)绻褵o線通信看為底層,從上層來看,M1卡就是一個eeprom。

M1卡分為16個扇區(qū),每個扇區(qū)由4塊(塊0、塊1、塊2、塊3)組成,(我們也將16個扇區(qū)的64個塊按絕對地址編號為0~63,存貯結(jié)構(gòu)如下圖所示:

首先,對于第0扇區(qū)的塊0(即絕對地址0塊),它用于存放廠商代碼,已經(jīng)固化,不可更改。

其次,每個扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,可用于存貯數(shù)據(jù),塊3為控制塊。

「數(shù)據(jù)塊」可作兩種應(yīng)用:

?用作一般的數(shù)據(jù)保存,可以進行讀、寫操作。?用作數(shù)據(jù)值,可以進行初始化值、加值、減值、讀值操作。

「控制塊」,包括了密碼A、存取控制、密碼B。具體結(jié)構(gòu)如下:

每個扇區(qū)的「密碼」「存取控制」都是獨立的,可以根據(jù)實際需要設(shè)定各自的密碼及存取控制。

存取控制為4個字節(jié)(上圖中:FF 07 80 69),共32位,扇區(qū)中的每個塊(包括數(shù)據(jù)塊和控制塊)的存取條件是由「密碼和存取控制共同決定的?!?/strong>

「存取控制」中每個塊都有相應(yīng)的三個控制位,也就是每個塊的讀寫控制由3個bit來控制,具體如下表:

上面列表可以看出,當(dāng)控制位不同的組合時,對應(yīng)的數(shù)據(jù)塊就會有不同的操作邏輯,比如,當(dāng)塊0的存取控制位為1 0 0時,驗證密碼A或密碼B正確后可讀;驗證密碼B正確后可寫;不能進行加值、減值操作。

既然有這么三個bit可以表示數(shù)據(jù)塊的操作邏輯,必然需要一個地方來存儲每個數(shù)據(jù)塊對應(yīng)的3bit,它們就被存儲在存取控制的4個字節(jié)中,只不過它們的排列方式有點奇怪。我們這里把塊0-塊3命名為塊a-塊d,看起來舒服一些。假設(shè):

塊a: C1a C2a C3a

塊b: C1b C2b C3b

塊c: C1c C2c C3c

塊d: C1d C2d C3d

那么,在存儲控制區(qū)域,定義為如下:

「控制塊塊3」的存取控制與「數(shù)據(jù)塊」(塊0、1、2)不同,它的存取控制如下

例如:當(dāng)塊3的存取控制位C13 C23 C33 = 1 0 0時,表示:

密碼A:不可讀,驗證KEYA或KEYB正確后,可寫(更改)。

存取控制:驗證KEYA或KEYB正確后,可讀、可寫。

密碼B:驗證KEYA或KEYB正確后,可讀、可寫。

RC522的介紹

RC522 通常帶有一個具有1KB內(nèi)存的RFID卡標(biāo)簽和密鑰卡標(biāo)簽。最棒的是,它還可以編寫標(biāo)簽,因此我們可以在其中存儲某種秘密消息。

RC522 采用的是13.56MHz的電磁場,用于與RFID標(biāo)簽(ISO 14443A標(biāo)準(zhǔn)標(biāo)簽)進行通信。閱讀器可以通過4引腳串行外圍接口(SPI)與微控制器進行通信,SPI的最大數(shù)據(jù)速率為「10Mbps」。它還支持通過I2CUART協(xié)議進行通信。

RC522帶有一個中斷引腳。這很方便,當(dāng)標(biāo)簽進入附近時,芯片會提醒我們。

如何操作一個卡片

「復(fù)位應(yīng)答(Answer to request)」

M1射頻卡的通訊協(xié)議和通訊波特率是定義好的,當(dāng)有卡片進入讀寫器的操作范圍時,讀寫器以特定的協(xié)議與它通訊,從而確定該卡是否為M1射頻卡,即驗證卡片的卡型。

「防沖突機制 (Anticollision Loop)」

當(dāng)有多張卡進入讀寫器操作范圍時,防沖突機制會從其中選擇一張進行操作,未選中的則處于空閑模式等待下一次選卡,該過程會返回被選卡的序列號。

「選擇卡片(Select Tag)」

選擇被選中的卡的序列號,并同時返回卡的容量代碼。

「三次互相確認(rèn)(3 Pass Authentication)」

選定要處理的卡片之后,讀寫器就確定要訪問的扇區(qū)號,并對該扇區(qū)密碼進行密碼校驗,在三次相互認(rèn)證之后就可以通過加密流進行通訊。(在選擇另一扇區(qū)時,則必須進行另一扇區(qū)密碼校驗。)

「對數(shù)據(jù)塊的操作」

讀 (Read):讀一個塊;

寫 (Write):寫一個塊;

加(Increment):對數(shù)值塊進行加值;

減(Decrement):對數(shù)值塊進行減值;

存儲(Restore):將塊中的內(nèi)容存到數(shù)據(jù)寄存器中;

傳輸(Transfer):將數(shù)據(jù)寄存器中的內(nèi)容寫入塊中;

中止(Halt):將卡置于暫停工作狀態(tài);

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

多年硬件從業(yè)經(jīng)驗,專注分享從研發(fā)到供應(yīng)鏈,再到精益制造過程中的經(jīng)驗和感悟!