一种COS系统应用剥离的智能卡及其工作方法与流程

文档序号:11865247阅读:290来源:国知局
一种COS系统应用剥离的智能卡及其工作方法与流程

本发明涉及嵌入式SOC(System On Chip)领域,尤其涉及一种COS系统应用剥离的智能卡及其工作方法。



背景技术:

智能卡由硬件资源(芯片)和片上操作系统COS组成。

芯片主要由CPU处理器、存储单元(包括随机存储器、电可擦除存储器)、外围电路组成。

COS系统是智能卡的核心,嵌入在芯片内,管理芯片硬件资源、执行数据的安全处理及存取,并通过外围接口与外界设备通信的监控软件系统。

传统的智能卡COS系统结构通常包括系统主控模块、硬件资源管理模块、通信管理模块、安全管理模块、文件系统管理模块和应用管理模块等几个部分,如图1所示。系统主控模块是COS的核心,直接面向硬件资源,统一协调各模块运转;安全管理模块对传输和存储的数据进行加密、权限鉴别,确保智能卡的安全;文件系统管理模块管理以文件形式存储的数据,负责完成对文件的查找、读写等操作,并对存储空间进行管理;应用管理模块对外部送入的各种指令进行判断、解析及处理,调度内部资源用以完成用户定制应用功能的相应操作。

出于对智能卡低功耗、成本需求的考虑,应尽量节省占用存储器资源,COS系统的代码、系统配置及文件系统因需掉电保存则存储于电可擦除存储器,而COS系统运行所需的全局、静态变量和堆栈数据因易变和处理速度高则存储于随机存储器,COS系统程序运行从电可擦除存储器读取指令和只读数据,从随机存储器读写数据,如图2所示。

传统的智能卡COS系统是针对特定芯片和定制应用开发的,通常由芯片生产商完成开发,因为只有他们才真正了解芯片底层的技术细节。同一款芯片有多家用户,每家用户的应用场景不同,意味着每款芯片需要多个COS系统软件才能满足多用户需求。芯片生产商需要为每家用户定制专用的COS系统,由于芯片生产商开发人员普遍缺乏特定应用场景的技术储备,开发难度增大、时间跨度长,每个定制COS系统都需要大量的测试,这样极大降低了开发的效率,且传统的COS系统不支持应用功能独立更新,后期维护成本增高。



技术实现要素:

为解决上述问题,本发明提供了一种COS系统应用剥离的智能卡,所述智能卡包括芯片、COS系统、共享变量库、定制应用模块;

所述芯片由CPU、存储模块、外围电路组成。存储模块分为代码存储单元和变量存储单元,所述代码存储单元分为COS系统代码区、系统配置代码区、应用代码区;所述变量存储单元分为共享变量区、COS系统全局变量区、应用系统全局变量区、共享堆栈区。

所述COS系统包括系统主控模块、硬件资源管理模块、通信管理模块、安全管理模块、应用接口模块;所述COS系统用于控制智能卡同外界的命令交换,管理智能卡内资源,为用户提供调用COS系统内部资源的的应用接口库;应用接口模块主要由应用接口库和应用接口管理单元组成,所述应用接口库包括多个应用接口函数;应用接口管理单元为应用程序提供下载、更新通道,进行应用程序的注册,为应用程序配置运行环境,并且管理用户应用数据的传输。

共享变量库为共享全局变量的集合,用于实现COS系统和定制应用模块的数据交互,并提供数据缓存;所述共享变量库存储于共享变量区。

定制应用模块由应用环境配置单元、应用注册信息单元和应用功能单元构成;应用环境配置单元用于进行应用接口函数初始化,以调用COS系统内部资源;应用注册信息单元用于为COS系统提供应用程序运行所需的信息;应用功能单元用于提供一个应用环境配置函数入口地址,以实现CPU指针控制权向应用程序的暂时移交。

进一步的,应用接口库包括存储器管理类库函数、逻辑运算类库函数、安全管理类库函数、系统操作类库函数及文件系统操作类库函数;存储器管理类库函数用于进行存储空间相关的读取、写入、擦除、比较操作;逻辑运算类库函数用于进行逻辑与、逻辑或、异或、自异或、与的逻辑操作;安全管理类库函数用于提供安全相关的接口函数;系统操作类库函数用于为用户应用程序提供系统类操作函数接口;文件系统操作类库函数为应用程序提供文件操作函数。

进一步的,应用注册信息单元中的信息包括应用程序text段的起始地址、应用程序text段的结束地址、应用程序data段的起始地址、应用程序data段的结束地址、应用程序bss段的起始地址、应用程序bss段的结束地址、应用初始化配置函数入口地址、应用功能函数入口地址。

进一步的,代码存储单元是采用电可擦除存储器进行存储,变量存储单元是采用随机存储器进行存储。

进一步的,共享全局变量包括ISO/IEC 7816-3和ISO/IEC 7816-4 协议中规定的APDU的五个命令头变量、读写设备的缓存数据、缓存的随机数。

上述的COS系统的工作流程包括下载及更新应用程序工作流程、应用工作流程。

所述下载及更新应用程序工作流程包括如下步骤:

步骤一:COS系统运行,等待外部读写设备的命令,当检测到命令为更新应用代码时,COS系统执行应用程序的下载、更新。

步骤二:应用程序下载、更新完成后,COS系统检测应用程序是否注册,如应用程序没有注册,则跳转到步骤四,如应用程序已经注册,则执行步骤三。

步骤三:COS系统为应用程序运行配置环境:读取应用代码区text段内起始位置的注册信息、data段的起始位置和结束位置、应用环境配置函数入口地址,并搬移data段的数据到应用全局变量区,最后COS系统跳转到应用环境配置函数入口地址,将CPU的PC指针的控制权转交给应用程序,应用程序执行环境配置。

步骤四:执行COS基础命令,判断该基础命令是否需要下载和/或更新应用,如否则结束工作流程,否则则下载和/或更新应用程序。

步骤五:返回,结束工作流程。

所述应用工作流程包括如下步骤:

步骤一:智能卡上电,等待接收读写设备的复位指令,如收到则向读写设备发送复位应答并执行步骤二。

步骤二:COS系统检测应用是否注册,若检测到应用已注册,COS系统为应用配置运行环境,并进行步骤三,如没有注册则COS系统可处理基础指令,进行步骤四。

步骤三:COS系统处于待命状态,等待接收来自读卡设备的命令。命令分为基础指令处理和应用处理,当命令为基础指令时,执行步骤四;当命令为应用处理时,执行步骤五。

步骤四: COS系统获得CPU指针的控制权,从COS系统代码区读取指令、从COS系统全局变量区存取数据,完成命令处理,并执行步骤六。

步骤五:COS系统将CPU指针的控制权交给应用程序,应用程序控制CPU的指针从应用代码区读取指令、从应用的全局变量区存取数据,完成应用功能的处理,应用程序将处理结果通过共享变量区反馈给COS系统,并归还CPU指针的控制权,并执行步骤六。

步骤六:COS系统向读写设备返回处理结果,如果处理出错,执行步骤七,否则返回步骤三。

步骤七:COS系统异常,COS系统不再响应读写设备的命令请求,读写设备此时可进行系统复位,恢复COS系统,本次流程结束。

附图说明

图1是传统COS系统结构的示意图。

图2是传统COS系统存储空间分配示意图。

图3是本发明的COS系统存储空间分配示意图。

图4是本发明的COS系统和应用剥离结构的示意图。

图5是本发明的COS系统函数与变量映射方式示意图。

具体实施方式

为了提高智能卡COS系统的通用性、灵活性和开发效率,本发明的设计构思为:将传统的COS系统分为应用接口和定制应用两部分,应用接口属于COS系统,由芯片生产商进行开发,定制应用独立于COS系统,用户可根据需求自行开发。

下面对本发明的技术方案进行详细说明。

所述芯片由硬件及软件组成。

所述硬件包括CPU处理器、存储模块、外围电路组成。

如图3所示,存储模块是智能卡的存储空间,其分为代码存储单元和变量存储单元。为尽量减少智能卡随机存储器的资源占用,COS系统规定智能卡存储空间的划分,确定调用定制应用各模块的方式,存储模块分为代码存储单元和变量存储单元。代码存储单元是采用电可擦除存储器进行存储,变量存储单元是采用随机存储器进行存储。所述代码存储单元存储可执行文件,包括代码(text段)、初始化的全局变量(data段)及未初始化的全局变量(bss段)。

所述随机存储器仅用于变量的存取。代码存储单元分为COS系统代码区、系统配置区和应用代码区。

变量存储空间分为共享变量区、COS系统全局变量区、应用系统全局变量区、共享堆栈区。

下面结合图4对软件予以介绍。

1.COS系统

COS系统面向多用户需求,主要由系统主控模块、硬件资源管理模块、通信管理模块、安全管理模块、应用接口模块等几部分构成。应用接口模块主要由应用接口库和应用接口管理单元组成。

COS系统用于向用户提供应用接口库,使得用户无需关心芯片底层驱动细节,通过应用接口调用COS内部资源,可以有效的控制智能卡上的物理资源,完成特定应用功能的开发。

应用接口库主要有以下几类函数:存储器管理类库函数、逻辑运算类库函数、安全管理类库函数、系统操作类库函数、文件系统操作类库函数。其中,存储器管理类库函数进行存储空间相关的读取、写入、擦除、比较等操作;逻辑运算类库函数进行常见的逻辑操作,包括逻辑与、逻辑或、异或、自异或、与等操作;安全管理类库函数提供安全相关的接口函数,如签名、认证、加密和解密等;系统操作类库函数为用户应用程序提供系统类操作函数接口,包括随机数读取、系统内部认证、系统外部认证、智能卡波特率修改、掉电保护等;文件系统操作类库函数为用户应用程序提供文件操作函数,可查找文件、读取文件内容、修改文件内容、删除文件数据等。

应用接口管理单元为应用程序提供下载、更新通道,进行应用程序的注册,为应用程序配置良好的运行环境,并且管理用户应用数据的传输。详细的说,即应用接口管理模块具有应用程序下载管理功能,用于管理应用程序的在线下载、更新和注册。在智能卡上电初始,应用接口管理模块检测应用程序是否进行注册,如检测到应用已注册,就根据应用注册信息进行应用程序的数据的搬移,调用应用环境配置函数为应用功能的正常运行准备好物理环境。应用接口管理模块管理应用数据的传递,接收读写设备命令,进行应用数据安全性、合法性检测,筛选出应用功能数据内容传递给应用,并将应用处理后的数据向读写设备回送。应用接口管理模块作为COS系统和定制应用的桥梁,使COS系统与应用相互独立成为可能,增加了COS系统的安全性。

2. 共享变量库

共享变量库为COS系统和定制应用提供数据交互的通道,是共享全局变量的集合,包括ISO/IEC 7816-3和ISO/IEC 7816-4 协议中规定的APDU(Application Protocol Data Unit)的五个命令头变量、读写设备传递的数据缓存、随机数缓存等。共享变量库存储于存储模块的共享变量区。

3. 定制应用模块

定制应用模块面向唯一用户,具有特定性。定制应用模块主要由应用环境配置单元、应用注册信息单元和应用功能单元构成。

应用环境配置单元用于进行应用接口库内函数的初始化,便于在应用功能中调用COS系统内部资源。

应用注册信息单元是面向COS系统的,其所含有的应用注册信息为COS系统提供应用程序运行所需的信息,包括应用程序text段的起始地址、应用程序text段的结束地址、应用程序data段的起始地址、应用程序data段的结束地址、应用程序bss段的起始地址、应用程序bss段的结束地址、应用初始化配置函数入口地址和应用功能函数入口地址等。这些地址信息可通过在编译环境的链接文件的text、data及bss段内插入标签地址变量获取。

应用功能单元用于用户定制应用功能的实现,对COS系统而言,应用功能只是一个应用环境配置函数入口地址, COS系统通过访问应用环境配置函数入口地址完成CPU指针控制权向应用程序的暂时移交。

本发明中,COS系统和定制应用在存储空间上相互独立,时间上顺序执行,通过共享变量区进行数据交互(如图3所示),通过共享堆栈空间存储函数(请说清楚什么函数)的参数值、局部变量等。

图5所示为COS系统访问定制应用函数、变量或定制应用访问COS系统应用接口函数的原理图。COS系统代码区存储COS系统的运行程序,运行程序的应用接口库函数被链接到位于COS系统代码区的起始地址开始连续的存储空间里,每个应用接口函数对应一个固定的入口地址,定制应用可通过该固定入口地址间接寻址,访问应用接口函数,达到操作智能卡底层物理资源的目的。应用代码区存储应用程序,应用程序中的有效地址信息和函数入口地址根据COS系统的规定格式被顺序被链接到位于应用代码区的起始地址开始的连续存储空间里,每个应用接口函数对应一个固定的入口地址,每个变量对应一个固定的访问地址,函数访问通过间接寻址方式,变量访问通过直接寻址。共享变量区存储共享变量库的程序,该程序定义了作为COS系统和定制应用数据交互通道的变量、数组及指针等,共享变量库中的每个成员被链接到共享变量区的起始地址开始连续的存储空间内。

采用本发明实施例的方法设计出的COS系统可支持应用在线下载及更新。COS系统固化到电可擦除存储区的COS代码区,COS系统运行,智能卡可正常工作,处理基本指令,完成指定操作,此时不支持定制应用功能。定制应用编译形成的可执行文件,通过智能卡接口在线下载到应用代码区,并完成定制应用的注册及运行环境配置。

下面对上述智能卡的工作流程进行说明。

COS系统下载及更新应用程序工作流程图包括如下步骤:

步骤一:COS系统运行,等待外部读写设备的命令,当检测到命令为更新应用代码时,COS系统执行应用程序的下载、更新。

步骤二:应用程序下载、更新完成后,COS系统检测应用程序是否注册,如应用程序没有注册,则跳转到步骤四,如应用程序已经注册,则执行步骤三。

步骤三:COS系统为应用程序运行配置环境。首先,读取应用代码区text段内起始位置的注册信息:data段的起始位置和结束位置、应用环境配置函数入口地址。其次,搬移data段的数据到应用全局变量区,由于应用代码区的data段包含初始化后的全局变量,data段的链接地址为应用全局变量区,即CPU即将到应用全局变量区读取应用全局变量初始值,故需计算出data段的数据大小,执行data段的数据搬移操作。最后,COS系统跳转到应用环境配置函数入口地址,将智能卡CPU的PC指针的控制权转交给应用程序,应用程序执行环境配置,主要包括时钟环境配置、应用接口函数注册及智能卡接口波特率配置等功能。

步骤四:执行COS基础命令,判断该基础命令是否需要下载和/或更新应用,如否则结束工作流程,否则则下载和/或更新应用程序。

步骤五:返回,结束工作流程。

COS系统的工作流程包括如下步骤:

步骤一:智能卡上电,等待接收读写设备的复位指令,如收到则向读写设备发送复位应答并执行步骤二。

步骤二:COS系统检测应用是否注册,若检测到应用已注册,COS系统为应用配置运行环境,并进行步骤三,如没有注册则COS系统可处理基础指令,进行步骤四。

步骤三:COS系统处于待命状态,等待接收来自读卡设备的命令。命令分为基础指令处理和应用处理,当命令为基础指令时,执行步骤四;当命令为应用处理时,执行步骤五。

步骤四: COS系统获得CPU指针的控制权,从COS系统代码区读取指令、从COS系统全局变量区存取数据,完成命令处理,并执行步骤六。

步骤五:COS系统将CPU指针的控制权交给应用程序,应用程序控制CPU的指针从应用代码区读取指令、从应用的全局变量区存取数据,完成应用功能的处理,应用程序将处理结果通过共享变量区反馈给COS系统,并归还CPU指针的控制权,并执行步骤六。

步骤六:COS系统向读写设备返回处理结果,如果处理出错,执行步骤七,否则返回步骤三。

步骤七:COS系统异常,COS系统不再响应读写设备的命令请求,读写设备此时可进行系统复位,恢复COS系统,本次流程结束。

本发明的有益效果为:

本发明将传统COS系统从功能上进行区分,进而在结构上进行分离设计,把依赖于特定用户需求的应用从传统COS系统中进行剥离。本发明的COS系统较传统的COS系统更具有通用性和灵活性。传统的COS系统需根据不同用户需求进行多个COS系统的开发和维护,开发工作强度大、难度高,且后期维护成本高。采用本发明的方法设计出的COS系统独立于应用功能,面向多用户,具有通用性,可减少开发和测试工作量、降低开发难度、提高开发效率;并且支持应用的在线下载、更新,便于智能卡后期的应用功能更新,可降低维护成本。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1