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