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所示。
以下是卡片接收指令相关的源代码: