您现在正在浏览:首页 > 职教文章 > 职教论文 > 基于_C_OS_II的备用电源自动投入装置设计

基于_C_OS_II的备用电源自动投入装置设计

日期: 2011/3/19 浏览: 143 来源: 学海网收集整理 作者: 徐金玲

56    200519

基于μC /OS II 的备用电源    

自动投入装置设计

■东南大学   徐金玲  郑建勇

 摘  要

备自投装置是电力系统中常用的一种安全自动装置 ,在发电厂和变电站及配电网络中得到广泛的应用。

本文引入嵌入式操作系统μC/ OS II ,将它移植到以 TMS320F240 DSP 和 Xilinx CPLD 为核心设计的新

型备自投装置的硬件平台上 ,并详细介绍该装置的任务划分和任务调度。

 关键词 μC/ OS II  电源投切装置  任务划分  任务调度  移植

引  言

备用电源自动投入装置是当工作电源因故障断开以

后 ,能自动而迅速地将备用电源投入到工作或将用户切换

到备用电源上去 ,从而使用户不至于被停电的一种自动装

置 ,简称备自投。

备自投装置作为电力系统中常用的一种安全自动装

置 ,其发展与继电保护装置一样经过了电磁(整流) 型、晶

体管型、集成电路型和微机型四个主要阶段。究其本质 ,

各阶段的主要技术区别在于对采集量(电流量、电压量、开

关量) 的运算方式和逻辑功能的实现方式上有所不同。目

前 ,以微机型备用电源自投装置为应用主流 ,它将电流量、

电压量等模拟量通过 VFC(压频变换器) 元件或 ADC 元

件转换为数字量送到装置的数据总线上 ,通过预设程序对

数字量和开关量进行综合逻辑分析 ,并根据分析结果作用

于相关断路器 ,从而实现自动切换功能。

DSP 芯片也称数字信号处理器 ,是一种特别适合于进

行数字信号处理运算的微处理器 ,其主要应用是实时快速

地实现各种数字信号处理算法。

本文采用μC/ OS II 作为软件平台的操作系统 ,它是

一种优先级占先式内核 ,具有多任务的实时调度能力 ,更

加适合管理 DSP 丰富的外设资源 ,从而更好地发挥其高

效的运算性能 ,满足备自投装置实时性、可靠性等要求。

1  μC/ OS II 的移植与配置

为了方便移植 ,大部分μC/ OS II 的代码是用 C 语言

编写的 ,但底层与处理器硬件相关的少量代码仍使用汇编

语言编写。这是因为μC/ OS II 在读写处理器寄存器时 ,

只能通过汇编语言。图 1 说明了μC/ OS II 的结构以及

与硬件的关系。

首先 ,修改与 TMS320F240 相关的文件 OS_CPU. H 、

OS_CPU_A. ASM 和 OS_CPU_C. C ,再加上其公开的系

统源代码 ,将它们一起拷入指定的文件目录 ,系统的移植

就完成了。系统移植成功后 ,需要对操作系统进行裁剪 ,

把用不到的功能去掉 ,以最大限度地节省存储空间。这项

工作是通过 OS_CFG. H 中的宏定义进行的 ,本文用到多

任务管理、信号量、互斥量等功能。在本应用中 ,μC/ OS II

内核经过剪裁后只有 2 KB 左右 ,相对 TMS320F240 的

16 KB 内部程序 Flash 只用了不到八分之一。下面是测试

图 1 μC/ OS II硬件和软件体系结构

200519 Microcontrollers & Embedded Systems  57   

内核能否正常工作的应用程序。测试结果如图 2 所示 ,表

明移植成功。

图 2  测试结果

# include "os_cpu. h"

# include "os_cfg. h"

# include " ucos II. h"

# include " register. h"

# include " stdio. h"

# define TASK_STACK_SIZE 512

OS_STK Test TaskStk[ TASK_STACK_SIZE] ;

OS_STK TaskStk[ TASK_STACK_SIZE] ;

OS_STK Task1Stk[ TASK_STACK_SIZE] ;

OS_STK Task2Stk[ TASK_STACK_SIZE] ;

OS_EVEN T 3 AckMbox ;

OS_EVEN T 3 TxMbox ;

void main(void) {

HardwareInit () ;

T2PInit () ;             / / 硬件初始化

OSInit () ;

printf (" Inital End. \ n") ;

OSTaskCreate( Test Task , (void 3 ) 0 , &Test TaskStk[0 ] ,0) ;

printf (" Multi Task Start. . . \ n") ;

OSStart () ;

}

void Test Task(void 3 pdata) {

pdata = pdata ;

3 T2CON| = 0x0040 ; / / 使能 TIMER2

AckMbox = OSMboxCreate( (void 3 ) 0) ;

/ / 创建两个邮箱用于任务间同步与通信

TxMbox = OSMboxCreate( (void 3 ) 0) ;

OSTaskCreate (Task1 ,(void 3 )0 , &Task1Stk[0] ,2) ;/ / 创建任务 1

OSTaskCreate (Task2 ,(void 3 )0 , &Task2Stk[0] ,3) ;/ / 创建任务 2

printf (" I am taskStart ! \ n") ;

OSTimeDly(2) ;

}

void Task1 (void 3 pdata) { / / 任务 1

unsigned char 3 err ;

char txmsg ;

pdata = pdata ;

txmsg =' A' ;

for ( ; ;) {

while (txmsg < =' Z') {

OSMboxPost ( TxMbox ,(void 3 ) &txmsg) ;

/ / 发送消息给任务 2

printf (" I am task1 ! tsmsg = %c\ n" ,txmsg) ;

OSMboxPend(AckMbox ,0 ,err) ; / / 等待任务 2 的确认

txmsg + + ;

}

}

}

void Task2 (void 3 pdata) {

unsigned char 3 err ;

char 3 rxmsg ;

pdata = pdata ;

for ( ; ;) {

rxmsg = (char 3 ) OSMboxPend( TxMbox ,0 ,err) ;

/ / 等待任务 1 的消息

printf (" I am task2 ! tsmsg = %c\ n" , 3 rxmsg) ;

OSTimeDly(1) ;

OSMboxPost (AckMbox , (void 3 ) 1) ;

/ / 告知任务 1 已经得到消息

}

}

2  新型背自投动作逻辑的运行背景与硬件平台

该动作逻辑适用的接线方式是 :2 条进线、分段母线

带内桥和 2 台三圈变压器。具体如图 3 所示。

图 3  主接线图

其中 U1ab 反映进线 1 有无电压 ,I1 反映进线 1 有无

电流 ,U1AB、U1BC 反映母线 1 段有无电压 ,U1CA 反映

58    200519

主变 1 有无电压 ;U2ab 反映进线 2 有无电压 ,I2 反映进线

2 有无电流 ,U2AB、U2BC 反映母线 2 段有无电压 ,U2CA

反映主变 2 有无电压。

根据动作逻辑和其自适应性 ,本装置需要采集 8 路开

入量 :断路器 1 的 KKJ 位置和 TWJ 位置 ; 断路器 2 的

KKJ 位置和 TWJ 位置 ;断路器 3 的 KKJ 位置和 TWJ 位

置 ;主变 1 保护动作信号量 ACT1 ;主变 2 保护动作信号

量 ACT2 。同时 ,需要 5 路开出量 :断路器 1 的跳闸命令

和合闸命令 ;断路器 2 的跳闸命令和合闸命令 ;断路器 3

的合闸命令。

本装置以 TMS320F240 DSP 和 Xilinx CPLD 为核心

设计其硬件平台 ,根据备自投装置的要求 ,系统要实现以

下功能 :键盘输入、参数显示、模拟量采集、开关量输入输

出、看门狗单元以及通信等。

表 1  备自投装置任务划分与优先级分配表

序号 任务划分 优先级 说  明

1 数据定时采样

和开关量输入 2 实时性要求很高 ,在 DSP 硬件定时中断中完成 ;

POST(sem1) ,发信号量 1 给数据处理任务

2 数据处理和

动作判断 1 PEND(sem1) ,由数据采样任务发来的信号量来触发 ;

POST(sem2) ,发信号量 2 给开关量输出任务

3 开关量输出 0 PEND(sem2) ,根据动作判断模块的判断结果输出开关

量 ,从而达到保护电力系统设备的目的 ,其优先级最高

4 通信 3 采用了信号量触发机制 ,平时处于休眠状态 ,等待通信

中断服务子程序发出信号量 ;如果得到信号量则执行

5 人机接口 4 其优先级较低 ,利用系统函数 OSTimeDly() 每隔一段时

间运行一次

6 自检 5 其优先级最低 ,在 CPU 空闲时间运行

装置采集进线和主变的 8 路电压量

和 2 路电流量以及继电器和主变保护的

开关位置状态 ,并跟踪变电站系统当前的

运行方式 ,自动判断是否满足充电、放电

及动作条件 ,之后发跳合闸命令 ,完成动

作逻辑。通过现场二次互感器引入各路

电压电流模拟信号量 ,并采集现场的位置

开关和节点信号。其继电器动作信号输

出端与现场控制线路开关投切的继电器

连接。系统运行过程中实时显示电流、电

压、开关量等参数 ,并可以通过键盘对控

制器进行参数在线设定。装置结构框图

如图 4 所示。

图 4  装置硬件结构框图

3  任务划分与任务调度

3. 1  任务划分

由于μC/ OS II 是抢占式任务调度

方式 ,并且要求每个任务的优先级唯一 ,

所以在进行任务划分、任务优先级确定

的时候 ,必须仔细衡量各任务之间对共

享资源的操作要求 ,避免产生优先级反

转或系统死锁的问题。另外 ,正确的任

务划分和优先级分配可以充分体现嵌入

式操作系统任务调度算法的效率 ,从而

提高整个程序的实时性能。根据任务分

解规则和装置系统功能的特点 ,可以将

装置任务模块分解为以下几个任务 ,如

表 1 所列。

考虑到数据定时采样和开关量输入

任务是数据处理和准确动作判断的基础 ,实时性要求很

高 ,所以在 DSP 硬件定时中断中完成 , 程序具体实现

如下 :

interrupt void int2 (void) { / 3 通用定时器 1 启动 A/ D 转换 3 /

if ( 3 EVIVRA = = 0x0027) {

asm(" setc IN TM") ; / 3 关中断 3 /

3 IFR = 0x0002 ; / 3 清除 IFR 的中断标志位 3 /

3 EVIFRA = 0x07ff ;

/ 3 清除定时器 1 的中断标志位 ,为下一次中断做好准备 3 /

ADConvert () ; / 3 数据采样任务 3 /

asm("clrc IN TM") ; / 3 开中断 3 /

}

return ;

}

200519 Microcontrollers & Embedded Systems  59   

图 5  基于μC/ OS II的备自投的任务状态和任务切换示意图

3. 2  任务调度

μC/ OS II 中 ,每个任务都处于休眠态、就绪

态、运行态、挂起态和中断态 5 种状态之一。如图 5

所示 ,当前运行的是开关量输出任务 ,数据处理动

作判断任务因为等待数据定时采样任务发出的信

号量 sem1 而处于挂起态。当数据定时采样中断发

生时 ,内核进行任务切换 ,就绪态任务中数据定时

采样任务优先级最高 ,所以进入运行态。当完成采

样时 ,发出信号量 sem1 给数据处理动作判断任务 ,

使其就绪 ,并且成为就绪态任务中优先级最高的任

务 ,转入运行态。此时 ,开关量输出任务等待信号

量 sem2 处于挂起态 ,当数据处理完毕后 ,发信号量

sem2 ,开关量输出任务得到该信号量后进入就绪态。因

为当前运行任务的优先级低于开关量输出任务 ,所以立即

运行开关量输出任务。

结  语

本装置投入运行以来 ,一直很稳定 ,取得了良好的运

行效果 ,显示了高可靠性、安全性和实时性。多任务操作

系统思想的运用改变了传统的嵌入式开发过程 ,使备自投

装置具有足够的通用性和可扩展性。同时 ,这种应用嵌入

式操作系统作为软件平台的设计对其他微机控制保护装

置也有一定的借鉴意义。

参考文献

1  Jean Labrosse. μC/ OS II —源代码公开的实时嵌入式操作

系统. 邵贝贝等译. 北京 :中国电力出版社 ,2001

2  Jean Labrosse. 嵌入式实时操作系统μC/ OS II. 第 2 版. 邵

贝贝等译. 北京 :北京航空航天大学出版社 ,2003

3  杨麟祥 ,岳继光 ,苏永清. 实时内核μC/ OS II 在 TMS320F240

上的移植. 计算机工程与应用 ,2004

4  邓洁清. 嵌入式实时操作系统在中低压综合测控保护装置的

应用研究. 电力自动化设备 , 2004 (6)

5  宁改娣 ,杨拴科. DSP 控制器原理及应用. 北京 :科学出版

社 ,2002

(收稿日期 :2005204205)

55

Msw_Mail_Receive 等来使用邮件交换系统。使用邮件交

换系统的前提是系统至少有一个空闲的动态缓存区。在

初始化邮件系统时 ,函数占据编号最高的动态缓存区。

(3) 软件编程

软件编程的主要功能是 :电子标签在通信器的监测范

围内被检测 ,生成标签记录 ,通信器将标签记录以邮件的

形式发给主机 ;主机处理接收到的邮件 ,将处理的结果储

存在主机数据库中 ,数据库选用 SQL Server2000 , 并在大

屏幕中显示。

在该系统中 ,利用 CONFIDEN T 软件库提供的邮件

交换系统实现通信器 S1513 与主机的通信。主要功能是

主机接收到通信器发送来的标签事件后 ,处理邮件内容 ,

并将与标签对应的矿井工人的个人基本信息、位置、时间

放到主机 SQL Server2000 数据库中。为了避免主机和通

信器同时控制串行口而产生矛盾 ,系统规定每当空格键被

按下时 ,改变通信器的安静模式。通信器在安静模式时阅

读标签事件 ,并将标签数据通过邮件发送给主机 ,主机通

过邮件将通信器设置为非安静模式 ,并在通信器为非安静

模式时读取标签数据邮件。在程序实现时 ,利用定时器事

件 ,主机应用程序每隔 30 s 自动输入空格键来达到此

目的。

3  对系统的必要说明

本系统重点是确保出现矿井事故时 ,能够第一时间知

道矿工较准确的位置 ,所以可以在阅读器电路扩展 USB

接口 ,矿工可以通过插入即插即用设备 ,以便求救。

参考文献

1  彭月平 ,等. 基于通信器 S1503 的门禁系统的设计. 电子技

术应用 ,2003 (3)

2  彭月平 ,等. 长距离通信器 S1503 的应用编程原理. 单片机

与嵌入式系统应用 ,2003 (1)

3  TagMaster AB. S1513 XL R 阅读器

4  TagMaster AB. 04 018 01 PS S1255 简介

孙丽娜 ,硕士研究生 ,研究方向电磁兼容。

(收稿日期 :2005204218)


基于_C_OS_II的备用电源自动投入装置设计.pdf

返回顶部