毫無疑問,當NFC終端越來越普及,逐漸成爲智能手機標配功能後,我們終將迎來NFC的火爆。國內NFC應用最爲廣泛的將是TypeA,如Mifare、NFC Tag、移動支付等,所以接下來將主要研究TypeA相關的協議細節。
ISO14443分爲4部分,硬件主要了解前兩部分,軟件和應用開發則需要了解後兩部分ISO14443-3和ISO14443-4。
ISO14443-1定義了IC卡的物理特性。
ISO14443-2定義了頻率、射頻能量、編碼等內容。
ISO14443-3定義了TypeA/TypeB的初始化和防衝突機制。其中Mifare 1就只到這一層。
ISO14443-4定義了卡片的數據傳輸協議。
第1部分關於物理特性,內容很少,過一下即可。
第2部分定義了NFC的頻率爲13.56MHz±7KHz,定義了最大和最小的能量場的範圍值,以及TypeA、TypeB的調製方式。見下圖,
對比可以看見TypeA的PCD採用了100%的調製方式,而TypeB則採用了10%的調製方式,TypeA能量傳送並不均勻,而TypeB採用的10%ASK方式對於射頻卡來說可以獲得更穩定的能量供給。
再看一下TypeA對信號的要求。
他通過一個2-3us的通信間隙來傳遞數據,這也意味着PICC在這個時間間隙中無法得到PCD的能量,只能靠卡片內部電容放電來維持內部邏輯電路的工作。
1、PCD to PICC即讀卡器到卡,TypeA的PCD採用改進的米勒(Modified Miller)編碼,通信速率爲106Kbps(13.56MHz/128),碼元週期爲9.4us,調製深度爲100%,ASK方式。
首先有以下序列定義:
X序列 |
從碼元的中心位置開始調製2-3us |
Y序列 |
整個碼元週期內不進行調製 |
Z序列 |
在碼元始起處調製載波2-3us |
然後根據上述序列,進行以下編碼:
開始位 |
序列Z |
結束位 |
邏輯0後接着一個序列Y |
邏輯0 |
若前一個碼遠是X序列則輸出Y序列,否則輸出Z序列 |
邏輯1 |
序列X |
無信息 |
至少2個Y序列 |
PCD to PICC sample (0x26)
2、PICC to PCD即射頻卡到讀卡器,TypeA的PICC採用曼切斯特(Manchester)編碼,通信速率也爲106Kbps,調製深度爲10%,ASK方式。射頻卡到讀卡器的信號並非由基帶信號直接調製載波信號,而是由848KHz的副載波信號對載波信號進行調製。編碼定義如下:
起始位 |
在碼元的前半週期,用副載波對載波進行調製 |
結束位 |
在整個碼元週期內不使用副載波調製 |
邏輯0 |
在碼元的後半週期,使用副載波對載波進行調製 |
邏輯1 |
在碼元的前半制期,用副載波對載波進行調製 |
PICC to PCD sample (0x0400)
這就是第二部分的主要內容,過幾天會再補上第三、四部分。