在銀行、身份識別和電信市場中,對安全和增強(qiáng)的功能性不斷增長的需要,增加了全球范圍智能卡的使用。另一方面,這也使得對安全性較低的磁條卡的使用量下降。
然而,所需的基于智能卡系統(tǒng)中,適當(dāng)?shù)耐ㄐ畔到y(tǒng)的硬件和固件開發(fā),給設(shè)計(jì)師帶來了新的挑戰(zhàn)。不幸的是,只有一些高檔微控制器具有可以直接驅(qū)動智能卡的專用UART。里所述的設(shè)計(jì),可以讓你采用低端8位微控制器上標(biāo)準(zhǔn)的UART來驅(qū)動智能卡,本文采用的MCU為Atmel公司的AVR ATmega168。
智能卡只有一條與外界通信的路徑,即標(biāo)記的(labeled)I/O,所以它被用作一種數(shù)據(jù)輸入輸出信號的雙向信號。該信號必須與UART的傳輸和接收信號的接收信號RxD和TxD分別組成列隊(duì)。因?yàn)镽xD是輸入信號而TxD是輸出信號, 必須用1Ω電阻將它們連接到智能卡I/O線以避免線連接(見圖).
在固件方面,設(shè)計(jì)一定要實(shí)現(xiàn)從智能卡接收和向智能卡傳送數(shù)據(jù)的特定程序。一方面,接收來自智能卡一個字節(jié),系統(tǒng)必須中止(disable)UART的發(fā)射機(jī)單元,這也還是為了以避免線連接。
另一方面,向智能卡傳送一個字,固件必須中止(disable)UART的接收單元以避免接收回聲特性。然而,它必須等直到字節(jié)傳輸結(jié)束,以避免錯誤字節(jié)的接收。這樣,你可以采用電子信號和傳輸協(xié)議ISO 7816-3中智能卡標(biāo)準(zhǔn)第3部分所描述的T=0的協(xié)議,與智能卡往復(fù)交流信息。
為了完全符合描述智能卡通信協(xié)議的標(biāo)準(zhǔn),設(shè)計(jì)必須實(shí)現(xiàn)ISO7816-3標(biāo)準(zhǔn)中所定義的奇偶校驗(yàn)誤差探測和重傳機(jī)制。