1.引言
基于现场总线的控制系统在工业控制中已经得到广泛的应用,现场总线是根据国际电工委员会的IEC61158标准的定义而应用于生产现场,在现场设备之间、现场设备与控制装置之间实行双向、串行、多节点通信的通信网络,也被称为开放式、数字化、多点通信的底层控制网络。现场总线具有系统的开放性;互操作性与互用性;现场设备的智能化与功能自治性;系统结构的高度分散性;对现场环境的适应性的优点,因此,现场总线成为当今自动化领域技术发展的热点之一。近年来已经设计出与现场总线相适应的控制模块,其功耗小、可靠性高、易开发等的优点已经成为嵌入式系统的主要成员。所谓嵌入式应用技术,是指将一个具有完整功能的小型或微型机装置作为一个部件或子系统,与载体有机地构成一个更可靠的技术稳定性的功能更强大和完善的系统。工业嵌入式系统的主要指标要求就是:实时性、高效率、安全稳定性与可靠性以及结构紧凑、易于剪裁、良好的开放性。实时性就是事件驱动能力与时间驱动能力,其基础是内核的结构模式与进程管理机制;高效率包括系统的启动速度与运行速度及消息传递效率等;而稳定性与可靠性包括稳定性、安全性与容错能力等有关的性能指标。以前的大部分工业嵌入式操作系统都是建立在DOS之上,但是DOS系统无论在实时性、安全性、分布式网络支持、可视化编程还是在易用性等诸多方面都不能满足工业应用要求,可供嵌入式应用的图形操作系统有多种,比如Windows CE、Palm OS、Black berry和EPOC等,而Palm OS、Black berry和EPOC一般只应用在手持设备上。适合工业环境应用(过程)标准的系统,目前有Windows CE和Linux等几种。本文的所介绍的嵌入式控制系统是基于Linux图形操作系统。
2.嵌入式控制系统
一般性定义,广义上的嵌入式控制系统是指非PC系统,有计算机功能但又不称之为计算机的设备和器材;狭义的嵌入式控制系统是把PLC功能、测量功能、PID调节(如温度)功能、人机+界面功能、现场总线通讯功能和高级语言编程及库函数集成的结合体。此系统包括控制面板和相关支持硬件(微处理器、IO端口等外设器件、扩展模块、存储器等)及应用软件。
2.1 控制面板(以德国EPIS公司产品为例)设计多样化,用户可以选用已有的控制器面板,也可以订制面板,使其与其设备或系统环境相匹配。显示器类型是LCD显示器,同时配有点阵式显示和图形显示。整个系统面板从144*72mm到255*183mm,适合在各种设备上应用。
2.2 相关支持硬件
嵌入式微处理器是嵌入式系统的核心。它对实时和多任务有很强的支持能力,能完成多任务并有较短的中断响应时间,使内部的代码和实时操作系统的执行时间减少到最低限度;具有强大功能的存储区保护和扩展功能;可扩展的处理器结构,能更方便、迅速地扩展出满足于应用的高性能配置;嵌入式微处理器的低功耗。
IO端口 数字输入口和输出口数量可选择,各端口最多可扩展到512路。输入电压是24VDC,分为标准速度口(从高变低为3.5ms,从低变高为2.8ms)和快速输入口(响应速度为20μs),同时配有高速输入口,额定电压是5V或24V,响应时间为1.1μs。数字输出口采用24V光电隔离结构,每路电流最大500mA,配有短路保护和过载保护;继电器输出口有一常开点和一常闭点,转换电压最大48 VDC,转换电流最大1A,转换容量最大30W,运行时间3ms。模拟量输入口和输出口的数量各自可扩展到40路。其模拟量输入口包括电压输入和电流输入两种方式,同时可以接收温度传感器信号,内部A/D转换器15位.,转换时间为20μs。特殊功能口:多路高速计数器输入口,最大输入频率是25kHz;增量编码器输入口,最大输入频率是1M Hz;25位绝对值编码器输入口;模拟量输出口内部D/A转换器是11位,转换时间为100ms。
总线(CAN)扩展模块 总线(CAN)扩展模块是光电隔离,与ISO/DIS 11898兼容。其传输电缆是双绕线屏蔽电缆,且对应于不同长度的电缆,传送的位速率不尽相同。总线(CAN)扩展模块扩展卡自带CPU,可独立脱机工作,节省主CPU的开销。 总线功能可带一路或多路总线(CAN)口和多个扩展槽。利用TCP/IP网络功能支持设备与设备间、设备与网络之间的在线数据交换,还可选配RS232/RS485,CANopen,和Profibus接口。
2.3 应用软件包括操作系统软件和应用程序编程软件。操作系统软件包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。嵌入式操作系统的基本特点是能够有效管理越来越复杂的系统资源,把硬件虚拟化,使开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供大量专用和通用库函数、驱动程序、工具集以及应用程序。应用程序控制着系统的运作和行为来完成特定的任务,而操作系统控制着应用程序编程与硬件的交互作用。编程环境非常好,在PC机上编程,具有非常方便地仿真,设断点,参数设置和跟踪,单步执行等DEBURG功能。
3.工业嵌入式控制系统的实时性与Linux操作系统
3.1 实时性是工业系统的基本要求,也是考核嵌入式系统最重要的指标之一。工业控制中的操作系统要求严格的实时性,实时性也是嵌入式系统的主要特征。实时系统要求所有任务在规定的时间内完成,例如现场的数据采集,电力监控与管理,航天器的飞行控制等等。设计实时系统有两个相对的目标:一是保证严格的时间关键截止值;二是充分有效地利用各种资源,并能较好地容错。嵌入式系统在软件的控制下通过硬件高速地获取数据,并进行处理,产生相应地反应。整个过程必须具有严格的时间和可靠性约束。实时操作系统中的重要概念包括:
系统响应时间(system response time)指系统发出处理要求到系统给出应答信号的时间
任务换道时间(context switching time)指任务之间切换而使用的时间
中断延迟(interrupt latency)指计算机接受到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间
实时操作系统应具有如下功能:任务管理(多任务和基于优先级的任务调度);任务间同步和通信(信号量和邮箱等);存储器优化管理(含ROM的管理);实时时钟服务和中断管理服务。
通常,根据实际应用中截止时间的要求,可将实时进程分为严格满足时间截止的硬实时进程和对截止时间要求只有关联的软实时进程。面向实时的Linux调度策略,应该采用线程作为调度的基本单位。在调度系统中安排一定的调度时钟,以调度时钟作为线程调度的参考。调度时钟依据线程创建时设定的优先级,同时优先级高的线程将一直运行。如果两个线程具有相同的优先级,则采用随机调度的方法。Linux是一个通用的操作系统,内核不支持事件优先级和抢占实时性,因此在将Linux系统作为嵌入系统应用于工业测控领域时,必须开发和扩展实时功能,将Linux提升为一个实时操作系统。
3.2 Linux是由很多体积小且性能高的微内核和部件组成。由于内核代码的完全开放性,不同层次和不同领域的用户可以根据具体的应用需求对内核进行改造与剪裁,以较低的成本设计出满足自己要求的嵌入式操作系统。它有一整套的工具链gcc,用户能够比较容易自行建立与配置嵌入式系统以及在该系统下的开发环境与仿真运行环境,不需要专门的仿真器。它可以支持RISC和CISC结构的芯片,可以支持16位、32位和64位CPU;就目前的流行器件来说,它可以运行在Intel系列CPU上,也可以运行在IBM和Motorola的Power PC 系列CPU以及Alpha和SPARC系列CPU上。Linux的灵活性极好。在一个64兆内存的PIII平台下编写的应用程序,可移植到8兆内存的嵌入式硬件装置中并可靠和稳定地运行。考虑可移植性与可裁减性硬件平台的迅猛发展,为实时应用提供丰富的运行平台(从单片机到DSP,从CISC到RISC结构的各类微处理等)。为了能适应硬件平台的多样化,在设计、开发嵌入式实时操作系统内核时,要认真考虑可移植性问题。能够提供广泛平台支持的操作系统,目前嵌入式Linux是成功的典型。可移植性与实现代码选用的语言有很大关系。如,C语言比实现相同功能的汇编语言具有更好的可移植性。但是,用汇编语言实现的代码具有更高的执行效率和更紧凑的代码空间。所以,为了取得较好的执行效率,节省代码空间,获得较强的可移植性,需要选择一个在代码优化方面做得好的C语言编译器,能对C代码进行良好的优化。