嵌入式系统在工业控制中的应用
关键字:实时性 嵌入式系统 工业控制
1. 前言
嵌入式技术是21世纪最有生命力的新技术之一,目前已经广泛应用于社会生活的各个方面。嵌入式系统的应用与开发则是当今计算机行业发展的一个热点。现今嵌入式软件的应用与开发的领域主要有:国防、移动通信、电子、办公自动化、机/车顶盒、掌上电脑(或PDA)、手机软件、工业控制、信息家电等领域。工业等各部门对智能控制需求的不断增长,对嵌入式微处理器的实时性、运算速度、可扩充能力、系统可靠性、功耗和集成度等方面提出了更高的要求。
2. 嵌入式系统与工业控制网络
美国电气工程师协会(IEE)的一个定义:嵌入式系统是用来控制或监视机器、装置或工厂等大规模系统的设备。嵌入式系统通常具有如下特性:
(1)通常只执行特定功能;是在特定领域内完成特定的功能的专用计算机系统,比如,它可用于一种工业仪器,也可能用于航天设备中的某个电子装置。这一点与一般桌上型办公设备或数据库系统有很大区别。
(2)嵌入式系统中硬件配置一般是根据系统的性能指标来确定的;除了附加的调试接口外,没有多余的硬件设备,一般是以计算机周边器件构成核心,其规模可在大范围内变化。如从8051芯片到X86芯片。而且嵌入式系统中是软件和硬件紧密结合。
(3)严格的时序和稳定性要求;这是因为在机器控制的大型系统中,程序运行稍有差错则可能使得整个系统失去控制,甚至酿成灾害。而且系统一般不进行交互动作,所以要求系统的自动运行要稳定、纠错能力强,可靠运行。
(4)具有实时性;因为在工业控制应用中大多数是属于过程控制,这些领域对系统要求是必须具有实时性,而且还要求有实时性的嵌入式操作系统。
(5)嵌入式系统的开发一般采用宿主机/目标机模式;在某个环境下调试好目标机器的软件和硬件,才能使目标机器离开开发环境,从而独立运行。
嵌入式系统是电脑软件与硬件的综合体,它是以应用为中心,以计算机技术为基础,软件硬件可裁剪,从而能够适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它将操作系统和功能软件集成于计算机硬件系统之中,简单的说就是系统的应用软件与系统的硬件一体化,类似于BIOS的工作方式,具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务的体系。
工业控制网络是由传感器、执行机构、显示和数据记录设备等组成,用于监视和控制电气设备的系统。通常除遇到系统不能自愈的故障需要人工干预排除外,均应有自动实现监控功能。在工业应用中,控制网络可以用于监视设备的状态、调节转速和流量等、采集模拟输入量、顺序开关/起停设备、与主控机通信并在显示器或专门定制的显示设备上显示各参量的大小和状态。由于工业控制系统特别强调可靠性和实时性。控制网络数据通信以引发物质或能量的运动为最终目的。用于测量与控制的数据通信的主要特点是:允许对实时的事件进行驱动通信,具有很高的数据完整性。
智能仪表的出现推动着工业控制网络的发展,新一代的工业控制网络呼唤功能更强大的仪表和控制器的出现,面向工业控制的嵌入式系统应势而生。
3. 系统实现
系统的实现包括硬件实现和软件实现。
硬件实现
系统结构框图如图1。两个串行通信接口可以采用RS232。用以采集来自其他设备的远程的数据,然后由ARM微处理器进行处理,处理后的结果通过以太网接口分发给其他设备。为了调试的方便,Flash存储器使用了两个,512K的用于存储引导装载程序,2M的用来承载包含应用程序的操作系统映像。此种设计方式可以使在启动加载方式下,调试不同操作系统的应用程序时,只需要简单的更换包含对应的操作系统的引导程序的Flash芯片就能做到。为了满足大多数情况的需要,内存选用容量为16M的16bit的芯片。10M以太网接口的设计是考虑到通用性。为了调试的方便,这里使用了一个JTAG(国际标准测试协议)接口,可以访问其他系统资源,它还可以跟仿真器相连。USB接口分为两个主机接口和一个设备接口。LED用来在调试和使用过程中的显示数据结果。

图1 系统硬件结构图
软件实现
软件的实现包括两个方面,一个是系统的内核,另一个是设备的驱动程序。
(1)首先编译 Kernel的源代码:
执行下列命令:
cd /usr/src/linux
make mrproper
make xconfig
会出现一个界面,可以根据自己的实际需要来选择。在编译内核的过程中,最繁杂的事情就是这步配置工作。在配置过程中,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关系紧密而且经常使用的部分功能代码直接编译到内核中。在选项Code maturity level options、Loadable module support、Processor type and features、Networking options、Network device support、ISDN subsystem、Character devices等分别选择适合自己所需要的项目。File systems建议选择相应的项目,为了以后扩充使用。
(2)为每个设备编写程序
Linux系统的设备驱动程序完成的主要工作是:
① 对每个硬件设备进行初始化和释放;
② 数据传输,将数据从内核传到硬件设备,或者从硬件设备传到内核,读取应用程序传送给硬件设备的数据和回送应用程序请求的数据;
③ 检测和处理硬件设备出现的错误和异常;
Linux系统的设备驱动程序的主要组成部分有:
① 自动配置和初始化子程序;
② 服务于I/O请求的子程序;
③ 中断服务子程序;
根据所选择的设备和设备所要完成的功能分别进行编写。
4. 实时性解决办法
实时操作系统是实时控制系统和实时处理系统的统称。所谓实时就是要求系统及时响应外部条件的要求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地运行。实时控制系统实质上是过程控制系统。实时操作系统首先考虑的是系统的实时性和可靠性。实时处理系统主要指对信息进行及时的处理。
高实时性是许多工业控制网络的基本要求,Linux 在这样的环境下还存在许多缺陷。它不是一个真正的实时操作系统,内核不支持事件优先级和抢占实时特性。那么,要将 Linux 系统改造成为适用于工业控制领域内的嵌入式系统必须解决一个重要的问题——实时性。所以,在开发嵌入式 Linux 的过程中,首要问题是扩展 Linux 的实时性能。目前把Linux改造为嵌入式实时系统的方法有两个:一个方法是对Linux系统的内核进行改造;另一个方法是在 Linux 系统底层添加一个硬件抽象层,也就是添加一个实时内核进行改造。其目的都是为了保证系统会首先执行优先级更高的实时进程然后才是优先级低的普通进程,并且防止别的普通进程打断实时进程的运行。
为达到系统实时性的要求,本文对Linux 内核进行改造的方法。改造方法主要是通过截取硬件底层中断,在硬件上实现一个抽象层,通过抽象层来传递和控制 Linux 中断。目前,为满足实时性而进行的系统改造主要集中在双内核、中断和时钟机制、内核状态调整、进程间通信方式的调整和进程抢占式调度算法这五个方面:
第一, 双内核技术
这种方法对于支持工业控制,数据采集等等有硬实时性要求的应用系统比较合适。所谓的双内核主要是指,在标准的 Linux 内核的下面再提供子内核,这个子内核不是一个完整的内核,它没有足够的驱动程序,缺乏扩展库,它是标准内核的补充,主要处理实时任务。而原来的 Linux 内核作为在其上运行的一个核心任务。在硬件中断和原来的 Linux 内核之间加入一个实时内核,通过实时内核解决原 Linux 内核的关中断问题,该实时内核始终不关闭硬件中断,可以接受所有的中断信号,当中断信号需要实时进程来处理时,由优先级更高的实时进程抢占Linux内核。
第二,中断和时钟机制。
实时系统与外部中断处理相关的一个重要的方面是“关闭中断”处理机制,需要保证确认硬件外部中断时内核不再重入,并且紧跟一个软件中断处理流程,实质就是用软中断来代替硬中断。实时系统与外部中断处理相关的另一个重要的方面是系统中断嵌套的能力,即可以指定外部事件服务的相对优先级,并且保证关键的外部操作能够提前处理。同时,可以改造时钟机制来缩小软中断的切换时间。
第三,提高内核的可抢占性。
为了提供进程间通信和进程抢占式调度的良好实现,需要对进程状态进行改造,完全的改造 Linux 内核为可强占内核。加一个抢占点来改良系统响应时间长的问题,所谓的抢占点就是,在这个点的时候如果系统中有更高优先级的进程就序,系统提供这样一个机会高优先级的进程运行。那么就可在一个用户进程在核心状态执行时能被一个更高的优先级的可执行进程抢占。将实时进程包括在内核里,实时内核本身也通过内核模块的方式进行装载与卸载,其目的是为了方便进程间通信的及时进行,并且可以实现更好的进程抢占式调度算法。
第四,进程间通信方式调整。
用可抢占式内核的方法实现进程调度,需要采用关中断或使用信号量机制来保护临界区,需要提供进程间通信的若干实现方法。
第五,进程抢占式调度。
实时系统的调度必须满足以下条件:进程的优先级通过 API 指定、调度器自动选择并执行最高优先级的进程、调度在一个固定的时间周期里选择和执行最高优先级的进程。系统需要提供满足要求的调度方法。
5. 系统测试分析
为了保证系统的正常运行,在理论上通过的前提下,测试是必不可少的。限篇幅有限这里只将测试结果列表如下:
表5-1 测试结果统计

6. 结论
本论文的创新点在于:(1)提出了一种嵌入式工业控制网的硬件模型;(2)详细的分析了影响工业控制过程实时性的因素。通过测试结果可以发现,本文提出的硬件模型性能较好,能够满足大多数工业控制的需要。同时,在吸取前人关于实时性分析问题经验的基础上,提出了自己的观点,并用测试实验得以验证。
参考文献
[1]班建民,付保川等.基于嵌入式数据库的实时数据采集方法.微计算机信息.2005,10
[2]田霖,李正熙,童朝南.实时仿真与嵌入式系统.微计算机信息.2005,13
[3]王保进.一种提高构件化嵌入式操作系统性能的方案.微计算机信息.2005,7
[4]许海燕,付炎.嵌入式系统技术与应用.北京:机械工业出版社,2003
[5]雷澎.Linux 的内核与编程.北京:机械工业出版社,2000
[6]陈莉君.Linux 操作系统内核分析.北京:人民邮电出版社,2000
[7]邹思轶.嵌入式 Linux 设计与应用.北京:清华大学出版社,2002
文章版权归西部工控xbgk所有,未经许可不得转载。










服务咨询