基于FM 1702SL的射頻讀寫(xiě)器
設計天線(xiàn)時(shí)還要注意天線(xiàn)的品質(zhì)因數。國際標準ISOl4443規定無(wú)論TYPEA或TYPEB非接觸式IC卡,讀寫(xiě)器和卡之間的數據傳輸速度為106kbit/s,載波的頻率f0=13.56MHz,因此,每一位的數據維持的時(shí)間tO=106/104k=9.44μs,TypeA類(lèi)射頻卡智能卡讀寫(xiě)器到射頻卡的信號編碼是修正米勒編碼,傳送每一位數具有t=3μs的載波中斷,因此,該信號的帶寬近似為B=lT=1/3μs=333.333kHz,故天線(xiàn)的品質(zhì)因數Q= fO/B=13.56 MHz33.333kHz=35,天線(xiàn)的傳輸帶寬與品質(zhì)因數成反比關(guān)系。因此,過(guò)高的品質(zhì)因數會(huì )導致帶寬縮小,從而減弱讀寫(xiě)器的調制邊帶,會(huì )導致讀寫(xiě)器無(wú)法與卡通信。
讀寫(xiě)器對卡的操作流程
FMl702SL內部有8個(gè)寄存器頁(yè),每頁(yè)有8個(gè)寄存器,每個(gè)寄存器有8位數據。這些寄存器是統一編址的,從Ox00~0x3F,MCU通過(guò)SPI接口與 FMl702SL通信對這些寄存器進(jìn)行設置。例如,MCU需要讓FMl702SL執行某個(gè)命令(Transceive)時(shí),把此命令的代碼(1E)寫(xiě)入 Command寄存器就可以了。
必須注意的是,MCU對卡片的操作不是簡(jiǎn)單的一條指令所能完成的,其中必須有對FMl702SL硬件內部寄存器的設置。操作步驟如圖5所示。
(1)復位初始化FMr702SL:初始化FMl702SL的SPI接口,初始化FMl702SL定時(shí)器,設置定時(shí)器控制寄存器,打開(kāi)Txl、TX2。
(2)Request(請求):當一張Mifare卡片處在卡片讀寫(xiě)器的天線(xiàn)的工作范圍之內時(shí),程序員控制讀寫(xiě)器向卡片發(fā)出R:EQUEsT all(或REQUEsT std)命令??ㄆ腁TR將啟動(dòng),將卡片BLOCkO中的卡片類(lèi)型(TagType)號共2個(gè)字節傳送給讀寫(xiě)器,建立卡片與讀寫(xiě)器的第一步通信聯(lián)絡(luò )。如果不進(jìn)行復位請求操作,讀寫(xiě)器對卡片的其它操作將不會(huì )進(jìn)行。
(3)Antieollision LOOp(防沖突機制):如果有多張Mifare卡片處在卡片讀寫(xiě)器的天線(xiàn)的工作范圍之內時(shí),讀寫(xiě)器將首先與每一張卡片進(jìn)行通信,取得每一張卡片的系列號。由于每一張Mifare卡片都具有其唯一的序列號,決不會(huì )相同,因此讀寫(xiě)器根據卡片的序列號來(lái)保證一次只對一張卡操作。該操作讀寫(xiě)器得到卡的返回值為卡的序列號。
(4)Select Tag(選擇卡片):完成了上述二個(gè)步驟之后,讀寫(xiě)器必須對卡片進(jìn)行選擇操作。執行操作后,返回卡上的SIZE字節。
(5)Authentication(三次相互驗證):經(jīng)過(guò)上述三個(gè)步驟,在確認已經(jīng)選擇了一張卡片時(shí),讀寫(xiě)器在對卡進(jìn)行讀寫(xiě)操作之前,一必須對卡片上已經(jīng)設置的密碼進(jìn)行認證。如果匹配,才允許進(jìn)一步的讀寫(xiě)操作。
(6)讀寫(xiě)操作:對卡的最后操作是讀、寫(xiě)、增值、減值、存儲和傳送等操作。
評論