999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

智能卡COS芯片層模塊設計與測試方案研究

2009-03-02 09:33:12張李靜張秋燕
現代電子技術 2009年4期
關鍵詞:指令設計

張李靜 張秋燕

摘 要:設計了智能卡操作系統底層驅動模塊和FLASH讀寫模塊,并提出針對這些模塊函數的測試方案。首先介紹智能卡操作系統的基本概念和智能卡硬件的基本結構;然后以接觸式智能卡為例,從芯片的硬件結構出發,提出COS操作系統通信和硬件模塊以及操作系統的異常處理機制的設計方案,并提出一種操作系統底層的測試方案,即Testing COS。這里從COS性能的角度出發設計底層模塊,并提出針對底層模塊函數的測試方案。

關鍵詞:操作系統;ISO7816-3;測試模塊;Testing COS

中圖分類號:TP368.1 文獻標識碼:A 文章編號:1004-373X(2009)04-027-04

Research on Design and Testing Scheme of Smart Card COS Chip Module

ZHANG Lijing,ZHANG Qiuyan

(Electronic and Communication Project Engineering,Tianjin University of Technology,Tianjin,300191,China)

Abstract:A bottom drive module of smart card and the read and write module of FLASH are designed,and a programme to test the functions of these modules is proposed.First,it introduces the basic concept of the COS and the basic construction of the chip′s hardware.Then,takes the contact chip as an example,proposes communication and hardware module and the anomaly handling mechanism of the COS based on the chip′s hardware.At the same time,it supplies a testing programme of bottom of the operating system,namely Testing COS.The bottom module is designed based on the performance of COS,and testing method of the bottom module is put forward.

Keywords:operating system;ISO7816-3;testing module;Testing COS

0 引 言

隨著科學技術的不斷進步,智能卡的應用已經越來越廣泛,涉及到人類生活的各個領域,如商業、醫療、保險、交通、社會公共事業等多種領域,所以如何設計一個高效穩定的智能卡操作系統[1]具有較高的社會意義。這里針對智能卡的硬件結構設計了操作系統的通信和硬件其他模塊[2],并提出了一種測試方案以檢測芯片底層模塊的穩定性。

1 智能卡操作系統概述

片內操作系統(Chip Operating System,COS)一般是緊緊圍繞著它所服務的智能卡的特點而開發的[3]。與常見的微機上的操作系統相比,COS在本質上更加接近于監控程序[4]。在此以具體開發實例說明卡片操作系統的基本問題,并提出一種可行可測試的芯片層設計方案及一種芯片底層的測試方案。

2 COS芯片模塊設計

COS底層模塊在設計時一般都是緊密結合智能卡內存儲器分區的情況,按照國際標準中所

規定的一些功能進行設計、開發。

ISO7816是接觸式智能卡必須遵循的國際規范[5]。其中ISO7816-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)[6]。所以,通信管理功能模塊在操作系統中具有十分重要的作用。通信管理功能模塊主要實現以下幾種功能:實現某一通信協議的數據鏈路層的傳輸管理功能;實現ISO/IEC 7816標準規定的ATR(復位響應)等功能;為操作系統中的其他功能模塊提供相應接口。

按ISO/IEC 7816標準,IC卡和讀寫設備之間的通信協議有多種,一般一種卡片只支持某一種通信協議。下面以符合ISO/IEC 7816-3標準的T=0字符傳輸協議的智能IC卡為例介紹通信管理功能(支持其他通信協議的卡的通信管理功能與此相似)。

ICC上電之后,IFD將向ICC發送命令數據,在這樣一次典型的通信過程中,通信管理功能主要從事6個步驟的具體工作。如圖1所示。

以下是卡片接收指令相關的源代碼:

BYTE General_Receive(void)

{

BYTE i,j,c1;

BYTE c2 =0;

BYTE XOR_PPS = 0;

WORD addr;

ccc:

CommandHead[0] = UART_IO_ReceiveByte(); //接收指令第1字節

if( (FlagByte & 0x80) == 0 )

{

if( CommandHead[0] == 0xff )//PPS選擇

{

CommandHead[1] = UART_IO_ReceiveByte();//接收PPS0

i = 1;

if(CommandHead[1]&0x40) i++;

if(CommandHead[1]&0x20) i++;

if(CommandHead[1]&0x10) i++;

for(j=2;i>0;j++,i--)

{

if(j == 5)

{

XOR_PPS = UART_IO_ReceiveByte();

break;

}

CommandHead[j] = UART_IO_ReceiveByte();

}

i = j;

c1= 0;

for(j=0;j

c1 ^= CommandHead[j];

if( c1 ^ XOR_PPS) //如果PPS校驗和錯誤,死鎖

{

for(;;) ;

}

else

{

UART_IO_SendString(CommandHead,i); //回送PPS數據,表示支持94

if(j == 5)

UART_IO_SendByte(XOR_PPS);

UART_Set_Baud(CommandHead[2]); //更改BAUD參數設置

FlagByte = FlagByte | 0x80;//設置PPS有效標志

goto ccc;

}

}

}

FlagByte = FlagByte | 0x80;//設置PPS有效標志

for(i=1;i<5;i++) CommandHead[i]=UART_IO_ReceiveByte(); //不是PPS,繼續接收后4字節指令頭數據

c1 = API_JudgeClaIns();

if( c1 != 0 ) return c1; //判斷CLA/INS

for(i=0;i<11;i++)

{

if(Command_INS== GetByte_C((ADWORD)(s2Command+i)) )

goto Receive_OK;//2S指令,5個頭接完就返回

}

addr = GetSysWord(S2_COMMADDR);

c1 = GetSysByte(addr);

for( i = 0;i

{

if(Command_INS==GetSysByte(addr+1+i))

goto Receive_OK;//2S指令,5個頭接完就返回

}

UART_IO_SendByte(Command_INS);//3S指令,先回送INS再接后續數據

for(i=0;i

CommandData[i]= UART_IO_ReceiveByte();

Receive_OK:

UART_RunWaitingEtuTimer(0x01); //打開計時器

return 0;

}

(2) 硬件模塊設計。

智能卡COS上電后首先要進行芯片初始化,其主要設置以下幾個方面:芯片初始工作時的頻率,以及使用外頻還是內頻;芯片串口初始工作的速率(一般為“11”的波特率);芯片串口的工作模式(包括T=0還是T=1協議,正向傳輸還是反向傳輸,奇校驗還是偶校驗等);存儲器的初始映射方式。

智能卡芯片(以下以51系列智能卡芯片為例)一般包含幾十到幾百KB的FLASH,以1個頁面為單位進行擦除,根據FLASH編程寫的特點,也就是1能寫成0,而0不能寫成1,故在設計編程寫函數時為了保證寫數據的正確性,特采取如下的方式實現此功能:

第一步:取出要寫入地址的數據(為A),與要寫入的數據(為B)進行與操作(結果為C);

第二步:在要寫入數據的地址寫入數據(B);

第三步:取出寫入數據后的地址的數據與數據C進行比較。

對于51系列智能卡芯片,由于標準的8051對程序存儲器最大值支持64 KB,所以芯片采用BANK的編址方式[7]。這時往往需要一個映射函數來實現不同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區里的程序才能實現相互的訪問[2]。所以在創建工程時要把經常使用的程序和常數,如中斷入口函數、Bank Switch跳轉表等都放到Commom區里,這樣才能實現各個區域的相互訪問。

(3) 異常保護模塊設計。

ISO7816-3規定2個連續字符上升沿之間的延遲至少是12 ETU,且2個連續字符上升沿之間的延遲應不超過9 600 ETU。所以COS在設計時要加入發送“60”來實現正常的通信[8]

發送“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指令調用的形式,直接調用硬件模塊函數,如擦一頁函數。執行完指令,函數返回一個狀態字。

主程序是一個死循環,如下:

void main(void)

{

UART_InitChip();

ClearRam(); //清全局變量

MakeATRSend(); //回送ATR(rom數據)

//主程序循環

while (1)

{

if( (General_Receive() ) == 0 )//數據接收錯誤,直接返回錯誤碼

{

CommandInterpreter(); //命令解釋器

}

else

{

FlagByte = FlagByte & 0xfd;

//接受數據錯誤,如果已經有返回數據標志位,清除

}

MakeData();//回送數據

}

}

命令解釋器函數支持多個函數,為用戶對硬件的直接操作提供接口,可以通過發送APDU指令實現對芯片的多種操作[9]

void CommandInterpreter()

{

switch(Command_INS)

{

case 0x00: g_bStatusByte = Api_ErasePage();break;

case 0x02: g_bStatusByte = Api_WriteByte();break;

case 0x06: g_bStatusByte = Api_Mem_Copy();break;

case 0x07: g_bStatusByte = Api_Mem_Set();break;

case 0x08: g_bStatusByte = Api_Mem_Cmp();break;

case 0x09: g_bStatusByte = Api_ReadByte();break;

case 0x0A: g_bStatusByte = Api_ReadWord();break;

case 0x0B: g_bStatusByte = Api_ReadTriByte();break;

case 0x0C: g_bStatusByte = Api_ReadData();break;

case 0x0D: g_bStatusByte = Api_ReadByte_C();break;

case 0x0E: g_bStatusByte = Api_ReadData_C();break;

case 0x16: g_bStatusByte = Api_PrgByte();break;

case 0x17: g_bStatusByte = Api_PrgData();break;

default : break;

}

}

例如:APDU:80 00 10 00 00 表示擦除地址0x1000所在頁面。

APDU:80 0C 10 00 10 表示從地址0x1000開始讀取長度為0x10的數據。

(2) Testing COS測試平臺的使用。

T-COS測試平臺測試流程,如圖2所示:

(3) Testing COS測試平臺局限性分析。

T-COS平臺使用方便簡潔,易于觀察執行結果,但是其不能觀察過程。因此,在返回結果與預期結果不一致,或者出現錯誤的情況下,無法判斷產生錯誤的原因。在這種情況下,需要借助仿真器,跟蹤執行過程,最終找出產生問題的原因。

4 結 語

智能卡操作系統根本的部分就在于芯片底層各個模塊的穩固性。芯片層開發是電信、稅控等產品開發的重要組成部分之一,也是最基礎的部分。為了保證電信、稅控產品可以在不同芯片之間的平穩移植,需要對芯片層的開發提出一定的要求和標準,這樣可以保證上層開發的一致性。

參 考 文 獻

[1]王愛英.智能卡技術.北京:清華大學出版社,1996.

[2][德]Rankl W.智能卡大全:智能卡的結構功能應用.北京:電子工業出版社,2002.

[3]張志剛,趙奎.智能卡操作系統研究和實例分析.企業技術開發,2005,24(9):20-22.

[4]亨德里.智能卡安全與應用.北京:人民郵電出版社,2002.

[5]International Standard ISO 7816-1,-2,-3,-4[S].Identification Cards:Integrated Circuits Cards with Contacts:1997.

[6]楊志峰,王志新.智能卡的操作系統:COS.現代電子技術,2005,28(8):91-93.

[7]李金良.智能卡操作系統(COS)編程語言及編譯器系統設計與實現.中國集成電路,2005(11):67-69.

[8]李翔.智能卡研發技術與工程實踐.北京:人民郵電出版社,2003.

[9]張利華.智能卡操作系統開發中的測試技術.計算機工程與設計,2004,25(6):901-902.

[10]李浩,謝桂海,王新鋒,等.一種基于零知識證明的RFID鑒別協議.現代電子技術,2006,29(17):23-25.

作者簡介 張李靜 1983年出生,天津理工大學電子信息與通信工程學院碩士。

張秋燕 1949年出生,天津理工大學電子信息與通信工程學院教授,研究生導師。

猜你喜歡
指令設計
聽我指令:大催眠術
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 最新国产麻豆aⅴ精品无| 欧美一级高清视频在线播放| 88国产经典欧美一区二区三区| 一级毛片免费播放视频| 精品一区二区三区视频免费观看| 99青青青精品视频在线| 免费人欧美成又黄又爽的视频| 伊人成人在线| 成年看免费观看视频拍拍| 四虎AV麻豆| AV色爱天堂网| 她的性爱视频| 国产精品第页| 91久久青青草原精品国产| 红杏AV在线无码| 国产香蕉在线视频| 亚洲综合精品第一页| 国产欧美日韩综合在线第一 | 全午夜免费一级毛片| 狠狠干欧美| 日韩精品毛片| 国内精品小视频在线| 亚洲乱码精品久久久久..| 婷婷午夜影院| 在线观看精品自拍视频| jizz国产在线| 女高中生自慰污污网站| 九月婷婷亚洲综合在线| 欧美一级在线看| 久久久久九九精品影院| 久久精品中文无码资源站| 欧洲熟妇精品视频| 亚洲午夜福利精品无码不卡| 亚洲中文字幕手机在线第一页| 日本精品中文字幕在线不卡| 国产成人亚洲精品色欲AV| 五月天香蕉视频国产亚| 国产永久在线视频| 四虎国产在线观看| 国产在线视频欧美亚综合| 亚洲精品第一页不卡| 欧美亚洲香蕉| 国产永久免费视频m3u8| 久久这里只精品国产99热8| 亚洲一区二区日韩欧美gif| 久久免费精品琪琪| 久久综合色播五月男人的天堂| 97视频在线精品国自产拍| 国产高清在线丝袜精品一区| 久久性视频| 欧美精品高清| 毛片视频网| 黄色网站不卡无码| 国产一区二区三区精品久久呦| 精品国产美女福到在线直播| 亚洲成年人网| 欧美午夜在线播放| av大片在线无码免费| 国产h视频在线观看视频| 亚洲欧美日韩天堂| 成人无码一区二区三区视频在线观看 | 免费国产小视频在线观看| 国产理论精品| 亚洲AⅤ无码国产精品| 亚洲精品免费网站| 国产精品99久久久| 美女被狂躁www在线观看| 青青青草国产| 亚洲最大福利网站| 国产成人精品一区二区不卡| 国产免费看久久久| 国产精品成人久久| 四虎成人精品在永久免费| 国产色图在线观看| 国产精品99一区不卡| 国产成人精品综合| 欧类av怡春院| 亚洲国产高清精品线久久| 91精品国产一区自在线拍| 国产精品毛片在线直播完整版| 一本大道东京热无码av| 免费人欧美成又黄又爽的视频|