<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  智能卡操作系統的補丁機制研究

                  文章出處:http://psychicreadingswithdeb.com 作者:張李靜, 張秋燕&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年09月30日

                  [文章內容簡(jiǎn)介]:簡(jiǎn)要介紹智能卡操作系統的基本概念及操作系統的文件結構; 以接觸式51智能卡為例,說(shuō)明補丁在智能卡操作系統中的應用,并針對當前補丁下載方法的不足,提出一種操作系統的補丁管理機制,以實(shí)現發(fā)卡后可以實(shí)時(shí)更新卡片應用程序,或者修改卡片操作系統中存在的問(wèn)題。 文中給出具體的實(shí)例,并進(jìn)行分析,給出實(shí)現方法和步驟,同時(shí)驗證了此補丁下載方法的可行性。 本文中提出的補丁管理機制,較一般的補丁下載具有很強的靈活性,可以一次下載多個(gè)補丁,并方便對多個(gè)補丁進(jìn)行管理。

                      隨著(zhù)科學(xué)技術(shù)的不斷進(jìn)步,智能卡的應用已涉及到人類(lèi)生活的各個(gè)領(lǐng)域,如商業(yè)、醫療、保險、交通、社會(huì )公共事業(yè)等多種領(lǐng)域。同時(shí),用戶(hù)手里的智能卡數量也越來(lái)越多,特別是同種類(lèi)的卡由于要升級卡片信息往往需要換一張新卡。 所以,如何高效利用智能卡,即如何設計智能卡的補丁機制,以實(shí)現發(fā)卡后更新卡片應用程序或者修改卡片操作系統BUG是十分重要的課題。

                      1 智能卡操作系統概述

                      智能卡操作系統,簡(jiǎn)稱(chēng)COS。COS一般是緊緊圍繞著(zhù)它所服務(wù)的智能卡的特點(diǎn)而開(kāi)發(fā)的。與那些常見(jiàn)的微機上的操作系統相比較而言, COS在本質(zhì)上更加接近于監控程序。智能卡和終端進(jìn)行通信是以命令的形式進(jìn)行的。根據規范要求,系統所采用的都是命令應答對的方式,由讀寫(xiě)設備發(fā)出命令,智能卡則接收命令,進(jìn)行處理,處理完畢后送出相應的應答。所以,COS所需要解決的最根本問(wèn)題是對外部的命令如何進(jìn)行處理、響應的問(wèn)題。

                      整個(gè)COS是通過(guò)文件來(lái)實(shí)現存儲和管理數據的,文件結構系統類(lèi)似于DOS的目錄管理方式,可以實(shí)現多級目錄,每個(gè)目錄下面可以創(chuàng )建多種類(lèi)型文件。文件系統是由專(zhuān)有文件DF (Dedicated File)和基本文件EF (Elementary File)組成的. 根目錄的DF稱(chēng)為MF,任何一個(gè)文件組織均是以MF開(kāi)頭的結構.所有的其余文件(DF、EF)均是MF的分支, DF下可以創(chuàng )建DF和EF分支, EF是末端,不能在EF下創(chuàng )建文件,文件系統結構如圖1所示。 

                  智能卡操作系統的文件結構

                  圖1 智能卡操作系統的文件結構

                  Fig. 1 File structures of COS

                      智能卡操作系統COS在設計主函數時(shí)比較通用的方式是設計成一個(gè)循環(huán)的方式. 循環(huán)實(shí)現智能卡接收命令, 進(jìn)行處理, 處理完畢后送出相應的應答。

                      主程序在接收到終端發(fā)來(lái)的指令會(huì )經(jīng)過(guò)傳輸管理模塊,首先判斷是什么樣的指令,以及要對那些文件進(jìn)行操作,操作后再返回主程序進(jìn)行處理,返回相應的數據和執行結果. 智能卡和終端的交互過(guò)程是通過(guò)對卡內文件的連續操作進(jìn)行的。

                      2 智能卡操作系統補丁機制的應用背景

                      2. 1 補丁在智能卡操作系統中的使用

                      通常,智能卡操作系統COS的下載方式是由芯片提供商決定的. 在下載COS之前,卡片的狀態(tài)為BootLoader狀態(tài). 卡片BootLoader有一套自己的操作指令. 本文中的補丁機制研究以51系列智能卡為例, 實(shí)際操作時(shí),采用的編譯器是Keil編譯器,程序編譯后會(huì )產(chǎn)生一個(gè). hex文件. 下載程序時(shí)把. hex文件中地址信息和對應的數據信息解析出來(lái),然后用BootLoader的下載指令即可。

                      一般情況下,在下載完COS后,如果發(fā)現COS中有程序錯誤或者需要增加新的功能而需要修改某些函或文件,最簡(jiǎn)單的辦法就是重新發(fā)卡,即回收卡片,重新下載COS. 但是當卡片已經(jīng)在用戶(hù)手中,這時(shí),不僅要回收卡片,還要經(jīng)歷COS下載、個(gè)人化等階段. 這就顯的非常麻煩。 所以,我們在設計卡操作系統時(shí)最好能給出一個(gè)補丁( PATCH)的接口,這樣的話(huà),當卡片需要增加新的功能或是修改BUG時(shí),只需將補丁程序下載到卡片這一個(gè)步驟。

                      2. 2 補丁的實(shí)現方式

                      傳統的補丁設計方法是直接在程序中預留一段或者多段代碼. 這樣,當需要下載補丁時(shí),只需將補丁程序寫(xiě)到預留的地址中去即可. 但是,由于在預留代碼時(shí)一般不能確定未來(lái)下載補丁的大小和個(gè)數,所以,這種實(shí)現方法有一定的局限性,而且,在需要下載的補丁較大或者較多時(shí),比較容易出現代碼重疊的情況,使COS在執行過(guò)程中出現異常錯誤。

                      基于以上問(wèn)題,下面結合51系列智能卡研究出一套補丁機制,這種方案適合任意的51系列智能卡的補丁下載. 該方法通過(guò)建立PATCH函數表和在操作系統主程序中設計調用補丁的接口來(lái)實(shí)現補丁的下載和管理,可以根據不同的補丁分類(lèi)索引進(jìn)行補丁下載,而且不再受補丁大小的限制,同時(shí)支持多個(gè)補丁的下載。

                      3 智能卡操作系統補丁機制方案設計

                      3. 1 實(shí)現機制

                      本文中智能卡操作系統的補丁機制采用地址映射表的方式實(shí)現. 即在EEPROM /FLASH ( ram)放置一個(gè)PATCH函數表(或者創(chuàng )建一個(gè)內部管理文件存儲). 數據記錄格式如表1所示. 其中, Patch ID值為自定義或運營(yíng)商定義. Patch屬性字節定義如表2所示。 

                   

                      3. 2 實(shí)現方式

                      1)在卡片中的系統數據區預先創(chuàng )建Patch索引表,預留足夠的表空間。

                      2)在固化程序中預留可能會(huì )調用補丁的接口。

                      調用方式舉例: 

                      Judge_Patch函數位于固化程序中,它可以解析Patch索引表,根據Patch ID來(lái)確定是否有Patch需要執行,及獲得Patch程序首地址. Judge_Patch函數中會(huì )自動(dòng)將補丁程序的首地址賦給一個(gè)全局函數指針,所以如果存在Patch程序,可以直接調用函數指針實(shí)現對補丁函數的調用. 如果Judge_Patch函數返回0,表示沒(méi)有找到相關(guān)的補丁函數,則繼續執行原來(lái)的處理流程。

                      3)執行補丁程序, COS直接轉到獲得的Patch程序首地址開(kāi)始執行. 補丁程序執行之前內部實(shí)現保護目前的程序地址和寄存器等。

                      4 實(shí)例分析

                      若智能卡操作系統的兩個(gè)補丁函數為: AP I_FindDfEf_patch,即找到當前DF文件下的EF文件;Update_Record_Patch,即更新記錄文件,下面給出具體進(jìn)行補丁函數下載時(shí)的詳細步驟: 

                      1)編寫(xiě)補丁函數,并將這段代碼下載到芯片的代碼區空余位置(可以從COS編譯后生成的文件中獲取地址) ,并記錄下載的首地址。
                      2)為當前補丁設置在補丁索引表中的位置和相關(guān)屬性,如表4所示。 


                      3)卡片復位,重新上電后,COS會(huì )通過(guò)Judge _Patch函數進(jìn)行對判斷是否要執行補丁函數以及執行哪個(gè)補丁,根據屬性字節可知要執行的補丁是第一個(gè)補丁,即找到當前DF文件下的EF文件,Judge_Patch會(huì )送出補丁的起始地址,在接下來(lái)補丁程序,實(shí)現如下: 

                      4)是補丁功能驗證,卡片復位,執行選擇DF下某EF文件指令。 因為該指令內部是通過(guò)前面下載的補丁來(lái)實(shí)現的。 所以,從指令的執行結果就能觀(guān)察出本文中下載補丁的正確與否, 本例中,卡片返回正確的狀態(tài)碼以及所選EF的相關(guān)信息。

                       5 結 論

                      本文首先介紹智能卡操作系統的基本概念,其次結合接觸式51系列智能卡芯片說(shuō)明補丁下載在智能卡操作系統中的應用背景。并針對當前補丁下載方法的不足,提出了一種補丁管理機制。文中給出具體的實(shí)例,并進(jìn)行分析,給出實(shí)現方法和步驟,同時(shí)驗證了此補丁下載方法的可行性,本文中提出的補丁管理機制適合任意的51系列智能卡的補丁下載,而且不再受補丁大小的限制,并可根據不同的補丁分類(lèi)索引進(jìn)行補丁下載,因此,該方案具用很好的應用價(jià)值。

                      (文/天津理工大學(xué)計算機與通信工程學(xué)院, 張李靜, 張秋燕)

                  本文關(guān)鍵詞:操作系統,智能卡,應用程序,補丁
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>