3 系统软件设计
系统软件分为执行软件和应用软件,执行软件采用实时多任务操作系统μC/OS-II。μC/OS-II是一种源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统,并且已经通过了联邦航空局(FAA)商用航行器认证,符合RTCA(航空无线电技术委员会)D0一l78B标准(该标准是为航空电子设备所使用软件的性能要求而制定的)。由于μC/OS—II采用多任务机制,采用优先级调度算法完成任务间的调度,并支持抢占式调度,通过任务调度和任务监视,系统具有较好的实时性和安全性。同时μC/OS—II具有可裁减的体系结构,并具有内存管理、中断管理和任务控制块(TCB)扩展的功能,该软件具有较好的可扩展性,因此选择μC/OS—II作为系统执行软件。
将系统任务分为模拟量采集任务、电力参数计算任务、通讯任务和显示任务等,并分配不同的任务优先级。
当确定μC/OS—II中的任务,并给任务赋予优先级,系统即可按照μC/OS-II的调度机理进行任务调度,具体由哪个任务工作是由调度器(scheduler)完成。任务调度分为中断级调度和任务级调度,中断级调度由μC/OS—II中的OSIntExt()函数完成;任务级调度由μC/0S—II中的OSSched()函数来完成。系统中,时间片的产生,通讯接收中断,A/D转换器采集中断都是属中断级调度,其余的任务均属任务级调度。
μC/OS—II的任务调度机制:属于基于优先级的占先式任务调度算法,系统中的任务都有一个固定的优先级,在任意时刻内核总是将CPU的控制权分配给就绪状态的最高优先级的任务,如果系统内核在某刻发现有比当前任务优先级更高的任务处于就绪状态,内核立即保存上下文,并切换到优先级更高任务的上下文执行。
在实际应用中,首先将实时多任务操作系统μC/OS—II移植到TMS320LF2407A中,现在关于μC/OS—II移植到该处理器的源代码较多,此处不作分析,只将移植时需用户自己编写几个函数列出:①编写OS_CPU_A.ASM;包括4个子程序 _OSStartHighRdy();_OSCtrxSw();_OSIntCtxsw()和0STickISR();这需对处理器的寄存器进行操作,所以必须用汇编语言编写。②编写0S_CPU_C.C;本文件仅包括OSTaskStkInit()子程序,该函数模仿TI公司的I$$SAVE库函数对任务堆栈初始化。③编写OS_CPU.H;包括了用#define定义的与处理器相关的常量、宏和类型定义。有系统数据类型定义,栈增长方向定义,关中断和开中断定义,系统软中断的定义等等。④按需配置OS_CFG.H,按需修改CPU中断向量表和外设向量表。在成功移植μC/OS一Ⅱ后,就可添加相应的应用任务子程序,然后逐个任务调试,最后完成系统的软件设计。
4 应用
系统在实际应用中除了实时获得和显示操作系统的电力参数以外,可实现必要的保护功能。例如在实现电力线路微机保护中,评价系统性能好坏很重要的一项指标就是跳闸出口时间,即从故障发生时刻到装置动作输出跳闸信号所用的时间。下面以过电压保护为例分析采用μC/OS—II的保护装置对故障的响应速度。
对于速断保护,跳闸出口时间一般包括等待A/D采样中断时间、A/D采样时间、等待保护中断时间、保护任务运行时间及保护继电器动作时间。其中继电器动作时间和等待保护中断时间占整个响应时间的90%,其他几个时间可以忽略。在保护装置中采用的继电器动作时间约为10 ms,等待保护任务需5 ms,故理论上讲出口时间为15 ms,表1为实际测量中得到的数据,结果表明2类数据基本相符。
5 结语
系统是基于实时嵌入式操作系统μC/OS—II设计的电力参数监测仪器,具有结构简单,成本低廉等优点。实验表明,该系统在数据处理、转换、通讯等方面,具有实时性高,系统抗干扰能力强,可扩展性好,易于在类似的工业及民用的测控系统使用。