基于AMBA總線的智能卡控制器設(shè)計
3 模塊劃分及硬件實現(xiàn)
智能卡控制器包括復(fù)位控制模塊,收發(fā)控制模塊,總線接口模塊,讀緩沖器模塊,寫緩沖器模塊,通過APB接口和AMBA總線相連,對外是CLK,RST,和1根雙向的I/O數(shù)據(jù)線(如圖2所示)。
實現(xiàn)各模塊功能需設(shè)置如下寄存器(如表1所示)。
3.1 復(fù)位控制模塊
復(fù)位控制模塊通過狀態(tài)機的跳變完成對智能卡的復(fù)位(如圖3所示)。當智能卡上電后,系統(tǒng)初始處于IDLE狀態(tài),控制器在使能后按照規(guī)范向智能卡發(fā)出冷復(fù)位信號。首先RST復(fù)位信號置低400個CLK以上對卡復(fù)位,然后進入等待復(fù)位響應(yīng)狀態(tài)。控制器經(jīng)過1 860個CLK后還沒有收到復(fù)位響應(yīng)則可以選擇進入時鐘停止狀態(tài)。當時鐘恢復(fù)后,等待700個CLK后重新開始檢測復(fù)位響應(yīng)。當I/O數(shù)據(jù)線上檢測到負跳變,則進入起始位接收狀態(tài),一個ETU后順次進入數(shù)據(jù)接收,校驗位接收狀態(tài)。最后判斷校驗位正確與否,如果校驗正確就保持I/O線為高等待下一個數(shù)據(jù)的接收;如果出錯,則拉低I/O線1個ETU通知智能卡數(shù)據(jù)出錯,請求重傳,并設(shè)置錯誤次數(shù)計數(shù)器。
如果冷復(fù)位之后控制器沒有收到符合格式的復(fù)位響應(yīng),控制器就發(fā)出熱復(fù)位,熱復(fù)位過程同上。如果熱復(fù)位后40 000個時鐘周期內(nèi),控制器仍未檢測到復(fù)位響應(yīng),則控制器將結(jié)束會話,并釋放智能卡。
評論