一种基于mcu的嵌入式实时调度控制装置及方法
【专利摘要】本发明涉及一种基于MCU的嵌入式实时调度控制装置及方法,包括微处理器、定时器、存储器、输入设备及输出设备,所述的输入设备由I/O接口、模拟数字转换器模块和通信接口组成,存储器通过该输入设备获得传感器和总线通信传输的数据和指令,软件指令和数据存储在所述的存储器中,所述的微处理器根据定时器提供的时基信号和软件调度控制规律取出存储器中的软件指令和数据进行运算、处理和判断并得到处理结果输出给输出设备,输出设备由I/O接口、脉宽调制模块和通信接口组成,输出的执行结果以不同信号形式通过输出设备传输。本发明有益的效果:本发明即保障了连续任务和离散任务的独立性,同时又提高了任务的运行效率和实时性要求。
【专利说明】—种基于MCU的嵌入式实时调度控制装置及方法
【技术领域】
[0001]本发明涉及实时调度控制领域,主要是一种基于MCU的嵌入式实时调度控制装置及方法。
【背景技术】
[0002]MCU:Micro Control Unit,微控制单元,又称单片微型计算机(Single ChipMicrocomputer)或者单片机,由微处理器(CPU)、定时器(Timer)、存储器(R0M、RAM)、输入/输出接口(I/O)、模数转换器(A/D)、通信接口以及整形、驱动等大规模集成电路组成。其功能是通过执行存储在ROM或者RAM中的嵌入式软件指令和数据进行运算、处理、判断然后输出指令控制输出或者通信接口按照一定的逻辑规律输出信号。在嵌入式系统中,无论是工业控制、汽车电子还是消费电子等领域普遍采用MCU作为处理器,通过设计软件来处理输入输出、数据存储、时间定时、模数转换以及通信等工作,从而实现具体的嵌入式应用功能。
[0003]由于MCU中微处理器(CPU)执行软件指令的串口处理特点,即任意时刻只能处理输入输出、数据存储、时间定时、算法运算、模数转换、通信等其中的一项工作,而且在一个嵌入式系统中,每项工作也并非孤立,执行的时间先后顺序都有一定的要求,如何保证系统的所有功能能够合理有序的执行,同时在规定的时间内确保该运行的工作的执行,而且保证各项功能上下的连续关系是基于MCU嵌入式系统的核心技术。嵌入式实时调度技术就是基于上述目的,在有限的MCU资源下,为嵌入式软硬件系统所有一系列任务决定何时运行,以保证其时间约束、时序约束和资源约束得到满足,确保每个任务实时性的要求。
[0004]嵌入式系统多任务调度现有技术中,常用的有高优先权优先调度和基于时间片的轮转调度两种算法。高优先权优先调度的算法是将软件的各个任务模块在运行前赋予一定的优先级,运行时按照优先级从高到低依次执行,其基本思想是先来先服务。时间片轮转算法是系统将所有的任务按先来先服务算法的原则给每个任务分配一定的执行时间,执行时间用完后依次按照顺序执行。
[0005]常用的嵌入式系统调度控制方法有高优先权优先调度和基于时间片的轮转调度这两种算法,一般是嵌入式操作系统自带的,因此在使用时,需要付费购买嵌入式操作系统软件并进行移植。不仅成本高,而且开发周期长。另外:
[0006]1、高优先权优先调度的算法是将软件的各个任务模块在运行前赋予一定的优先级,运行时按照优先级从高到低依次执行,这种算法只能保证彼此互相独立的任务的实时性,无法实现相互影响的任务的实时性。因此在嵌入式软件中,很多任务并非独立,有的任务需要其他任务执行得到的条件和数据才能执行,如果一个优先级高的任务运行需要另外一个优先级低的任务传递一个变量,那么按照这种调度算法执行的话,在另外一个优先级低的任务没有执行,变量没有计算出来之前,高优先级的任务占用CPU其实就是一种浪费。
[0007]2、基于时间片的轮转调度算法只是将任务模块按照时间执行长短机械地轮流使用CPU的调度算法,没有时间基准的概念,不能突出任务的运行频率这个属性,而且轮流调度算法实时性不高。
【发明内容】
[0008]本发明的目的在于克服现有技术存在的不足,而提供一种基于MCU的嵌入式实时调度控制装置及方法,实现嵌入式系统软硬件的“串行任务并行化处理”的功能,确保MCU嵌入式系统软硬件运行的实时性和可靠性。
[0009]本发明的目的是通过如下技术方案来完成的,包括微处理器(MPU)、定时器(TIMER)、存储器、输入设备及输出设备,所述的输入设备由I/O接口、模拟数字转换器模块(ADC)和通信接口组成,存储器通过该输入设备获得传感器和总线通信传输的数据和指令,软件系统中的软件指令和数据存储在所述的存储器中,所述的微处理器根据定时器提供的时基信号和软件调度控制规律取出存储器中的软件指令和数据进行运算、处理和判断并得到处理结果输出给输出设备,输出设备由I/O接口、脉宽调制模块(PWM)和通信接口组成,输出的执行结果以不同信号形式通过输出设备传输。
[0010]一种采用上述的基于MCU的嵌入式实时调度控制装置的方法,该方法采用两级调度控制机制即优先级重构和时基时间片轮询的算法,并将嵌入式软件各个功能模块任务按照其属性分解成具有时间连续性的连续任务和空间频率性的离散任务,包括如下步骤:
[0011]I)、在嵌入式系统运行开始时,首先进行动态任务优先级的重构算法即优先级重构;
[0012]2)、在优先级重构中,如满足执行条件将被赋予原始优先级进入时基时间片轮询,如无任务优先级离散任务模块挂起则参与下次重构;
[0013]3)、在时基时间片轮询中,通过状态机时间片轮询调度本次时间片的离散任务集合,该执行当前时间片离散任务模块占用CPU运行,其他时间片离散任务模块则挂起参与下次轮询。
[0014]作为优选,所述的优先级重构由时基、时间片、任务标志、执行条件、上次优先级因素来决定,通过任务优先级=[(上次优先级)11 (任务标志)]&&(执行条件)的关系式得到任务优先级基数,再同原始优先级进行比较,如果基数大于原始优先级,则需比较原始优先级比其高的任务是否挂起,如挂起,则优先级基数即本次任务优先级,如没有挂起则按照原始任务优先级决定本次任务优先级。
[0015]作为优选,所述的时基时间片轮询通过时基标志判断定时中断是否产生,如果时基中断没有产生,则按照上次循环的时间片调度算法执行;如果时基中断到来,开始执行本次离散任务调度算法,离散任务的调度算法通过定时的时基和时基累计计数器计算本次循环的时间片来决定。
[0016]本发明的有益效果为:实现了基于MCU平台运行的嵌入式软硬件系统各个功能模块的实时运行;提高了嵌入式软件的执行效率,同时本发明的调度算法运算简单、简化了软件设计,不会增加整个系统的软硬件开销,适合实时性要求比较高的自动控制和汽车电子控制系统应用领域。
【专利附图】
【附图说明】
[0017]图1是本发明的MCU软硬件系统运行原理框图。
[0018]图2是本发明的基于优先级重构和时基时间片轮询原理框图。[0019]图3是本发明的嵌入式系统任务两级嵌套划分图。
[0020]图4是本发明的基于时基时间片的离散任务调度流程图。
【具体实施方式】
[0021]下面将结合附图对本发明做详细的介绍:如附图1所示,本发明由微处理器(MPU)、定时器(TIMER)、存储器(ROM和RAM)、输入设备及输出设备组成,其中软件系统中的软件指令和数据被存储在存储器中,软件指令是构成嵌入式软件任务的集合,输入设备由I/O接口、模拟数字转换器模块和通信接口组成,通过这些接口 MCU获得传感器和总线通信传输的指令和数据,MCU中的微处理器(MPU)根据定时器(HMER)提供的时基信号和软件调度控制规律在一定时刻取出ROM和RAM中的软件指令和数据进行运算、处理和判断并得到处理结果输出给输出设备,输出设备由I/O接口、脉宽调制模块和通信接口组成,输出的执行结果以不同信号形式通过输出设备传输。通过MCU软硬件的协同运行实现了一个基于MCU单片机的嵌入式系统采集、运算、处理、判断、通信、输出的整个过程。本发明旨在提供一种基于MCU的嵌入式系统工作实时调度控制技术/方法,通过这种技术可以使得MCU中的微处理器(MPU)能够根据整个系统实时性和可靠性的要求对系统的各个功能模块进行调度处理,达到“串行任务并行化处理”的功能。
[0022]如图2所示,本发明创造性的采用了两级调度控制机制即优先级重构和时基时间片轮询的算法。其实现原理:
[0023]1、在嵌入式系统运行开始时,首先进行动态任务优先级的重构算法,该算法的主要任务是决定本次循环的连续任务的优先级,动态优先级重构由任务标志、执行条件、时基、时间片、上次优先级等因素来决定,因此每个连续任务都有一个结构体变量保存任务的优先级重构信息,其定义格式如下:
[0024]typedef struct 结构体名称{
[0025]数据类型:本次优先级;
[0026]数据类型:上次优先级;
[0027]数据类型:任务标志;
[0028]数据类型:执行条件;
[0029]数据类型:时基标志;
[0030]数据类型:时间片;
[0031]数据类型:任务重构关系式(上次优先级、任务标志、执行条件、时基、时间片参数的运算关系);
[0032]动态任务优先级重构的实现如下表所示:
[0033]
【权利要求】
1.一种基于MCU的嵌入式实时调度控制装置,其特征在于:包括微处理器、定时器、存储器、输入设备及输出设备,所述的输入设备由I/o接口、模拟数字转换器模块和通信接口组成,存储器通过该输入设备获得传感器和总线通信传输的数据和指令,软件指令和数据存储在所述的存储器中,所述的微处理器根据定时器提供的时基信号和软件调度控制规律取出存储器中的软件指令和数据进行运算、处理和判断并得到处理结果输出给输出设备,输出设备由I/o接口、脉宽调制模块和通信接口组成,输出的执行结果以不同信号形式通过输出设备传输。
2.一种采用权利要求1所述的基于MCU的嵌入式实时调度控制装置的方法,其特征在于:该方法采用两级调度控制机制即优先级重构和时基时间片轮询的算法,并将嵌入式软件各个功能模块任务按照其属性分解成具有时间连续性的连续任务和空间频率性的离散任务,包括如下步骤: 1)、在嵌入式系统运行开始时,首先进行动态任务优先级的重构算法即优先级重构; 2)、在优先级重构中,如满足执行条件将被赋予原始优先级进入时基时间片轮询,如无任务优先级离散任务模块挂起则参与下次重构; 3)、在时基时间片轮询中,通过状态机时间片轮询调度本次时间片的离散任务集合,该执行当前时间片离散任务模块占用CPU运行,其他时间片离散任务模块则挂起参与下次轮询。
3.根据权利要求2所述的基于MCU的嵌入式实时调度控制装置的方法,其特征在于:所述的优先级重构由时基、时间片、任务标志、执行条件、上次优先级因素来决定,通过任务优先级=[(上次优先级)11 (任务标志)]&&(执行条件)的关系式得到任务优先级基数,再同原始优先级进行比较,如果基数大于原始优先级,则需比较原始优先级比其高的任务是否挂起,如挂起,则优先级基数即本次任务优先级,如没有挂起则按照原始任务优先级决定本次任务优先级。
4.根据权利要求2所述的基于MCU的嵌入式实时调度控制装置的方法,其特征在于:所述的时基时间片轮询通过时基标志判断定时中断是否产生,如果时基中断没有产生,则按照上次循环的时间片调度算法执行;如果时基中断到来,开始执行本次离散任务调度算法,离散任务的调度算法通过定时的时基和时基累计计数器计算本次循环的时间片来决定。
【文档编号】G06F9/48GK103995742SQ201410213792
【公开日】2014年8月20日 申请日期:2014年5月20日 优先权日:2014年5月20日
【发明者】周贤勇, 李霖, 资小林, 谌文思, 邱宝象, 莫小波, 林安伟 申请人:万向钱潮股份有限公司, 万向集团公司