基于IC智能卡中的非接觸式讀寫(xiě)模塊設(shè)計(jì)
讀寫(xiě)卡過(guò)程是一個(gè)較復(fù)雜的程序執(zhí)行過(guò)程,其軟件流程圖如圖3所示,讀寫(xiě)卡過(guò)程需要執(zhí)行一系列的操作指令,并需調(diào)用多個(gè)C51函數(shù)。如果采用自動(dòng)尋卡方式,MCU需要每隔0.5秒自動(dòng)尋卡一次,如果尋到卡,則ICC置1。
5.1 請(qǐng)求操作
當(dāng)一張Mifare卡片處在讀寫(xiě)模塊天線的工作范圍之內(nèi)時(shí).上位機(jī)通過(guò)發(fā)送命令來(lái)控制讀寫(xiě)模塊向卡片發(fā)出REQUEST all(或REQUEST std)命令??ㄆ腁TR將啟動(dòng),并將卡片BlockO中的卡片類型(TagType)號(hào)(共2個(gè)字節(jié))傳送給讀寫(xiě)模塊。以建立卡片與讀寫(xiě)模塊的第一步通信聯(lián)絡(luò)。如果請(qǐng)求卡操作不成功,讀寫(xiě)模塊對(duì)卡片的其它操作將不會(huì)進(jìn)行。
5.2 防沖突操作
如果有多張Mifare卡片處在卡片讀寫(xiě)模塊天線的工作范圍之內(nèi)時(shí),讀寫(xiě)模塊將首先與每一張卡片進(jìn)行通信。以取得每一張卡片的序列號(hào)。由于每一張Mifare卡片都有其唯一的序列號(hào),因此讀寫(xiě)模塊可根據(jù)卡片的序列號(hào)來(lái)保證一次只對(duì)一張卡操作。該操作得到的卡的返回值即為卡的序列號(hào)。
5.3 卡選擇操作
完成了上述二個(gè)步驟之后,讀卡模塊必須對(duì)卡片進(jìn)行選擇操作。執(zhí)行操作后,返回卡上的卡片序列號(hào)(UID)。
5.4 認(rèn)證操作
經(jīng)過(guò)上述三個(gè)步驟,在確認(rèn)已經(jīng)選擇了一張卡片時(shí)??ㄆx寫(xiě)模塊在對(duì)卡進(jìn)行讀寫(xiě)操作之前。必須對(duì)卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證,如果匹配,才允許進(jìn)一步的讀寫(xiě)操作。
5.5 讀寫(xiě)操作
對(duì)卡的最后操作包括卡片初始化卡值、讀卡、寫(xiě)卡、增值、減值、存儲(chǔ)等。
6 結(jié)束語(yǔ)
本文主要介紹了一種基于FM1702SL的射頻識(shí)別讀寫(xiě)模塊的設(shè)計(jì)方法。此模塊只需要上位機(jī)通過(guò)選定的UART或IIC接口來(lái)發(fā)送命令就可以完成對(duì)卡片的操作。經(jīng)實(shí)際應(yīng)用證明,該讀寫(xiě)模塊具有電路穩(wěn)定、易嵌入到其他模塊使用、功耗低等良好性能。能方便應(yīng)用于各種不同的射頻識(shí)別應(yīng)用系統(tǒng).如考勤系統(tǒng)、門(mén)禁系統(tǒng)、公交車(chē)收費(fèi)系統(tǒng).以及各種水、電、氣表計(jì)費(fèi)系統(tǒng)等,有十分廣闊的應(yīng)用前景。
評(píng)論