一款基于μC/OSⅡ的分布式应急电源控制系统设计

时间:2011-06-02

    1 引言

  随着社会的发展,对供电可靠性的要求越来越高,一旦某些重要设施供电系统突然发生故障而中断供电,将会破坏社会的正常秩序,甚至造成重大的政治影响和经济损失。然而,电力故障突发性强,断电情况必须考虑,因此就需要做到电源的不间断,即供电线路停电时由备用电源供电。应急电源又称EPS(Emergency Power System)具有下述优点:

  (1)电网有电时,处于静态,无噪音;供电时,噪音小于60dB。不需排烟和防震处理,具有节能、无公害、无火灾隐患的特点;

  (2)自动切换,可实现无人值守,电网供电与EPS电源供电相互切换时间均为0.1~0.25s;

  (3)带载能力强,EPS适应于电感性电容性、及综合性负载的设备,如电梯、水泵、风机办公自动化设备、应急照明等;

  (4)使用可靠。主机寿命长达20年以上;

  (5)适应恶劣环境。可放置于地下室或配电室,也可紧靠应急负荷使用场所就地设置以减少供电线路。

  2 工作原理

EPS原理图

  图1 EPS原理图

  (1)当三相市电正常时,EPS一路直接为负载供电,一路经过充电机给蓄电池组充电;

  (2)当三相市电异常时,EPS的检测装置立即发出指令,0.1秒内由蓄电池组的直流电经过逆变装置输出三相交流电源给负载供电,供电时间为90分钟;

  (3)EPS供电过程中,如三相市电恢复正常,EPS的检测装置立即发出指令,0.1秒内恢复到(1)的工作状态;

  (4)EPS提供远程强制启动干接点(DC24V),如检测到DC24V电源输入,EPS会强制切换至应急输出,自动切换不起作用;无电时,EPS工作在自动切换状态。

  3 DSP硬件设计

  本系统采用TI公司的TMS320F240型DSP器件作为主要控制芯片,该DSP芯片指令执行速度快,内嵌Flash ROM和RAM,内部的事务管理模块可以输出多路PWM波,同时内含8路10位A/D通道及大量I/O端口,因此由它来构建数字控制系统时,硬件电路大大简化。

  以DSP芯片TMS320LF2407为的硬件电路设计主要包括:

  (1)应急电源对电压的采样是通过差分电路实现的。图2示出电压采样的差分电路。对电流的采样是通过霍尔电流传感器经过滤波、电平调整后实现的。本设计中,交流量需计算其有效值,是通过对瞬时采样值的整流、滤波实现的。

电压采样的差分电路

  图2 电压采样的差分电路

  (2)DSP对充电控制采用EVA模块的定时器1的PWM比较输出,对逆变控制采用EVA模块的比较单元1和比较单元2的比较输出。通过专用驱动模块2SD315A为元件的驱动电

  路来驱动IGBT。2SD315A驱动模块具有结构紧凑,使用简单,可靠,隔离电压高等优点。用两个2SD315A模块来驱动主电路的H桥,只需外加很少的外部元件。在连接驱动电路与IGBT时,要注意连线不能太长,是小于10cm,否则会使IGBT的驱动信号受到较大干扰,造成IGBT的误触发。此外,要根据IGBT的特性参数,选择合适的集射极保护电压及门极驱动电阻。

  (3)DSP通过通用I/O口采集和输出各种信号。消防、开机、强迫逆变、停止、备用等输入信号,通过光电隔离电路送至I/O口。继电器接触器的控制信号由I/O口经辅助继电器输出。

  (4)该应急电源对电池过压欠压、逆变器过压、逆变器过流、IGBT故障等严重故障,专门设计了硬件锁死电路,系统上电时,其被清零,故障到来时,将其置位,同时封锁PWM输出,引发故障中断,在故障中断程序中检测故障类型。对一般故障则采用查询方式。

  (5)DSP将采样电路采集的ic,UH,ib,ub等参数以及监测到的故障类型、系统的工作状态通过CAN总线输出至上位监控系统。

  4 软件设计

  μC/OS-II是一个实时操作系统的内核,它的大部分源代码都是使用ANSI C写的,有很强的移植性。它的内核功能丰富,具有可裁减性,用户可根据自身需要来配置编译条件,将实时内核裁剪到满足自己功能的状态。

  在本系统中,有针对的编写了uC/OS- II移植程序及硬件电路的驱动程序。应用程序从函数main()开始,main()内容如下:

  void main(void){

  SysInit ();/*系统初始化*/

  OSInit();/*初始化u C/OS- II */

  OSTaskCreate(TaskStart, (void*)0, (void*)&TaskStk[0][0],5);/*建立起始任务*/

  OSStart();/*开始多任务调度*/

  }

  其中,SysInit()对系统的初始化工作主要包括:建立相关参数和变量,设置各种中断,以及对各器件进行初始化,OSInit()用于对uC/Os- II操作系统进行初始化。起始任务TaskStart ()是一个建立其它任务的任务。接着,建立邮箱用于任务间的通信,再接下来,用OSTaskCreate()函数建立不同功能的任务:SCI通信任务 SCIComm_Task()、LCD液晶屏刷新任务LCD_Fresh_Task()、脉宽计算任务PW_Calculate_Task()、逆变器输出电压采集任务Vo_Sample_Task()、键盘扫描任务Key_Scan_Task()、时钟更新任务Time_Fresh_Task()、市电电压采集以及监测任务Vi_Sample_Task()。任务优先级的确定原则是工作频率越高,任务的优先级越高。任务之间的通信是通过发送或接受消息、信号或数据队列来实现的。

  另外,uC/OS- II在F2407上的移植和配置的方法如下:

  (1)在OS_ CPU.H中定义相关的宏,声明能够识别的数据类型和堆栈增长方向。OS_ CPU C.C中定义以下6个函数:OSTaskStklnit ( ) 、OSTaskCreateHook()、OSTaskSwHOok()、OST&W_lefook()、OSTaskStatHook()、 OST3meT5ckHook()。实际上真正需要定义的只有OSTaskStklnit(),其余5个只需声明,不一定要有实际内容,这5个函数都是需要由用户定义的接口函数。

  (2)在OS_CPU_A.ASM中修改以下几个汇编函数:OSStartHighRdy、 OSCtxSw, OS1ntCtxSw,、OSTickISR。OSStarthighRdy的功能是运行优先级的就绪任务,该函数由OSStartp函数调用, OSStart()的调用是建立在OSInit()的调用并且至少已经建立一个任务的墓础上的;OSCtxSw是一个任务级的任务切换函数,该函数在任务中调用;OSIntCtxSw是一个中断级的任务切换函数;OSCtxSw为时钟中断服务函数,时钟中断程序负责处理所有与定时相关的工作,如任务的延时、等待等,在时钟中断中将查询处于等待状态的任务,判断是否延时结束,则将重新进行任务调度。

  (3)在主头文件INCLUDES.H中增加OS_CPU.H , OS_CPU_C.C和OS_ CPU_A.ASM。因为INCLUDES.H是主头文件,它将被所有后级名为。C的文件所包含。在移植时,需要对该文件进行改写,在文件末尾增加以下头文件:

  #include

  #include

  #include

  (4) 在配置文件OS_CFG.H中,定义事件数,多内存分块数,多消息队列数,多任务数,任务优先级,是否允许信号使能,是否允许邮箱使能,是否允许消息队列使能,时钟节拍数以及其他的一些配置。通过修改这些设置,可对uC/OS- II进行裁剪,使之适应本系统的具体需要。

  系统采用中断方式接收上位机的指令,采用查询方式发送。当上位机发出读数、启动或停止操作命令后,嵌入式系统将产生中断,并发送应答信号,然后根据收到的命令类型进行相应操作。

  5 结论

  本文结合TMS320LF2407芯片和 μC/OS-II实时操作系统内核的优点,设计出基于DSP和μC/OS-II的应急电源控制系统。通过在DSP上移植μC/OS-II,系统设计的周期得以减少,软件的可读性得以提高,从而节省了系统开发和维护的费用。目前,该系统工程样机运行平稳可靠。

上一篇:一种基于LEACH的无线传感器网络分簇路由算法
下一篇:基于WM8741的音频解码器设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料