專利名稱:一種智能卡操作系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及智能卡領(lǐng)域,尤其涉及一種智能卡操作系統(tǒng)和方法。
背景技術(shù):
隨著智能卡技術(shù)的不斷發(fā)展,人們希望智能卡能夠擁有更加豐富靈活的功
能。比如,使SIM卡除了具有傳統(tǒng)的SIM卡功能外,還可以具有支付卡,門 禁卡,考勤卡,等等,真正做到了一卡多用。但是傳統(tǒng)的智能卡搡作系統(tǒng)僅能 支持單獨(dú)的接觸式通信方式或者單獨(dú)的非接觸式通信方式,這就大大的P條低了 智能卡應(yīng)用的靈活性。
目前,已經(jīng)存在一種支持雙界面(接觸式和非接觸式通信)的智能卡操作 系統(tǒng),但是,當(dāng)該智能卡操作系統(tǒng)處于非接觸式終端設(shè)備的非接觸場中,智能 卡操作系統(tǒng)的天線耦合產(chǎn)生電壓,由該非接觸式終端設(shè)備為該智能卡操作系統(tǒng) 單獨(dú)供電時,系統(tǒng)采用單獨(dú)非接觸式工作模式,只能進(jìn)行非接觸式通信,而當(dāng) 該智能卡操作系統(tǒng)的供電來自接觸式終端設(shè)備提供的接觸式電源時,系統(tǒng)采用 單獨(dú)接觸式工作模式,只能進(jìn)行接觸式通信,即該系統(tǒng)根據(jù)其供電方式,只能 支持一種通信方式,存在很大的局限性。
發(fā)明內(nèi)容
本發(fā)明提供一種智能卡操作系統(tǒng)和方法,用以解決現(xiàn)有技術(shù)中存在智能卡 操作系統(tǒng)不能同時支持接觸式和非接觸式通信的問題。
為了解決上述技術(shù)問題,本發(fā)明提供了一種智能卡操作系統(tǒng),包括接觸式 通信模塊、非接觸式通信模塊和命令處理模塊,還包括工作模式選擇模塊,連 接所述命令處理模塊; 所述工作模式選擇模塊根據(jù)所述系統(tǒng)的供電方式確定第一工作模式或第
二工作模式,并通知所述命令處理模塊;
所述命令處理模塊#4居所述第一工作模式單獨(dú)處理所述非接觸式通信模 塊接收到的非接觸式命令;或根據(jù)所述第二工作模式并行處理所述接觸式通信
模塊接收到的接觸式命令和所述非接觸式通信模塊接收到的非接觸式命令。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述系統(tǒng)還包括與所述工作模式 選擇模塊連接的電源控制模塊,所述電源控制模塊檢測可用電源且優(yōu)先選擇接 觸式電源向系統(tǒng)供電,并將確定的系統(tǒng)供電方式通知所述工作模式選擇模塊。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述系統(tǒng)還包括與所述命令處理 模塊連接的時鐘控制沖莫塊,所述時鐘控制模塊檢測并根據(jù)預(yù)先設(shè)定的時鐘源優(yōu) 先級選擇可用時鐘源,向所述命令處理模塊提供時鐘。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述系統(tǒng)還包括初始化模塊,所 述初始化模塊進(jìn)一步包括通用初始化模塊、第 一工作才莫式初始化模塊和第二工 作模式初始化模塊,其中,
通用初始化模塊用于初始化系統(tǒng)的通用寄存器以及全局變量;
第一工作模式初始化模塊用于根據(jù)所述第一工作模式初始化非接觸式通
信模塊和命令處理模塊;
第二工作模式初始化模塊用于根據(jù)所述第二工作模式初始化非接觸式通
信模塊、接觸式通信模塊和命令處理模塊。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述命令處理模塊還包括上下文 切換子模塊和第一存儲子模塊,
所述第一存儲子模塊用于分別保存接觸式通道上下文和非接觸式通道上 下文;
所述上下文切換子才莫塊用于根據(jù)待處理命令所在的通道選用所述第 一存
儲子模塊中保存的相應(yīng)通道上下文。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述命令處理模塊還包括查詢子
模塊,所迷查詢子模塊用于并行查詢所述接觸式通信模塊是否接收到接觸式命 令和非接觸式通信模塊是否接收到非接觸式命令。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述接觸式通信模塊進(jìn)一步包括 接觸式通信接收子模塊、接觸式通信發(fā)送子模塊和接觸式通信存儲子模塊,其 中,
所述接觸式通信存儲子模塊用于保存接觸式命令接收標(biāo)志; 所述接觸式通信接收子模塊用于接收接觸式命令,并設(shè)置所述接觸式命令 4妻收標(biāo)志;
所述接觸式通信發(fā)送子模塊用于發(fā)送接觸式命令響應(yīng),并清除所述接觸式 命令接收標(biāo)志。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述非接觸式通信模塊進(jìn)一步包 括非接觸式通信接收子模塊、非接觸式通信發(fā)送子模塊和非接觸式通信存儲子 模塊,其中,
所述非接觸式通信存儲子模塊用于保存非接觸式命令接收標(biāo)志; 所述非接觸式通信接收子模塊用于接收非接觸式命令,并設(shè)置所述非接觸 式命令接收標(biāo)志;
所述非接觸式通信發(fā)送子模塊用于發(fā)送非接觸式命令響應(yīng),并清除所述非 接觸式命令4妄收標(biāo)志。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn)所述命令處理模塊還包括休眠控 制模塊,所述休眠控制模塊用于控制空閑或空閑了設(shè)定時間的智能卡操作系統(tǒng) 進(jìn)入休眠狀態(tài),并根據(jù)接觸式通信模塊或非接觸式通信模塊在接收到命令后產(chǎn) 生的中斷喚醒系統(tǒng)。
本發(fā)明還提供了一種智能卡操作方法,包括以下步驟
在系統(tǒng)上電時判斷系統(tǒng)供電方式,當(dāng)供電來自非接觸式電源時,選用第一
工作模式;當(dāng)供電來自接觸式電源時,選用第二工作模式;并且
在第一工作模式下單獨(dú)處理接收到的非接觸式命令;在第二工作模式下并4亍處理^妄收到的^妾觸式命令和非4妾觸式命令。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)當(dāng)非接觸式電源和接觸式電源同 時存在時,優(yōu)先選擇4妄觸式電源向系統(tǒng)供電。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)預(yù)先設(shè)定時鐘源的優(yōu)先級,在系 統(tǒng)上電或在電源存在但當(dāng)前工作時鐘消失時,根據(jù)所述優(yōu)先級選擇可用時鐘 源,向系統(tǒng)提供時鐘。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)在第二工作;漠式下,在處理接觸 式命令或非接觸式命令之前,先判斷當(dāng)前的通道上下文所支持的通道是否和待 處理的命令所在的通道一致,如果不一致,切換通道上下文,再處理所述命令; 否則直接處理所述命令。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)在第二工作模式下,并行查詢是 否接收到接觸式命令和非接觸式命令,并處理查詢到的接觸式命令或非接觸式 命令。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)在第二工作模式下 當(dāng)接收到接觸式命令或非接觸式命令時,設(shè)置接觸式命令標(biāo)志或非接觸式 命令標(biāo)志;
當(dāng)發(fā)送所述接觸式命令或非接觸式命令的響應(yīng)時,清除所述接觸式命令標(biāo) 志或非接觸式命令標(biāo)志;
并行查詢所述接觸式命令標(biāo)志以及非接觸式命令標(biāo)志獲知是否接收到接 觸式命令以及非接觸式命令,處理查詢到的接觸式命令或非接觸式命令,并發(fā) 送相應(yīng)響應(yīng)。
進(jìn)一步地,上述方法還可具有以下特點(diǎn)當(dāng)系統(tǒng)空閑時或空閑到達(dá)設(shè)定時 間后,令系統(tǒng)進(jìn)入休眠狀態(tài);當(dāng)系統(tǒng)接收到命令后,喚醒系統(tǒng)。 本發(fā)明有益效果如下
采用本發(fā)明的技術(shù)方案,智能卡操作系統(tǒng)根據(jù)其供電方式選擇單獨(dú)非接觸 式工作模式或混合工作模式,在單獨(dú)非接觸式工作才莫式中,系統(tǒng)單獨(dú)處理接收到的非接觸式命令;在混合工作模式中,能夠支持接觸式和非接觸式通信方式 同時工作,使兩種通信方式互不影響,都能夠正確工作,從而大大增強(qiáng)了智能
卡應(yīng)用的靈活性。
圖1為本發(fā)明實(shí)施例中的智能卡操作系統(tǒng)框圖2為本發(fā)明實(shí)施例中的初始化模塊框圖3為本發(fā)明實(shí)施例中的命令處理模塊框圖4為本發(fā)明實(shí)施例中單獨(dú)非接觸式工作模式流程圖5為本發(fā)明實(shí)施例中的接觸式通信模塊框圖6為本發(fā)明實(shí)施例中的非接觸式通信才莫塊框圖7為本發(fā)明實(shí)施例中混合工作模式下命令處理模塊處理命令的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步地說明。
本實(shí)施例中的智能卡才喿作系統(tǒng)定義了兩種工作;漢式單獨(dú)非接觸式工作模 式以及接觸式和非接觸式混合工作模式(簡稱混合工作模式)。當(dāng)系統(tǒng)供電單 獨(dú)來自非接觸式終端設(shè)備提供的非接觸電源,系統(tǒng)采用單獨(dú)非接觸式工作模 式,進(jìn)行非接觸式通信;而當(dāng)系統(tǒng)可以從接觸式終端設(shè)備提供的接觸式電源獲 得供電時,系統(tǒng)采用混合工作模式,能夠同時支持接觸式和非接觸式通信。
如圖1所示,該智能卡操作系統(tǒng)包括電源控制模塊102、時鐘控制模塊103、 內(nèi)部時鐘模塊105、接觸式通信模塊106、非接觸式通信模塊107和控制模塊 109,其中,控制模塊109進(jìn)一步包括初始化模塊101、工作模式選擇模塊104 和命令處理模塊108;初始化模塊101如圖2所示,進(jìn)一步包括通用初始化子 模塊1011、混合工作模式初始化子模塊1012和單獨(dú)非接觸式工作模式初始化 子模塊1013;命令處理模塊108如圖3所示,進(jìn)一步包括查詢子模塊1081、
上下文切換子模塊1082、命令處理存儲子模塊1083、接觸式命令處理子模塊 1084、非接觸式命令處理子模塊1085和休眠控制子模塊1086。
在本實(shí)施例中,非接觸式通信模塊107符合IS014443 -3/4規(guī)范,支持Type
A和Type B協(xié)議;接觸式通信模塊106符合IS07816 -3/4規(guī)范,支持T=0/T=1協(xié)議。
在本實(shí)施例中,接觸式通信和非接觸式通信各自使用獨(dú)立的通道,因?yàn)樵?接觸式和非接觸式通信過程中,接觸式數(shù)據(jù)和非接觸式數(shù)據(jù)可能會同時到達(dá), 接觸式通信和非接觸式通信各自使用獨(dú)立的通道,可以保證數(shù)據(jù)都能夠正確的 被接收。接觸式數(shù)據(jù)通道采用7816規(guī)范中定義的C7管腳,非接觸數(shù)據(jù)通道采 用7816規(guī)范中保留未用的C4,C8管腳。這樣的設(shè)計保證和現(xiàn)有的規(guī)范一致。
在該智能卡操作系統(tǒng)上電后
通用初始化子模塊1011對系統(tǒng)的通用寄存器以及全局變量進(jìn)行初始化; 由于通用初始化是一個智能卡操作系統(tǒng)正常工作所必須的常規(guī)操作,這里 不作具體描述。本實(shí)施例中,在通用初始化時特別地
初始化電源控制模塊102中的優(yōu)選電源為接觸式電源; 初始化時鐘控制模塊103中的時鐘源優(yōu)先級先后順序?yàn)榻佑|式外部時鐘
源、非接觸式外部時鐘源和內(nèi)部時鐘源; 初始化工作模式選擇模塊104; 初始化命令處理模塊108中的接觸式通道上下文; 初始化命令處理4莫塊108中的非接觸式通道上下文; 設(shè)置命令處理模塊108中的當(dāng)前通道上下文為接觸式通道上下文; 將命令處理模塊108中通道標(biāo)志設(shè)置成接觸式通道,該通道標(biāo)志用于標(biāo)識
當(dāng)前工作的通道;
將接觸式通信模塊106中的接觸式命令標(biāo)志設(shè)置成0,該接觸式命令標(biāo)志 用于標(biāo)識是否收到接觸式命令,初始化為O標(biāo)識沒有接收到接觸式命令;
將非接觸式通信模塊107中的非接觸式命令標(biāo)志設(shè)置成0,該非接觸式命
令標(biāo)志用于標(biāo)識是否收到非接觸式命令,初始化為o標(biāo)識沒有接收到非接觸式命令。
在該智能卡操作系統(tǒng)完成通用初始化后
Al、時鐘控制模塊103根據(jù)設(shè)定的時鐘源優(yōu)先級關(guān)系檢測并選擇輸出可用 時鐘源,向控制模塊提供時鐘。
時鐘源從輸入角度來區(qū)分,可以分成外部時鐘源,內(nèi)部時鐘源。其中外 部時鐘源又分成接觸式外部時鐘源和非接觸式外部時鐘源,分別由接觸式終 端設(shè)備和非接觸式終端設(shè)備提供;內(nèi)部時鐘源由智能卡操作系統(tǒng)中的內(nèi)部時鐘 模塊105提供。外部時鐘源可能會不存在,內(nèi)部時鐘源在系統(tǒng)不是處于休眠狀 態(tài)時總是存在。
時鐘控制模塊103的功能是從外部時鐘源(可能僅存在接觸式外部時鐘或 非接觸式外部時鐘,也可能兩種外部時鐘同時存在)和內(nèi)部時鐘源中,根據(jù)設(shè) 定的時鐘源優(yōu)先級關(guān)系,選擇一種當(dāng)前存在的時鐘源為控制模塊109提供工作 時鐘。
在系統(tǒng)上電時,或者在電源存在但控制模塊109當(dāng)前的工作時鐘突然消失 的情況下,時鐘控制模塊103會檢測并根據(jù)設(shè)定的時鐘源優(yōu)先級關(guān)系選用可用 時鐘源,并為控制模塊109提供工作時鐘。
上述設(shè)定的優(yōu)先級關(guān)系可以根據(jù)實(shí)際需要進(jìn)行相應(yīng)的調(diào)整。本實(shí)施例中設(shè) 定的優(yōu)先級關(guān)系是由于接觸式外部時鐘源最穩(wěn)定,當(dāng)接觸式外部時鐘源存在 時,應(yīng)該優(yōu)選其作為系統(tǒng)的工作時鐘源,而內(nèi)部時鐘源雖然在系統(tǒng)不處于休眠 狀態(tài)時一直存在,有一定的便利,卻會產(chǎn)生較大的功耗,對智能卡操作系統(tǒng)的 工作不利,所以設(shè)置其優(yōu)先級為最低。
A2、電源控制模塊102檢測系統(tǒng)的供電方式,如果系統(tǒng)僅存在單獨(dú)的非接 觸式電源供電或者單獨(dú)的接觸式電源供電,則直接將供電方式通知工作模式選 捧模塊104;如果非接觸式電源和接觸式電源同時存在,則系統(tǒng)根據(jù)預(yù)先設(shè)定 的電源優(yōu)先級關(guān)系選擇一個電源對系統(tǒng)進(jìn)行供電,并將選定的供電方式通知工
作模式選擇模塊104。
在非接觸式電源和接觸式電源同時存在時,采用電源控制模塊102選擇一
個電源對系統(tǒng)進(jìn)行供電可以避免兩個電源同時對系統(tǒng)進(jìn)行供電而導(dǎo)致芯片工 作不正常(比如導(dǎo)致芯片重新復(fù)位)的情況。
由于接觸式電源的能量比較充足穩(wěn)定,并且當(dāng)系統(tǒng)釆用接觸式供電時,工
作模式選擇模塊104將會選擇采用混合工作模式,使得系統(tǒng)可以并行處理接觸 式命令和非接觸式命令,所以在本實(shí)施例中,優(yōu)選接觸式電源。當(dāng)系統(tǒng)處于單 獨(dú)非接觸式工作模式時,如果電源控制模塊102檢測到有接觸式電源能夠向系 統(tǒng)供電,則電源控制模塊102選擇該接觸式電源向系統(tǒng)供電,并通知工作模式 選擇模塊104。
工作模式選擇模塊104根據(jù)電源控制模塊102通知的供電方式選擇系統(tǒng)的 工作才莫式,當(dāng)電源控制模塊102通知的供電方式為非接觸式電源供電時,工作 模式選擇模塊104為系統(tǒng)選擇單獨(dú)非接觸式工作模式,當(dāng)電源控制模塊102通 知的供電方式為接觸式電源供電時,工作模式選擇模塊104為系統(tǒng)選擇混合工 作模式,下面根據(jù)所選擇的工作模式分別詳細(xì)說明
一、單獨(dú)非接觸式工作模式
工作模式選擇模塊104為系統(tǒng)選擇單獨(dú)非接觸式工作模式后,發(fā)送單獨(dú)非 接觸式工作模式初始化命令給單獨(dú)非接觸式工作模式初始化子模塊1013,單獨(dú) 非接觸式工作模式初始化子模塊1013對非接觸式通信模塊107和命令處理模 塊108進(jìn)行單獨(dú)非接觸式工作模式初始化,即單獨(dú)非接觸式工作模式初始化子 模塊1013分別:
Bl、設(shè)置非接觸式通信模塊107中非接觸式通信時需要使用的寄存器,令 非接觸式通信模塊107接收和發(fā)送采用中斷方式,并令非接觸式通信模塊107 在接收到非接觸式命令后產(chǎn)生中斷通知命令處理模塊108;
B2、設(shè)置命令處理模塊108中的當(dāng)前通道上下文為非接觸式通道上下文, 設(shè)置通道標(biāo)志為非接觸式通道,并通知命令處理模塊108采用單獨(dú)非接觸式工 作模式。
命令處理模塊108采用單獨(dú)非接觸式工作模式,即在單獨(dú)非接觸式工作模 式初始化子模塊1013完成對非接觸式通信模塊107和命令處理模塊108的單 獨(dú)非接觸式工作模式初始化后,休眠控制子模塊1086令系統(tǒng)進(jìn)入休眠狀態(tài), 等待非接觸式通信模塊107產(chǎn)生中斷;并在非接觸式通信模塊107產(chǎn)生中斷后 喚醒系統(tǒng),通知非接觸式命令處理子模塊1085處理該接觸式命令,非接觸式 命令處理子模塊1085處理完該非接觸式命令后,發(fā)送該非接觸式命令的響應(yīng) 給非接觸式通信模塊107,在發(fā)送完該響應(yīng)后等待設(shè)定時間,如果該設(shè)定時間 內(nèi)非接觸式通信模塊107再次產(chǎn)生中斷,則根據(jù)該中斷處理非接觸式命令,否 則通知休眠控制子模塊1086,休眠控制子模塊1086令系統(tǒng)進(jìn)入休眠狀態(tài),等 待非接觸式通信模塊107產(chǎn)生的下一個中斷(非接觸式命令處理子模塊1085 也可以在發(fā)送完響應(yīng)后立即通知休眠控制子模塊1086令系統(tǒng)進(jìn)入休眠狀態(tài), 等待非接觸式通信模塊107產(chǎn)生的下一個中斷)。
可見,當(dāng)系統(tǒng)工作在單獨(dú)非接觸式工作模式中時,如圖4所示,包括以下 步驟
步驟3(M,休眠控制子模塊1086令系統(tǒng)進(jìn)入休眠狀態(tài),等待非接觸式通信 模塊107產(chǎn)生的中斷;
步驟302,非接觸式通信模塊107收到非接觸式命令,產(chǎn)生中斷通知休眠 控制子模塊1086;
步驟303,休眠控制子模塊1086喚醒系統(tǒng),通知非接觸式命令處理子模塊 1085處理該接觸式命令;
步驟304,非接觸式命令處理子模塊1085根據(jù)時鐘控制模塊103提供的時 鐘讀取并處理非接觸式命令;
步驟305,非接觸式命令處理子模塊1085向非接觸式通信模塊107發(fā)送該 非接觸式命令的響應(yīng);
步驟306,非接觸式命令處理子模塊1085等待設(shè)定時間,如果該設(shè)定時間
內(nèi)非接觸式通信才莫塊107再次產(chǎn)生中斷,則返回步驟304;否則通知休眠控制 子模塊1086,返回步驟301。 二、混合工作模式
工作模式選擇模塊104為系統(tǒng)選擇混合工作模式后,發(fā)送混合工作模式初 始化命令給混合工作模式初始化子模塊1012,混合工作模式初始化子模塊1012 對接觸式通信模塊106、非接觸式通信模塊107和命令處理模塊108進(jìn)行混合 工作模式初始化,即混合工作模式初始化子模塊1012分別
Cl、設(shè)置接觸式通信模塊106中在接觸式通信時需要使用的寄存器,令接 觸式通信模塊106接收采用中斷方式,發(fā)送采用輪詢方式,令接觸式通信模塊 106工作在混合工作模式,且發(fā)送接觸式復(fù)位應(yīng)答給為系統(tǒng)供電的接觸式終端 設(shè)備;
在本實(shí)施例中,在混合工作模式初始化時令接觸式通信模塊106接收采用 中斷方式,發(fā)送采用輪詢方式,但并不限定在具體實(shí)施中接收和發(fā)送接觸式數(shù) 據(jù)采用的工作方式,接觸式通信模塊106接收和發(fā)送可以分別采用中斷方式或 輪詢方式。如圖5所示,接觸式通信模塊106進(jìn)一步包括接觸式通信接收子模 塊1061、接觸式通信存儲子模塊1064和接觸式通信發(fā)送子模塊1065,其中
接觸式通信接收子模塊1061進(jìn)一步包括接觸式通信接收端口 1062和接觸 式通信接收控制單元1063,接觸式通信接收子模塊1061的兩種工作方式為
輪詢方式4妄觸式通信接收控制單元1063不斷4企測接觸式通信接收端口 1062是否有數(shù)據(jù)到達(dá),當(dāng)檢測到有數(shù)據(jù)到達(dá)時,接觸式通信接收控制單元1063 將數(shù)據(jù)保存到4妻觸式通信存儲子4莫塊1064中的指定的地址;
中斷方式當(dāng)接觸式通信接收端口 1062接收到數(shù)據(jù)后,會產(chǎn)生中斷通知 接觸式通信接收控制單元1063,接觸式通信接收控制單元1063把數(shù)據(jù)保存到 接觸式通信存儲子模塊1064中的指定的地址。
由于接觸式通信接收端口 1062可能只能接收有限的字節(jié)數(shù),該字節(jié)數(shù)可 能低于一個接觸式命令的字節(jié)數(shù),例如, 一個接觸式命令包括5個字節(jié),而接 觸式通信接收端口 1062每一次僅能接收1個字節(jié),那么采用輪詢的方式接收 數(shù)據(jù),則很可能當(dāng)1個字節(jié)到達(dá)后不能立刻把它取走,而導(dǎo)致之后到達(dá)的數(shù)據(jù) 把之前來不及取走的數(shù)據(jù)沖掉,而采用中斷方式可以保證系統(tǒng)無論處于何種狀 態(tài)都能夠正確的接收接觸式命令。因此在本實(shí)施例中接觸式通信接收子模塊 1061采用中斷方式,但并不限定在具體實(shí)施中接收接觸式數(shù)據(jù)采用的工作方 式。
接觸式通信模塊106工作在混合工作模式下時,接觸式通信接收控制單元 1063在接收到接觸式命令后,產(chǎn)生中斷通知命令處理模塊108 (產(chǎn)生中斷通知 命令處理模塊108的目的是,如果此時系統(tǒng)處于休眠狀態(tài),則命令處理模塊108 會根據(jù)該中斷喚醒系統(tǒng),在采用混合工作模式進(jìn)行工作時,命令處理模塊108 不會因?yàn)樵撝袛嗑烷_始處理接收到的接觸式命令),設(shè)置接觸式通信存儲子模 塊1064中的接觸式命令標(biāo)志為1,標(biāo)識接收到接觸式命令。
接觸式通信發(fā)送子模塊1065進(jìn)一步包括接觸式通信發(fā)送端口 1066和接觸 式通信發(fā)送控制單元1067,接觸式通信發(fā)送子^^莫塊1065有兩種工作方式
輪詢方式接觸式通信發(fā)送控制單元1067將待發(fā)送的接觸式數(shù)據(jù)發(fā)送到 接觸式通信發(fā)送端口 1066進(jìn)行發(fā)送,然后不斷4企測接觸通信發(fā)送端口 1066是 否發(fā)送完數(shù)據(jù)直到發(fā)送完成;
中斷方式接觸式通信發(fā)送控制單元1067將待發(fā)送的接觸式數(shù)據(jù)發(fā)送到 接觸式通信發(fā)送端口 1066進(jìn)行發(fā)送,當(dāng)接觸式通信發(fā)送端口 1066發(fā)送完數(shù)據(jù) 后,會產(chǎn)生中斷通知接觸式通信發(fā)送控制單元1067。
在本實(shí)施例中,接觸式通信發(fā)送子模塊1065采用輪詢方式,但并不限定 在具體實(shí)施中發(fā)送接觸式數(shù)據(jù)采用的工作方式。
接觸式通信模塊106工作在混合工作模式下時,接觸式通信發(fā)送控制單元 1067在發(fā)送完接觸式命令響應(yīng)后清除接觸式通信存儲子模塊1064中的接觸式 命令以及接觸式命令標(biāo)志。
C2、設(shè)置非接觸式通信模塊107中在非接觸式通信時需要使用的寄存器,
令非接觸式通信模塊107接收和發(fā)送采用中斷方式,并令非接觸式通信模塊 107工作在混合工作^i式;
在本實(shí)施例中,在混合工作模式初始化時令非接觸式通信模塊107接收和 發(fā)送采用中斷方式,但并不限定在具體實(shí)施中接收和發(fā)送非接觸式數(shù)據(jù)采用的 工作方式,非接觸式通信模塊107接收和發(fā)送可以分別采用中斷方式或輪詢方 式。如圖6所示,非接觸式通信模塊107進(jìn)一步包括非接觸式通信接收子模塊 1071、非接觸式通信存儲子模塊1074和非接觸式通信發(fā)送子模塊1075,其中
非接觸式通信接收子模塊1071進(jìn)一步包括非接觸式通信接收端口 1072和 非接觸式通信接收控制單元1073,非接觸式通信接收子模塊1071的兩種工作 方式為
輪詢方式非接觸式通信接收控制單元1073不斷檢測非接觸式通信接收 端口 1072是否有數(shù)據(jù)到達(dá),當(dāng)檢測到有數(shù)據(jù)到達(dá)時將數(shù)據(jù)保存到非接觸式通 信存儲子模塊1074中的指定地址;
中斷方式當(dāng)非接觸式通信接收端口 1072有數(shù)據(jù)到達(dá)時,會產(chǎn)生中斷通 知非接觸式通信接收控制單元1073,非接觸式通信接收控制單元1073把數(shù)據(jù) 保存到非接觸式通信存儲子模塊1074中的指定地址。
本實(shí)施例中非接觸式通信接收子模塊1071采用中斷方式,但并不限定在 具體實(shí)施中接收非接觸式數(shù)據(jù)釆用的工作方式。
非接觸式通信模塊107工作在混合工作模式下時,非接觸式通信接收控制 單元1073在接收到非接觸式命令后,產(chǎn)生中斷通知命令處理模塊108(產(chǎn)生中 斷通知命令處理模塊108的目的是,如果此時系統(tǒng)處于休眠狀態(tài),則命令處理 模塊108會根據(jù)該中斷喚醒系統(tǒng),在采用混合工作模式進(jìn)行工作時,命令處理 模塊108不會因?yàn)樵撝袛嗑烷_始處理接收到的非接觸式命令),設(shè)置非接觸式 命令標(biāo)志為l,標(biāo)識接收到非接觸式命令。
非接觸式通信發(fā)送子模塊1075進(jìn)一步包括非接觸式通信發(fā)送端口 1076和 非接觸式通信發(fā)送控制單元1077,非接觸式通信發(fā)送子模塊1075的兩種工作
方式為
輪詢方式非^接觸式通信發(fā)送控制單元1077將待發(fā)送的非接觸式數(shù)據(jù)發(fā) 送到非接觸式通信發(fā)送端口 1076進(jìn)行發(fā)送,然后不斷^r測是否發(fā)送完該數(shù)據(jù) 直到發(fā)送完成;
中斷方式非接觸式通信發(fā)送控制單元1077將待發(fā)送的非接觸式數(shù)據(jù)發(fā) 送到非接觸式通信發(fā)送端口 1076進(jìn)行發(fā)送,當(dāng)非接觸式通信發(fā)送端口 1076發(fā) 送完數(shù)據(jù)后,會產(chǎn)生中斷通知非接觸式通信發(fā)送控制單元1077。
在本實(shí)施例中,非接觸式通信發(fā)送子模塊1075采用中斷方式,但并不限 定在具體實(shí)施中發(fā)送非接觸式數(shù)據(jù)采用的工作方式。
非接觸式通信模塊107工作在混合工作模式下時,非接觸式通信發(fā)送控制 單元1077在發(fā)送完非接觸式命令響應(yīng)后清除非接觸式通信存儲子模塊1074中 的非接觸式命令以及非接觸式命令標(biāo)志。
C3、通知命令處理模塊108采用混合工作模式,命令處理模塊108采用混 合工作模式。
命令處理模塊108在獲知釆用混合工作模式后的處理如圖7所示,包括以 下步驟
步驟S401,查詢子模塊1081查詢接觸式通信存儲子模塊1064中保存的接 觸式命令接收標(biāo)志是否為0,如果是,進(jìn)行步驟S405,否則進(jìn)行步驟S402;
步驟S402,查詢子纟莫塊1081通知上下文切換子模塊1082接觸式通信模塊 106接收到接觸式命令,上下文切換子模塊1082判斷命令處理存儲子模塊1083 中保存的通道標(biāo)志是否為接觸式通道,如果是,進(jìn)行步驟S404,否則,通道標(biāo) 志為非接觸式通道,進(jìn)行步驟S403;
步驟S403,上下文切換子模塊1082設(shè)置通道標(biāo)志為接觸式通道,將通道 上下文切換到接觸式通道上下文;
將通道上下文切換到接觸式通道上下文,是指將當(dāng)前通道上下文,即非接 觸式通道上下文保存到命令處理存儲子模塊1083,并使用命令處理存儲子模塊
1083中保存的4妄觸式通道上下文更新當(dāng)前通道上下文。
步驟S404,上下文切換子模塊1082通知接觸式命令處理子模塊1084接觸 式通信模塊106接收到接觸式命令;接觸式命令處理子模塊1084從接觸式通 信存儲子模塊1064中讀取并處理接觸式命令,根據(jù)命令處理存儲子模塊1083 中的通道標(biāo)志將該接觸式命令的響應(yīng)發(fā)送給接觸式通信模塊106,返回步驟 S401;
步驟S405,查詢子模塊1081查詢非接觸式通信存儲子模塊1074中保存的 非接觸式命令接收標(biāo)志是否為0,如果是,進(jìn)行步驟S409,否則進(jìn)行步驟S406;
步驟S406,查詢子模塊1081通知上下文切換子模塊1082非接觸式通信模 塊107接收到非接觸式命令,上下文切換子模塊1082判斷命令處理存儲子模 塊1083中保存的通道標(biāo)志是否為非接觸式通道,如果是,進(jìn)行步驟S408,否 貝'J,通道標(biāo)志為接觸式通道,進(jìn)行步驟S407;
步驟S407,上下文切換子模塊1082設(shè)置通道標(biāo)志為非接觸式通道,將通 道上下文切換到非接觸式通道上下文;
將通道上下文切換到非接觸式通道上下文,是指將當(dāng)前通道上下文,即接 觸式通道上下文保存到命令處理存儲子模塊1083,并使用命令處理存儲子模塊 1083中保存的非接觸式通道上下文更新當(dāng)前通道上下文。
步驟S408,上下文切換子模塊1082通知非接觸式命令處理子模塊1085 非接觸式通信模塊107接收到非接觸式命令,非接觸式命令處理子模塊1085 從非接觸式通信存儲子模塊1074讀取并處理非接觸式命令,根據(jù)通道標(biāo)志將 該非接觸式命令的響應(yīng)發(fā)送給非接觸式通信模塊107,返回步驟S40i;
步驟S409,查詢子模塊1081通知休眠控制子模塊1086當(dāng)前沒有要處理的 命令,休眠控制子模塊1086令系統(tǒng)進(jìn)入休眠狀態(tài),等待接觸式通信模塊106 或非接觸式通信模塊107產(chǎn)生的中斷且根據(jù)該中斷喚醒系統(tǒng),在喚醒系統(tǒng)后返 回步驟S401。
上述流程中也可以令查詢子模塊1081先查詢非接觸式命令接收標(biāo)志是否
為0,當(dāng)非接觸式命令接收標(biāo)志為0時再查詢接觸式命令接收標(biāo)志是否為0,
具體的操作可以根據(jù)實(shí)際需要而定。
在具體實(shí)施時,接觸式通信模塊106和非接觸式通信模塊107可以不設(shè)置 接觸式命令接收標(biāo)志和非接觸式命令接收標(biāo)志,查詢子模塊1081直接到接觸 式通信存儲子模塊1064和非接觸式通信存儲子模塊1074中指定保存接觸式命 令和非接觸式命令的地址查詢是否保存有接觸式命令和非接觸式命令,并在查 詢到命令后通知接觸式命令處理子模塊1084讀取并處理查詢到的命令,也可 以實(shí)現(xiàn)對接觸式命令和非接觸式命令的分別處理。
在本實(shí)施例中,命令處理模塊108在查詢不到接觸式命令接收標(biāo)志和非接 觸式命令接收標(biāo)志時,令系統(tǒng)進(jìn)入休眠狀態(tài),這是從節(jié)約能源的角度出發(fā),在 具體實(shí)施時,可以不用令系統(tǒng)進(jìn)入休眠狀態(tài),繼續(xù)查詢接觸式命令接收標(biāo)志和 非接觸式命令接收標(biāo)志。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、一種智能卡操作系統(tǒng),包括接觸式通信模塊、非接觸式通信模塊和命令處理模塊,其特征在于,還包括工作模式選擇模塊,連接所述命令處理模塊;所述工作模式選擇模塊根據(jù)所述系統(tǒng)的供電方式確定第一工作模式或第二工作模式,并通知所述命令處理模塊;所述命令處理模塊根據(jù)所述第一工作模式單獨(dú)處理所述非接觸式通信模塊接收到的非接觸式命令;或根據(jù)所述第二工作模式并行處理所述接觸式通信模塊接收到的接觸式命令和所述非接觸式通信模塊接收到的非接觸式命令。
2、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括與所述工作 模式選擇模塊連接的電源控制模塊,所述電源控制模塊檢測可用電源且優(yōu)先選 擇接觸式電源向系統(tǒng)供電,并將確定的系統(tǒng)供電方式通知所述工作模式選擇模 塊。
3、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括與所述命令 處理模塊連接的時鐘控制模塊,所述時鐘控制模塊檢測并根據(jù)預(yù)先設(shè)定的時鐘 源優(yōu)先級選擇可用時鐘源,向所述命令處理模塊提供時鐘。
4、 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括初始化模塊, 所述初始化模塊進(jìn)一步包括通用初始化模塊、第 一工作模式初始化模塊和第二 工作模式初始化模塊,其中,通用初始化模塊用于初始化系統(tǒng)的通用寄存器以及全局變量; 第一工作模式初始化模塊用于根據(jù)所述第一工作模式初始化非接觸式通信模塊和命令處理模塊;第二工作模式初始化模塊用于根據(jù)所述第二工作模式初始化非接觸式通 信模塊、接觸式通信模塊和命令處理模塊。
5、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述命令處理模塊還包括上 下文切換子模塊和第 一存儲子模塊,所述第一存儲子模塊用于分別保存接觸式通道上下文和非接觸式通道上下文;所述上下文切換子模塊用于根據(jù)待處理命令所在的通道選用所述第一存 儲于模塊中保存的相應(yīng)通道上下文。
6、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述命令處理模塊還包括查詢子模塊,所述查詢子模塊用于并行查詢所述接觸式通信模塊是否接收到接觸 式命令和非接觸式通信模塊是否接收到非接觸式命令。
7、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述接觸式通信模塊進(jìn)一步 包括接觸式通信接收子模塊、接觸式通信發(fā)送子模塊和接觸式通信存儲子模 塊,其中,所述接觸式通信存儲子模塊用于保存接觸式命令接收標(biāo)志; 所述接觸式通信接收子模塊用于接收接觸式命令,并設(shè)置所述接觸式命令 接收標(biāo)志;所述接觸式通信發(fā)送子模塊用于發(fā)送接觸式命令響應(yīng),并清除所述接觸式 命令接收標(biāo)志。
8、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述非接觸式通信模塊進(jìn)一 步包括非接觸式通信接收子模塊、非接觸式通信發(fā)送子模塊和非接觸式通信存 儲子模塊,其中,所述非接觸式通信存儲子模塊用于保存非接觸式命令接收標(biāo)志; 所述非接觸式通信接收子模塊用于接收非接觸式命令,并設(shè)置所述非接觸 式命令接收標(biāo)志;所述非接觸式通信發(fā)送子模塊用于發(fā)送非接觸式命令響應(yīng),并清除所述非 接觸式命令接收標(biāo)志。
9、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述命令處理模塊還包括休 眠控制模塊,所述休眠控制模塊用于控制空閑或空閑了設(shè)定時間的智能卡操作 系統(tǒng)進(jìn)入休眠狀態(tài),并根據(jù)接觸式通信模塊或非接觸式通信模塊在接收到命令 后產(chǎn)生的中斷喚醒系統(tǒng)。
10、 一種智能卡搡作方法,其特征在千,包括以下歩驟 在系統(tǒng)上電時判斷系統(tǒng)供電方式,當(dāng)供電來自非接觸式電源時,選用第一工作模式;當(dāng)供電來自接觸式電源時,選用第二工作模式;并且在笫一工作模式下單獨(dú)處理接收到的非接觸式命令;在第二工作模式下并行處理接收到的接觸式命令和非接觸式命令。
11、 如權(quán)利要求10所述的方法,其特征在于,當(dāng)非接觸式電源和接觸式 電源同時存在時,優(yōu)先選擇接觸式電源向系統(tǒng)供電。
12、 如權(quán)利要求IO所述的方法,其特征在于,預(yù)先設(shè)定時鐘源的優(yōu)先級, 在系統(tǒng)上電或在電源存在但當(dāng)前工作時鐘消失時,根據(jù)所述優(yōu)先級選擇可用時 鐘源,向系統(tǒng)提供時鐘。
13、 如權(quán)利要求10所述的方法,其特征在于,在第二工作模式下,在處 理接觸式命令或非接觸式命令之前,先判斷當(dāng)前的通道上下文所支持的通道是 否和待處理的命令所在的通道一致,如果不一致,切換通道上下文,再處理所 述命令;否則直接處理所述命令。
14、 如權(quán)利要求10所述的方法,其特征在于,在第二工作模式下,并行 查詢是否接收到接觸式命令和非接觸式命令,并處理查詢到的接觸式命令或非 接觸式命令。
15、 如權(quán)利要求IO所述的方法,其特征在于,在第二工作模式下 當(dāng)接收到接觸式命令或非接觸式命令時,設(shè)置接觸式命令標(biāo)志或非接觸式命令標(biāo)志;當(dāng)發(fā)送所述接觸式命令或非接觸式命令的響應(yīng)時,清除所述接觸式命令標(biāo) 志或非接觸式命令標(biāo)志;并行查詢所述接觸式命令標(biāo)志以及非接觸式命令標(biāo)志獲知是否接收到接 觸式命令以及非接觸式命令,處理查詢到的接觸式命令或非接觸式命令,并發(fā) 送相應(yīng)響應(yīng)。
16、 如權(quán)利要求10所述的方法,其特征在于,當(dāng)系統(tǒng)空閑時或空閑到達(dá) 設(shè)定時間后,令系統(tǒng)進(jìn)入休眠狀態(tài);當(dāng)系統(tǒng)接收到命令后,喚醒系統(tǒng)。
全文摘要
本發(fā)明公開了一種智能卡操作系統(tǒng)和方法,在系統(tǒng)上電時,工作模式選擇模塊判斷系統(tǒng)供電方式,當(dāng)供電來自非接觸式電源時,選用第一工作模式;當(dāng)供電來自接觸式電源時,選用第二工作模式;在第一工作模式下,命令處理模塊單獨(dú)處理非接觸式通信模塊接收到的非接觸式命令;在第二工作模式下,命令處理模塊并行處理接觸式通信模塊接收到的接觸式命令和非接觸式通信模塊接收到的非接觸式命令。采用本發(fā)明技術(shù)方案,可以使智能卡操作系統(tǒng)同時支持接觸式和非接觸式通信,大大增強(qiáng)了智能卡應(yīng)用的靈活性。
文檔編號G06F1/32GK101097606SQ20061009015
公開日2008年1月2日 申請日期2006年6月29日 優(yōu)先權(quán)日2006年6月29日
發(fā)明者徐達(dá)興, 陳大才, 齊同心 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司