高建华,刘永葆,王文华
(海军工程大学 船舶与动力学院,武汉430033)
分布式控制具有组织结构灵活和数据运算、处理能力强的优点,采用分布式控制的系统,模块化结构降低了复杂性,同时也提高了可靠性;鲁棒性设计使得系统具备更灵活的扩展能力;故障的预警诊断处理,既满足了产品的安全性,也为产品的测试提供了方便[1]。标准化、模块化、高可靠性和易维护性,使得分布式控制成为当前燃气轮机控制的一个重要发展方向[2]。
燃气轮机分布式控制系统DCS(digital control system)的智能设备通过数字数据总线与全权限数字发动机控制(FADEC)进行通信。智能设备可以是智能传感器,也可以是智能执行机构,或者是传感器与执行机构二者功能的组合[3]。智能传感器把模拟传感器的值转变成数字格式输出给FADEC。智能执行机构从FADEC接收到一个位置命令,并执行该执行机构的闭环位置控制。智能传感器和执行机构向FADEC报告其状态,并执行诸如:补偿、内置测试、故障检测与诊断等功能。一个智能设备(传感器或者执行机构)是燃气轮机上的一个整体可替换部件LRU(line replaceable unit),它由一个基本设备加上一个智能电子接口单元SEIU(smart electronic interface unit)组成。电子接口单元有一个与FADEC相连接的数据总线和电源总线接口,在线实时地获取燃气轮机的状态信息,并通过复杂的控制算法和逻辑处理产生控制决策,这就要求智能电子接口单元的中央处理器具有很强的数值计算与处理能力。此外,由于燃气轮机控制功能和控制变量的不断增多,这就要求智能电子接口单元具有多节点、高速率、高度可靠的实时数据通信能力,因此对数据通讯总线也提出较高的要求。
因此研究燃气轮机分布式控制系统智能电子接口单元运用ARM芯片作为核心控制微处理器,采用先进的CAN总线技术作为通信标准,设计相应的硬件电路;软件以实时操作系统uC/OS-II为基础,通过上层调用一系列的用户程序来实现相应的功能。
ARM(advanced RISC machine)是一种采用精简指令集(RISC)的低功耗、高性能的32位微处理器,现在已经被广泛应用在包括工业控制在内的多个领域中。目前主流的ARM核有ARM7TDMI,StrongARM,ARM720T,ARM920T,ARM922T,ARM940T,ARM946T,ARM966T,ARM10TDMI等[4]。综合考虑运算能力、接口、适用温度范围等因素,选择PHILIPS公司基于ARM7TDMI-S核的LPC2294微处理器,作为设计智能电子接口单元的核心微处理器。
LPC2294是基于一个支持实时仿真和跟踪的32位微处理器,其主频为60MHz,带有256kB的Flash存储器和16kB的RAM,以及32位定时器、RTC模块、WDT模块、AD采样器以及多路串行接口等[5]。-40~105℃的宽温使用条件使得其应用范围相当广泛。LPC2294最大的特点是其自身集成了4路CAN总线通讯接口,兼容CAN 2.0B,ISO 11898-1,这为设计高性能的SEIU提供了极大的方便。
在对LPC2294微处理器结构以及性能分析的基础上,设计出了智能电子接口单元的整体架构。整个系统的硬件设计框架见图1。
图1 智能电子接口单元硬件组成框图
硬件主要由三部分组成。第一部分是ARM最小系统,它包括电源、时钟以及供硬件调试和系统测试用的JTAG接口和RS232串行总线通讯接口。第二部分是面向智能传感器和智能执行机构的接口,主要包括将传感器发送来的模拟量数字化的AD采样接口、控制位置控制器的PWM输出接口以及其它通用IO接口等。第三部分就是面向分布式控制上层的接口。根据分布式控制的特点以及物理冗余度的要求,这里设计了两路CAN通讯总线,这两路CAN通讯总线由LPC2294内部的CAN控制器和PHILIPS公司的CAN收发器80C250构成。系统处于正常工作状态时,只有1路CAN通讯接口处于激活状态;当该线路通讯发生故障时,系统自动启动另外1路CAN接口满足应急通讯的要求,同时发出报警指令,从而确保整个系统的高可靠性。
由于智能电子接口单元需要具备标准化、模块化和高可靠性,若采用传统前后台设计方法,会使系统显得过于复杂,实时性得不到保证,而且容易发生死锁。解决这些问题的最好方法就是采用实时操作系统,这样可以实现与硬件平台的无关性,降低程序的复杂度,并使得复杂的多任务应用更容易实现[6]。鉴于系统实时性和可靠性要求比较高,智能电子接口单元以uC/OS-II实时操作系统作为软件开发的平台,并在上面开发数据队列、CAN总线驱动、串口驱动等中间件,uC/OS-II上创建任务时只需调用这些中间件就可以完成对实际硬件的操作。
图2 uC/OS-II文件结构图
图2 说明了uC/OS-II的软硬件体系结构。应用程序处于整个系统的顶层,每个任务都可以认为自身独占CPU,因而可以设计成为一个无限循环。uC/OS-II处理器无关的代码提供了uC/OS-II的系统服务,应用程序可以调用这些API函数进行内存管理、任务间通信以及任务的创建、删除等。移植uC/OS-II需要修改的代码量很小,主要需要修改的部分就是与处理器相关部分的三个文件 OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。
应用程序的主函数是程序首先执行的一个函数。该函数永远不会返回,主要实现系统硬件和操作系统的初始化。硬件初始化包括中断、键盘、显示等的初始化;操作系统初始化包括任务控制块和事件控制块的初始化,而且在启动多任务调度之前,必须至少创建一个任务。此系统中还创建了一个启动任务,主要负责时钟的初始化和启动、中断的启动以及CAN控制器的初始化及启动等。根据各个任务的重要性和实时性,程序可以分成五个具有不同优先级的任务,见表1。
表1 任务划分表
每个任务都有特定的名称、内存空间和优先级。不同的任务必须有不同的优先级,优先级可以是0~62之间的任意值,数值越小优先级越高。优先级的设置有不同的依据,在智能电子接口单元中,智能执行机构控制任务对时间要求最苛刻,该任务的实现直接关系到燃气轮机的运行状态,优先级设为最高;智能传感器控制需要将采集到的燃气轮机运行的各种状态参数送入FADEC,因此优先级设为高。CAN总线通讯要及时与FADEC进行通讯,优先级设置为中。本地初始化只是在系统开机或复位时才会进行,实时性要求不高,因此它的优先级设置为低,RS232接口通讯只有在系统与上位机相连进行测试时才会用到,所以它的优先级设为最低。
uC/OS-II多任务操作系统要求为每个任务分配OS_STK类型的堆栈空间,并且它们占用的RAM存储空间必须是连续的。任务延时是任务执行完毕处于挂起等待状态到下一次重新运行之间的时间间隔,其单位是时钟中断节拍。由于OS_TICKS_PER_SEC为100,每一拍为10ms。每个任务的调用间隔不能小于一个节拍,否则将会影响模拟量的采样频率。
uC/OS-II各个任务是通过抢占CPU的使用权来运行的。信号量、邮箱、消息队列等功能为实现任务间通信提供了有力工具,这些工具的使用方法灵活多变。这里采用的是用信号量设置事件标志,用邮箱在任务间传递参数来唤醒任务、用消息队列的循环寻址功能进行模拟通道的数据采集。
调试与评测是主控平台设计实现的重要环节,需要通过一系列有计划的调试及评测方案来验证整个智能电子接口单元设计的正确性和评测系统的工作性能。系统调试包括各电路单元和接口的调试,主要通过查看关键信号波形和运行测试程序对每个功能进行测试。系统评测是整个平台系统软硬件的联调,需要模拟平台系统的应用环境,监测硬件、软件设计的正确性与否以及运行过程的各种参数。系统测试环境见图3。
图3 系统测试环境图
整个测试环境由1台带有CAN总线适配卡的工控机和2个电子接口单元以及智能执行机构和智能传感器组成。评测过程中,硬件系统运行稳定,各接口工作正常,软件设计实现了最初的设想,达到了预期目标。
本文介绍了燃气轮机分布式控制系统智能电子接口单元的软、硬件设计过程及其中的关键技术,基于实时操作系统uC/OS-II平台上设计的软件更易于扩展升级,系统各单元工作协调、可靠,初步满足了分布式系统的功能要求,为燃气轮机分布式控制系统的研究奠定了基础。该电子接口单元设计合理,通用性强,可作为未来燃气轮机分布式控制等需要高性能控制和实时数据通信能力场合下的核心模块使用。
[1]王常力,罗 安.分布式控制系统(DCS)设计与应用实例[M].北京:电子工业出版社,2005.
[2]孙健国.面向21世纪航空动力控制展望[J].航空动力学报,2001,16(2):97~102.
[3]Shaffer P L.Distributed Control System for Gas Turbine Engines[J].Transactions of the ASME,1999.121:102.
[4]王田苗.嵌入式系统设计与实例开发[M].北京:清华大学出版社,2002.
[5]Philips.LPC2294product datasheet[EB/OL].(2004-02)[2006-01].http://www.Philips.com.