色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 智能卡控制器IP核的設(shè)計(jì)與實(shí)現(xiàn)

          智能卡控制器IP核的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2011-04-15 來源:網(wǎng)絡(luò) 收藏
          1、引言
          隨著信息技術(shù)的飛速發(fā)展,越來越多的地方要求對(duì)用戶身份的識(shí)別以及重要數(shù)據(jù)的安全存儲(chǔ)。而(SmartCard)又稱集成電路卡(Integrated Circuit Card 即IC卡),是具有高的可靠性安全性和靈活性的數(shù)據(jù)承載設(shè)備,現(xiàn)已被廣泛應(yīng)用于政府、金融、電信、交通及公共事業(yè)等領(lǐng)域。
          控制器是連接和主控設(shè)備的橋梁,由于智能卡的應(yīng)用不斷增加,越來越多的SOC芯片內(nèi)嵌了智能卡控制器。這種基于的設(shè)計(jì)方式已成為IC設(shè)計(jì)的主流,這里主要介紹智能卡控制器的數(shù)字邏輯實(shí)現(xiàn)方法以及其在硬盤加密芯片中的應(yīng)用。
          2、協(xié)議簡(jiǎn)介
          這里僅對(duì)本文中要用到的部分協(xié)議內(nèi)容作簡(jiǎn)要說明,詳細(xì)的協(xié)議內(nèi)容請(qǐng)見參考文獻(xiàn)1。
          智能卡共有八個(gè)觸點(diǎn),其中有用的就C1、C2、C3、C5、C6、和C7六個(gè)觸點(diǎn),具體見下表:
          表1:智能卡觸點(diǎn)
          智能卡控制器是通過智能卡觸點(diǎn)C7(I/O)與控制器進(jìn)行半雙工串行通信的,在每一時(shí)刻觸點(diǎn)C7只有狀態(tài)Z和狀態(tài)A兩種狀態(tài)。
          智能卡要傳輸一個(gè)字節(jié)(8個(gè)Bit)數(shù)據(jù)的要11個(gè)Bit位的時(shí)間寬度,在下表中被記成t1到t11。其中第一個(gè)時(shí)刻t1傳輸?shù)腟tart位被稱為起始位;第二到第九個(gè)時(shí)刻,即時(shí)刻t2到時(shí)刻t9,傳輸?shù)臄?shù)據(jù)ba到bh為一個(gè)字節(jié)的八個(gè)位;時(shí)刻t10傳送的pi位為奇偶校驗(yàn)位;最后一個(gè)時(shí)刻t11傳輸?shù)腟top位被稱為停止位,標(biāo)志著一個(gè)字節(jié)(8個(gè)Bit)的數(shù)據(jù)傳輸完成。請(qǐng)見下表:

          表2:智能卡串行傳輸數(shù)據(jù)格式
          3、微體系結(jié)構(gòu)
          3.1、接口信號(hào)
          該IP核接口主要分為CPU總線接口、中斷信號(hào)和智能卡控制接口,這里主要介紹一下有關(guān)智能卡控制的接口信號(hào),即連接或控制智能卡上有效觸點(diǎn)的信號(hào),它們?yōu)椋?/DIV>
          1)智能卡是否存在信號(hào)IC_PRES:用于探測(cè)智能卡座上是否有智能卡存在,當(dāng)有智能卡插入或拔出時(shí),該信號(hào)的電平發(fā)生跳變,本IP核能夠探測(cè)該信號(hào)的電平的變化,并以中斷等方式報(bào)告給CPU;
          2)智能卡電源控制信號(hào)IC_PWR:用于控制智能卡的電源VCC或VPP(觸點(diǎn)C1或C6),用于打開和關(guān)閉智能卡電源;
          3)時(shí)鐘信號(hào)IC_CLK:同智能卡觸點(diǎn)C3相連接,用于向智能卡輸入一定頻率的時(shí)鐘信號(hào);
          4)復(fù)位信號(hào)IC_RST:同智能卡觸點(diǎn)C2相連接,用于向智能卡發(fā)出復(fù)位信號(hào);
          5)雙向串行數(shù)據(jù)信號(hào)IC_IO:同智能卡觸點(diǎn)C7相連接,用于實(shí)現(xiàn)與智能卡的雙向數(shù)據(jù)通信。

          3.2、模塊和功能

          智能卡控制器核內(nèi)部有發(fā)送和接收模塊(Transmitter and Receiver)、中斷仲裁模塊(Interrupt Arbitrator)、函數(shù)模塊(Function Generator)、時(shí)鐘模塊(Clock Generator)、智能卡接口模塊(Interface Device)和訪問寄存器模塊(Register Access Control)六大模塊,這些模塊之間的關(guān)系見圖1所示:

          圖1智能卡控制器模塊結(jié)構(gòu)圖

          主要模塊功能及特征描述如下:
          1. 發(fā)送和接收模塊
          發(fā)送和接收模塊負(fù)責(zé)處理數(shù)據(jù)幀的發(fā)送和接收。發(fā)送模塊是將FIFO發(fā)送隊(duì)列中的數(shù)據(jù)按照設(shè)定的格式把并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)幀,并通過發(fā)送端口送出去。接收模塊則監(jiān)視接收端信號(hào),一旦出現(xiàn)有效開始位,就進(jìn)行接收,并實(shí)現(xiàn)將接收到的異步串行數(shù)據(jù)幀轉(zhuǎn)換為并行數(shù)據(jù),存入FIFO接收隊(duì)列中,同時(shí)檢查數(shù)據(jù)幀格式是否有錯(cuò)。智能卡控制器的幀結(jié)構(gòu)是通過LCR(Line Control Reg)寄存器設(shè)置的,接收和傳送器的狀態(tài)被保存在LSR(Line Status Reg)寄存器中。
          2. 中斷仲裁模塊
          當(dāng)任何一種中斷條件被滿足時(shí),并且在中斷使能寄存器(IER, Interrupt Enable Reg)中相應(yīng)位置1,那么智能卡的中斷請(qǐng)求信號(hào)INT被置為有效狀態(tài)。為了減少和外部軟件的交互,智能卡控制器把中斷分為四個(gè)級(jí)別,并且在中斷標(biāo)識(shí)寄存器(IIR, Interrupt ID Reg)中標(biāo)識(shí)這些中斷。四個(gè)級(jí)別的中斷按優(yōu)先級(jí)級(jí)別由高到低的順序排列為:智能卡插拔中斷、接收線路狀態(tài)中斷、接收數(shù)據(jù)準(zhǔn)備好中斷和傳送擁有寄存器為空中斷;。
          3. 函數(shù)模塊
          該模塊產(chǎn)生智能卡的相關(guān)時(shí)序。通過向函數(shù)寄存器(FR, Function Register)相應(yīng)的位置入相關(guān)的參數(shù)來探測(cè)智能卡、管理電源和產(chǎn)生復(fù)位時(shí)序等。
          4. 時(shí)鐘模塊
          時(shí)鐘模塊產(chǎn)生相應(yīng)頻率的時(shí)鐘供給智能卡,時(shí)鐘的頻率由CPU總線的時(shí)鐘頻率和寫入時(shí)鐘分頻寄存器(CDR, Clock Divisor Register)的值來決定,關(guān)系表達(dá)式如下:
          fIC_CLK = fCPU /(2 * CDR)
          5. 智能卡接口模塊
          該模塊將相關(guān)信號(hào)進(jìn)行適當(dāng)?shù)恼{(diào)整,以便適合于IC智能卡的通信。
          6. 訪問寄存器模塊
          當(dāng)智能卡控制器被總線控制器選中時(shí),CPU可通過讀或?qū)懖僮髟L問被地址線選中的寄存器。
          4、設(shè)計(jì)實(shí)現(xiàn)
          這部分將對(duì)本智能卡控制器中主要模塊的數(shù)字邏輯的實(shí)現(xiàn)方法逐一作簡(jiǎn)單說明。
          4.1、數(shù)據(jù)接收模塊
          在設(shè)計(jì)接收模塊的過程中,關(guān)鍵是如何實(shí)現(xiàn)Receiver Shift的邏輯電路,下圖是本智能卡控制器數(shù)據(jù)接收模塊中有關(guān)Receiver Shift邏輯電路的主控狀態(tài)轉(zhuǎn)換圖:
          圖2 接收模塊主控狀機(jī)

          該狀態(tài)機(jī)共有十個(gè)狀態(tài),其中主要狀態(tài)是:狀態(tài)1(REC_START)用來探測(cè)數(shù)據(jù)的起始位Start;狀態(tài)2(REC_BIT)用來接收數(shù)據(jù)ba到bh,組成一個(gè)字節(jié);狀態(tài)3(REC_PARITY)用來接收數(shù)據(jù)的奇偶校驗(yàn)位;狀態(tài)4(REC_STOP)探測(cè)Stop位。

          下面是該狀態(tài)機(jī)控制有關(guān)邏輯讀入數(shù)據(jù)的仿真波形圖:

          3 接收一個(gè)字節(jié)數(shù)據(jù)的狀態(tài)變換波形圖

          4.2、數(shù)據(jù)發(fā)送模塊
          同樣, 對(duì)于發(fā)送模塊的設(shè)計(jì),主要問題也是如何實(shí)現(xiàn)Transmitter Shift的邏輯電路,下圖是本智能卡控制器數(shù)據(jù)發(fā)送模塊的主控狀態(tài)轉(zhuǎn)換圖:

          圖4 發(fā)送模塊主控狀機(jī)

          該狀態(tài)機(jī)共有五個(gè)狀態(tài):狀態(tài)1(SEND_START)用來發(fā)送數(shù)據(jù)的起始位Start;狀態(tài)2(SEND_BYTE)用來發(fā)送數(shù)據(jù)ba到bh;狀態(tài)3(SEND_PARITY)用來發(fā)送數(shù)據(jù)的奇偶校驗(yàn)位;狀態(tài)4(SEND_STOP)發(fā)送Stop位,最后狀態(tài)機(jī)轉(zhuǎn)入空閑狀態(tài)0(SEND_IDLE)。
          下面是該狀態(tài)機(jī)控制有關(guān)邏輯發(fā)送數(shù)據(jù)的仿真波形圖:

          圖5發(fā)送一個(gè)字節(jié)數(shù)據(jù)的狀態(tài)變換波形圖
          4.3、函數(shù)模塊
          函數(shù)模塊可以在軟件控制下產(chǎn)生激活智能卡和關(guān)閉智能卡所需的相關(guān)時(shí)序。這里簡(jiǎn)單介紹一下本控制器在軟件的支配下,激活智能卡的過程,見下面的波形圖。
          圖6激活智能卡時(shí)的波形圖

          在該波形圖中,信號(hào)IC_PRES首先變低,表明有智能卡插入。接著智能卡控制器通過IC_PWR打開智能卡的電源。待電源穩(wěn)定后,智能卡控制器通過IC_CLK向智能卡輸出時(shí)鐘信號(hào)。同樣,在時(shí)鐘穩(wěn)定后,智能卡控制器通過IC_RST向智能卡輸出復(fù)位信號(hào)。最后智能卡控制器在數(shù)據(jù)信號(hào)IC_IO上探測(cè)到智能卡復(fù)位應(yīng)答(ATR,Answer to Reset),這樣就完成了智能卡的激活工作。
          5.結(jié)論
          本方案所設(shè)計(jì)的智能卡控制器IP核,采用 HDL,以較少的硬件代價(jià),在本公司研發(fā)的硬盤數(shù)據(jù)加密芯片中,成功實(shí)現(xiàn)了對(duì)智能卡密鑰的讀寫控制,并且該方案具有較強(qiáng)的靈活性,可以方便地移植到其它嵌入式應(yīng)用系統(tǒng)中,具有較高的使用價(jià)值。


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉