基于RTOS与DSPs的微机保护装置
2011-08-19
我国电力系统的微机型保护得到迅速发展,已在电力系统得到了广泛应用。从早期的8位机,到现在16/32位机,性能得到了提高,运算能力也大大加强了。
微机保护的性能及其可靠性取决于软、硬件,因此软件的编写和硬件的选择是一项关键性的工作。我们在编写软件时,通常先画好流程图,然后按着流程图来编程,一般是一个无限循环,循环中调用相应的函数(子程序)完成相应的操作(称为后台行为或任务级);用中断来处理随机事件(称为前台行为或中断级)。程序流程如图1所示。任务的响应时间取决于后台循环执行的时间(在不同的状态或运行方式下,执行时间不同),程序经过某一点的时间不能确定,程序修改了,循环时序就受到影响。这种编程方法,使得程序开发周期长,修改困难,任何一处受到破坏,就会死机。在8位机时代,还不算明显,随着16/32位机的使用及系统复杂性的增加,表现的越来越明显了。这种传统的前台/后台程序开发机制已不能满足日益复杂和多样化的微机保护的应用需求,采用RTOS来开发微机保护应用程序,现已成为开发人员的发展方向。
目前运行的微机保护装置大多数为16位单片机,对于常规的保护其性能基本能满足。但16位单片机往往受到运算速度等因素的影响,不易实现更复杂的算法和更高采样速率。随着微电子和半导体技术的发展,DSPs已运用在了众多领域。由于DSPs的强大数字信号处理能力,越来越受到开发人员的青睐。
2 关于RTOS(Real Time Operating System)实时操作系统
实时操作系统是一段在系统启动后,首先执行的背景程序。用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源管理、消息管理、任务调度,异常处理等工作。实时多任务内核是RTOS的关键部分,基本功能包括任务管理、定时器管理、存储管理、资源管理、事件管理、系统管理、消息管理等。RTOS与其它OS相比主要特征是规模小、可裁剪、微内核。
在RTOS机制下开发多任务程序,CPU的运行时间被划分为许多小的时间片,RTOS按照某种调度算法分别分配给不同的任务,多个任务分别在自己的时间片内访问CPU,达到微观上轮流运行,宏观上并发运行的多任务效果。程序流程如图2所示。
任务是单线程序列指令形成的一个无限循环,它有五种状态:休眠、就绪、运行、等待和中断。实时内核是通过任务控制块(TCB)来管理任务的。程序调用内核服务创建任务,并在任务中分配一个任务控制块,进行初始化,使任务进入就绪状态。实时内核以事件为基础,根据任务执行的状态,对任务进行切换,状态也随之变化。在实时任务中,内存中存在多个任务控制模块,以及各个任务独立的私有堆栈。
任务进行切换,首先要保存CPU寄存器内容到当前任务的任务控制块中,然后从新任务的任务控制块装载堆栈指针,并将新任务的上下文装载到CPU寄存器中,这样就从一个任务切换到另一个任务运行。
我们将要开发的系统功能进行分解,构造成几个不同的任务,每个任务负责完成系统应用要求的一部分功能,并根据其重要性,决定它的优先级,它们彼此独立运行。
RTOS的使用,可以提高系统的可靠性。传统的线性程序,在遇到强烈的干扰时,程序任何一处产生死循环或破坏,都会引起死机,只有靠硬件(看门狗),进行复位、重新启动系统。在这种情况下,对于RTOS管理的系统,只会引起若干个进程中的一个破坏,并可用另外的进程对其进行修复。还可以提高产品的开发效率,缩短开发周期。一个复杂的应用程序,可以分解成若干个任务,每个任务的调试、修改几乎不影响其它模块。
使用RTOS,使得应用程序的设计、扩展变得容易,不需要大的改动,就可以增加新的功能;且能使系统资源能得到更好的管理。但需增加额外的ROM/RAM的开销,增加2~5个百分点的CPU额外负荷,以及开发成本的增加(RTOS的价格)。
当今市场上有许多RTOS商家生产面向8位、16位、32位,甚至64位的CPU的RTOS产品。如:VRTX、QNX、VxWorks、Nucleus PLUS、OS—9、PSOSys-tem、LynxOS、WindowsCE及国内的Hopen等。RTOS除包含实时多任务内核外,还包括输入输出管理、视窗系统、文件系统、网络语言接口库、调试软件,以及交叉编译平台等。RTOS已在各行各业应用,如:航空、军事、电力、通信及工业控制等领域。
3 关于DSPs(DiginalSignalProcessors)数字信号处理芯片
传统上,微控制器MCU和微处理器MPU是微机发展的两大分支,而DSPs是MCU的一种特殊变
形。它是一种具有哈佛结构,精简指令(RISC)的CPU。
DSPs片内有多条地址、数据和控制总线,可进行流水线操作,提高了CPU的处理能力;有硬件乘法器,乘法计算可由一条指令来完成;有专门的指令,进行数据处理;有DMA传输通道。其外部硬件部分和MCU相同,由地址、数据和控制三总线组成。在软件开发上,能更好地支持模块化编程。
市场上有多种DSPs可供我们选择。如:TI公司的TMS320系列、ADI公司的ADS系列、MOTOROLA公司的DSP系列等。
DSPs的使用,可极大地缩短数据处理的计算时间,不但可以完成数据采集、信号处理功能,还可完成运算、控制等功能。
4 RTOS与DSPs在微机保护装置中的应用
我们采用美国ATI公司的Nucleus Plus实时操作系统,DSPs选用美国TI公司的TMS320C32,开发了一系列的中低压保护装置。
Nucleus Plus是实时、抢先、多任务的内核。大约95%的Nucleus Plus程序是用ANSIC编写的,容易移值。我们以Nucleus Plus为开发平台,采用C语言和汇编语言混合编程,进行软件开发。
我们针对保护装置的实际情况,把整个系统分成保护、自检、显示、通信等几个任务,并把保护任务设置成最高优先级。各任务间彼此独立运行,任务间的通信通过全局数据或发送消息来实现,任何一个任务出现运行异常,其它任务正常运行。任务程序的结构如下代码所示:
TMS320C32是32位的芯片,可进行浮点数运算。图3是以TMS320C32为核心构成的微机保护装置硬件系统原理图,在这个系统中,TMS320C32完成采样、计算、保护逻辑判断及控制等功能。
在保护装置开发中,通过使用RTOS,可进行并行开发,缩短了开发周期;任务间彼此独立,系统的可靠性得到了提高。DSPs的使用,提高了运算精度和速度。总之,保护装置的整体性能上了一个台阶。
5 结束语
计算机化,保护、控制、测量、数据通信一体化和人工智能化是继电保护技术发展的趋势。RTOS和DSPs应用在继电保护装置中,会使保护性能更加完善、可靠,更有效地担当起确保电网安全的重任。