微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CPLD与μC/OS -Ⅱ的断路器智能控制单元设计

基于CPLD与μC/OS -Ⅱ的断路器智能控制单元设计

时间:08-25 来源:互联网 点击:

模块的功能主要是显示断路器是否具备可以操动的条件、断路器的合/分闸状态、断路器的动作执行情况、输出控制断路器动作命令等。CPLD的控制框图如图2所示。CPLD作为一个单独的控制执行机构,通过编写相应的VHDL代码,即可以生成相应的操作电路,包括对各种输入信号的锁存、判断和处理,以及对各种命令信号的执行,对输出信号的控制。

软件设计

软件设计包括系统软件设计和应用软件设计。

图2 CPLD的控制框图

系统软件设计的主要任务是实现μC/OS-Ⅱ在F2812上的移植;应用软件设计的主要任务是系统功能的实现。

系统软件设计

μC/OS -Ⅱ简介

本设计系统软件采用源代码公开实时操作系统μC/OS-Ⅱ,它是一个基于优先级的、可移植、可固化、可裁剪、占先式实时操作系统,其绝大部分源码是用ANSIC写的。

μC/OS-Ⅱ在F2812上的移植要使用μC/OS-Ⅱ,首先要把内核成功移植到所使用的CPU上。μC/OS-Ⅱ在F2812上的移植工作包括4个内容。

a.在OS_CPU.H中定义与处理器相关的常量、宏及数据类型。例如关中断和开中断的定义分别为#defineOS_ENTER_CRITICAL()asm“DINT”及#defineOS_EXIT_CRITICAL()asm“EINT”。

b.调整和修改头文件OS_CFG.H,以裁减或修改μC/OS-Ⅱ的系统服务,减少资源损耗。例如,

#defineOS_MBOX_EN0即禁止使用邮箱相关的代码。

c.编写C语言文件OS_CPU.C。由于本设计中未用到其他几个函数,因此这里主要完成函数OSTaskStkInit()的编写。OSTaskStkInit()用来初始化任务的堆栈结构,使其看起来象刚发生过中断并将所有的寄存器保存到堆栈的情形一样。

d.编写汇编语言文件OS_CPU.ASM。本文件包括4个子函数程序:OSStartHighRdy()(运行最高优先级任务),OSCtxSw()(任务级的任务切换),OSIntCtxSw()(中断级的任务切换)和OSTickISR()(μC/OS-Ⅱ时间节拍中断函数),这是μC/OS-Ⅱ移植中的重点和难点,这几个函数的合理实现,是保证μC/OS-Ⅱ运行的基础。

上述工作完成后,μC/OS-Ⅱ就可以运行了。

应用软件设计

根据智能控制单元的功能要求,将系统分为交流电压采集模块、数据处理模块、断路器动作时间预测模块、通信模块、以及与CPLD的接口模块共11个任务和3个中断来实现,每个任务根据其实时性的要求并参照单调执行率调度法RMS分配一定的优先级、任务及中断的定义,如表1所示。

优先级最高的是开始任务(TaskStart),这是系统启动后运行的第1个任务。在该任务中要完成系统及相关外设的初始化,并进行必要的自检测,然后创建其余的各个任务。在完成其余各个任务创建之后,该任务要删除自己,把系统资源让给其他任务,整个系统开始正常运行。该任务的示意代码如下:

/*系统及外设初始化*/

/*系统自检测*/

/*创建各个任务*/

StartCpuTimer2();/*启动时间片*/

OSStatInit();/*统计任务初始化*/

创建智能控制单元的各个应用任务;

KickDog();/*WatchDog复位*/

OSTaskdel(OS_PRIO_SELF);/*删除开始任务*/

除了TaskStart()之外,其余各任务模块的结构都是无限循环体,图3给出了一般任务流程图。

图3 任务流程图

任务通信与同步

μC/OS-Ⅱ提供了5种用于数据共享和任务通信的方法:信号量、邮箱、消息队列、事件标志及互斥型信号量。信号量可以控制共享资源的使用权,也可以协调外部事件与任务的执行,提供了任务间通信、同步和互斥的最快通信,μC/OS-Ⅱ提供了3种类型的信号量,即二进制型、计数型和互斥型。事件标志可使任务与多个事件同步,若与多个事件的任何一个同步,称为独立型同步;若与多个事件都同步,称之为关联型同步。邮箱是一种通信机制,它可以发送一个指针型的变量,该指针指向一个包含了特定消息的数据结构。消息队列是另一种通信机制,它可以使一个任务或中断服务子程序向另一个任务发送以指针定义的变量,具体应用不同,每个指针指向的数据结构也不同。互斥型信号量是一种特殊的二进制型信号量,主要用于解决内在的互斥问题,减少实际应用中所必需的优先级翻转。在设计智能控制单元软件时,充分利用了μC/OS-Ⅱ提供的这些通信机制,以协调各独立任务的运行。

通信协议的实现

F2812提供了标准的CAN2.0B总线协议,而此协议是一种物理层协议,因为该智能控制单元用于电力系统控制中,电力系统通用的应用层协议主要有CDT,MODBUS,DNP3.0等,在本设计的过程中应用层的协议将采用MODBUS协议,通信协议的实现比较复杂,但是由于采用了实时操作系统,通信协议的实现可以由操作系统统一管理,主要由数据的接收、发送、打包、解包任务完成。

总结

a.设计中使用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top