智能仪表是自动控制技术的重要组成部分。随着智能仪表在工业控制、通信和汽车电子中的广泛应用。
智能仪表逐渐向数字化、网络化、智能化方向发展;同时,智能仪表复杂度不断增加,对实时性要求几乎达到了苛刻的程度。在编程方式和代码重复利用等方面,超循环方式的智能仪表越来越不能满足资源管理和系统的实时要求,迫切需要在中低端智能仪表中加入一些轻量级的多任务管理的调度器或实时操作系统。本文根据智能仪表对嵌入式操作系统的特殊要求设计了一种新的任务调度算法,并实现了一个应用于中低端仪器仪表的嵌入式微调度器。
1实时任务调度的一般方法和策略
在实时操作系统中,系统把应用分为行为可以预知的、功能确定的多个任务。每个任务一般处于3种状态;执行状态、就绪状态和等待状态(有的操作系统还具有挂起和休眠状态)。为了满足实时性要求,系统根据一定的原则选择合适的任务执行。
常见的任务调度算法分为静态算法和动态算法两类:
①静态算法:在系统在运行前(即系统初始化阶段),就为所有的任务分配固定的优先级别,在系统执行过程中优先级保持不变。当一个事件发生时,调度程序只需要查就绪表,就可以调度哪个任务处于运行状态。
②动态算法:在系统初始化时初步分配一个优先级。每一个任务在运行时可以改变它的优先级。
当前的嵌入式操作系统一般采用静态算法,只在处理优先级反转时临时采用动态优先级算法。
2仪器仪表对调度算法的要求
为了提高仪表的可靠性,实现高性能、多功能应用,应用于智能仪表的调度器必须满足以下要求:
①良好的实时性。智能仪表必须实时地对通过现场总线采集的数据进行数字编码,通过人机界面进行显示,并把用户对被监控系统的参数设置实时地传送给执行部件。
②基于优先级的任务调度策略。在复杂的大规模应用中需要使用大量的传感器、执行器和控制器等,对其数据显示和传输控制需要通过不同优先级的任务来控制。
③低消耗要求。随着应用环境的复杂化,对智能仪表的计算能力要求越来越高,势必要求调度器必须占用较少的系统资源。
④低成本要求。为了降低成本,在硬件设计上,存储器的大小是成本控制的一个方面。因此,要求提供的调