首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于μC/OSⅡ的备用电源自动投入装置设计 03

基于μC/OSⅡ的备用电源自动投入装置设计 03

本装置以TMS320F240 dsp和Xilinx CPLD为核心设计其硬件平台,根据备自投装置的要求,系统要实现以下功能:键盘输入、参数显示、模拟量采集、开关量输入输出、看门狗单元以及通信等。

    装置采集进线和主变的8路电压量和2路电流量以及继电器和主变保护的开关位置状态,并跟踪变电站系统当前的运行方式,自动判断是否满足充电、放电及动作条件,之后发跳合闸命令,完成动作逻辑。通过现场二次互感器引入各路电压电流模拟信号量,并采集现场的位置开关和节点信号。其继电器动作信号输出端与现场控制线路开关投切的继电器连接。系统运行过程中实时显示电流、电压、开关量等参数,并可以通过键盘对控制器进行参数在线设定。装置结构框图如图4所示。


3 任务划分与任务调度
3.1 任务划分
    由于μC/OS-It是抢占式任务调度方式,并且要求每个任务的优先级唯一,所以在进行任务划分、任务优先级确定的时候,必须仔细衡量各任务之间对共享资源的操作要求,避免产生优先级反转或系统死锁的问题。另外,正确的任务划分和优先级分配可以充分体现嵌入式操作系统任务调度算法的效率,从而提高整个程序的实时性能。根据任务分解规则和装置系统功能的特点,可以将装置任务模块分解为以下几个任务,如表1所列。

    考虑到数据定时采样和开关量输入任务是数据处理和准确动作判断的基础,实时性要求很高,所以在dsp硬件定时中断中完成,程序具体实现如下:
    interrut voidint2(void){/*通用定时器1启动A/D转换*/
    if(*EVIVRA=0x0027){
    asm(″setcINTM″); /*关中断*/
    *IFR一0x0002;/*清除IFR的中断标志位″/
    *EVIFRA=0x07ff;
    /*清除定时器1的中断标志位,为下一次中断做好准备″/
    ADConver(); /*数据采样任务*/
    asm(″clrcINTM″); /*开中断*/
    }
    return;
    }

3.2任务调度
    μC/OS-11中,每个任务都处于休眠态、就绪态、运行态、挂起态和中断态5种状态之一。如图5所示,当前运行的是开关量输出任务,数据处理动作判断任务因为等待数据定时采样任务发出的信号量seml而处于挂起态。当数据定时采样中断发生时,内核进行任务切换,就绪态任务中数据定时采样任务优先级最高,所以进入运行态。当完成采样时,发出信号量selnl给数据处理动作判断任务,使其就绪,并且成为就绪态任务中优先级最高的任务,转入运行态。此时,开关量输出任务等待信号量sem2处于挂起态,当数据处理完毕后,发信号量sem2,开关量输出任务得到该信号量后进入就绪态。因为当前运行任务的优先级低于开关量输出任务,所以立即运行开关量输出任务。
返回列表