控制/MCU
实时多任务系统应用极其广泛,几乎渗透到各行各业,系统分类也很复杂。虽然不同的应用在实现模式上不完全一样,但核心思想是一致的。在嵌入式系统中,实时多任务机制是依靠启动之后运行的一段后台任务管理程序实现的。应用程序运行在该管理器程序之上。后台根据各个任务的要求,进行资源管理、消息管理、任务调度、异常处理等工作。其首要目的是调度一切可利用的资源实现实时控制任务。
实时系统主要有两大类:软实时系统和硬实时系统。软实时系统的宗旨是使各个任务运行的越快越好,并不要求限定某一任务必须在多长时间内完成。在硬实时系统中,各任务不仅要执行无误而且要做到准时。大多数实时系统都是二者的结合。对于一个复杂任务系统,任务调度模式的选用是其系统架构的一个重点。无纸记录仪具有多层次的界面管理和较高的实时响应需求,由此选择与之相适应的系统任务调度模式是势在必行的。
本论文综合考虑了各任务响应的实时性需求,对任务进行了创造性的调整,进而将软实时系统和硬实时系统进行了有机的结合,规划出最为合理的任务调度模式。
1 记录仪实时多任务的特点
通常的实时多任务操作系统都比较庞大,对于由单片机(80C320)组成的实时系统是不适用的。由于单片机的运算能力和内存有限,要求实时操作系统具有简单实用、高效可靠的特性。就记录仪而言,其任务和功能是预知的,则内存和文件管理系统可简化,甚至取消[1]。因为任务对存储器的要求是明确的,这样就可以使用固定和独立的存储区域分配方案,无需通过OS来控制和分配。因此,实时多任务操作系统就可以简化为基于任务调度与时钟中断管理为核心的调度模块。记录仪中的任务状态有四种:运行、就绪、等待、挂起,睡眠状态并入等待,不再另加以区分。
2 任务的划分、组织和调度
2.1 任务的划分
在单片机实时多任务系统中,实现实时多任务机制的关键在于将系统功能合理地分解成各个任务模块。划分任务的原则: 功能相对独立,并能与其他程序同时执行的程序划分为一个任务。但任务划分不能太细,否则将增加任务切换的系统开销,降低系统效率并影响系统响应的实时性。文献[2]指出,应尽量将关系密切的任务合并,减少任务间的通信。综合考虑任务的实时性和执行时间,记录仪的十个任务可分为三类:
(1)高优先级任务:下位机上传采样值的处理,虚拟通道组织,报警处理。这类任务实时性要求高,执行时间<0.1s,如采样值处理任务,记录仪要保存采样值作为历史数据,保存过程中要加上时标,采样值正确而时标错误的记录是无效的。
(2)低优先级任务:按键响应、显示、PID控制、流量积算。这类任务执行时间<0.2s,任务实时性要求一般。如按键响应任务,延迟0.5s是可以容忍的。
(3)后台任务:存储、打印、与管理机(PC)通信。这类任务的执行时间>1s,对实时性的要求最低。
2.2 任务的组织
系统上电,初始化每个任务的固定任务栈,建立任务队列状态表和任务控制表(TCB),这两张表是任务调度的依据。任务队列状态表由高优先级、低优先级、后台任务三张子表组成;任务控制表由任务首地址、状态寄存器、任务局部变量三部分组成,数据结构见图1。
全部0条评论
快来发表一下你的评论吧 !