基于可编程控制器CPU模块的嵌入式操作系统的设计
【摘要】:
可编程序控制器作为工业环境下底层控制平台,直接面向控制对象。由于具有高可靠性,易扩展,“它控制的范围可大、也可小,几乎所有的控制领域都可用它;它控制的对象可以是开关量、也可以是模拟量、脉冲量,几乎什么量的控制都可用它;它可用作控制,也可用作数据终端、系统诊断,几乎什么工程任务都可用它”,使得可编程序控制器技术和机器人技术、CAD/CAM技术共同成为现代工业自动化的三大支柱之一的原因。如果可编程序控制器实行开放,提供友好接口,那么不仅可以用在集散控制系统、现场总线控制系统中,作为底层控制器;而且结合当今网络技术,使可编程序控制器成为网络终端产品的一种有效控制器。
可编程序控制器CPU模块中有一个非常重要的管理系统资源的平台,这就是嵌入式操作系统。用户编写的应用程序需要在嵌入式操作系统的支持下才能运行,而且正是有了嵌入式操作系统,可编程序控制器的功能才会日益变得强大起来。
调度算法是开发嵌入式操作系统第一个要解决的理论问题,它确定了如何进行任务调度。抢占时间片式调度基础上结合优先级的算法是所开发的嵌入式操作系统采用的调度算法,围绕此算法,对有关的问题给予了阐述和证明。如何设计时间片及保证操作系统按照时间片的大小抢占CPU,这是决定所设计的嵌入式操作系统能否成功的第一个关键环节。
在嵌入式操作系统中,任务调度、任务通信、内存管理等都需要相应的数据结构,如表、栈、队等,它们用来维护操作所需的数据或信息;算法就是对这些数据或信息的操作。因此,在设计嵌入式操作系统之前,首先需要讨论相应的数据结构和算法。
嵌入式操作系统结构设计时可选择分层式结构方法或整体式结构方法。本课题采用整体式结构方法。采用整体式结构方法时,整个操作系统作为一堆过程的集合,每个过程都可以调用任意其他过程,系统中的每一过程都需要定义一个完好的接口,即它的入口参数和返回值,而且相互间的调用要求不受约束。
操作系统内核在任务调度时,是根据任务的状态进行任务切换的过程,这部分程序为系统函数Os_TasK_Switch,该函数可以称为调度器。调度器作为嵌入式操作系统的内核部分,是系统最核心部分。本课题以此为重点,编写源程序并作出说明。