基于IC智能卡中的非接觸式讀寫模塊設(shè)計
引言
IC智能卡中的接觸式卡以及非接觸式IC智能射頻卡的高度安全保密性。使之在IC卡領(lǐng)域異軍突起。特別是在公共交通行業(yè)的電子車票、衛(wèi)生醫(yī)藥中的醫(yī)療保險、停車場等封閉式場所管理、身份識別、智能大廈中的電子巡更保安系統(tǒng)等領(lǐng)域中應(yīng)用前景尤為廣闊[1]。
目前國際上非接觸式IC智能射頻卡中的主流技術(shù)是PHILIPS公司的MIFARE技術(shù).已經(jīng)被制定為國際標(biāo)準(zhǔn)一IS014443 TYPEA標(biāo)準(zhǔn)。本模塊采用的國產(chǎn)非接觸卡讀卡機(jī)專用芯片F(xiàn)M1702,正是基于此國際標(biāo)準(zhǔn)。該模塊具有體積小、易于嵌入到應(yīng)用系統(tǒng)中使用的特點(diǎn)。
1 FM1702SL簡介
FM1702SL是復(fù)旦微電子股份有限公司基于IS014443標(biāo)準(zhǔn)設(shè)計的非接觸卡讀卡機(jī)專用芯片,該芯片采用的是0.6微米CMOS EEPROM工藝制造.可支持ISOl4443 typeA協(xié)議和MIFARE標(biāo)準(zhǔn)的加密算法。芯片內(nèi)部集成了模擬調(diào)制解調(diào)電路。因而只需搭接最少量的外圍電路就可以工作。FM1702SL芯片支持SPI接口,其數(shù)字電路具有TTL、CMOS兩種電壓工作模式。特別適用于ISO14443標(biāo)準(zhǔn)下的水、電、煤氣表等計費(fèi)系統(tǒng)的讀卡器的應(yīng)用。該芯片的三路電源都適用于低電壓。
2 非接觸讀寫系統(tǒng)組成
該系統(tǒng)主要由MCU、FM1702SL、RS232/I2C通信模塊、ISP在線調(diào)試接口和天線組成。系統(tǒng)組成框圖如圖1所示。用戶只需簡單地通過選定的UART或IIC接口發(fā)送命令就可以對卡片進(jìn)行操作,MCU根據(jù)接收到的命令來控制FM1702SL,并由FM1702SL驅(qū)動天線對MiFare卡進(jìn)行讀寫操作。
系統(tǒng)MCU采用PHILIPS增強(qiáng)型單片機(jī)LPC931,其可以通過ISP在線調(diào)試,且運(yùn)行穩(wěn)定。射頻非接觸式IC卡讀寫模塊同時支持IIC和UART通訊接口。通過對模塊的引腳設(shè)置電平可確定模塊的通訊端口是IIC還是UART。
3 天線設(shè)計[2]
系統(tǒng)數(shù)據(jù)存儲在無源Mifare卡中。讀寫模塊的主要任務(wù)是將能量傳輸給Mifare卡。并與之建立通信。天線是非接觸式IC卡讀寫模塊的一個重要組成部分,在讀寫模塊和非接觸式IC卡通信過程中,天線用于產(chǎn)生能發(fā)射和接收射頻信號的磁通量.而磁通量用于向卡提供電源并在讀寫模塊和卡片之間傳送信息。因此,在設(shè)計中要求天線線圈的電流最大,以用于產(chǎn)生最大的磁通量,并要確保有足夠的帶寬。讀寫模塊的性能與天線的參數(shù)有著直接的關(guān)系。在對天線的性能進(jìn)行優(yōu)化之后。讀寫模塊的讀卡距離可以達(dá)到10 cm。
由于FM1702SL的頻率是13.56 MHz.屬于短波段,因此可以采用小環(huán)天線。小環(huán)天線有方型、圓形、橢圓型、三角型等,本系統(tǒng)采用的是矩型天線。天線的最大幾何尺寸同工作波長之間沒有一個嚴(yán)格的界限。一般定義為:
L/λ≤1/(2π) (1)
式中,L是天線的最大尺寸,λ是工作波長。對于13.6 MHz的系統(tǒng)來說,天線的最大尺寸在50cm左右。
在天線設(shè)計中,品質(zhì)因數(shù)Q是一個非常重要的參數(shù)。對于電感耦合式射頻識別系統(tǒng)的讀寫器天線來說。較高的品質(zhì)因數(shù)值會使天線線圈中的電流強(qiáng)度也較大,由此可改善對卡的傳送功率。品質(zhì)因數(shù)的計算公式為:
式中,f0是工作頻率,Lcoil是天線的尺寸,Rcoil是天線的半徑。
通過品質(zhì)因數(shù)可以很容易地計算出天線的帶寬:
B=f0/Q (3)
從式中可以看出,天線的傳輸帶寬與品質(zhì)因數(shù)成反比關(guān)系。因此。過高的品質(zhì)因數(shù)會導(dǎo)致帶寬縮小,從而減弱讀寫器的調(diào)制邊帶,導(dǎo)致無法與卡通信。一般系統(tǒng)的最佳品質(zhì)因數(shù)為10-30,最大不能超過60。
4 硬件電路
圖2為FM1702SL與MCU的主要部分的接口電路。系統(tǒng)通過接收上位機(jī)的數(shù)據(jù),并根據(jù)接收到的相關(guān)命令進(jìn)行工作。另外。也可設(shè)定為自動尋卡方式,而無需上位機(jī)頻繁發(fā)送尋卡指令,即當(dāng)卡片進(jìn)入到天線區(qū)后在ICC引腳上出現(xiàn)低電平告知上位機(jī),上位機(jī)則通過尋卡指令直接讀取卡片序列號。
5 軟件設(shè)計[3]
讀寫器軟件編程是采用標(biāo)準(zhǔn)C語言程序來實(shí)現(xiàn)對非接觸式IC卡的一系列操作。主要有:LPC931單片機(jī)初始化、FM1702SL初始化、接收命令數(shù)據(jù)處理、IC卡讀寫、防沖突、密碼驗證以及對卡片block(數(shù)據(jù)塊)操作程序等。
讀寫卡過程是一個較復(fù)雜的程序執(zhí)行過程,其軟件流程圖如圖3所示,讀寫卡過程需要執(zhí)行一系列的操作指令,并需調(diào)用多個C51函數(shù)。如果采用自動尋卡方式,MCU需要每隔0.5秒自動尋卡一次,如果尋到卡,則ICC置1。
5.1 請求操作
當(dāng)一張Mifare卡片處在讀寫模塊天線的工作范圍之內(nèi)時.上位機(jī)通過發(fā)送命令來控制讀寫模塊向卡片發(fā)出REQUEST all(或REQUEST std)命令。卡片的ATR將啟動,并將卡片BlockO中的卡片類型(TagType)號(共2個字節(jié))傳送給讀寫模塊。以建立卡片與讀寫模塊的第一步通信聯(lián)絡(luò)。如果請求卡操作不成功,讀寫模塊對卡片的其它操作將不會進(jìn)行。
5.2 防沖突操作
如果有多張Mifare卡片處在卡片讀寫模塊天線的工作范圍之內(nèi)時,讀寫模塊將首先與每一張卡片進(jìn)行通信。以取得每一張卡片的序列號。由于每一張Mifare卡片都有其唯一的序列號,因此讀寫模塊可根據(jù)卡片的序列號來保證一次只對一張卡操作。該操作得到的卡的返回值即為卡的序列號。
5.3 卡選擇操作
完成了上述二個步驟之后,讀卡模塊必須對卡片進(jìn)行選擇操作。執(zhí)行操作后,返回卡上的卡片序列號(UID)。
5.4 認(rèn)證操作
經(jīng)過上述三個步驟,在確認(rèn)已經(jīng)選擇了一張卡片時??ㄆx寫模塊在對卡進(jìn)行讀寫操作之前。必須對卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證,如果匹配,才允許進(jìn)一步的讀寫操作。
5.5 讀寫操作
對卡的最后操作包括卡片初始化卡值、讀卡、寫卡、增值、減值、存儲等。
6 結(jié)束語
本文主要介紹了一種基于FM1702SL的射頻識別讀寫模塊的設(shè)計方法。此模塊只需要上位機(jī)通過選定的UART或IIC接口來發(fā)送命令就可以完成對卡片的操作。經(jīng)實(shí)際應(yīng)用證明,該讀寫模塊具有電路穩(wěn)定、易嵌入到其他模塊使用、功耗低等良好性能。能方便應(yīng)用于各種不同的射頻識別應(yīng)用系統(tǒng).如考勤系統(tǒng)、門禁系統(tǒng)、公交車收費(fèi)系統(tǒng).以及各種水、電、氣表計費(fèi)系統(tǒng)等,有十分廣闊的應(yīng)用前景。