毫无疑问,当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)
这就是第二部分的主要内容,过几天会再补上第三、四部分。