智能卡嵌入式操作系统及其控制方法

文档序号:6557985阅读:193来源:国知局
专利名称:智能卡嵌入式操作系统及其控制方法
技术领域
本发明涉及嵌入式领域,尤其涉及一种智能卡以及USB TOKEN领域中智能卡嵌入式操作系统及其控制方法。
背景技术
随着科技的不断进步,智能卡应用已经逐渐成为人们生活中不可或缺的一部分。从楼宇门禁到移动电话、从公交一卡通到校园一卡通、从EMV银行卡到电子身份证,这诸多应用都与智能卡息息相关。随着智能卡应用的不断推广与普及,人们对智能卡的功能需求也越来越多样化,丰富多彩的应用需求使得智能卡的硬件工艺水平日新月异CPU位数上,从最初的8位CPU,到现在广为使用的16位CPU,再到正在逐步推广的32位CPU;存储容量上,从最初的几十字节,到现在的几十K、上百K甚至M级的大容量;存储器类型上,从最初的ROM、RAM、EEPROM,到现在的NOR FLASH,再到新的NOR FLASH与NAND FLASH融合技术;传输接口上,从ISO7816单一接口,到融合MMC、USB等快速接口的多通道等。
智能卡硬件工艺的发展日新月异,而智能卡的片上操作系统的结构却始终没有太大变化。图1显示了现有智能卡的软硬件架构框图,从图1中可以看出,现有智能卡的软硬件架构仅由硬件平台、自定义的卡操作系统(COS)和智能卡的应用三部分组成,其中,多数情况下卡操作系统和应用是作为一个整体而存在的,它们之间并没有明显的界限。在这种结构中,由于卡操作系统通常是针对特定的硬件平台开发的,因此,当硬件平台更换时,卡操作系统也要相应做比较大的改动。图2显示了现有智能卡操作系统的一般流程,从图2中可以看出,现有智能卡操作系统通常是一个比较简单的前/后台系统(foreground/background)或超循环系统(super-loop),系统是一个无限的循环,循环中调用相应的函数完成相应的操作,中断服务程序处理异步事件,时间相关性很强的关键操作(critical operation)靠中断服务来保证。因为中断服务提供的信息一直要等到后台程序运行到该处理这个信息时,才能得到处理。这种系统在处理信息的及时性上,比实际上可以做到的要差。最坏情况下的事件响应时间取决于整个循环的执行时间。因为循环的执行时间不是常数,程序经过某一特定部分的准确时间也是不能确定的。进而,如果程序修改了,循环的时序也会受到影响。
又由于传统卡操作系统的超循环结构,使得这种系统同时管理多种不同的应用具有较大的复杂性,因此,在传统结构的智能卡中,通常一张卡只对应着一个应用,也就是说,通常卡操作系统只管理着一个应用。因此,多数情况下应用和卡操作系统是在一起开发的,它们之间并没有明显的界限划分。
随着智能卡底层硬件平台的不断丰富,这种传统的智能卡软硬件架构已逐渐不再能够满足需求,新型的能够处理大容量、多通道、多应用、具有更强实时性的卡操作系统有待推出。

发明内容
本发明的目的在于提供一种智能卡嵌入式操作系统(COS------ChipOperating System)及其实现该系统的方法,用以解决现有技术中存在一张智能卡只能对应一个应用以及一个硬件平台的问题。
本发明的目的是这样实现的本发明为一种智能卡嵌入式控制系统,用于管理与控制在与外部信息交换的硬件平台上执行创建任务,该系统包括初始化单元、实时内核单元及任务单元,所述硬件平台分别与初始化单元、实时内核单元及任务单元相关联,所述的实时内核单元包括任务初始化单元、任务控制单元以及任务调度单元;其中初始化单元,用于对硬件平台以及实时内核单元进行初始化;
任务初始化单元,用于对任务单元的任务创建以及初始化;任务控制单元,根据设定的规则对任务单元的任务进行检查并启动任务调度单元;任务调度单元,在任务控制单元的控制下对任务单元的任务进行调度执行;任务单元,至少包含一个任务初始化单元创建的任务。
实时内核单元还包括任务控制单元,根据任务单元的任务执行情况控制任务单元中的任务同步以及任务之间的通信,创建同步或互斥机制,同时启动任务调度单元动作。
实时内核单元还包括任务重新调度与切换单元,根据任务控制单元的信号启动,进行任务的重调动与切换。
所述的硬件平台至少具有一个第一数据传输通道。
所述的硬件平台还包括一个或者多个第二数据传输通道。
所述第一数据传输通道为ISO7816;所述第二数据传输通道为MMC或USB数据传输通道。
一种对智能卡嵌入式控制系统的控制方法,包括以下步骤A、系统进行初始化;B、根据系统设定的功能创建至少一个任务;C、根据系统优先级调度预执行的任务;D、任务执行,并将执行结果通过数据传输通道返回。
所述步骤B与步骤C之间包括B1、创建同步或互斥机制。
所述的同步或互斥机制为信号量或/和事件标志组或/和消息邮箱或/和消息队列。
在步骤B中,采用API函数进行任务的创建。
步骤C中进行任务调度的方式为当前多个任务中优先级最高的任务开始运行;根据时间片轮转调度相同优先级的任务依次运行。
在步骤C与步骤D之间还包括C1、任务重新调度与切换步骤,该步骤是在以下任一种情况下启动a、当一个新到达的外部事件从中断服务程序中退出;b、当一个任务调度延时程序将自己挂起;c、当一个任务等待特定信号量被释放时;d、当一个任务释放特定信号量时;e、当在任务执行过程中创建了一个新任务时。
本发明有益效果如下本发明所述的智能卡嵌入式操作系统,增强了对硬件平台的数据通道的支持,不仅能够支持传统智能卡的单数据通道——ISO7816,还能够支持两个甚至两个以上的数据通道同时并存的情况,使得智能卡能够与设备端更灵活、高速地传递信息;本发明所述的智能卡嵌入式操作系统,增强了对智能卡上应用的支持,不仅能够支持传统智能卡上的单一应用,还支持在一张卡上同时运行多个应用,使得智能卡的利用更加高效。
此外,该操作系统具有可移植性、可固化性、容易改进、可剥夺性、多任务以及系统服务丰富的优点。
综上所述,本发明的系统和方法解决了现有技术中存在的一张智能卡只能对应一个应用以及一个硬件传输通道且实时性差的技术缺陷。


图1是传统智能卡的系统结构(软硬件架构)框图。
图2是传统智能卡的工作流程图。
图3是本发明的典型硬件平台结构图。
图4是本发明的智能卡系统结构框图。
图5是本发明的方法流程图。
具体实施例方式
本发明提出一种智能卡嵌入式控制系统,该系统用于管理与控制与外部信息交换的硬件平台,硬件平台11与初始化单元12、实时内核单元13以及任务单元14相连接,所述的实时内核单元13包括任务初始化单元131、任务控制单元132、任务调度单元133;其中初始化单元12,用于对硬件平台11以及实时内核单元13初始化;任务初始化单元131,用于在任务单元中创建任务并对任务单元中的任务进行必要的初始化,同时也在特定任务不需要时将其删除;任务控制单元132,控制任务单元14中的任务同步以及任务之间的通信,即采用特定机制实现任务间或者中断服务程序与任务间的同步或互斥操作;任务调度单元133,根据任务控制单元132的控制指令对任务单元的任务进行调度,其调度的方式是根据系统设定的规则将任务挂起、使任务就绪或者调度任务执行,系统规则的设定可以采用现有的技术实现。
本发明所述的系统,由于所述的实时内核单元13设置的任务控制单元132以及任务调度单元133使得本发明的系统能够对多个任务进行调度执行,从而使硬件平台在传统的ISO7816数据传输通道之外能够同时支持更多的数据传输通道,以及支持多种不同功能的应用,对每种通道和应用的处理都更具有实时性,解决了现有技术中一卡仅能对应一个应用以及一个硬件传输通道并且实时性差的技术缺陷。在本领域中,任务也可以叫做线程、进程等,本发明中统一用任务来代表。任务单元14中的任务的划分根据平台功能的不同而不同,如,可将平台支持的不同应用编写为不同的任务;当平台有多个数据通道时,也可将对不同数据通道的处理编写为不同的任务。
在本发明的系统中,初始化单元12负责在硬件平台11加电后,首先进行硬件平台11的初始化,使得硬件平台11的各个部件能够正常工作;之后进行实时内核单元13的初始化,即对实时内核单元13所包括的必要变量和数据结构做初始化;初始化单元12执行完毕后,将CPU的控制权交给实时内核单元13;实时内核单元13所包含的任务初始化单元131首先创建多个任务并进行必要的初始化,从而将任务单元14中的任务与实时内核单元13建立关联,以便实时内核单元13中的任务调度单元133对任务进行实时调度。所述的任务单元14中的任务可以根据平台数据传输通道的不同或者应用的不同来划分,在本实施例中,由于硬件平台具有第一数据传输通道ISO7816通道和第二数据传输通道MMC通道(也可以为USB通道),所以任务可分为第一任务与第二任务,其中第一任务处理数据传输通道ISO7816的操作,第二任务处理数据传输通道MMC的操作。在实际应用中,任务初始化单元131创建任务完成后,任务控制单元132会根据需要创建必要的任务间或任务与中断服务程序间同步与通信机制,如信号量、事件标志组、消息邮箱、消息队列等。当一个任务需要等待的信号量或者消息没有到达时,任务控制单元132将会通知任务调度单元133将该任务挂起;当一个任务需要等待的信号量或者消息到达时,任务控制单元132会通知任务调度单元133,任务调度单元133会将该任务的状态从挂起态转为就绪态。
在本实施例中,参考图3的内容,本系统所运行的硬件平台11的结构与现有的硬件平台相类似,完全支持ISO7816通信协议,其结构可以完全参考ISO7816的硬件结构和尺寸定义,只是扩展了C4、C8两个引脚,采用了MMC高速数据传输接口,即本实施例中的硬件平台11的第一数据传输通道为传统的ISO7816数据传输通道,硬件平台2的第二数据传输通道为MMC数据传输通道。采用本系统对硬件平台的存储区的访问可以完全通过ISO7816通道或者高速数据传输通道进行,同时保证了智能卡能够与设备端进行任务的高速传输;另外,本系统对应的硬件平台上用于存放用户数据信息的存储装置可以有多种类型,如采用了NAND Flash进行存储,使得用户具有更大的存储空间(可为16M~1G或者更大),并可以适应不同环境下的不同存储方式。
在本发明中需要说明的是,由于本实施例中的硬件平台11同时具有传统的ISO7816数据通道和一个或多个高速的数据传输通道,因此,同一时刻可能会有多个通道的外部事件到达,或者,当正在响应一个通道的外部事件时,可能会有其他通道的外部事件到达。所以运行在该硬件平台11上的实时内核单元13可以按照上述过程同时对多个外部事件做出及时响应。
基于本发明的操作系统运行的硬件平台可能具有多个硬件接口的外部事件,为了能够使得系统对来自多个硬件接口的外部事件做出及时的响应,保证实时性,避免因不能及时处理而导致外部事件的丢失,本发明采用的实时内核单元13为一种实时操作系统(RTOS),通过实时操作系统对多种外部事件进行实时管理,就能克服传统的单任务超循环结构的智能卡操作系统只能按照固有程序流程顺序处理事件的缺陷。
在本实施例中,所采用的实时操作系统以API函数的形式提供给开发人员,这些API函数可用于实现任务初始化、任务控制(任务间通信与同步管理)、任务调度、时间管理等功能;一个任务也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属于该程序自己。每个任务都是整个应用的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间。
本发明实时内核单元13的任务控制单元132,提供特定机制实现任务间或者中断服务程序与任务间的同步或互斥操作,这些特定的机制可以是同步信号量、互斥信号量、事件标志组、消息邮箱、消息队列等;当一个任务需要等待的信号量或者消息没有到达时,任务控制单元132将会通知任务调度单元133将该任务挂起;当一个任务需要等待的信号量或者消息到达时,任务控制单元任务间同步与通信管理单元132会通知任务调度单元,任务调度单元133会将该任务的状态从挂起态转为就绪态。
本发明实时内核单元13的任务调度单元133,负责调度各个任务,也就是为每个任务分配CPU时间。本发明所采用的实时操作系统不支持相同优先级的任务,因此,任务调度单元133总是调度当前优先级最高的就绪任务运行;进行任务调度的时机也有多种,如有新任务创建,一个任务调用延时函数将自身延时一段时间,任务等待信号量,信号量被释放等等,这些情况下,所述的实时内核单元13启动任务调度单元133检查当前优先级最高的就绪任务是否发生了变化,如果优先级发生了改变,任务调度单元133就将正在执行的任务的运行环境保存到存储器的特定区域,并将其运行状态从执行状态转为就绪状态,同时,将当前优先级最高的就绪任务的执行环境从硬件平台的存储器的特定区域调入CPU中,从而使该任务从就绪状态转为执行状态。
在本发明的系统中,可以根据硬件平台的硬件特性和应用的不同,将任务单元14中划分若干个任务或者线程运行,实时内核单元13可以管理和调度多个任务,因此,应用程序的设计被大大简化。
在本发明的最佳实施方案中,任务单元14依据硬件平台11接口的不同划分为不同的任务,分别是ISO7816任务和MMC任务(或者USB任务),其中,ISO7816任务负责根据ISO7816通讯协议接收从ISO7816通道传来的命令,解析并执行命令,将命令执行结果通过ISO7816通道返回;MMC任务负责根据MMC通讯协议接收从MMC通道传来的所有操作请求、响应并执行。MMC/USB任务所处理的事件通常是对大容量存储区的读写操作。任务调度单元133调度这两个任务中优先级最高的就绪任务执行,例如根据应用需要,定义ISO7816任务具有比MMC任务更高的优先级;因此,实时内核单元13启动后,将首先调度高优先级的ISO7816任务运行。
在本发明的具体实施例中,任务控制单元132定义了两个同步信号量,分别是ISO信号量和MMC信号量。ISO信号量用于ISO7816任务的中断服务程序与ISO7816任务之间的同步,保证当没有ISO7816事件到达时,使ISO7816任务挂起;当有ISO7816事件到达时,将ISO7816任务从挂起状态转为就绪状态,并通知任务调度单元133重新进行任务调度;MMC信号量用于MMC任务的中断服务程序与MMC任务之间的同步,保证当没有MMC事件到达时,使MMC任务挂起;当有MMC事件到达时,将MMC任务从挂起状态转为就绪状态,并通知任务调度单元133重新进行任务调度。
本发明所述系统中,添加一个新的任务或者删除一个任务非常容易,因而对应添加一个新的应用或者删除一个已有应用也变得容易实现,大大增强了使用灵活性。对于本发明的系统而言,不同的任务之间只有优先级的区别或者是任务编号的区别,各个任务可以根据需要定义不同的优先级策略,各个任务之间、任务与中断服务程序之间也可以定义不同方式的同步与互斥策略。
本发明一种实现该系统的方法,如图5所示,具体包括以下步骤A、系统进行初始化;B、根据系统设定的功能创建至少一个任务;C、根据系统优先级调度预执行的任务;D、任务执行,并将执行结果通过数据传输通道返回。
在本发明中,由于系统中多个任务之间或者任务与中断服务程序之间可能会存在同步或者互斥操作,因此,本发明的步骤B与步骤C之间还包括采用API函数创建同步或互斥信号量的步骤B1。
参考上述系统对本发明的方法具体描述如下1、首先由本发明系统中的初始化单元12对硬件平台11进行初始化,如硬件平台11中的时钟、存储器等硬件单元的初始化;2、在系统正常运行之前,由初始化单元12对实时内核单元13进行初始化,该过程主要是对一些系统必要的变量、数据结构的初始化;结合本发明的系统实施例,实时内核单元13的初始化可以调用实时内核单元中提供的API函数完成;3、任务初始化单元131根据需要创建多个任务;参考本实施例中的上述系统,任务初始化单元131进行任务创建的时候,根据硬件平台上具有的数据传输通道的不同创建两个任务ISO7816任务和MMC任务;4、在本发明的方法中,系统的任务单元中的多个任务之间或者任务与中断服务程序之间需要有同步或者互斥操作,所以还需要由任务控制单元132创建必要的用于同步或者互斥的信号量、消息邮箱、消息队列等,进而实现对任务单元中的任务进行同步或互斥或通信等操作;本发明所述的任务控制单元132还会提供多种同步、互斥机制,如信号量、事件标志组、消息邮箱、消息队列等,可根据应用的需要选用;5、任务和信号量(如果需要的话)创建完毕后,任务调度单元133就会查找当前优先级最高的就绪任务,并调度该任务运行;在本系统中,总会存在任务由于延时或者等待特定事件的发生而被挂起,否则,所有比这个任务优先级低的任务将无法运行;当一个任务被挂起时,任务调度单元133会将被挂起任务的执行环境保存到硬件平台的存储器的特定区域中,同时,重新查找当前最高优先级的就绪任务,将该就绪任务的执行环境从存储器的特定区域调入CPU,从而使得该任务从就绪状态转为运行状态。以下情况出现时,任务调度单元133都会进行任务的切换与重新调度a.当一个新到达的外部事件从中断服务程序中退出时;b.当一个任务调度延时程序将自己挂起时;c.当一个任务等待特定信号量被释放时;d.当一个任务释放特定信号量时等;e.当在任务执行过程中创建了一个新任务时。
6、任务执行,并将执行结果通过数据传输通道返回。
由于本系统存在多种机制可以进行任务的重新调度与切换,因此,本发明的方法可以避免一个任务占用处理器太久而使其他事件长时间得不到处理。
以下对本发明的任务调度与通信进行具体说明本方案中的同步信号量实现任务与事件的同步,使得高优先级的任务在没有事件到达时能够让出CPU资源让低优先级任务得以运行。在本发明的方法的实施例中,可以定义ISO7816为同步信号量,ISO7816任务与中断服务程序之间通过该同步信号量进行通信,在任务单元中等待事件的发生,在中断服务程序向任务控制单元发送信号量告知事件的发生;在ISO7816任务中,根据ISO7816同步信号量判断是否有ISO7816事件到达,如果没有,则任务将被挂起;此时,如果有MMC事件到达,则MMC任务将成为系统中当前优先级最高的就绪任务,实时内核将调度该任务运行;一旦ISO7816的外部事件到达,在ISO7816的中断服务程序中,将释放ISO7816同步信号量,此时,ISO7816任务从挂起变为就绪,重新成为当前优先级最高的就绪任务,被任务调度单元调度执行。
综上所述,本发明所述的系统及方法,增强了对硬件平台的数据通道的支持,不仅能够支持传统智能卡的单数据通道——ISO7816,还能够支持两个甚至两个以上的数据通道同时并存的情况,使得智能卡能够与设备端更灵活、高速地传递信息;同时,本发明所述的智能卡嵌入式控制系统,增强了对智能卡上应用的支持,不仅能够支持传统智能卡上的单一应用,还支持在一张卡上同时运行多个应用,使得智能卡的利用更加高效。
同时,由于使用了实时操作系统,本发明所述的智能卡嵌入式控制系统能够更加快速、灵活地处理任务,具有更强的实时性和高效性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种智能卡嵌入式控制系统,用于管理与控制在与外部信息交换的硬件平台上执行创建任务,其特征在于,该系统包括初始化单元、实时内核单元及任务单元,所述硬件平台分别与初始化单元、实时内核单元及任务单元相关联,所述的实时内核单元包括任务初始化单元、任务控制单元以及任务调度单元;其中初始化单元,用于对硬件平台以及实时内核单元进行初始化;任务初始化单元,用于对任务单元的任务创建以及初始化;任务控制单元,根据设定的规则对任务单元的任务进行检查并启动任务调度单元;任务调度单元,在任务控制单元的控制下对任务单元的任务进行调度执行;任务单元,至少包含一个任务初始化单元创建的任务。
2.根据权利要求1所述的系统,其特征在于,实时内核单元还包括任务控制单元,根据任务单元的任务执行情况控制任务单元中的任务同步以及任务之间的通信,创建同步或互斥机制,同时启动任务调度单元动作。
3.根据权利要求1或2所述的系统,其特征在于,实时内核单元还包括任务重新调度与切换单元,根据任务控制单元的信号启动,进行任务的重调动与切换。
4.根据权利要求1所述的系统,其特征在于,所述的硬件平台至少具有一个第一数据传输通道。
5.根据权利要求4所述的系统,其特征在于,所述的硬件平台还包括一个或者多个第二数据传输通道。
6.根据权利要求5所述的系统,其特征在于,所述第一数据传输通道为ISO7816;所述第二数据传输通道为MMC或USB数据传输通道。
7.一种如权利要求1所述的智能卡嵌入式控制系统的控制方法,其特征在于,包括以下步骤A、系统进行初始化;B、根据系统设定的功能创建至少一个任务;C、根据系统优先级调度预执行的任务;D、任务执行,并将执行结果通过数据传输通道返回。
8.根据权利要求7所述的方法,其特征在于,所述步骤B与步骤C之间包括B1、创建同步或互斥机制。
9.根据权利要求8所述的方法,其特征在于,所述的同步或互斥机制为信号量或/和事件标志组或/和消息邮箱或/和消息队列。
10.根据权利要求7所述的方法,其特征在于,在步骤B中,采用API函数进行任务的创建。
11.如权利要求7所述的方法,其特征在于,步骤C中进行任务调度的方式为当前多个任务中优先级最高的任务开始运行;根据时间片轮转调度相同优先级的任务依次运行。
12.如权利要求7所述的方法,其特征在于,在步骤C与步骤D之间还包括C1、任务重新调度与切换步骤,该步骤是在以下任一种情况下启动a、当一个新到达的外部事件从中断服务程序中退出;b、当一个任务调度延时程序将自己挂起;c、当一个任务等待特定信号量被释放时;d、当一个任务释放特定信号量时;e、当在任务执行过程中创建了一个新任务时。
全文摘要
本发明公开了一种智能卡嵌入式控制系统及其方法,该方法包括A.系统进行初始化;B.根据系统设定的功能创建至少一个任务;C.根据系统优先级调度预执行的任务;D.任务执行,并将执行结果通过数据传输通道返回。本发明增强了对硬件平台的数据通道的支持,不仅能够支持传统智能卡的单数据通道——ISO7816,还能够支持两个甚至两个以上的数据通道同时并存的情况,使得智能卡能够与设备端更灵活、高速地传递信息;本发明增强了对智能卡上应用的支持,不仅能够支持传统智能卡上的单一应用,还支持在一张卡上同时运行多个应用,使得智能卡的利用更加高效。
文档编号G06K19/07GK101051280SQ200610072909
公开日2007年10月10日 申请日期2006年4月3日 优先权日2006年4月3日
发明者叶新, 雷继业 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1