NFC基础知识学习
背景知識
近場通信(Near Field Communication,簡稱NFC),是一種新興的技術,使用了NFC技術的設備(例如移動電話)可以在彼此靠近的情況下進行數據交換,是由非接觸式射頻識別(RFID)及互連互通技術整合演變而來的,通過在單一芯片上集成感應式讀卡器、感應式卡片和點對點通信的功能,利用移動終端實現移動支付、電子票務、門禁、移動身份識別、防偽等應用。NFC可以理解為是RFID的一個子集。目前手機比較火的“碰一碰”功能就依托于該技術。
ISO/IEC 14443定義了TypeA、TypeB兩種卡片讀寫標準:
Type A型卡在讀寫機上向卡傳送信號時,是通過13.56MHz的射頻載波傳送信號。其采用方案為同步、改進的Miller編碼方式,通過100%ASK傳送;當卡向讀寫機具傳送信號時,通過調制載波傳送信號。使用847kHz的副載波傳送Manchester編碼。
而Type B型卡在讀寫機具向卡傳送信號時,也是通過13.56MHz的射頻載波信號,但采用的是異步、NRZ編碼方式,通過用10%ASK傳送的方案;在卡向讀寫機具傳送信號時,則是采用的BPSK編碼進行調制。
對比兩種卡型,可以看出,Type B型與Type A型卡相比有以下優勢:
(1)芯片具有更高的安全性。接收信號時,不會因為能量損失而使芯片內部邏輯及軟件工作停止。
(2)支持更高的通訊速率。Type A最大的數據通訊速率為150Kbit/s -200Kbit/s ,應用10%ASK技術的Type B至少可支持400Kbit/s 的速率。
(3)外圍電路設計簡單。讀寫機具到卡以及卡到讀寫機具的編碼方式均采用NRZ方案,電路設計對稱,設計時可使用簡單的UARTS。
(4)抗干擾能力強。負載波采用BPSK調制技術,較Type A方案降低了6dB的信號聲。
在ISO/IEC 14443-3規定了TYPEA,TYPEB 的防沖突機制。二者防沖突機制的原理完全不同。前者是基于BIT沖突檢測協議,后者則是通過字節、幀及命令完成防沖突。防沖突機制使非接觸式IC卡能進行并行操作,及在多張卡同時進入有效操作區后,可對其進行有條不紊的操作,這樣就使 選定卡片的數據不受其它卡數據干擾,攜帶有多種卡的用戶可不必尋找正確的一張卡,只用算法編程,讀寫機具即可自動做到選取正確的一張卡進行后續操作。這樣方便了操作,提高了應用的并行性,也提高了系統的速度。
關于兩種類型的卡片的分類:
. ├── TypeA卡 │ ├── MifareOne(市面上的卡大部分都是M1卡,廣泛應用于公交、地鐵、門禁等諸多領域) │ │ ├── S50 (容量:1K) │ │ ├── S70 (容量:4K) │ │ └── ... │ ├── NTAG │ │ ├── NTAG213(容量:180Bytes 可讀寫:144Bytes) │ │ ├── NTAG215(容量:540Bytes 可讀寫:504Bytes) │ │ ├── NTAG216(容量:924Bytes 可讀寫:888Bytes) │ │ └── ... │ ├── UID卡(M1模擬卡,可以隨意修改UID) │ └── ... └── TypeB卡└── CPU卡(如居民二代身份證、部分銀行卡等)MifareOne卡(M1卡)
M1卡常見的卡片型號分為S20卡、S50卡、S70卡等,區別在于存儲大小不同,以應用最廣泛的S50卡為例:
S50分為16個扇區、每個扇區4塊(0~3 Block)、共64塊,每塊16個字節。
按塊號編址為0~63,第0扇區的塊0用于存放廠商代碼,已經固化不可更改。
其它扇區的塊0、塊1、塊2為數據塊,用于存儲數據,塊3為控制塊,分別存放:
密碼A(6bytes)、存取控制(4bytes)、密碼B(6bytes)
每個扇區的密碼和存取控制是獨立的,可以根據實際需要設定各自的密碼及存取控制。三個控制位以正和反兩種形式存在于存取控制字節中,決定了該塊的訪問權限。如果進行減值操作,必須驗證KEYA, 如果進行加值操作,必須驗證KEYB。
注意:
詳細參考鏈接:
Type A型和Type B型卡的主要區別
Mifare和CPU卡簡介與比較
Mifare Classic 破解參考:http://t.zoukankan.com/k1two2-p-5415400.html
NTAG卡
NTAG213、NTAG215和NTAG216由恩智浦半導體公司開發,并作為標準NFC標簽IC與NFC設備或NFC兼容型近距離耦合設備配合,廣泛用于市場應用,如零售、游戲和消費電子等。NTAG213、NTAG215和NTAG216(后文通稱為NTAG21x)設計為完全符合NFC Forum類型2標簽和ISO/IEC14443類型A規范。
目標應用包括戶外和印刷媒體智能廣告、SoLoMo應用、產品驗證、NFC貨架標簽、手機配套標簽。目標用例包括戶外智能廣告、產品認證、手機配套標簽、藍牙或Wi-Fi配對、電子貨架標簽和名片。還可對NTAG21x存儲器進行分段,以同時部署多個應用。
以NTAG216卡片為例:
EEPROM 以4 字節為1 個Block 來組織,READ 和WRITE 均以Block 地址作為最小尋址單位,READ 指令中的地址為讀取的起始地址,依次讀出4 個Block 的數據。WRITE 指令每次寫入當前地址對應的Block。
扣除制造商信息區和配置信息區后,用戶可以使用的數據空間為Block 04h~E1h,總計222 Blocks,即888 字節。E2h 存儲Dynamic Lock Bytes。E3h~FBh 為芯片配置信息區,FCh~FFh 為制造商信息區。整體空間劃分示意圖如下:
NTAG卡的序列號也就是UID一共有七個,存放在page0, page1中, 其中UID0-UID2在page0中的前三個字節,第四個字節是卡類型與前3個字節的UID的BCC異或校驗。UID3-UID6在page1中,UID3-UID6的BCC校驗在page2的第一個字節。
BER與TLV
BER(BasicEncoding Rules)是一種編碼規格說明,描述如何將 ASN.1 類型的值編碼成字節串(string of octets)的方法。其他編碼規則是在BER的基礎上添加新的規則構成,比如 DER。
TLV是BER編碼的一種,為了使手機準確識別出多種或多段NFC標簽信息,需要使用TLV格式。BER傳輸語法的格式一直是TLV 三元組 <Tag,Length, Value>, 每一段占一個字節。其中Value部分可以嵌套另一個 TLV,其格式如下:
-
Tag字段的含義
Tag分為3部分,最高兩位,第六位和低五位。
bit8~bit7:組合代表tag所屬類型
00 通用級 universal class 01 應用級 application class 10 規范級 context-specific class 11 私有級 private classbit6:是否具有嵌套的TLV子結構。
bit5~bit1:如果為全1,則Tag擴展至后續的字節,否則是具體的Tag正文。
Tag后續字節:
bit8:為1時存在后續字節,為0時不存在后續字節
bit7~bit1:Tag正文 -
Length字段含義:
首字節bit8:
如果為0,則該Length僅有1字節,bit7~bit1值代表Value字段的長度。
如果為1,則表示長度有擴展字節,bit7~bit1值代表后續擴展的字節數,后續擴展字節數表示Value字段的長度。
-
Value字段含義:
Value數據段一般沒有特定的編碼規則,但在某些場合,如果首字節的Bit8為1時,需要前補0x00。
例如,如果Value1=0x74F2,Value2=0xB34A,則需要將Value2重新轉換為0x00B34A,對應Length長度+1。
通常,我們將NDEF格式數據放在Value數據段。
NDEF (NFC Data Exchange Format)
NDEF是NFC的一種標準化的數據格式,可用于在任何兼容的NFC設備與另一個NFC設備或標簽之間交換信息。
數據格式由NDEF消息和NDEF記錄組成。該標準由NFC論壇維護,可以免費獲得參考,但需要接受許可協議才能下載。
NFC數據交換格式(NDEF)是一種標準化的數據格式,可用于在任何兼容的NFC設備和另一個NFC設備或標簽之間交換信息。該數據格式由NDEF信息和NDEF記錄組成。
NDEF格式用于存儲和交換信息,如URI、純文本等,使用一種普遍理解的格式。像一些NFC標簽可被配置為NDEF標簽,由一個NFC設備寫入可以被任何其他NDEF兼容設備理解和訪問的數據(NDEF記錄)。
NDEF信息也可以用來在兩個活躍的NFC設備之間以 "點對點 "模式交換數據。通過在通信過程中遵守NDEF數據交換格式,那些本來對彼此沒有任何意義或共同語言的設備能夠以一種有組織的、可相互理解的方式分享數據。
NDEF消息是NDEF記錄的基本 "運輸 "機制,每個消息包含一個或多個NDEF記錄。
詳細NDEF格式可參考:NDEF 技術規范
總結
- 上一篇: 小算法
- 下一篇: 华为交换机关闭网口_华为交换机如何关闭网