專(zhuān)利名稱(chēng):一種智能卡驅(qū)動(dòng)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到智能卡,特別是涉及到通信領(lǐng)域智能卡的驅(qū)動(dòng)方法。
背景技術(shù):
智能卡是一種小型的嵌入式系統(tǒng),主要用于存儲(chǔ)和管理一些用戶信息,例如手機(jī)領(lǐng)域的UIM卡,SIM卡,PIM卡等都屬于智能卡。由于智能卡對(duì)時(shí)序的特殊要求,在當(dāng)前各種使用智能卡的系統(tǒng)中,一般需要一塊專(zhuān)門(mén)的芯片用于管理系統(tǒng)與智能卡之間的交互,如智能卡的狀態(tài)控制、與智能卡之間的數(shù)據(jù)傳輸以及傳輸過(guò)程中的糾錯(cuò)等。如今,隨著系統(tǒng)中智能卡的大量使用,用于智能卡管理的芯片所帶來(lái)的成本也越來(lái)越大。
針對(duì)這種情況,本發(fā)明提出了一種智能卡的驅(qū)動(dòng)方法,在嵌入式系統(tǒng)中利用軟件控制來(lái)驅(qū)動(dòng)智能卡,使得系統(tǒng)中無(wú)需使用專(zhuān)門(mén)的智能卡管理芯片,從而可以有效的降低系統(tǒng)成本。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是在不使用專(zhuān)用驅(qū)動(dòng)芯片的前提下,根據(jù)ISO/IEC 7816標(biāo)準(zhǔn),通過(guò)嵌入式系統(tǒng)芯片及其自帶的串口實(shí)現(xiàn)與智能卡之間的通信。
為實(shí)現(xiàn)上述目的,本發(fā)明提出了一種智能卡驅(qū)動(dòng)方法,包括如下步驟(1)嵌入式系統(tǒng)芯片中串口的發(fā)送引腳和接收引腳與所述智能卡的輸入/輸出引腳相連,以實(shí)現(xiàn)通信;(2)嵌入式系統(tǒng)芯片對(duì)智能卡進(jìn)行狀態(tài)控制;以及(3)嵌入式系統(tǒng)芯片與智能卡之間的數(shù)據(jù)收發(fā)和收發(fā)過(guò)程中的糾錯(cuò)處理。
進(jìn)一步,所述狀態(tài)控制包括冷復(fù)位和初始化,其步驟如下步驟11,對(duì)所述智能卡供電,并通過(guò)上拉電阻對(duì)所述智能卡的輸入/輸出引腳施加高電平;步驟12,所述嵌入式系統(tǒng)芯片的通用輸出口輸出低電平,以拉低所述智能卡的復(fù)位引腳的電平;步驟13,所述嵌入式系統(tǒng)芯片的時(shí)鐘輸出口打開(kāi),并向所述智能卡輸入時(shí)鐘信號(hào);以及步驟14,經(jīng)過(guò)數(shù)個(gè)時(shí)鐘周期后,所述嵌入式系統(tǒng)芯片的通用輸出口輸出高電平,以拉高所述復(fù)位引腳電平;以及步驟15,等待所述智能卡返回的復(fù)位響應(yīng)數(shù)據(jù),并根據(jù)ISO/IEC 7816標(biāo)準(zhǔn)對(duì)所述復(fù)位響應(yīng)數(shù)據(jù)進(jìn)行解析與處理。
其中,所述步驟15中的復(fù)位響應(yīng)數(shù)據(jù)在復(fù)位引腳電平拉高數(shù)個(gè)時(shí)鐘周期之后返回。
進(jìn)一步,所述狀態(tài)控制還包括熱復(fù)位,其步驟如下步驟21,通過(guò)所述上拉電阻對(duì)所述智能卡的輸入/輸出引腳施加高電平;步驟22,所述嵌入式系統(tǒng)芯片的通用輸出口輸出低電平,以拉低所述智能卡復(fù)位引腳的電平;以及步驟23,經(jīng)過(guò)數(shù)個(gè)時(shí)鐘周期后,所述嵌入式系統(tǒng)芯片的通用輸出口輸出高電平,以拉高所述智能卡復(fù)位引腳的電平。
進(jìn)一步,所述狀態(tài)控制還包括進(jìn)入空閑模式,其步驟為,在上一個(gè)數(shù)據(jù)包傳輸結(jié)束數(shù)個(gè)時(shí)鐘周期后,所述嵌入式系統(tǒng)芯片中時(shí)鐘輸出口關(guān)閉,以停止對(duì)所述智能卡輸入時(shí)鐘。
另外,所述狀態(tài)控制還包括退出空閑模式,其步驟包括步驟31,所述嵌入式系統(tǒng)芯片的時(shí)鐘輸出口打開(kāi),以給所述智能卡輸入時(shí)鐘信號(hào);以及步驟32,在時(shí)鐘信號(hào)重新輸入數(shù)個(gè)時(shí)鐘周期后,進(jìn)行數(shù)據(jù)傳輸。
進(jìn)一步,所述狀態(tài)控制還包括卡拒絕與卡去活,其步驟如下步驟41,所述嵌入式系統(tǒng)芯片的通用輸出口輸出低電平,以拉低所述智能卡的復(fù)位引腳的電平;以及步驟42,關(guān)閉所述嵌入式系統(tǒng)芯片的時(shí)鐘輸出口,以停止對(duì)所述智能卡輸入時(shí)鐘信號(hào)。
進(jìn)一步,所述數(shù)據(jù)收發(fā)的步驟包括步驟51,所述智能卡通過(guò)輸入/輸出引腳發(fā)出復(fù)位響應(yīng)數(shù)據(jù);以及步驟52,所述嵌入式系統(tǒng)芯片從自身串口中讀取所述數(shù)據(jù),并在所述串口的收發(fā)中斷處理函數(shù)中完成相應(yīng)的操作。
其中,所述步驟52中在所述串口的收發(fā)中斷處理函數(shù)中完成的相應(yīng)操作包括步驟521,根據(jù)所述復(fù)位響應(yīng)數(shù)據(jù)的第一個(gè)字節(jié)判斷所述智能卡的數(shù)據(jù)所采用的是正邏輯還是反邏輯;步驟522,根據(jù)所述復(fù)位響應(yīng)數(shù)據(jù)的后續(xù)字節(jié)解析所述智能卡返回的復(fù)位響應(yīng)數(shù)據(jù)的長(zhǎng)度;步驟523,接收所述復(fù)位響應(yīng)數(shù)據(jù),并在收完畢后交給上層模塊處理,之后進(jìn)入數(shù)據(jù)傳輸狀態(tài);以及步驟524,按照ISO/IEC 7816標(biāo)準(zhǔn),控制所述嵌入式系統(tǒng)芯片對(duì)所述智能卡的數(shù)據(jù)發(fā)送和數(shù)據(jù)接收流程。
所述數(shù)據(jù)接收過(guò)程中的糾錯(cuò)處理步驟包括若發(fā)現(xiàn)當(dāng)前接收字節(jié)有誤,則在接收完畢后拉低數(shù)據(jù)線上電壓,以通知智能卡當(dāng)前數(shù)據(jù)傳送有錯(cuò),并請(qǐng)求重發(fā)。
進(jìn)一步,所述數(shù)據(jù)發(fā)送過(guò)程的糾錯(cuò)處理的步驟包括步驟61,同時(shí)打開(kāi)所述嵌入式系統(tǒng)芯片的串口的發(fā)送中斷和接收中斷,使得所述串口在發(fā)送一個(gè)字節(jié)數(shù)據(jù)的同時(shí),也會(huì)接收到所發(fā)送的字節(jié);步驟62,在接收到自已發(fā)送的字節(jié)時(shí),所述嵌入式系統(tǒng)芯片啟動(dòng)硬件定時(shí)器;以及步驟63,在定時(shí)器到時(shí)之前,若串口又接收到一個(gè)字節(jié),則認(rèn)為上一字節(jié)發(fā)送出錯(cuò),需要重新發(fā)送;反之,若定時(shí)器到時(shí),而沒(méi)有收到其它字節(jié),則認(rèn)為上一字節(jié)已被智能卡正確接收,可以繼續(xù)發(fā)送下一字節(jié)。
在這里,對(duì)發(fā)送數(shù)據(jù)的最后一個(gè)發(fā)送字節(jié)不進(jìn)行糾錯(cuò),并且在上層任務(wù)中增加重試機(jī)制降低其影響。另外,所述糾錯(cuò)過(guò)程在所述串口的驅(qū)動(dòng)模塊中實(shí)現(xiàn)。
為實(shí)現(xiàn)上述目的,本發(fā)明還提出了一種智能卡驅(qū)動(dòng)裝置,由嵌入式系統(tǒng)芯片構(gòu)成,包括串口,具有用于連接所述智能卡的輸入/輸出引腳的接收引腳和發(fā)送引腳,以及用于實(shí)現(xiàn)糾錯(cuò)處理的驅(qū)動(dòng)模塊;通用輸出口,用于連接所述智能卡的復(fù)位引腳;時(shí)鐘輸出口,用于連接所述智能卡的時(shí)鐘引腳;以及控制模塊,用于控制嵌入式系統(tǒng)芯片各引腳的輸出。
其中,所述裝置還包括用于連接在所述智能卡的輸入/輸出引腳與電源之間的上拉電阻。所述串口的發(fā)送引腳通過(guò)防干擾器件與所述智能卡的輸入/輸出引腳相連。所述的時(shí)鐘輸出口通過(guò)分頻器件與所述智能卡的時(shí)鐘引腳相連。
根據(jù)本發(fā)明,在保證數(shù)據(jù)傳輸速率和糾錯(cuò)性能的前提下,使得系統(tǒng)中無(wú)需使用專(zhuān)門(mén)的智能卡管理芯片,從而能夠提高產(chǎn)品的自有知識(shí)產(chǎn)權(quán)比例,并使其在大規(guī)模應(yīng)用中能有效降低成本,進(jìn)而提高產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。
下面結(jié)合附圖和詳細(xì)實(shí)施方式對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
圖1為本發(fā)明的硬件連接示意圖;以及圖2為本發(fā)明的數(shù)據(jù)傳輸物理結(jié)構(gòu)圖。
具體實(shí)施例方式
圖1為本發(fā)明的硬件連接示意圖。如圖1所示,在嵌入式系統(tǒng)芯片10中包括一個(gè)串口13,串口13具有與智能卡20的輸入/輸出(I/O)引腳23相連的數(shù)據(jù)收發(fā)引腳SIN 11和SOUT 12,用于進(jìn)行數(shù)據(jù)傳輸。其中,SOUT 12先連接防干擾器件40,再與I/O引腳23相連,以降低信號(hào)噪聲。嵌入式系統(tǒng)芯片10的通用輸出口(GPO)14與智能卡20的復(fù)位(RST)引腳24相連,并且嵌入式系統(tǒng)芯片10的時(shí)鐘輸出口(MCKO)15通過(guò)分頻器件50與智能卡20的時(shí)鐘(CLK)引腳25相連。另外,智能卡20的VCC引腳22與電源直接相連,而其I/O引腳23通過(guò)一個(gè)上拉電阻30與電源相連用于施加高電平。
這樣,根據(jù)ISO/IEC 7816標(biāo)準(zhǔn)的規(guī)定的時(shí)序,通過(guò)使用軟件方法控制嵌入式系統(tǒng)芯片10的相應(yīng)端口,就可以控制智能卡20對(duì)應(yīng)引腳的電平信號(hào),從而實(shí)現(xiàn)對(duì)智能卡20的驅(qū)動(dòng)。對(duì)智能卡20的驅(qū)動(dòng)主要包括,狀態(tài)控制、數(shù)據(jù)收發(fā)以及收發(fā)糾錯(cuò),下面分別對(duì)其做詳細(xì)說(shuō)明。
根據(jù)ISO/IEC 7816標(biāo)準(zhǔn),對(duì)智能卡20的狀態(tài)控制主要有冷復(fù)位和初始化、熱復(fù)位、進(jìn)入空閑模式以及卡拒絕和卡去活四種。
對(duì)智能卡20進(jìn)行初始化和冷復(fù)位的操作為首先,開(kāi)機(jī)上電,通過(guò)VCC引腳22對(duì)智能卡供電,并且通過(guò)上拉電阻30對(duì)I/O引腳23施加高電平;第二步,使GPO 14輸出低電平,以拉低RST引腳24的電平;第三步,打開(kāi)MCKO 15的時(shí)鐘輸出,向智能卡20輸入時(shí)鐘信號(hào);第四步,在MCKO 15打開(kāi)至少400個(gè)時(shí)鐘周期后,智能卡的冷復(fù)位操作完成,此時(shí)GPO 14輸出高電平,以拉高智能卡20的RST引腳24的電平;最后,等待智能卡返回的ATR(Answer To Reset,復(fù)位響應(yīng))數(shù)據(jù),并根據(jù)ISO/IEC 7816標(biāo)準(zhǔn)對(duì)ATR數(shù)據(jù)進(jìn)行解析與處理,其中,ATR數(shù)據(jù)應(yīng)在RST引腳24的電平拉高后的400個(gè)時(shí)鐘周期之后,40000個(gè)時(shí)鐘周期之前返回。
在這里,從MCKO 15輸出的時(shí)鐘信號(hào)頻率為19.2MHz。
熱復(fù)位是指在其工作過(guò)程中進(jìn)行復(fù)位,對(duì)智能卡20進(jìn)行熱復(fù)位的操作為首先,通過(guò)上拉電阻30對(duì)I/O引腳23施加高電平;然后,從GPO 14輸出低電平,以拉低智能卡20中RST引腳24的電平;最后,在MCKO 15打開(kāi)至少400個(gè)時(shí)鐘周期后,智能卡20的復(fù)位操作完成,此時(shí)GPO 14輸出高電平,以拉高智能卡20的RST引腳24的電平。
智能卡20進(jìn)入空閑模式的操作為,在上一個(gè)數(shù)據(jù)包傳輸結(jié)束至少1860個(gè)時(shí)鐘周期后,關(guān)閉MCKO 15的時(shí)鐘輸出,以停止對(duì)智能卡20輸入時(shí)鐘,這時(shí),對(duì)時(shí)鐘輸入信號(hào)停止在高電平還是低電平?jīng)]有要求。
智能卡20退出空閑模式的操作為,在需要進(jìn)行數(shù)據(jù)傳輸時(shí)打開(kāi)MCKO 15的時(shí)鐘輸出,以給智能卡輸入時(shí)鐘信號(hào),在時(shí)鐘重新輸入后少700個(gè)時(shí)鐘周期后進(jìn)行數(shù)據(jù)傳輸。
對(duì)智能卡20進(jìn)行卡拒絕以及卡去活的操作為從GPO 14輸出低電平,以拉低智能卡20的RST引腳14的電平;以及,關(guān)閉MCKO 15的時(shí)鐘輸出,停止對(duì)智能卡輸入時(shí)鐘。
接下來(lái)說(shuō)明控制智能卡進(jìn)行數(shù)據(jù)收發(fā)的過(guò)程。如圖1所示,串口13的SIN11和SOUT 12均與智能卡20的I/O引腳23相連,以完成數(shù)據(jù)的收發(fā)和對(duì)ATR數(shù)據(jù)的解析。
在初始化或復(fù)位操作完成后,智能卡20從I/O引腳23發(fā)出ATR數(shù)據(jù),嵌入式系統(tǒng)芯片10從串口13讀取這些數(shù)據(jù)后,在其串口收發(fā)中斷處理函數(shù)中對(duì)其完成以下操作首先,根據(jù)ATR數(shù)據(jù)的第一個(gè)字節(jié)判斷智能卡20的數(shù)據(jù)采用的是正邏輯還是反邏輯;其次,根據(jù)后續(xù)字節(jié)解析智能卡返回的ATR數(shù)據(jù)長(zhǎng)度;然后,在ATR接收完畢后,交給上層模塊處理,此后進(jìn)入數(shù)據(jù)傳輸狀態(tài)。
最后,按照ISO/IEC 7816標(biāo)準(zhǔn),利用軟件控制嵌入式系統(tǒng)芯片10實(shí)現(xiàn)對(duì)智能卡的數(shù)據(jù)發(fā)送和數(shù)據(jù)接收流程。
另外,在數(shù)據(jù)傳輸過(guò)程中,一個(gè)比較重要的問(wèn)題是如何按照ISO/IEC 7816標(biāo)準(zhǔn),利用軟件實(shí)現(xiàn)數(shù)據(jù)讀寫(xiě)過(guò)程中的糾錯(cuò)時(shí)序。在本發(fā)明的優(yōu)選實(shí)施方式中,采用對(duì)每一個(gè)收發(fā)數(shù)據(jù)進(jìn)行奇偶校驗(yàn)的方式檢測(cè)并防止數(shù)據(jù)傳輸出錯(cuò)。這里,根據(jù)智能卡20的數(shù)據(jù)傳輸協(xié)議ISO/IEC 7816,采用偶校驗(yàn)的方式。在接收過(guò)程中,若接收方發(fā)現(xiàn)當(dāng)前接收字節(jié)有誤,則在接收完畢后的1~2ETU(基本的時(shí)間單元,Elementary Time Unit)內(nèi)拉低數(shù)據(jù)線上電壓,以通知對(duì)方當(dāng)前數(shù)據(jù)傳送有錯(cuò),并請(qǐng)求重發(fā)。
圖2為本發(fā)明的數(shù)據(jù)傳輸物理結(jié)構(gòu)圖。
根據(jù)智能卡20數(shù)據(jù)收發(fā)糾錯(cuò)機(jī)制的設(shè)定,在空閑狀態(tài)下串口13與I/O引腳23之間的數(shù)據(jù)線上的電平始終為高;若該電平拉低1~2ETU時(shí)間,則串口13認(rèn)為是智能卡20發(fā)送數(shù)據(jù)的起始位。
串口13在接收數(shù)據(jù)的過(guò)程中,如果接收到的當(dāng)前字節(jié)有誤,則在接收完畢后1~2ETU內(nèi)拉低數(shù)據(jù)線上的電壓,在本發(fā)明的實(shí)施方式中采用串口13接收到錯(cuò)誤字節(jié)后立即發(fā)送數(shù)據(jù)“0x7F”的方法實(shí)現(xiàn),以通知智能卡20當(dāng)前數(shù)據(jù)傳送有錯(cuò),并請(qǐng)求智能卡20重發(fā)當(dāng)前數(shù)據(jù)。
串口13在發(fā)送數(shù)據(jù)的過(guò)程中,同時(shí)打開(kāi)其發(fā)送中斷和接收中斷。這樣,串口13在發(fā)出一個(gè)字節(jié)的數(shù)據(jù)時(shí),同時(shí)也會(huì)接收到所發(fā)送的字節(jié)。當(dāng)收到自已發(fā)出字節(jié)的時(shí),嵌入式系統(tǒng)芯片10將啟動(dòng)一個(gè)硬件定時(shí)器(未示出),其定時(shí)長(zhǎng)度大于10ETU即可,比如12ETU。若定時(shí)器到時(shí)之前,串口又接收到一個(gè)字節(jié),這時(shí)將產(chǎn)生一個(gè)接收中斷或出錯(cuò)中斷,則認(rèn)為上一字節(jié)發(fā)送出錯(cuò),需要重新發(fā)送上一字節(jié);若定時(shí)器到時(shí),并且沒(méi)有收到其它字節(jié),則認(rèn)為上一字節(jié)已被智能卡正確接收,繼續(xù)發(fā)送下一字節(jié)。
值得注意的是,由于某些智能卡的響應(yīng)過(guò)快,且加上嵌入式系統(tǒng)延時(shí)的影響,為確保能夠兼容各種類(lèi)型的智能卡,在實(shí)際應(yīng)用中對(duì)最后一個(gè)發(fā)送字節(jié)不進(jìn)行糾錯(cuò),而是在上層任務(wù)中增加重試機(jī)制降低其影響,即,上層模塊在處理接收到的數(shù)據(jù)時(shí),若發(fā)現(xiàn)數(shù)據(jù)有錯(cuò)則重新發(fā)出上一次的數(shù)據(jù)請(qǐng)求。
同時(shí),為了不影響正常收發(fā)數(shù)據(jù)時(shí)的處理流程,使本發(fā)明的方法與采用專(zhuān)用芯片驅(qū)動(dòng)智能卡時(shí)正常收發(fā)數(shù)據(jù)的處理流程保持一致,上述發(fā)送糾錯(cuò)以及接收糾錯(cuò)過(guò)程應(yīng)當(dāng)全部在串口驅(qū)動(dòng)模塊中實(shí)現(xiàn)。這樣,對(duì)智能卡驅(qū)動(dòng)模塊來(lái)說(shuō),其收發(fā)數(shù)據(jù)的糾錯(cuò)機(jī)制可以認(rèn)為是透明的,而上層軟件仍然只需考慮正常收發(fā)的處理即可。
這樣,通過(guò)上述步驟就可以實(shí)現(xiàn)利用軟件控制來(lái)驅(qū)動(dòng)智能卡正常工作,而無(wú)需使用專(zhuān)門(mén)的驅(qū)動(dòng)芯片。本發(fā)明的方法已經(jīng)在X平臺(tái)的VX4項(xiàng)目中使用,結(jié)果表明智能卡工作正常,并且對(duì)項(xiàng)目的成本控制具有明顯幫助。
應(yīng)當(dāng)指出,雖然通過(guò)上述實(shí)施方式對(duì)本發(fā)明進(jìn)行了描述,然而本發(fā)明還可有其它多種實(shí)施方式。在不脫離本發(fā)明精神和范圍的前提下,熟悉本領(lǐng)域的技術(shù)人員顯然可以對(duì)本發(fā)明做出各種相應(yīng)的改變和變形,但這些改變和變形都應(yīng)當(dāng)屬于本發(fā)明所附權(quán)利要求及其等效物所保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種智能卡驅(qū)動(dòng)方法,其特征在于,所述方法包括如下步驟(1)嵌入式系統(tǒng)芯片中串口的發(fā)送引腳和接收引腳與所述智能卡的輸入/輸出引腳相連,以實(shí)現(xiàn)通信;(2)嵌入式系統(tǒng)芯片對(duì)智能卡進(jìn)行狀態(tài)控制;以及(3)嵌入式系統(tǒng)芯片與智能卡之間的數(shù)據(jù)收發(fā)和收發(fā)過(guò)程中的糾錯(cuò)處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)控制包括冷復(fù)位和初始化,其步驟如下步驟11,對(duì)所述智能卡供電,并通過(guò)上拉電阻對(duì)所述智能卡的輸入/輸出引腳施加高電平;步驟12,所述嵌入式系統(tǒng)芯片的通用輸出口輸出低電平,以拉低所述智能卡的復(fù)位引腳的電平;步驟13,所述嵌入式系統(tǒng)芯片的時(shí)鐘輸出口打開(kāi),并向所述智能卡輸入時(shí)鐘信號(hào);以及步驟14,經(jīng)過(guò)數(shù)個(gè)時(shí)鐘周期后,所述嵌入式系統(tǒng)芯片的通用輸出口輸出高電平,以拉高所述復(fù)位引腳電平;以及步驟15,等待所述智能卡返回的復(fù)位響應(yīng)數(shù)據(jù),并根據(jù)ISO/IEC 7816標(biāo)準(zhǔn)對(duì)所述復(fù)位響應(yīng)數(shù)據(jù)進(jìn)行解析與處理。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟15中的復(fù)位響應(yīng)數(shù)據(jù)在復(fù)位引腳電平拉高數(shù)個(gè)時(shí)鐘周期之后返回。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)控制還包括熱復(fù)位,其步驟如下步驟21,通過(guò)所述上拉電阻對(duì)所述智能卡的輸入/輸出引腳施加高電平;步驟22,所述嵌入式系統(tǒng)芯片的通用輸出口輸出低電平,以拉低所述智能卡復(fù)位引腳的電平;以及步驟23,經(jīng)過(guò)數(shù)個(gè)時(shí)鐘周期后,所述嵌入式系統(tǒng)芯片的通用輸出口輸出高電平,以拉高所述智能卡復(fù)位引腳的電平。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)控制還包括進(jìn)入空閑模式,其步驟為,在上一個(gè)數(shù)據(jù)包傳輸結(jié)束數(shù)個(gè)時(shí)鐘周期后,所述嵌入式系統(tǒng)芯片中時(shí)鐘輸出口關(guān)閉,以停止對(duì)所述智能卡輸入時(shí)鐘。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)控制還包括退出空閑模式,其步驟包括步驟31,所述嵌入式系統(tǒng)芯片的時(shí)鐘輸出口打開(kāi),以給所述智能卡輸入時(shí)鐘信號(hào);以及步驟32,在時(shí)鐘信號(hào)重新輸入數(shù)個(gè)時(shí)鐘周期后,進(jìn)行數(shù)據(jù)傳輸。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)控制還包括卡拒絕與卡去活,其步驟如下步驟41,所述嵌入式系統(tǒng)芯片的通用輸出口輸出低電平,以拉低所述智能卡的復(fù)位引腳的電平;以及步驟42,關(guān)閉所述嵌入式系統(tǒng)芯片的時(shí)鐘輸出口,以停止對(duì)所述智能卡輸入時(shí)鐘信號(hào)。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)收發(fā)的步驟包括步驟51,所述智能卡通過(guò)輸入/輸出引腳發(fā)出復(fù)位響應(yīng)數(shù)據(jù);以及步驟52,所述嵌入式系統(tǒng)芯片從自身串口中讀取所述數(shù)據(jù),并在所述串口的收發(fā)中斷處理函數(shù)中完成相應(yīng)的操作。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述步驟52中在所述串口的收發(fā)中斷處理函數(shù)中完成的相應(yīng)操作包括步驟521,根據(jù)所述復(fù)位響應(yīng)數(shù)據(jù)的第一個(gè)字節(jié)判斷所述智能卡的數(shù)據(jù)所采用的是正邏輯還是反邏輯;步驟522,根據(jù)所述復(fù)位響應(yīng)數(shù)據(jù)的后續(xù)字節(jié)解析所述智能卡返回的復(fù)位響應(yīng)數(shù)據(jù)的長(zhǎng)度;步驟523,接收所述復(fù)位響應(yīng)數(shù)據(jù),并在收完畢后交給上層模塊處理,之后進(jìn)入數(shù)據(jù)傳輸狀態(tài);以及步驟524,按照ISO/IEC 7816標(biāo)準(zhǔn),控制所述嵌入式系統(tǒng)芯片對(duì)所述智能卡的數(shù)據(jù)發(fā)送和數(shù)據(jù)接收流程。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)接收過(guò)程中的糾錯(cuò)處理步驟包括若發(fā)現(xiàn)當(dāng)前接收字節(jié)有誤,則在接收完畢后拉低數(shù)據(jù)線上電壓,以通知智能卡當(dāng)前數(shù)據(jù)傳送有錯(cuò),并請(qǐng)求重發(fā)。
11.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)發(fā)送過(guò)程中的糾錯(cuò)處理的步驟包括步驟61,同時(shí)打開(kāi)所述嵌入式系統(tǒng)芯片的串口的發(fā)送中斷和接收中斷,使得所述串口在發(fā)送一個(gè)字節(jié)數(shù)據(jù)的同時(shí),也會(huì)接收到所發(fā)送的字節(jié);步驟62,在接收到自己發(fā)送的字節(jié)時(shí),所述嵌入式系統(tǒng)芯片啟動(dòng)硬件定時(shí)器;以及步驟63,在定時(shí)器到時(shí)之前,若串口又接收到一個(gè)字節(jié),則認(rèn)為上一字節(jié)發(fā)送出錯(cuò),需要重新發(fā)送;反之,若定時(shí)器到時(shí),而沒(méi)有收到其它字節(jié),則認(rèn)為上一字節(jié)已被智能卡正確接收,可以繼續(xù)發(fā)送下一字節(jié)。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,對(duì)發(fā)送數(shù)據(jù)的最后一個(gè)發(fā)送字節(jié)不進(jìn)行糾錯(cuò),并且在上層任務(wù)中增加重試機(jī)制以降低其影響。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述發(fā)送糾錯(cuò)過(guò)程和/或接收糾錯(cuò)過(guò)程在所述串口的驅(qū)動(dòng)模塊中實(shí)現(xiàn)。
14.一種智能卡驅(qū)動(dòng)裝置,由嵌入式系統(tǒng)芯片構(gòu)成,其特征在于,包括串口,具有用于連接所述智能卡的輸入/輸出引腳的接收引腳和發(fā)送引腳,以及用于實(shí)現(xiàn)糾錯(cuò)處理的驅(qū)動(dòng)模塊;通用輸出口,用于連接所述智能卡的復(fù)位引腳;時(shí)鐘輸出口,用于連接所述智能卡的時(shí)鐘引腳;以及控制模塊,用于控制嵌入式系統(tǒng)芯片各引腳的輸出。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,還包括用于連接在所述智能卡的輸入/輸出引腳與電源之間的上拉電阻。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述串口的發(fā)送引腳通過(guò)防干擾器件與所述智能卡的輸入/輸出引腳相連。
17.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述的時(shí)鐘輸出口通過(guò)分頻器件與所述智能卡的時(shí)鐘引腳相連。
全文摘要
本發(fā)明公開(kāi)了一種智能卡驅(qū)動(dòng)方法,包括如下步驟(1)嵌入式系統(tǒng)芯片中串口的發(fā)送引腳和接收引腳與所述智能卡的輸入/輸出引腳相連,以實(shí)現(xiàn)通信;(2)嵌入式系統(tǒng)芯片對(duì)智能卡進(jìn)行狀態(tài)控制;以及(3)嵌入式系統(tǒng)芯片與智能卡之間的數(shù)據(jù)收發(fā)和收發(fā)過(guò)程中的糾錯(cuò)處理。通過(guò)使用本方法可以在保證數(shù)據(jù)傳輸速率和糾錯(cuò)性能的前提下,使得系統(tǒng)中無(wú)需使用專(zhuān)門(mén)的智能卡管理芯片,從而能夠提高產(chǎn)品的自有知識(shí)產(chǎn)權(quán)比例,并使其在大規(guī)模應(yīng)用中能有效降低成本,進(jìn)而提高產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。
文檔編號(hào)G06F13/42GK1979457SQ20051012626
公開(kāi)日2007年6月13日 申請(qǐng)日期2005年12月2日 優(yōu)先權(quán)日2005年12月2日
發(fā)明者楊銳, 陳堅(jiān), 李德星 申請(qǐng)人:中興通訊股份有限公司