学海荡舟手机网
导航

主页 > 论文知识 > 最新论文资料 > 信息 > > 详细内容

智能卡操作系统(cos)仿真器系统设计与实现

 智能卡操作系统(COS)仿真器系统设计与实现

  一、前言

  如今智能卡芯片和卡片成品的开发与生产已经形成了一个世界性的新兴技术产业。我国于1993年,以电子货币应用为重点的各类卡基应用系统工程即金卡工程正式启动。它涉及众多部门,是一项跨部门、跨地区、跨行业、跨世纪的庞大社会系统工程,也是中国信息化、产业化发展的纲要和指南。开发智能卡,其关键在于开发智能卡上所嵌入的集成电路芯片以及安置在芯片内的应用程序暨片内操作系统(Chip-Operating-System ,COS)。由于集成电路的流片费用昂贵、流片加工周期长,所以无论从成本控制上、还是市场需要上,保证一次设计成功至为关键。为了实现这一目的,设计开发一套“智能卡操作系统(COS)仿真器系统”显得尤为必要和重要。

  1、 仿真器系统主要实现的功能

  CIU92开发系统(DS92)是针对CIDC自行设计的CIU92系列CPU、结合IC卡的有关特点而设计的软硬件集成开发环境(基于Windows环境)。DS92主要有两大功能:汇编语言编译和硬件仿真。硬件仿真提供了不同层次的硬件仿真手段,便于用户根据应用开发程度选择相应的仿真模式。DS92是针对CPU卡的开发系统,既有一般CPU开发系统的共性(包括基本的汇编语言编译器、单步运行、断点设置、设置/显示CPU SFR内容、设置/显示CPU RAM内容、设置/显示CPU ROM内容、设置/显示CPU EEPROM内容),也有一些IC卡特有的仿真方法,例如内部复位(internal mrst)模式、外部复位(external mrst)模式、实(release)模式、IC卡与读卡器(reader)的相互作用关系遵循ISO7816-3协议。

  主要功能如下:

  (1)提供COS程序(可以是汇编语言、C语言等,下同)代码编制、编辑环境;

  (2)提供将COS程序代码编译为智能卡中央处理单元(CPU)可以执行的机器指令码的编译环境;

  (3)实现将编译后的机器指令码下载到仿真器,并由仿真器执行的功能;

  (4)可以设置COS程序执行断点,支持单步运行、多步运行、子程序调用、跳转、连续运行等调试(Debug)功能;

  (5)可以实时查看卡内CPU的内部RAM、寄存器单元;

  (6)可以实时查看COS程序执行后的数据结果;

  (7)仿真运行需要的其它辅助性功能。

  图1 DS92 COS仿真器系统框图

  2、 仿真器系统总体方案

  DS92从逻辑上可以分为软件和硬件两大部分,其组成示意图如图1。其中硬件仿真板与PC软件(IDE)之间通讯采用USB v1.1通讯协议;硬件仿真板与读卡器reader之间的通讯遵守ISO7816-3。

  硬件仿真板从硬件角度仿真CIU92 CPU卡,包括CPU 硬件、CPU RAM区域、CPU ROM区域、CPU EEPROM区域,此外,为硬件仿真提供必要的硬件支持。整个硬件仿真板由一个监控CPU(MCU)进行管理协调,MCU 还负责完成与PC之间的通讯。

  用户通过IDE软件提供的命令使用开发系统,用户可以在开发系统集成环境中,创建、编辑、删除工程;输入、编辑、编译汇编语言程序;生成用于硬件仿真、生成ROM 掩膜码点的二进制目标文件。

  IDE软件可以与硬件开发板配合使用,也可以单独使用。IDE软件单独使用时,只能进行工程管理、编辑和编译汇编语言程序、目标代码生产等工作。只有与硬件仿真板配合使用才能真正进行硬件仿真。

  DS92 COS仿真系统需要着重解决下面的问题:

  (1) Debug能力:硬件程序执行跟踪、程序下载

  (2) 仿真器不能占用用户资源,即IC卡CPU仿真核功能与真正卡片完全相同

  (3) 仿真系统的效率:程序下载效率、debug效率,主要是通讯效率、debug信息反馈效率

  (4) 断点个数不限

  三、仿真器系统设计

  1、 硬件仿真器板的设计

  仿真器板的设计主要包括三个部分:IC卡芯片CPU设计、运行监控CPU设计和电路板设计。下面给出简单介绍。

  图2 IDE系统主界面

  (1)IC卡CPU设计

  IC卡CPU的功能是模拟卡内CPU并执行COS程序中的指令代码,同时支持debug,即允许监控CPU读取或改写其内的RAM、寄存器单元、进行单步运行等。

  在DS92中采用现场可编程器件(FPGA)实现IC卡CPU的逻辑功能。

  (2)监控CPU设计

  监控CPU的功能主要是:

  (a)通讯功能:通过通信电缆接收IDE发出的命令、控制IC卡CPU完成有关动作、返回命令结果给IDE;监控CPU在DS92系统中起着承上启下的作用。

  (b)Debug功能的实现:程序下载、控制(启动、停止)IC卡CPU的运行、读取或改写IC卡CPU内的RAM、寄存器单元、设置COS程序执行断点、单步运行、多步运行、连续运行并回送执行结果;

  可以采用Intel80C51/52系列单片机实现监控CPU。

  (3)电路板设计

  电路板设计围绕debug功能及其效率实现:

  (a)FPGA实现IC卡CPU功能

   (b)RAM芯片仿真IC卡中存储COS程序代码的ROM

  (c)不挥发RAM芯片仿真IC卡存储应用数据的EEPROM

  (d)8051芯片用于实现监控MCU

  (e)RAM芯片实现断点存储器,支持任意个数的断点设置

  (f)为了方便IC 卡COS,在系统中集成了CPU IC卡读写器电路

   

  

  图3IDE系统主界面(升级版) 

  

  图4COS程序源代码编辑窗口 

  

  图5 组织源代码编辑窗口 

  

  图6 编译器编译输出信息窗口-2 

      图6:IDE调试器窗口

   2、集成开发调试软件系统(IDE)设计开发

  实际上,运行在PC机端的COS集成开发调试软件系统是整个仿真器系统的另一个核心组成部分。由于COS程序的开发者是通过使用该IDE人机界面实现、完成COS程序开发、调试的各个过程,包括COS程序源代码编写、编辑;源程序编译;程序代码下载;运行、跟踪、调试等等,因此,IDE软件也是整个仿真器系统的灵魂。人机界面是否友好、各种功能是否强大、灵活、模块化设计程度是否完善等直接影响到系统的实用性、可操作性和可维护性。可见,整体设计方案的前詹性、合理性至为关键。

  IDE程序人机界面有以下几个部分组成:

  (1)命令菜单区

  (2)COS程序源代码编写、编辑窗口

  (3)COS程序源代码编译窗口

   (4)COS程序调试窗口:包括源程序代码行显示区,寄存器显示区,RAM单元显示区,程序计数器(PC)显示区以及运行状态显示区。

  IDE人机界面程序编程语言选用Microsoft Visual C++ 5.0 以上版本。

  以下是实际系统的几个主要显示画面。

  3、IDE与仿真器板之间

  通信协议的设计

  IDE与仿真器板之间的通信采取请求、应答的模式,即每一个操作命令都是由IDE发送一个请求或命令,仿真器板收到相应的请求或命令后即执行相应的操作,然后将执行结果回送给IDE。

   双方之间的通信协议定义如下:

   (1) IDE请求或命令包

  Soh

  Cmd

  Data_H

  Data_L

  Data

  ChkSum

   (2) 仿真器板应答包

  Ack

  Cmd

  Response_H

  Response_L

  Response

  ChkSum

   (3) 校验和ChkSum的计算

  ChkSum为单字节,其数值为其前面的、本数据包内所有字节的累加和(不考虑进位情况)。

  四、系统设计过程中的几个关键环节

   1、 COS程序源代码编译器

  由于智能卡内的CPU内核没有一个统一的标准,因此,不同公司设计的CPU核,虽然在所实现的功能上大同小异,但是其指令集、指令码却不尽相同(也不能相同,否则有可能侵权)。

  因此,针对仿真器所仿真的智能卡的CPU核,必须制定与其指令集、指令码对应的编程语言如汇编语言、C语言、Java语言以及语法规则等等,借助这些语言,智能卡COS开发者才能用其开发、编制COS程序。

  COS程序源代码编译器是整个仿真器系统设计的重中之重,它必须与智能卡CPU指令码的编程语言及其语法、规则等相对应,编译准确度必须是100%,当然编译速度也越快越好。

   2、 通信接口监控程序的设计

  IDE与仿真器板之间的通信采取请求、应答的模式。针对调试者点击或发出的每一个菜单命令,IDE都会通过通信接口(RS-232或USB等)向仿真器板发送一个请求或命令协议数据包,仿真器板收到协议数据包后,首先对其进行解析,按照各种协议包的约定,进行相应的处理,最后将处理结果的协议数据包回送给IDE,由IDE再进行后续处理,至此完成了一个会话任务的全过程。

  由于存在通信线路故障、数据包丢失或不完整等可能性, 造成IDE发送完请求或命令后可能收不到正确的响应,进而导致IDE系统“死机”后调试数据的丢失。

  为应对、防止或避免类似情况,通信接口监控程序的设计需要采用中断方式、事件触发方式或程序多线程方式。

  五、结束语

  运用本文提出的设计思想,已经成功地开发出了仿真器系统产品。而且由作者本人直接主持过该项目的开发,并亲自承担了IDE软件系统设计与编程、编译器子系统设计与编程、通信协议的制定、通信接口监控程序的设计与编程等工作。

  目前,公司借助开发出的仿真器系统已经开发出了系列化的智能卡产品,其中包括代码卡、金融卡、社保卡、加油卡、二代证卡、PKI卡等,取得了可观的经济效益和社会效益。 


相关文章