基于UART的智能卡接口IP核設計
摘要:分析了UART核的結構和智能卡的傳輸協(xié)議,提出一種基于UART核的智能卡接口IP核的設計。該設計以成熟的UART核為基礎,無(wú)需編寫(xiě)異步串口的時(shí)序與接口邏輯,僅在串口核中增加收發(fā)緩沖器和協(xié)議處理等模塊,減少了工作量并縮短了開(kāi)發(fā)周期。最后對所設計的IP核進(jìn)行仿真和實(shí)際測試,結果表明該IP核設計正確,運行穩定,適合在多卡系統中應用。
關(guān)鍵詞:UART;智能卡;IC卡;IP核;FPGA
引言
智能卡以其安全、靈活、通用等特點(diǎn),被廣泛應用在金融、交通以及其他安全終端設備上。目前許多讀卡器都采用單片機來(lái)實(shí)現,而在一些特殊應用中,同時(shí)需要多張甚至10張以上的智能卡。由于卡片嚴格的時(shí)序要求,僅用單片機已經(jīng)很難實(shí)現多卡的并行操作。FPGA具有硬件并行性和可編程等優(yōu)點(diǎn),很容易實(shí)現并行且對時(shí)序邏輯要求較高的操作,同時(shí)IP核的應用又給基于FPGA的開(kāi)發(fā)帶來(lái)了極大的便利,能減少大量開(kāi)發(fā)時(shí)間。
本文首先介紹了智能卡的基本規范,著(zhù)重分析字符傳輸協(xié)議(T=0)的操作流程。然后分析了Altera公司提供的UART IP核的結構,在此基礎上給出了智能卡接口IP核的設計,并結合智能卡的操作流程,給出了傳輸協(xié)議的狀態(tài)轉換圖以及實(shí)現方法。最后對IP核進(jìn)行仿真分析和實(shí)際測試。
1 智能卡操作流程簡(jiǎn)介
智能卡是IC卡的一種,帶有微處理器、存儲單元以及芯片操作系統,不僅具有數據存儲功能,同時(shí)還具有命令處理和數據安全保護等功能。智能卡采用異步半雙工通信方式,其傳輸協(xié)議分為字符傳輸協(xié)議(T=0)和塊傳輸協(xié)議(T=1),本文重點(diǎn)討論字符傳輸協(xié)議(T=0),它是目前使用較廣泛的通信協(xié)議。
智能卡主要有復位操作和指令操作。復位操作是將智能卡的復位引腳拉低若干周期,拉高后智能卡回復1個(gè)數據幀,提供了協(xié)議選擇、時(shí)鐘轉換因子、波特率調整因子等參數,可供后續操作使用。該幀的長(cháng)度在第2個(gè)字節中體現,因此先接收2個(gè)字節,再接收固定長(cháng)度的數據,操作流程圖如圖1所示。
T=0時(shí),指令操作主要有4種情況,如表1所列。
根據中國金融集成電路(IC)卡規范的規定,可在情況1后面補0,組成5字節指令。這時(shí),4種情況都可歸納為:發(fā)送前5字節,等待接收1字節回復,由回復決定后續的操作。
1字節的回復分為過(guò)程字節和狀態(tài)字節兩類(lèi),過(guò)程字節主要有INS(或INS補碼)、60、61、6C;除過(guò)程字節以外的其他回復都屬于狀態(tài)字節。收到過(guò)程字節后須執行對應操作。接收到狀態(tài)字節后須再等待接收1字節狀態(tài)回復,將兩個(gè)狀態(tài)字節上傳給控制器,終止本次操作。T=0
時(shí)的指令操作流程圖如圖2所示。
2 智能卡接口IP核的設計與實(shí)現
2.1 UART核分析
UART接口已經(jīng)很成熟,已有許多現成的IP核可使用,利用UART進(jìn)行智能卡接口IP核的設計可減少大量的開(kāi)發(fā)時(shí)間。本文以Altera公司的Avalon總線(xiàn)接口的UART核(下文中所有UART核均指該核)為基礎進(jìn)行設計。
評論