嵌入式系统在工业控制中的应用
摘要:嵌入式系统在工业控制的应用中占据重要领域,uC/OS-II实时操作系统(RTOS)是嵌入式系统开发的有力工具,本文主要利用uC/OS-II操作系统来具体实现一个嵌入式工业控制系统。
同时,所讨论的实时系统的研究,为在一个系统中同时多个实时任务提供了可能性。
关键字:实时性嵌入式系统工业控制
0. 引言
嵌入式技术是21世纪最有生命力的新技术之一,目前已经广泛应用于社会生活的各个方面。
嵌入式系统的应用与开发则是当今计算机行业发展的一个热点。
现今嵌入式软件的应用与开发的领域主要有:国防、移动通信、电子、办公自动化、机/车顶盒、掌上电脑(或PDA)、手机软件、工业控制、信息家电等领域。
工业等各部门对智能控制需求的不断增长,对嵌入式微处理器的实时性、运算速度、可扩充能力、系统可靠性、功耗和集成度等方面提出了更高的要求。
1. 嵌入式系统与工业控制网络
美国电气工程师协会(IEE)的一个定义:嵌入式系统是用来控制或监视机器、装置或工厂等大规模系统的设备。
嵌入式系统通常具有如下特性:(1)通常只执行特定功能;是在特定领域内完成特定的功能的专用计算机系统,比如,它可用于一种工业仪器,也可能用于航天设备中的某个电子装置。
这一点与一般桌上型办公设备或数据库系统有很大区别。
(2)嵌入式系统中硬件配置一般是根据系统的性能指标来确定的;除了附加的调试接口外,没有多余的硬件设备,一般是以计算机周边器件构成核心,其规模可在大范围内变化。
如从8051芯片到X86芯片。
而且嵌入式系统中是软件和硬件紧密结合。
(3)严格的时序和稳定性要求;这是因为在机器控制的大型系统中,程序运行稍有差错则可能使得整个系统失去控制,甚至酿成灾害。
而且系统一般不进行交互动作,所以要求系统的自动运行要稳定、纠错能力强,可靠运行。
(4)具有实时性;因为在工业控制应用中大多数是属于过程控制,这些领域对系统要求是必须具有实时性,而且还要求有实时性的嵌入式操作系统。
(5)嵌入式系统的开发一般采用宿主机/目标机模式;在某个环境下调试好目标机器的软件和硬件,才能使目标机器离开开发环境,从而独立运行。
嵌入式系统是电脑软件与硬件的综合体,它是以应用为中心,以计算机技术为基础,软件硬件可裁剪,从而能够适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
它将操作系统和功能软件集成于计算机硬件系统之中,简单的说就是系统的应用软件与系统的硬件一体化,类似于BIOS 的工作方式,具有软件代码小,高度自动化,响应速度快等特点。
特别适合于要求实时的和多任务的体系。
工业控制网络是由传感器、执行机构、显示和数据记录设备等组成,用于监视和控制电气设备的系统。
通常除遇到系统不能自愈的故障需要人工干预排除外,均应有自动实现监控功能。
在工业应用中,控制网络可以用于监视设备的状态、调节转速和流量等、采集模拟输入量、顺序开关/起停设备、与主控机通信并在显示器或专门定制的显示设备上显示各参量的大小和状态。
由于工业控制系统特别强调可靠性和实时性。
控制网络数据通信以引发物质或能量的运动为最终目的。
用于测量与控制的数据通信的主要特点是:允许对实时的事件进行驱动通信,具有很高的数据完整性。
智能仪表的出现推动着工业控制网络的发展,新一代的工业控制网络呼唤功能更强大的仪表和控制器的出现,面向工业控制的嵌入式系统应势而生。
2. 系统实现
系统的实现包括硬件实现和软件实现。
硬件实现
系统结构框图如图1所示。
两个串行通信接口可以采用RS232。
用以采集来自其他设备的远程的数据,然后由ARM微处理器进行处理,处理后的结果通过以太网接口分发给其他设备。
为了满足大多数情况的需要,内存选用容量为8M 的16bit的芯片。
10M以太网接口的设计是考虑到通用性。
为了调试的方便,这里使用了一个JTAG(国际标准测试协议)接口,可以访问其他系统资源,它还
可以跟仿真器相连。
USB接口分为两个主机接口和一个设备接口。
LED用来在调试和使用过程中的显示数据结果。
图1 系统硬件结构图
软件实现
软件的实现包括两个方面,一个是系统的内核,另一个是设备的驱动程序。
(1)首先编译uCOS-II的源代码:
(2)为每个设备编写程序
uCOS-II操作系统的设备驱动程序完成的主要工作是:
①对每个硬件设备进行初始化和释放;
②数据传输,将数据从内核传到硬件设备,或者从硬件设备传到内核,读取应用程序传送给硬件设备的数据和回送应用程序请求的数据;
③检测和处理硬件设备出现的错误和异常;
uCOS-II操作系统的设备驱动程序的主要组成部分有:
①自动配置和初始化子程序;
②服务于I/O请求的子程序;
③中断服务子程序;
根据所选择的设备和设备所要完成的功能分别进行编写。
3. 实时性解决办法
实时操作系统是实时控制系统和实时处理系统的统称。
所谓实时就是要求系统及时响应外部条件的要求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地运行。
实时控制系统实质上是过程控制系统。
实时操作系统首先考虑的是系统的实时性和可靠性。
实时处理系统主要指对信息进行及时的处理。
第一,双内核技术
这种方法对于支持工业控制,数据采集等等有硬实时性要求的应用系统比较合适。
所谓的双内核主要是指,在标准的Linux 内核的下面再提供子内核,这个子内核不是一个完整的内核,它没有足够的驱动程序,缺乏扩展库,它是标准内核的补充,主要处理实时任务。
而原来的Linux 内核作为在其上运行的一个核心任务。
在硬件中断和原来的Linux 内核之间加入一个实时内核,通过实时内核解决原Linux 内核的关中断问题,该实时内核始终不关闭硬件中断,可以接受所有的中断信号,当中断信号需要实时进程来处理时,由优先级更高的实时进程抢占Linux内核。
第二,中断和时钟机制。
实时系统与外部中断处理相关的一个重要的方面是“关闭中断”处理机制,需要保证确认硬件外部中断时内核不再重入,并且紧跟一个软件中断处理流程,实质就是用软中断来代替硬中断。
实时系统与外部中断处理相关的另一个重要的方面是系统中断嵌套的能力,即可以指定外部事件服务的相对优先级,并且保证关键的外部操作能够提前处理。
同时,可以改造时钟机制来缩小软中断的切换时间。
第三,提高内核的可抢占性。
为了提供进程间通信和进程抢占式调度的良好实现,需要对进程状态进行改造,完全的改造Linux 内核为可强占内核。
加一个抢占点来改良系统响应时间长的问题,所谓的抢占点就是,在这个点的时候如果系统中有更高优先级的进程就序,系统提供这样一个机会高优先级的进程运行。
那么就可在一个用户进程在核心状态执行时能被一个更高的优先级的可执行进程抢占。
将实时进程包括在内核里,实时内核本身也通过内核模块的方式进行装载与卸载,其目的是为了方便进程间通信的及时进行,并且可以实现更好的进程抢占式调度算法。
第四,进程间通信方式调整。
用可抢占式内核的方法实现进程调度,需要采用关中断或使用信号量机制来保护临界区,需要提供进程间通信的若干实现方法。
第五,进程抢占式调度。
实时系统的调度必须满足以下条件:进程的优先级通过API 指定、调度器自动选择并执行最高优先级的进程、调度在一个固定的时间周期里选择和执行最高优先级的进程。
系统需要提供满足要求的调度方法。
4. 系统测试分析
为了保证系统的正常运行,在理论上通过的前提下,测试是必不可少的。
限篇幅有限这里只将测试结果列表如下:
表5-1 测试结果统计
5. 结论
本论文的创新点在于:(1)提出了一种嵌入式工业控制网的硬件模型;(2)详细的分析了影响工业控制过程实时性的因素。
通过测试结果可以发现,本文提出的硬件模型性能较好,能够满足大多数工业控制的需要。
同时,在吸取前人关于实时性分析问题经验的基础上,提出了自己的观点,并用测试实验得以验证。
6. 参考文献
[1] 张跃常戴卫恒. Freescale系列单片机常用模块与综合系统设计实例精讲[M].电子工业出版社,2010.
[2] 胥静. 嵌入式系统设计与开发实例详解—基于ARM的应用[M].北京:北京航空航天大学出版社,2005.
[3] 任哲潘树林房红征. 嵌入式操作系统基础uC/OS-II和Linux[M]. 北京:北京航空航天大学出版社,2010.
[4] 周立功. ARM嵌入式系统基础教程(第二版)[M].北京:北京航空航天大学
出版,2009.
[5] 江一舟张怡聪李斌.Cortex-M3单片机在工业仪表中的应用[J].仪表技术,2010,24(3)24-26.。