基于μC/OS—Ⅱ的备用电源 自动投入装置设计.pdf
上传人:yy****24 上传时间:2024-09-10 格式:PDF 页数:3 大小:164KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

应用天地基于FC/OS—II的备用电源自动投入装置设计■东南大学徐金玲郑建勇关键词uC/OS—II电源投切装置任务划分任务调度移植引言只能通过汇编语言。图1说明了uc/os—II的结构以及与硬件的关系。备用电源自动投入装置是当工作电源因故障断开以首先,修改与TMS320F240相关的文件0S_CPU.H、后,能自动而迅速地将备用电源投入到工作或将用户切换0S_CPU—A.ASM和OS—CPU—C.C,再加上其公开的系到备用电源上去,从而使用户不至于被停电的一种自动装统源代码,将它们一起拷入指定的文件目录,系统的移植置,简称备自投。就完成了。系统移植成功后,需要对操作系统进行裁剪,备自投装置作为电力系统中常用的一种安全自动装把用不到的功能去掉,以最大限度地节省存储空间。这项置,其发展与继电保护装置一样经过了电磁(整流)型、晶工作是通过0S_CFG.H中的宏定义进行的,本文用到多体管型、集成电路型和微机型四个主要阶段。究其本质,任务管理、信号量、互斥量等功能。在本应用中,uc/os—n各阶段的主要技术区别在于对采集量(电流量、电压量、开内核经过剪裁后只有2KB左右,相对TMS320F240的关量)的运算方式和逻辑功能的实现方式上有所不同。目16KB内部程序Flash只用了不到八分之一。下面是测试前,以微机型备用电源自投装置为应用主流,它将电流量、电压量等模拟量通过VFC(压频变换器)元件或ADC元件转换为数字量送到装置的数据总线上,通过预设程序对IlC/0S一Ⅱ数字量和开关量进行综合逻辑分析,并根据分析结果作用(与处理器无关代码uC0SⅡ,H于相关断路器,从而实现自动切换功能。uC0SII,C0SC0RE,CDSP芯片也称数字信号处理器,是一种特别适合于进0STASK.C0STIM匮.C行数字信号处理运算的微处理器,其主要应用是实时快速0SnAG.CoSMBoX.C地实现各种数字信号处理算法。0Sh旺IM.COSO.C本文采用uc/os—II作为软件平台的操作系统,它是0SSEM.C0SMIrIEX.C一种优先级占先式内核,具有多任务的实时调度能力,更加适合管理DSP丰富的外设资源,从而更好地发挥其高效的运算性能,满足备自投装置实时性、可靠性等要求。1vc/0S—lI的移植与配置软件硬件为了方便移植,大部分uC/OS—II的代码是用C语言编写的,但底层与处理器硬件相关的少量代码仍使用汇编[二][困语言编写。这是因为uC/OS—II在读写处理器寄存器时,图1uC/os—ii硬件和软件体系结构56丰专瓤。占壹入条惋应国-—I内核能否正常工作的应用程序。测试结果如图2所示,表}voidTaskl(voidpdata){//任务1明移植成功。unsignedchar*errchartxmsg;pdata=pdata;txmsg=;for(;;){while(txmsg<一Z)fOSMboxPost(TxMbox。(void*)&txmsg);//发送消息给任务2printf(”Iamtaskl!tsmsg=%c\n”,txmsg);OSMboxPend(AckMbox,0,err);//等待任务2的确认txmsg++;))}图2测试结果voidTask2(voidpdata)f#include”os—cpu.h”unsignedchar*err;#include”OSCfg.h“charrxmsg:#include”UCOS—II.h”pdata=pdata;#include”register.h”for(;;){rxmsg一(char*)OSMboxPend(TxMbox,0,err);#include”stdio.h”#defineTASK—STACK—SIZE512//等待任务1的消息OS_STKTestTaskStk[TASK—STACK—SIZE];printf(”Iamtask21tsmsg=c\n”,*rxmsg);OSSTKTaskStk[TASK_STACK—SIZE];OSTimeDly(1);OSMboxPost(AckMbox,(void*)1);OS_STKTasklStkI-TASK—STACK—SIZE];OS—STKTask2Stk]-TASK—STACK—SIZE];//告知任务1已经得到消息0S--EVENT*AckMbox;)0S—EVENT*TxMbox;}voidmain(void){2新型背自投动作逻辑的运行背景与硬件平台Hardwarelnit();T2PInit();//