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