本發(fā)明涉及嵌入式SOC(System On Chip)領(lǐng)域,尤其涉及一種COS系統(tǒng)應(yīng)用剝離的智能卡及其工作方法。
背景技術(shù):
智能卡由硬件資源(芯片)和片上操作系統(tǒng)COS組成。
芯片主要由CPU處理器、存儲(chǔ)單元(包括隨機(jī)存儲(chǔ)器、電可擦除存儲(chǔ)器)、外圍電路組成。
COS系統(tǒng)是智能卡的核心,嵌入在芯片內(nèi),管理芯片硬件資源、執(zhí)行數(shù)據(jù)的安全處理及存取,并通過外圍接口與外界設(shè)備通信的監(jiān)控軟件系統(tǒng)。
傳統(tǒng)的智能卡COS系統(tǒng)結(jié)構(gòu)通常包括系統(tǒng)主控模塊、硬件資源管理模塊、通信管理模塊、安全管理模塊、文件系統(tǒng)管理模塊和應(yīng)用管理模塊等幾個(gè)部分,如圖1所示。系統(tǒng)主控模塊是COS的核心,直接面向硬件資源,統(tǒng)一協(xié)調(diào)各模塊運(yùn)轉(zhuǎn);安全管理模塊對(duì)傳輸和存儲(chǔ)的數(shù)據(jù)進(jìn)行加密、權(quán)限鑒別,確保智能卡的安全;文件系統(tǒng)管理模塊管理以文件形式存儲(chǔ)的數(shù)據(jù),負(fù)責(zé)完成對(duì)文件的查找、讀寫等操作,并對(duì)存儲(chǔ)空間進(jìn)行管理;應(yīng)用管理模塊對(duì)外部送入的各種指令進(jìn)行判斷、解析及處理,調(diào)度內(nèi)部資源用以完成用戶定制應(yīng)用功能的相應(yīng)操作。
出于對(duì)智能卡低功耗、成本需求的考慮,應(yīng)盡量節(jié)省占用存儲(chǔ)器資源,COS系統(tǒng)的代碼、系統(tǒng)配置及文件系統(tǒng)因需掉電保存則存儲(chǔ)于電可擦除存儲(chǔ)器,而COS系統(tǒng)運(yùn)行所需的全局、靜態(tài)變量和堆棧數(shù)據(jù)因易變和處理速度高則存儲(chǔ)于隨機(jī)存儲(chǔ)器,COS系統(tǒng)程序運(yùn)行從電可擦除存儲(chǔ)器讀取指令和只讀數(shù)據(jù),從隨機(jī)存儲(chǔ)器讀寫數(shù)據(jù),如圖2所示。
傳統(tǒng)的智能卡COS系統(tǒng)是針對(duì)特定芯片和定制應(yīng)用開發(fā)的,通常由芯片生產(chǎn)商完成開發(fā),因?yàn)橹挥兴麄儾耪嬲私庑酒讓拥募夹g(shù)細(xì)節(jié)。同一款芯片有多家用戶,每家用戶的應(yīng)用場(chǎng)景不同,意味著每款芯片需要多個(gè)COS系統(tǒng)軟件才能滿足多用戶需求。芯片生產(chǎn)商需要為每家用戶定制專用的COS系統(tǒng),由于芯片生產(chǎn)商開發(fā)人員普遍缺乏特定應(yīng)用場(chǎng)景的技術(shù)儲(chǔ)備,開發(fā)難度增大、時(shí)間跨度長(zhǎng),每個(gè)定制COS系統(tǒng)都需要大量的測(cè)試,這樣極大降低了開發(fā)的效率,且傳統(tǒng)的COS系統(tǒng)不支持應(yīng)用功能獨(dú)立更新,后期維護(hù)成本增高。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種COS系統(tǒng)應(yīng)用剝離的智能卡,所述智能卡包括芯片、COS系統(tǒng)、共享變量庫(kù)、定制應(yīng)用模塊;
所述芯片由CPU、存儲(chǔ)模塊、外圍電路組成。存儲(chǔ)模塊分為代碼存儲(chǔ)單元和變量存儲(chǔ)單元,所述代碼存儲(chǔ)單元分為COS系統(tǒng)代碼區(qū)、系統(tǒng)配置代碼區(qū)、應(yīng)用代碼區(qū);所述變量存儲(chǔ)單元分為共享變量區(qū)、COS系統(tǒng)全局變量區(qū)、應(yīng)用系統(tǒng)全局變量區(qū)、共享堆棧區(qū)。
所述COS系統(tǒng)包括系統(tǒng)主控模塊、硬件資源管理模塊、通信管理模塊、安全管理模塊、應(yīng)用接口模塊;所述COS系統(tǒng)用于控制智能卡同外界的命令交換,管理智能卡內(nèi)資源,為用戶提供調(diào)用COS系統(tǒng)內(nèi)部資源的的應(yīng)用接口庫(kù);應(yīng)用接口模塊主要由應(yīng)用接口庫(kù)和應(yīng)用接口管理單元組成,所述應(yīng)用接口庫(kù)包括多個(gè)應(yīng)用接口函數(shù);應(yīng)用接口管理單元為應(yīng)用程序提供下載、更新通道,進(jìn)行應(yīng)用程序的注冊(cè),為應(yīng)用程序配置運(yùn)行環(huán)境,并且管理用戶應(yīng)用數(shù)據(jù)的傳輸。
共享變量庫(kù)為共享全局變量的集合,用于實(shí)現(xiàn)COS系統(tǒng)和定制應(yīng)用模塊的數(shù)據(jù)交互,并提供數(shù)據(jù)緩存;所述共享變量庫(kù)存儲(chǔ)于共享變量區(qū)。
定制應(yīng)用模塊由應(yīng)用環(huán)境配置單元、應(yīng)用注冊(cè)信息單元和應(yīng)用功能單元構(gòu)成;應(yīng)用環(huán)境配置單元用于進(jìn)行應(yīng)用接口函數(shù)初始化,以調(diào)用COS系統(tǒng)內(nèi)部資源;應(yīng)用注冊(cè)信息單元用于為COS系統(tǒng)提供應(yīng)用程序運(yùn)行所需的信息;應(yīng)用功能單元用于提供一個(gè)應(yīng)用環(huán)境配置函數(shù)入口地址,以實(shí)現(xiàn)CPU指針控制權(quán)向應(yīng)用程序的暫時(shí)移交。
進(jìn)一步的,應(yīng)用接口庫(kù)包括存儲(chǔ)器管理類庫(kù)函數(shù)、邏輯運(yùn)算類庫(kù)函數(shù)、安全管理類庫(kù)函數(shù)、系統(tǒng)操作類庫(kù)函數(shù)及文件系統(tǒng)操作類庫(kù)函數(shù);存儲(chǔ)器管理類庫(kù)函數(shù)用于進(jìn)行存儲(chǔ)空間相關(guān)的讀取、寫入、擦除、比較操作;邏輯運(yùn)算類庫(kù)函數(shù)用于進(jìn)行邏輯與、邏輯或、異或、自異或、與的邏輯操作;安全管理類庫(kù)函數(shù)用于提供安全相關(guān)的接口函數(shù);系統(tǒng)操作類庫(kù)函數(shù)用于為用戶應(yīng)用程序提供系統(tǒng)類操作函數(shù)接口;文件系統(tǒng)操作類庫(kù)函數(shù)為應(yīng)用程序提供文件操作函數(shù)。
進(jìn)一步的,應(yīng)用注冊(cè)信息單元中的信息包括應(yīng)用程序text段的起始地址、應(yīng)用程序text段的結(jié)束地址、應(yīng)用程序data段的起始地址、應(yīng)用程序data段的結(jié)束地址、應(yīng)用程序bss段的起始地址、應(yīng)用程序bss段的結(jié)束地址、應(yīng)用初始化配置函數(shù)入口地址、應(yīng)用功能函數(shù)入口地址。
進(jìn)一步的,代碼存儲(chǔ)單元是采用電可擦除存儲(chǔ)器進(jìn)行存儲(chǔ),變量存儲(chǔ)單元是采用隨機(jī)存儲(chǔ)器進(jìn)行存儲(chǔ)。
進(jìn)一步的,共享全局變量包括ISO/IEC 7816-3和ISO/IEC 7816-4 協(xié)議中規(guī)定的APDU的五個(gè)命令頭變量、讀寫設(shè)備的緩存數(shù)據(jù)、緩存的隨機(jī)數(shù)。
上述的COS系統(tǒng)的工作流程包括下載及更新應(yīng)用程序工作流程、應(yīng)用工作流程。
所述下載及更新應(yīng)用程序工作流程包括如下步驟:
步驟一:COS系統(tǒng)運(yùn)行,等待外部讀寫設(shè)備的命令,當(dāng)檢測(cè)到命令為更新應(yīng)用代碼時(shí),COS系統(tǒng)執(zhí)行應(yīng)用程序的下載、更新。
步驟二:應(yīng)用程序下載、更新完成后,COS系統(tǒng)檢測(cè)應(yīng)用程序是否注冊(cè),如應(yīng)用程序沒有注冊(cè),則跳轉(zhuǎn)到步驟四,如應(yīng)用程序已經(jīng)注冊(cè),則執(zhí)行步驟三。
步驟三:COS系統(tǒng)為應(yīng)用程序運(yùn)行配置環(huán)境:讀取應(yīng)用代碼區(qū)text段內(nèi)起始位置的注冊(cè)信息、data段的起始位置和結(jié)束位置、應(yīng)用環(huán)境配置函數(shù)入口地址,并搬移data段的數(shù)據(jù)到應(yīng)用全局變量區(qū),最后COS系統(tǒng)跳轉(zhuǎn)到應(yīng)用環(huán)境配置函數(shù)入口地址,將CPU的PC指針的控制權(quán)轉(zhuǎn)交給應(yīng)用程序,應(yīng)用程序執(zhí)行環(huán)境配置。
步驟四:執(zhí)行COS基礎(chǔ)命令,判斷該基礎(chǔ)命令是否需要下載和/或更新應(yīng)用,如否則結(jié)束工作流程,否則則下載和/或更新應(yīng)用程序。
步驟五:返回,結(jié)束工作流程。
所述應(yīng)用工作流程包括如下步驟:
步驟一:智能卡上電,等待接收讀寫設(shè)備的復(fù)位指令,如收到則向讀寫設(shè)備發(fā)送復(fù)位應(yīng)答并執(zhí)行步驟二。
步驟二:COS系統(tǒng)檢測(cè)應(yīng)用是否注冊(cè),若檢測(cè)到應(yīng)用已注冊(cè),COS系統(tǒng)為應(yīng)用配置運(yùn)行環(huán)境,并進(jìn)行步驟三,如沒有注冊(cè)則COS系統(tǒng)可處理基礎(chǔ)指令,進(jìn)行步驟四。
步驟三:COS系統(tǒng)處于待命狀態(tài),等待接收來自讀卡設(shè)備的命令。命令分為基礎(chǔ)指令處理和應(yīng)用處理,當(dāng)命令為基礎(chǔ)指令時(shí),執(zhí)行步驟四;當(dāng)命令為應(yīng)用處理時(shí),執(zhí)行步驟五。
步驟四: COS系統(tǒng)獲得CPU指針的控制權(quán),從COS系統(tǒng)代碼區(qū)讀取指令、從COS系統(tǒng)全局變量區(qū)存取數(shù)據(jù),完成命令處理,并執(zhí)行步驟六。
步驟五:COS系統(tǒng)將CPU指針的控制權(quán)交給應(yīng)用程序,應(yīng)用程序控制CPU的指針從應(yīng)用代碼區(qū)讀取指令、從應(yīng)用的全局變量區(qū)存取數(shù)據(jù),完成應(yīng)用功能的處理,應(yīng)用程序?qū)⑻幚斫Y(jié)果通過共享變量區(qū)反饋給COS系統(tǒng),并歸還CPU指針的控制權(quán),并執(zhí)行步驟六。
步驟六:COS系統(tǒng)向讀寫設(shè)備返回處理結(jié)果,如果處理出錯(cuò),執(zhí)行步驟七,否則返回步驟三。
步驟七:COS系統(tǒng)異常,COS系統(tǒng)不再響應(yīng)讀寫設(shè)備的命令請(qǐng)求,讀寫設(shè)備此時(shí)可進(jìn)行系統(tǒng)復(fù)位,恢復(fù)COS系統(tǒng),本次流程結(jié)束。
附圖說明
圖1是傳統(tǒng)COS系統(tǒng)結(jié)構(gòu)的示意圖。
圖2是傳統(tǒng)COS系統(tǒng)存儲(chǔ)空間分配示意圖。
圖3是本發(fā)明的COS系統(tǒng)存儲(chǔ)空間分配示意圖。
圖4是本發(fā)明的COS系統(tǒng)和應(yīng)用剝離結(jié)構(gòu)的示意圖。
圖5是本發(fā)明的COS系統(tǒng)函數(shù)與變量映射方式示意圖。
具體實(shí)施方式
為了提高智能卡COS系統(tǒng)的通用性、靈活性和開發(fā)效率,本發(fā)明的設(shè)計(jì)構(gòu)思為:將傳統(tǒng)的COS系統(tǒng)分為應(yīng)用接口和定制應(yīng)用兩部分,應(yīng)用接口屬于COS系統(tǒng),由芯片生產(chǎn)商進(jìn)行開發(fā),定制應(yīng)用獨(dú)立于COS系統(tǒng),用戶可根據(jù)需求自行開發(fā)。
下面對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。
所述芯片由硬件及軟件組成。
所述硬件包括CPU處理器、存儲(chǔ)模塊、外圍電路組成。
如圖3所示,存儲(chǔ)模塊是智能卡的存儲(chǔ)空間,其分為代碼存儲(chǔ)單元和變量存儲(chǔ)單元。為盡量減少智能卡隨機(jī)存儲(chǔ)器的資源占用,COS系統(tǒng)規(guī)定智能卡存儲(chǔ)空間的劃分,確定調(diào)用定制應(yīng)用各模塊的方式,存儲(chǔ)模塊分為代碼存儲(chǔ)單元和變量存儲(chǔ)單元。代碼存儲(chǔ)單元是采用電可擦除存儲(chǔ)器進(jìn)行存儲(chǔ),變量存儲(chǔ)單元是采用隨機(jī)存儲(chǔ)器進(jìn)行存儲(chǔ)。所述代碼存儲(chǔ)單元存儲(chǔ)可執(zhí)行文件,包括代碼(text段)、初始化的全局變量(data段)及未初始化的全局變量(bss段)。
所述隨機(jī)存儲(chǔ)器僅用于變量的存取。代碼存儲(chǔ)單元分為COS系統(tǒng)代碼區(qū)、系統(tǒng)配置區(qū)和應(yīng)用代碼區(qū)。
變量存儲(chǔ)空間分為共享變量區(qū)、COS系統(tǒng)全局變量區(qū)、應(yīng)用系統(tǒng)全局變量區(qū)、共享堆棧區(qū)。
下面結(jié)合圖4對(duì)軟件予以介紹。
1.COS系統(tǒng)
COS系統(tǒng)面向多用戶需求,主要由系統(tǒng)主控模塊、硬件資源管理模塊、通信管理模塊、安全管理模塊、應(yīng)用接口模塊等幾部分構(gòu)成。應(yīng)用接口模塊主要由應(yīng)用接口庫(kù)和應(yīng)用接口管理單元組成。
COS系統(tǒng)用于向用戶提供應(yīng)用接口庫(kù),使得用戶無需關(guān)心芯片底層驅(qū)動(dòng)細(xì)節(jié),通過應(yīng)用接口調(diào)用COS內(nèi)部資源,可以有效的控制智能卡上的物理資源,完成特定應(yīng)用功能的開發(fā)。
應(yīng)用接口庫(kù)主要有以下幾類函數(shù):存儲(chǔ)器管理類庫(kù)函數(shù)、邏輯運(yùn)算類庫(kù)函數(shù)、安全管理類庫(kù)函數(shù)、系統(tǒng)操作類庫(kù)函數(shù)、文件系統(tǒng)操作類庫(kù)函數(shù)。其中,存儲(chǔ)器管理類庫(kù)函數(shù)進(jìn)行存儲(chǔ)空間相關(guān)的讀取、寫入、擦除、比較等操作;邏輯運(yùn)算類庫(kù)函數(shù)進(jìn)行常見的邏輯操作,包括邏輯與、邏輯或、異或、自異或、與等操作;安全管理類庫(kù)函數(shù)提供安全相關(guān)的接口函數(shù),如簽名、認(rèn)證、加密和解密等;系統(tǒng)操作類庫(kù)函數(shù)為用戶應(yīng)用程序提供系統(tǒng)類操作函數(shù)接口,包括隨機(jī)數(shù)讀取、系統(tǒng)內(nèi)部認(rèn)證、系統(tǒng)外部認(rèn)證、智能卡波特率修改、掉電保護(hù)等;文件系統(tǒng)操作類庫(kù)函數(shù)為用戶應(yīng)用程序提供文件操作函數(shù),可查找文件、讀取文件內(nèi)容、修改文件內(nèi)容、刪除文件數(shù)據(jù)等。
應(yīng)用接口管理單元為應(yīng)用程序提供下載、更新通道,進(jìn)行應(yīng)用程序的注冊(cè),為應(yīng)用程序配置良好的運(yùn)行環(huán)境,并且管理用戶應(yīng)用數(shù)據(jù)的傳輸。詳細(xì)的說,即應(yīng)用接口管理模塊具有應(yīng)用程序下載管理功能,用于管理應(yīng)用程序的在線下載、更新和注冊(cè)。在智能卡上電初始,應(yīng)用接口管理模塊檢測(cè)應(yīng)用程序是否進(jìn)行注冊(cè),如檢測(cè)到應(yīng)用已注冊(cè),就根據(jù)應(yīng)用注冊(cè)信息進(jìn)行應(yīng)用程序的數(shù)據(jù)的搬移,調(diào)用應(yīng)用環(huán)境配置函數(shù)為應(yīng)用功能的正常運(yùn)行準(zhǔn)備好物理環(huán)境。應(yīng)用接口管理模塊管理應(yīng)用數(shù)據(jù)的傳遞,接收讀寫設(shè)備命令,進(jìn)行應(yīng)用數(shù)據(jù)安全性、合法性檢測(cè),篩選出應(yīng)用功能數(shù)據(jù)內(nèi)容傳遞給應(yīng)用,并將應(yīng)用處理后的數(shù)據(jù)向讀寫設(shè)備回送。應(yīng)用接口管理模塊作為COS系統(tǒng)和定制應(yīng)用的橋梁,使COS系統(tǒng)與應(yīng)用相互獨(dú)立成為可能,增加了COS系統(tǒng)的安全性。
2. 共享變量庫(kù)
共享變量庫(kù)為COS系統(tǒng)和定制應(yīng)用提供數(shù)據(jù)交互的通道,是共享全局變量的集合,包括ISO/IEC 7816-3和ISO/IEC 7816-4 協(xié)議中規(guī)定的APDU(Application Protocol Data Unit)的五個(gè)命令頭變量、讀寫設(shè)備傳遞的數(shù)據(jù)緩存、隨機(jī)數(shù)緩存等。共享變量庫(kù)存儲(chǔ)于存儲(chǔ)模塊的共享變量區(qū)。
3. 定制應(yīng)用模塊
定制應(yīng)用模塊面向唯一用戶,具有特定性。定制應(yīng)用模塊主要由應(yīng)用環(huán)境配置單元、應(yīng)用注冊(cè)信息單元和應(yīng)用功能單元構(gòu)成。
應(yīng)用環(huán)境配置單元用于進(jìn)行應(yīng)用接口庫(kù)內(nèi)函數(shù)的初始化,便于在應(yīng)用功能中調(diào)用COS系統(tǒng)內(nèi)部資源。
應(yīng)用注冊(cè)信息單元是面向COS系統(tǒng)的,其所含有的應(yīng)用注冊(cè)信息為COS系統(tǒng)提供應(yīng)用程序運(yùn)行所需的信息,包括應(yīng)用程序text段的起始地址、應(yīng)用程序text段的結(jié)束地址、應(yīng)用程序data段的起始地址、應(yīng)用程序data段的結(jié)束地址、應(yīng)用程序bss段的起始地址、應(yīng)用程序bss段的結(jié)束地址、應(yīng)用初始化配置函數(shù)入口地址和應(yīng)用功能函數(shù)入口地址等。這些地址信息可通過在編譯環(huán)境的鏈接文件的text、data及bss段內(nèi)插入標(biāo)簽地址變量獲取。
應(yīng)用功能單元用于用戶定制應(yīng)用功能的實(shí)現(xiàn),對(duì)COS系統(tǒng)而言,應(yīng)用功能只是一個(gè)應(yīng)用環(huán)境配置函數(shù)入口地址, COS系統(tǒng)通過訪問應(yīng)用環(huán)境配置函數(shù)入口地址完成CPU指針控制權(quán)向應(yīng)用程序的暫時(shí)移交。
本發(fā)明中,COS系統(tǒng)和定制應(yīng)用在存儲(chǔ)空間上相互獨(dú)立,時(shí)間上順序執(zhí)行,通過共享變量區(qū)進(jìn)行數(shù)據(jù)交互(如圖3所示),通過共享堆??臻g存儲(chǔ)函數(shù)(請(qǐng)說清楚什么函數(shù))的參數(shù)值、局部變量等。
圖5所示為COS系統(tǒng)訪問定制應(yīng)用函數(shù)、變量或定制應(yīng)用訪問COS系統(tǒng)應(yīng)用接口函數(shù)的原理圖。COS系統(tǒng)代碼區(qū)存儲(chǔ)COS系統(tǒng)的運(yùn)行程序,運(yùn)行程序的應(yīng)用接口庫(kù)函數(shù)被鏈接到位于COS系統(tǒng)代碼區(qū)的起始地址開始連續(xù)的存儲(chǔ)空間里,每個(gè)應(yīng)用接口函數(shù)對(duì)應(yīng)一個(gè)固定的入口地址,定制應(yīng)用可通過該固定入口地址間接尋址,訪問應(yīng)用接口函數(shù),達(dá)到操作智能卡底層物理資源的目的。應(yīng)用代碼區(qū)存儲(chǔ)應(yīng)用程序,應(yīng)用程序中的有效地址信息和函數(shù)入口地址根據(jù)COS系統(tǒng)的規(guī)定格式被順序被鏈接到位于應(yīng)用代碼區(qū)的起始地址開始的連續(xù)存儲(chǔ)空間里,每個(gè)應(yīng)用接口函數(shù)對(duì)應(yīng)一個(gè)固定的入口地址,每個(gè)變量對(duì)應(yīng)一個(gè)固定的訪問地址,函數(shù)訪問通過間接尋址方式,變量訪問通過直接尋址。共享變量區(qū)存儲(chǔ)共享變量庫(kù)的程序,該程序定義了作為COS系統(tǒng)和定制應(yīng)用數(shù)據(jù)交互通道的變量、數(shù)組及指針等,共享變量庫(kù)中的每個(gè)成員被鏈接到共享變量區(qū)的起始地址開始連續(xù)的存儲(chǔ)空間內(nèi)。
采用本發(fā)明實(shí)施例的方法設(shè)計(jì)出的COS系統(tǒng)可支持應(yīng)用在線下載及更新。COS系統(tǒng)固化到電可擦除存儲(chǔ)區(qū)的COS代碼區(qū),COS系統(tǒng)運(yùn)行,智能卡可正常工作,處理基本指令,完成指定操作,此時(shí)不支持定制應(yīng)用功能。定制應(yīng)用編譯形成的可執(zhí)行文件,通過智能卡接口在線下載到應(yīng)用代碼區(qū),并完成定制應(yīng)用的注冊(cè)及運(yùn)行環(huán)境配置。
下面對(duì)上述智能卡的工作流程進(jìn)行說明。
COS系統(tǒng)下載及更新應(yīng)用程序工作流程圖包括如下步驟:
步驟一:COS系統(tǒng)運(yùn)行,等待外部讀寫設(shè)備的命令,當(dāng)檢測(cè)到命令為更新應(yīng)用代碼時(shí),COS系統(tǒng)執(zhí)行應(yīng)用程序的下載、更新。
步驟二:應(yīng)用程序下載、更新完成后,COS系統(tǒng)檢測(cè)應(yīng)用程序是否注冊(cè),如應(yīng)用程序沒有注冊(cè),則跳轉(zhuǎn)到步驟四,如應(yīng)用程序已經(jīng)注冊(cè),則執(zhí)行步驟三。
步驟三:COS系統(tǒng)為應(yīng)用程序運(yùn)行配置環(huán)境。首先,讀取應(yīng)用代碼區(qū)text段內(nèi)起始位置的注冊(cè)信息:data段的起始位置和結(jié)束位置、應(yīng)用環(huán)境配置函數(shù)入口地址。其次,搬移data段的數(shù)據(jù)到應(yīng)用全局變量區(qū),由于應(yīng)用代碼區(qū)的data段包含初始化后的全局變量,data段的鏈接地址為應(yīng)用全局變量區(qū),即CPU即將到應(yīng)用全局變量區(qū)讀取應(yīng)用全局變量初始值,故需計(jì)算出data段的數(shù)據(jù)大小,執(zhí)行data段的數(shù)據(jù)搬移操作。最后,COS系統(tǒng)跳轉(zhuǎn)到應(yīng)用環(huán)境配置函數(shù)入口地址,將智能卡CPU的PC指針的控制權(quán)轉(zhuǎn)交給應(yīng)用程序,應(yīng)用程序執(zhí)行環(huán)境配置,主要包括時(shí)鐘環(huán)境配置、應(yīng)用接口函數(shù)注冊(cè)及智能卡接口波特率配置等功能。
步驟四:執(zhí)行COS基礎(chǔ)命令,判斷該基礎(chǔ)命令是否需要下載和/或更新應(yīng)用,如否則結(jié)束工作流程,否則則下載和/或更新應(yīng)用程序。
步驟五:返回,結(jié)束工作流程。
COS系統(tǒng)的工作流程包括如下步驟:
步驟一:智能卡上電,等待接收讀寫設(shè)備的復(fù)位指令,如收到則向讀寫設(shè)備發(fā)送復(fù)位應(yīng)答并執(zhí)行步驟二。
步驟二:COS系統(tǒng)檢測(cè)應(yīng)用是否注冊(cè),若檢測(cè)到應(yīng)用已注冊(cè),COS系統(tǒng)為應(yīng)用配置運(yùn)行環(huán)境,并進(jìn)行步驟三,如沒有注冊(cè)則COS系統(tǒng)可處理基礎(chǔ)指令,進(jìn)行步驟四。
步驟三:COS系統(tǒng)處于待命狀態(tài),等待接收來自讀卡設(shè)備的命令。命令分為基礎(chǔ)指令處理和應(yīng)用處理,當(dāng)命令為基礎(chǔ)指令時(shí),執(zhí)行步驟四;當(dāng)命令為應(yīng)用處理時(shí),執(zhí)行步驟五。
步驟四: COS系統(tǒng)獲得CPU指針的控制權(quán),從COS系統(tǒng)代碼區(qū)讀取指令、從COS系統(tǒng)全局變量區(qū)存取數(shù)據(jù),完成命令處理,并執(zhí)行步驟六。
步驟五:COS系統(tǒng)將CPU指針的控制權(quán)交給應(yīng)用程序,應(yīng)用程序控制CPU的指針從應(yīng)用代碼區(qū)讀取指令、從應(yīng)用的全局變量區(qū)存取數(shù)據(jù),完成應(yīng)用功能的處理,應(yīng)用程序?qū)⑻幚斫Y(jié)果通過共享變量區(qū)反饋給COS系統(tǒng),并歸還CPU指針的控制權(quán),并執(zhí)行步驟六。
步驟六:COS系統(tǒng)向讀寫設(shè)備返回處理結(jié)果,如果處理出錯(cuò),執(zhí)行步驟七,否則返回步驟三。
步驟七:COS系統(tǒng)異常,COS系統(tǒng)不再響應(yīng)讀寫設(shè)備的命令請(qǐng)求,讀寫設(shè)備此時(shí)可進(jìn)行系統(tǒng)復(fù)位,恢復(fù)COS系統(tǒng),本次流程結(jié)束。
本發(fā)明的有益效果為:
本發(fā)明將傳統(tǒng)COS系統(tǒng)從功能上進(jìn)行區(qū)分,進(jìn)而在結(jié)構(gòu)上進(jìn)行分離設(shè)計(jì),把依賴于特定用戶需求的應(yīng)用從傳統(tǒng)COS系統(tǒng)中進(jìn)行剝離。本發(fā)明的COS系統(tǒng)較傳統(tǒng)的COS系統(tǒng)更具有通用性和靈活性。傳統(tǒng)的COS系統(tǒng)需根據(jù)不同用戶需求進(jìn)行多個(gè)COS系統(tǒng)的開發(fā)和維護(hù),開發(fā)工作強(qiáng)度大、難度高,且后期維護(hù)成本高。采用本發(fā)明的方法設(shè)計(jì)出的COS系統(tǒng)獨(dú)立于應(yīng)用功能,面向多用戶,具有通用性,可減少開發(fā)和測(cè)試工作量、降低開發(fā)難度、提高開發(fā)效率;并且支持應(yīng)用的在線下載、更新,便于智能卡后期的應(yīng)用功能更新,可降低維護(hù)成本。