CN100517236C - 智能卡嵌入式操作系统及其控制方法 - Google Patents
智能卡嵌入式操作系统及其控制方法 Download PDFInfo
- Publication number
- CN100517236C CN100517236C CNB2006100729093A CN200610072909A CN100517236C CN 100517236 C CN100517236 C CN 100517236C CN B2006100729093 A CNB2006100729093 A CN B2006100729093A CN 200610072909 A CN200610072909 A CN 200610072909A CN 100517236 C CN100517236 C CN 100517236C
- Authority
- CN
- China
- Prior art keywords
- task
- unit
- iso7816
- data transmission
- transmission channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种智能卡嵌入式控制系统及其方法,该方法包括:A、系统进行初始化;B、根据系统设定的功能创建至少一个任务;C、根据系统优先级调度预执行的任务;D、任务执行,并将执行结果通过数据传输通道返回。本发明增强了对硬件平台的数据通道的支持,不仅能够支持传统智能卡的单数据通道——ISO7816,还能够支持两个甚至两个以上的数据通道同时并存的情况,使得智能卡能够与设备端更灵活、高速地传递信息;本发明增强了对智能卡上应用的支持,不仅能够支持传统智能卡上的单一应用,还支持在一张卡上同时运行多个应用,使得智能卡的利用更加高效。
Description
技术领域
本发明涉及嵌入式领域,尤其涉及一种智能卡以及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数据传输通道;所述的实时内核单元包括任务初始化单元、任务控制单元以及任务调度单元;其中
初始化单元,用于对硬件平台以及实时内核单元进行初始化;
任务初始化单元,用于对任务单元的任务创建以及初始化,所述任务包括ISO7816任务和其他任务;
任务控制单元,根据设定的规则对任务单元的任务进行检查并启动任务调度单元;
任务调度单元,在任务控制单元的控制下对任务单元的任务进行调度执行;
任务单元,至少包含任务初始化单元创建的ISO7816任务和其他任务,所述其他任务为MMC任务和/或USB任务,所述ISO7816任务负责根据ISO7816通讯协议接收从所述ISO7816数据传输通道传来的命令,解析并执行该命令,将命令执行结果通过所述ISO7816数据传输通道返回;所述MMC任务负责根据MMC通讯协议接收从所述MMC数据传输通道传来的操作请求,响应并执行该操作请求;所述USB任务负责根据USB通讯协议接收从所述USB数据传输通道传来的操作请求,响应并执行该操作请求。
任务控制单元还用于:
根据任务单元的任务执行情况控制任务单元中的任务同步以及任务之间的通信,创建同步或互斥机制,同时启动任务调度单元动作。
实时内核单元还包括:
任务重新调度与切换单元,根据任务控制单元的信号启动,进行任务的重调动与切换。
一种对智能卡嵌入式控制系统的控制方法,包括以下步骤:
A、系统进行初始化;
B、根据系统设定的功能创建任务,该任务包括ISO7816任务和其他任务,所述其他任务为MMC任务和/或USB任务;
C、根据系统优先级调度预执行的任务;
D、任务执行,其中:所述ISO7816任务负责根据ISO7816通讯协议接收从ISO7816数据传输通道传来的命令,解析并执行该命令,将命令执行结果通过ISO7816数据传输通道返回;所述MMC任务负责根据MMC通讯协议接收从MMC数据传输通道传来的操作请求,响应并执行该操作请求;所述USB任务负责根据USB通讯协议接收从USB数据传输通道传来的操作请求,响应并执行该操作请求。
所述步骤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,还能够支持两个甚至两个以上的数据通道同时并存的情况,使得智能卡能够与设备端更灵活、高速地传递信息;
同时,本发明所述的智能卡嵌入式控制系统,增强了对智能卡上应用的支持,不仅能够支持传统智能卡上的单一应用,还支持在一张卡上同时运行多个应用,使得智能卡的利用更加高效。
同时,由于使用了实时操作系统,本发明所述的智能卡嵌入式控制系统能够更加快速、灵活地处理任务,具有更强的实时性和高效性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1、一种智能卡嵌入式控制系统,用于管理与控制在与外部信息交换的硬件平台上执行创建任务,其特征在于,该系统包括初始化单元、实时内核单元及任务单元,所述硬件平台分别与初始化单元、实时内核单元及任务单元相关联,所述硬件平台包括ISO7816数据传输通道和其他数据传输通道,所述其他数据传输通道为MMC数据传输通道和/或USB数据传输通道;所述的实时内核单元包括任务初始化单元、任务控制单元以及任务调度单元;其中
初始化单元,用于对硬件平台以及实时内核单元进行初始化;
任务初始化单元,用于对任务单元的任务创建以及初始化,所述任务包括ISO7816任务和其他任务;
任务控制单元,根据设定的规则对任务单元的任务进行检查并启动任务调度单元;
任务调度单元,在任务控制单元的控制下对任务单元的任务进行调度执行;
任务单元,至少包含任务初始化单元创建的ISO7816任务和其他任务,所述其他任务为MMC任务和/或USB任务,所述ISO7816任务负责根据ISO7816通讯协议接收从所述ISO7816数据传输通道传来的命令,解析并执行该命令,将命令执行结果通过所述ISO7816数据传输通道返回;所述MMC任务 负责根据MMC通讯协议接收从所述MMC数据传输通道传来的操作请求,响应并执行该操作请求;所述USB任务负责根据USB通讯协议接收从所述USB数据传输通道传来的操作请求,响应并执行该操作请求。
2、根据权利要求1所述的系统,其特征在于,所述任务控制单元还用于:
根据任务单元的任务执行情况控制任务单元中的任务同步以及任务之间的通信,创建同步或互斥机制,同时启动任务调度单元动作。
3、根据权利要求1或2所述的系统,其特征在于,实时内核单元还包括:
任务重新调度与切换单元,根据任务控制单元的信号启动,进行任务的重调动与切换。
4、一种如权利要求1所述的智能卡嵌入式控制系统的控制方法,其特征在于,包括以下步骤:
A、系统进行初始化;
B、根据系统设定的功能创建任务,该任务包括ISO7816任务和其他任务,所述其他任务为MMC任务和/或USB任务;
C、根据系统优先级调度预执行的任务;
D、任务执行,其中:所述ISO7816任务负责根据ISO7816通讯协议接收从ISO7816数据传输通道传来的命令,解析并执行该命令,将命令执行结果通过ISO7816数据传输通道返回;所述MMC任务负责根据MMC通讯协议接收从MMC数据传输通道传来的操作请求,响应并执行该操作请求;所述USB任务负责根据USB通讯协议接收从USB数据传输通道传来的操作请求,响应并执行该操作请求。
5、根据权利要求4所述的方法,其特征在于,所述步骤B与步骤C之间包括:
B1、创建同步或互斥机制。
6、根据权利要求5所述的方法,其特征在于,所述的同步或互斥机制为信号量、事件标志组、消息邮箱、消息队列中的一个或任意组合。
7、根据权利要求4所述的方法,其特征在于,在步骤B中,采用API函数进行任务的创建。
8、如权利要求4所述的方法,其特征在于,步骤C中进行任务调度的方式为:
当前多个任务中优先级最高的任务开始运行;
根据时间片轮转调度相同优先级的任务依次运行。
9、如权利要求4所述的方法,其特征在于,在步骤C与步骤D之间还包括:
C1、任务重新调度与切换步骤,该步骤是在以下任一种情况下启动:
a、当一个新到达的外部事件从中断服务程序中退出;
b、当一个任务调度延时程序将自己挂起;
c、当一个任务等待特定信号量被释放时;
d、当一个任务释放特定信号量时;
e、当在任务执行过程中创建了一个新任务时。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100729093A CN100517236C (zh) | 2006-04-03 | 2006-04-03 | 智能卡嵌入式操作系统及其控制方法 |
US12/300,334 US8266619B2 (en) | 2006-04-03 | 2007-01-25 | Embedded operating system architecture for smart card |
PCT/CN2007/000286 WO2007112635A1 (fr) | 2006-04-03 | 2007-01-25 | Système d'exploitation intégré pour carte à puce et procédé de traitement de tâche |
KR1020087026254A KR101057452B1 (ko) | 2006-04-03 | 2007-01-25 | 스마트카드 임베디드 조작 시스템 및 작업처리 방법 |
EP07702204A EP2051188A4 (en) | 2006-04-03 | 2007-01-25 | EMBEDDED OPERATING SYSTEM OF A CHIP CARD AND METHOD FOR TASK PROCESSING |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100729093A CN100517236C (zh) | 2006-04-03 | 2006-04-03 | 智能卡嵌入式操作系统及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101051280A CN101051280A (zh) | 2007-10-10 |
CN100517236C true CN100517236C (zh) | 2009-07-22 |
Family
ID=38563081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100729093A Expired - Fee Related CN100517236C (zh) | 2006-04-03 | 2006-04-03 | 智能卡嵌入式操作系统及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8266619B2 (zh) |
EP (1) | EP2051188A4 (zh) |
KR (1) | KR101057452B1 (zh) |
CN (1) | CN100517236C (zh) |
WO (1) | WO2007112635A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703595B2 (en) * | 2008-10-02 | 2017-07-11 | Mindspeed Technologies, Llc | Multi-core system with central transaction control |
US8683471B2 (en) * | 2008-10-02 | 2014-03-25 | Mindspeed Technologies, Inc. | Highly distributed parallel processing on multi-core device |
KR101444070B1 (ko) * | 2009-07-30 | 2014-09-26 | 에스케이플래닛 주식회사 | 저장장치에서 호스트 단말의 메모리 이용 시스템 및 방법, 그 호스트 단말 및 저장장치, 이를 위한 기록매체 |
KR101025108B1 (ko) * | 2009-11-16 | 2011-03-25 | 에스케이씨앤씨 주식회사 | 이동 단말에게 균일한 응답시간을 제공하는 스마트카드 웹서버의 http서비스 처리방법 |
CN101714103B (zh) * | 2009-12-15 | 2012-11-28 | 中国华录·松下电子信息有限公司 | 基于可编程逻辑器件的任务调度器 |
CN102103774B (zh) * | 2009-12-16 | 2015-03-11 | 中国移动通信集团公司 | 一种复合应用的实现方法和系统以及一种智能卡 |
JP2011150661A (ja) * | 2010-01-25 | 2011-08-04 | Toshiba Corp | 携帯可能電子装置、及び携帯可能電子装置の制御方法 |
CN101789070B (zh) * | 2010-01-28 | 2012-11-21 | 华为终端有限公司 | 一种智能卡初始化方法和终端设备 |
KR20110114806A (ko) * | 2010-04-14 | 2011-10-20 | 한국전자통신연구원 | 다중 센서를 포함하는 스마트카드 제어 장치 및 방법 |
CN102110022B (zh) * | 2011-03-22 | 2013-04-10 | 上海交通大学 | 基于优先级调度的传感器网络嵌入式操作系统 |
CN106227614B (zh) * | 2012-05-29 | 2019-06-11 | 安科讯(福建)科技有限公司 | 一种多软件运行环境之间通信的系统 |
CN103634707A (zh) * | 2012-08-23 | 2014-03-12 | 上海斐讯数据通信技术有限公司 | 通信方法 |
CN102929708B (zh) * | 2012-11-16 | 2015-09-23 | 飞天诚信科技股份有限公司 | 一种实现智能卡多任务处理的方法 |
CN103106111B (zh) * | 2013-01-30 | 2016-01-27 | 迈普通信技术股份有限公司 | 多任务操作系统中任务优先级反转的检测系统及方法 |
CN103902391B (zh) * | 2014-04-15 | 2018-04-10 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序管理装置和应用程序管理方法 |
US10073714B2 (en) | 2015-03-11 | 2018-09-11 | Western Digital Technologies, Inc. | Task queues |
CN105824769B (zh) * | 2016-03-14 | 2018-08-28 | 合肥工业大学 | 一种可配置的动态时间片轮转调度方法 |
CN108259427A (zh) * | 2016-12-29 | 2018-07-06 | 国民技术股份有限公司 | 一种多功能智能卡及其数据处理方法、通信系统 |
US11048562B2 (en) * | 2017-06-04 | 2021-06-29 | Apple Inc. | Multi-thread synchronization primitive |
CN107273141B (zh) * | 2017-07-10 | 2020-12-29 | 无锡走向智能科技有限公司 | 嵌入式实时操作系统 |
CN108334454A (zh) * | 2018-03-02 | 2018-07-27 | 东信和平科技股份有限公司 | 一种智能卡测试平台的自动调度方法和系统 |
US10698730B2 (en) * | 2018-04-03 | 2020-06-30 | FuriosaAI Co. | Neural network processor |
CN110572474B (zh) * | 2019-09-26 | 2021-09-21 | 四川长虹电器股份有限公司 | 用于嵌入式终端长连接通讯的方法 |
CN115576855B (zh) * | 2022-12-08 | 2023-03-17 | 麒麟软件有限公司 | 实时操作系统的实时性测试方法 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5012409A (en) * | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
US5832525A (en) * | 1996-06-24 | 1998-11-03 | Sun Microsystems, Inc. | Disk fragmentation reduction using file allocation tables |
US6564995B1 (en) * | 1997-09-19 | 2003-05-20 | Schlumberger Malco, Inc. | Smart card application-selection |
JPH11110510A (ja) | 1997-10-07 | 1999-04-23 | Hitachi Ltd | Icカード |
US6199762B1 (en) | 1998-05-06 | 2001-03-13 | American Express Travel Related Services Co., Inc. | Methods and apparatus for dynamic smartcard synchronization and personalization |
CN1118025C (zh) | 2000-10-23 | 2003-08-13 | 大唐电信科技股份有限公司微电子分公司 | 采用逻辑区间链表寻址的智能卡嵌入式软件系统实现方法 |
US6970891B1 (en) * | 2000-11-27 | 2005-11-29 | Microsoft Corporation | Smart card with volatile memory file subsystem |
FR2818769B1 (fr) * | 2000-12-21 | 2004-06-18 | Eads Airbus Sa | Procede et systeme d'exploitation temps reel multitaches |
CN1345154A (zh) | 2001-11-08 | 2002-04-17 | 大唐微电子技术有限公司 | 用户识别模块的增值业务进行空中下载的方法 |
CN2514594Y (zh) | 2001-11-16 | 2002-10-02 | 孙斌 | 接收字符短信息的移动通信装置 |
JP2003288258A (ja) | 2002-03-28 | 2003-10-10 | Toppan Printing Co Ltd | Icカード及びicカードのメモリ管理方法 |
JP4036056B2 (ja) | 2002-08-13 | 2008-01-23 | ソニー株式会社 | 記録装置および方法、記録媒体、並びにプログラム |
JP4100160B2 (ja) | 2002-12-12 | 2008-06-11 | 凸版印刷株式会社 | Icカード及びicカードのデータ管理方法 |
EP1435576B1 (en) * | 2003-01-03 | 2013-03-20 | Austria Card Plastikkarten und Ausweissysteme GmbH | Method and apparatus for block-oriented memory management provided in smart card controllers |
PL1625716T3 (pl) * | 2003-05-06 | 2008-05-30 | Apple Inc | System i usługa przesyłania wiadomości |
JP4729839B2 (ja) * | 2003-05-20 | 2011-07-20 | 株式会社日立製作所 | Icカード |
WO2004111840A2 (en) * | 2003-06-17 | 2004-12-23 | Stmicroelectronics Belgium N.V. | Customer framework for embedded applications |
US20050050108A1 (en) * | 2003-08-21 | 2005-03-03 | Texas Instruments Incorporated | File system for digital processing systems with limited resources |
US7237719B2 (en) | 2003-09-03 | 2007-07-03 | Stmicroelectronics, Inc. | Method and apparatus for a USB and contactless smart card device |
CN1529524A (zh) | 2003-09-26 | 2004-09-15 | 移动通讯中的短消息分类方法 | |
JP2005141335A (ja) | 2003-11-04 | 2005-06-02 | Sony Corp | 情報記録再生装置とそのファイルアクセス方法 |
US20050132121A1 (en) * | 2003-12-16 | 2005-06-16 | Wind River Systems, Inc. | Partitioned operating system tool |
DE102004003308A1 (de) | 2004-01-22 | 2005-08-18 | Giesecke & Devrient Gmbh | Synchronisation von Daten in zwei oder mehr Teilnehmerkarten zum Betreiben eines mobilen Endgeräts |
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
CN1324913C (zh) | 2004-06-15 | 2007-07-04 | 萧学文 | 一种向移动终端递送内容的系统和方法 |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
JP4655545B2 (ja) * | 2004-08-23 | 2011-03-23 | ソニー株式会社 | メモリーカード及び再生装置 |
KR100617775B1 (ko) * | 2004-11-08 | 2006-08-28 | 삼성전자주식회사 | 멀티미디어 메시징 서비스에서 중복된 도달 통지 메시지에대한 관리 방법 |
CN1277213C (zh) | 2004-12-31 | 2006-09-27 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
CN100341007C (zh) | 2005-05-08 | 2007-10-03 | 华中科技大学 | 一种多片内操作系统的智能卡 |
CN100419756C (zh) | 2005-09-13 | 2008-09-17 | 北京中星微电子有限公司 | 文件分配表文件系统读写方法及装置 |
US7350049B1 (en) * | 2005-09-13 | 2008-03-25 | Vimicro Corporation | Method and apparatus for managing access to a file allocation table |
CN100362528C (zh) | 2005-11-25 | 2008-01-16 | 上海复旦微电子股份有限公司 | 兼容逻辑加密卡的非接触cpu卡 |
-
2006
- 2006-04-03 CN CNB2006100729093A patent/CN100517236C/zh not_active Expired - Fee Related
-
2007
- 2007-01-25 EP EP07702204A patent/EP2051188A4/en not_active Ceased
- 2007-01-25 WO PCT/CN2007/000286 patent/WO2007112635A1/zh active Application Filing
- 2007-01-25 KR KR1020087026254A patent/KR101057452B1/ko not_active IP Right Cessation
- 2007-01-25 US US12/300,334 patent/US8266619B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR101057452B1 (ko) | 2011-08-17 |
WO2007112635A1 (fr) | 2007-10-11 |
US8266619B2 (en) | 2012-09-11 |
US20090150888A1 (en) | 2009-06-11 |
CN101051280A (zh) | 2007-10-10 |
KR20090005078A (ko) | 2009-01-12 |
EP2051188A1 (en) | 2009-04-22 |
EP2051188A4 (en) | 2011-10-05 |
EP2051188A8 (en) | 2009-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517236C (zh) | 智能卡嵌入式操作系统及其控制方法 | |
CN101320360B (zh) | 用于并行集成电路结构的消息排队系统和相关操作方法 | |
CN101354693B (zh) | 一种异构多核处理器的核间通信调度系统及方法 | |
CN102375761A (zh) | 业务管理方法和装置、以及设备 | |
CN102047218A (zh) | 进程中的调度器实例 | |
US10782999B2 (en) | Method, device, and single-tasking system for implementing multi-tasking in single-tasking system | |
CN105117285B (zh) | 一种基于移动虚拟化系统的非易失性存储器调度优化方法 | |
KR20040068600A (ko) | 운영 시스템 기능 실행 방법 및 시스템, 전자 기기 | |
CN101288049A (zh) | 数据处理装置中的数据引擎的使用 | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
US20210042155A1 (en) | Task scheduling method and device, and computer storage medium | |
CN103412755A (zh) | 一种硬件实时操作系统 | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
CN103473129A (zh) | 线程数目可伸缩的多任务队列调度系统及其实现方法 | |
CN102314368A (zh) | 更新服务器程序的配置数据的方法及设备 | |
CN112698947B (zh) | 一种基于异构应用平台的gpu资源弹性调度方法 | |
CN103346902A (zh) | 数据采集调度的方法及系统 | |
CN104978174A (zh) | 多操作系统中网卡之间的切换方法和系统 | |
CN101567873B (zh) | 一种多任务并行处理方法及系统 | |
CN101937465B (zh) | 分布式文件系统及其中的上层文件系统的访问方法 | |
CN116414534A (zh) | 任务调度方法、装置、集成电路、网络设备及存储介质 | |
CN100508501C (zh) | 基于开放网格服务体系结构的网格工作流虚拟服务调度法 | |
CN102279762B (zh) | 在手机平台提高内存使用效率的方法 | |
CN101324863B (zh) | 一种同步静态存储器的控制装置及方法 | |
CN108958903A (zh) | 嵌入式多核中央处理器任务调度方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee after: BEIJING WATCHDATA Co.,Ltd. Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090722 |