0 引 言
隨著科學技術的不斷進步,智慧卡的應用已經越來越廣泛,涉及到人類生活的各個領域,如商業、醫療、保險、交通、社會公共事業等多種領域,所以如何設計乙個高效穩定的智慧卡作業系統口具有較高的社會意義。這裡針對智慧卡的硬體結構設計了作業系統的通訊和硬體其他模組,並提出了一種測試方案以檢測晶元底層模組的穩定性。
1 智慧卡作業系統概述
片內作業系統(chip operating system,cos)一般是緊緊圍繞著它所服務的智慧卡的特點而開發的。與常見的微機上的作業系統相比,cos在本質上更加接近於監控程式。在此以具體開發例項說明卡片作業系統的基本問題,並提出一種可行可測試的晶元層設計方案及一種晶元底層的測試方案。
2 cos晶元模組設計
cos底層模組在設計時一般都是緊密結合智慧卡記憶體儲器分割槽的情況,按照國際標準中所規定的一些功能進行設計、開發。
is07816是接觸式智慧卡必須遵循的國際規範其中is07816—3主要描述接觸式智慧卡的電訊號和傳輸協議,其中包括各個觸點的電壓電流承受範圍、卡復位應答各個資訊位的實際表示和t=0,t=1的傳輸協議。iso/iec 7816—3規定了ic卡的電氣特性和傳輸協議。包括該類卡和介面裝置問的電源、電氣訊號協議和資訊交換協議。通訊過程中,由介面裝置給ic卡提供電源(vcc),復位訊號(rst)和時鐘(clk),卡和介面裝置間通過i/o埠進行序列通訊。
(1)通訊模組設計。根據t=0非同步半雙工字元傳輸協議,ic卡和介面裝置之間以字元為單位(簡稱字元幀)進行傳輸,採用偶校驗,每個字元由10 b組成。傳輸字元幀之前,i/o線處於狀態z,第1 b為起始位(狀態a);後面8 b為資料位d1~d8;第10 b為偶校驗位,即8位資料和奇偶校驗位中1的個數為偶數。
序列通訊是按位傳送的,每位資訊寬度(持續時間)定義為基本時間單位etu(elementary time unit)。在復位應答期間的資訊寬度稱為「初始etu」,它等於372個時鐘週期,即1etu=372/f。復位應答後的資訊寬度稱為「當前etu」,其計算公式為:當前etu=(f/d)(1/f)。其中:f是時鐘頻率變換因數;d是位元率調整因數;f是時鐘頻率。
ic卡必須與相應的讀寫裝置(ifd)通訊。從這個角度講,智慧型ic卡作業系統的作用就是從讀寫裝置(ifd)接收命令、執行命令並將結果返回讀寫裝置(ifd)。所以,通訊管理功能模組在作業系統中具有十分重要的作用。通訊管理功能模組主要實現以下幾種功能:實現某一通訊協議的資料鏈路層的傳輸管理功能;實現iso/iec 7816標準規定的atr(復位響應)等功能;為作業系統中的其他功能模組提供相應介面。
按iso/iec 7816標準,ic卡和讀寫裝置之間的通訊協議有多種,一般一種卡片只支援某一種通訊協議。下面以符合iso/iec 7816—3標準的t=0字元傳輸協議的智慧型ic卡為例介紹通訊管理功能(支援其他通訊協議的卡的通訊管理功能與此相似)。
icc上電之後,ifd將向icc傳送命令資料,在這樣一次典型的通訊過程中,通訊管理功能主要從事6個步驟的具體工作。如圖1所示。
(2)硬體模組設計。智慧卡cos上電後首先要進行晶元初始化,其主要設定以下幾個方面:晶元初始工作時的頻率,以及使用外頻還是內頻;晶元串列埠初始工作的速率(一般為「ll」的波特率)-晶元串列埠的工作模式(包括t=0還是t=1協議,正向傳輸還是反向傳輸,奇校驗還是偶校驗等);儲存器的初始對映方式。
智慧卡晶元(以下以51系列智慧卡晶元為例)一般包含幾十到幾百kb的flash,以1個頁面為單位進行擦除,根據flash程式設計寫的特點,也就是1能寫成0,而0不能寫成1,故在設計程式設計寫函式時為了保證寫資料的正確性,特採取如下的方式實現此功能:
對於51系列智慧卡晶元,由於標準的8051對程式儲存器最大值支援64 kb,所以晶元採用bank的編址方式。這時往往需要乙個對映函式來實現不同bank的跳轉。如果一款智慧卡晶元的程式儲存器採用128 kb的flash用來存放cos和使用者資料。128 kb的flash均分4個32 kb的bank,在這4個區域裡,commom區是3個bnak的公共區域,即commom區和每個32 kb的bank都可以組成64 kb的連續空間。3個bnak之間不能直接互相訪問,而必須呼叫commom區里的程式才能實現相互的訪問。所以在建立工程時要把經常使用的程式和常數,如中斷入口函式、bank switch跳轉表等都放到commom區里,這樣才能實現各個區域的相互訪問。
(3)異常保護模組設計。is07816—3規定2個連續字元上公升沿之間的延遲至少是12 etu,且2個連續字元上公升沿之間的延遲應不超過9 600 etu。所以cos在設計時要加入傳送「60」來實現正常的通訊。
傳送「60」採用晶元定時器中斷的方式,設定定時器的工作模式,使用時鐘和的初始值。定時器的中斷服務程式的實現流程:關閉傳送「60」定時器;傳送「60」;開啟傳送「60」定時器。
作業系統的異常處理,此函式為cos進行異常狀態時呼叫的函式。進入異常狀態時,要關閉傳送「60」的定時器,然後進入死迴圈狀態。
3 晶元測試方案設計
以下提出一種針對晶元模組函式的測試方案。即嵌入式testing cos。
(1)testing cos測試平台組成。t-cos平台由main.c檔案、api.c檔案、常量配置、a51檔案以及晶元庫、lib檔案組成。其中,針對不同的晶元,main.c,api.c是相同的,而常量配置檔案和晶元庫檔案則不同,在使用時需要更改或更換。
另外,main.c檔案中的commandinterpreter()命令直譯器函式是對傳送命令的識別解釋(在此函式中,為所有需要測試的函式定義了指令嗎)。被測函式的函式體在api.c檔案中。晶元庫在api.c檔案中被具體呼叫。
此testing cos可直接寫入智慧卡中,設計思路是:採用直接apdu指令呼叫的形式,直接呼叫硬體模組函式,如擦一頁函式。執行完指令,函式返回乙個狀態字。
主程式是乙個死迴圈,如下:
命令直譯器函式支援多個函式,為使用者對硬體的直接操作提供介面,可以通過傳送apdu指令實現對晶元的多種操作。
(2)tesling cos測試平台的使用。t—cos測試 平台測試流程,如圖2所示:
(3)testing cos測試平台侷限性分析。t—cos平台使用方便簡潔,易於觀察執行結果,但是其不能觀察過程。因此,在返回結果與預期結果不一致,或者出現錯誤的情況下,無法判斷產生錯誤的原因。在這種情況下,需要借助**器,跟蹤執行過程,最終找出產生問題的原因。
4 結 語
智慧卡作業系統根本的部分就在於晶元底層各個模組的穩固性。晶元層開發是電信、稅控等產品開發的重要組成部分之一,也是最基礎的部分。為了保證電信、稅控產品可以在不同晶元之間的平穩移植,需要對晶元層的開發提出一定的要求和標準,這樣可以保證上層開發的一致性。
智慧卡 7816協議
1 t0 非同步半雙工字元傳輸協議 停止位是2,t1是1。2 t1是非同步半雙工塊傳輸協議。有起始域,資訊域,中止域 組成乙個 塊。3 t14叫做私有協議。t14沒有奇偶校驗,atr期間時鐘因子也不同。像irdeto是620。4 通訊協議說明 字元傳輸 smart card的字元傳輸採用的是非同步半...
RFID與智慧卡
rfid與智慧卡 智慧卡 smartcard 區別於早期的磁卡,是一張上面封裝了整合電 路晶元的塑料卡片,用於儲存和處理資料。智慧卡可以分為一般儲存卡 加密儲存卡 cpu卡和整合了多種功能的超級智慧卡。智慧卡的分類和標 準很多,這裡只對和 rfid 物聯網相關的非接觸式 contactless 智慧...
智慧卡的電源電流
智慧卡的微控制器是通過它的觸點電極c1來獲得其電源電壓的。根據gsm 11.11規範,此電流不能超過10nuaoiso標準的現行版本規定值為200ma,從技術上來說這是過時的,將肯定要改變以反映目前的技術狀態。智慧卡的功率消耗是50mw,即5v的電源電壓和假定的10ma的電源消耗。即使這樣的功率損耗...