几年前,为实时应用构建一个数字控制系统还是比较容易的。你可以先选定一款自己最熟悉的实时操作系统(RTOS)和一款微控制器。这款微控制器必须支持你采用的RTOS,此外在价格、性能、输入/输出特性和储存能力方面也能够满足应用要求。然后,你就可以编写应用软件了。软件要能够利用到RTOS的特性,从而保证你的控制器可以在指定的时刻完成指定的工作。
实时操作系统的基本使命是处理中断。当一个中断出现,RTOS必须先把当前程序的相关数据保存好,
然后切换到一个独立的中断服务流程来处理这个中断事件。处理完中断事件之后CONTROL ENGINEERING China版权所有,RTOS
先恢复先前储存的数据,再继续运行先前的程序。
如今,构建这样一个数字控制系统已经不那么容易了。从某种意义上说,多核微控制器和软件虚拟化技术的问世,使得嵌入式系统设计师与运动控制工程师的工作更加复杂了。然而在许多方面,这些技术又为他们的工作带来了便利。要弄明白这个看似矛盾的说法,你需要掌握一些RTOS、多核和软件虚拟化技术的基础知识。下面,让我们从RTOS基本技术谈起。
让实时性深入每一
刻
维基百科中写道: “实时操作系统(RTOS;通常被读作‘阿-陶思’)是一种专为实时应用而设计的多任务操作系统。RTOS为实时系统设计提供了便利,但它并不能够保证最终的结果是实时的;要做到这一点还需要正确开发相应的软件。RTOS的价值并不体现在数据处理能力方面CONTROL ENGINEERING China版权所有,而是主要在于对特定事件的响应速度与预见性方面。因此最小中断响应延迟和最小线程切换延迟是衡量一款RTOS的重要参数。”
RTOS具备了在多任务环境下对任务关键性进行编排的能力。在单任务系统中,由于不会出现多个任务同时竞争计算资源的情况,每个任务都是实时运行的。这种情况下,当任何一个事件发生并对CPU发出请求时,CPU就会立刻对它作出响应。这是因为CPU在同一时刻不会执行其他操作,也不会被其他事件所阻碍。
在多任务环境下,CPU需要在多个任务之间进行切换,这时,实时性的价值才能得到体现。当一个事件出现并对CPU发出请求时,CPU很可能正忙于处理其他事件,因而不能立即对该请求做出响应。它必须以某种方式把正在处理的任务搁置起来,便于CPU在处理完中断事件之后重新回到之前的任务上,然后,CPU才会响应中断事件。最后控制工程网版权所有,它必须在处理完中断事件后重新回到之前的任务线程上。
一款工业级实时操作系统的使命就是处理中断标志事件。中断是由外部电路发出的信号。外部电路把CPU的中断管脚拉到高电平(对绝大多数CPU是这样的)并长期保持该信号,直到CPU识别出该中断信号。CPU一般会在一段确定的时间内对中断信号做出响应控制工程网版权所有,这是强制规定的。
虚拟世界
操作系统(OS)作为一种软件,最根本的任务是对位组合进行操作。对于软件而言,硬件只是一连串代表它们在地址空间内位置的位组合以及临时与这些位置有关的数据字。
虚拟化技术正是依赖于这样一个事实:软件不知道也不必去关心这些位组合的来龙去脉,它只需要在位组合出现时对其进行处理。
假设你拥有一台运行速度飞快的计算机,但是你需要的却是两台对速度要求不高的计算机。也许你想在其中一台上运行Microsift的Vista操作系统(当然你缺少这台电脑),而在另一台上运行WindRiver的VxWorks RTOS。Vista 可以提供人机界面(HMI)并且能够通过因特网自动把数据上传到位于巴基斯坦的服务器里,与此同时VxWorks会对流程进行实时控制。
CONTROL ENGINEERING China版权所有, hspace="0" src="http://www.cechina.cn/upload/article/673592bc-8852-4bd5-aa92-e9764dc6ce88/ctl0810_f5a1.jpg" width="290" border="0">
管理程序的地位介于硬件与操作系统实例之间。它对操作系统进行划分CONTROL ENGINEERING China版权所有,
以虚拟形式把不同硬件分别呈现给不同的操作系统。
你可以应用软件虚拟化技术“克隆”你所拥有的这个高速处理器,并把它分身为两个相同的虚拟处理器。当然,这两个虚拟处理器的运行速度会减慢。其中一个处理器可以运行Vista,另一个运行VxWorks。
用来实现上述技术的虚拟化软件被称为“管理程序”。管理程序在计算机结构中的位置介于硬件与各个操作系统实例之间。从硬件层面看,管理程序永远只是一个普通的操作系统。从操作系统层面看,管理程序就像是一种硬件。
管理程序有三大功能:
■ 它为各种OS提供了访问硬件的途径。这些硬件包括处理器、内存以及输入/输出接口。它能确保相互不兼容的操作系统在一起融洽地工作。管理程序在设计上满足实时操作性要求。也就是说,为了维持RTOS的决策,管理软件会对所有硬件资源进行分配。
■ 它提供了不同OS之间的隔离机制,包括数据和系统安全。这样的话,如果一名黑客入侵了位于巴基斯坦的服务器,那么他应该可以通过因特网看到你Vista系统上运行的人机界面。但是他不可能接触到你运行在RTOS上的控制系统,