林 辉,刘 军
(1.西安铁路职业技术学院,西安710014;2.西安市地下铁道有限责任公司,西安710600)
电力参数的测量与监控对电网系统调节和管理自动化有着重要的影响。本文介绍一种基于DSP的嵌入式系统的电力参数测量仪器的硬件和软件设计,可实现多任务实时监测,直观准确地反映电力系统的电能质量。
该电力参数测量仪是在由DSP硬件和μC/OS-II嵌入式操作系统相结合的平台上开发的。采用嵌入式操作系统μC/OS-II和DSP相结合的开发平台,不仅具有强大的数字信号处理能力,而且系统的可靠性和实时性也得到一定的提高。DSP硬件采用TI公司的TMS320LF2407A作为为核心,软件是以μC/OS-II为执行软件[1-2]。在此基础上开发了一种具有电力参数测量、显示和通讯功能的智能化检测仪。本文给出了比较完整的外设扩展,包括电源供电、监控电路、时钟电路,模拟量输入电路等接口设计和频率采集电路及其通讯电路等。该系统还具有实时时间显示和看门狗功能,且可以通过RS232总线与外部(微机) 通信,其结构框图如图1。
图1 基于μC/OS-II的电力参数监测仪原理框图
本系统中,考虑到多信号采集处理和功率计算等需求,选择DSP 作为核心处理器,同时配置必需的外设电路。主要包括RAM、EPROM、闪存、串行和并行通信接口、网络接口、可编程定时器/计数器、状态LED指示及其硬件电路等[3]。
在本检测系统中, DSP芯片TMS320LF2407A作为主控制器,它是TMS320LF2407的增强型。其内部总线采用哈佛结构,指令执行速度为40 MIPS,绝大部分指令可以在单周期内执行完毕。在TI 的240X系列的DSP控制芯片中,TMS320LF2407A在内部结构和外围控制接口上都达到了很好的水平,该型号的DSP芯片内部还集成有ADC模块、CAN模块、32 K的FLASH程序存储器,并且它的高速处理特性可以使得很多先进的控制算法得以实现,这样就可以简化整个检测系统的硬件结构设计。在系统软件设计中,软件功能模块设置如图2。
图2 电力参数智能检测仪软件功能模块设置
电力参数交流模拟量输入电路包括隔离电路和调理电路两部分。隔离电路的作用是将高电压交流电压转换为可直接测量的较低电压,同时避免电网干扰对后续测量电路的冲击和影响。调理电路是把隔离电路的输出电压调理到AD采集所允许的范围内。本系统采用的TMS320LF2407A模拟电压输入范围为0 V~3.3 V,因此应首先通过调理电路将测量电压转换至该电压范围内,同时在模拟电压进入DSP之前增设电压跟随器,使电压增益趋近于1,以提高带负载能力。
电力系统通常需监测电力参数包括电压、电流、频率、有功功率等。电压、电流参数的测量常用的方法有直流采样法和交流采样法。采用直流采样算法测量电压、电流时,软件设计简单、计算方便,对采样值只需作比例变换即可得到被测量的数值。直流采样法的缺点是:测量准确度直接受整流电路的准确度和稳定性的影响,整流电路参数调整困难,而且受波形因数的影响较大等。交流采样法是按一定规律对被测信号的瞬时值进行采样,用一定的数值算法求得被测量。它与直流采样的差别是用软件功能代替硬件功能。是否采用交流采样取决于两个条件:测量准确度和测量速度。交流采样法包括同步采样法、准同步采样法、非整周期采样法和非同步采样法等。采样点数的选择和采样频率的选择很重要。如果采样频率选择得过高,即采样间隔小,则一个周期里采样点数过多,将造成数据存储量过大和计算时间太长;但如果采样频率过低,FFT 运算在频域会出现混淆现象,造成频谱失真,不能真实反映原来的信号。
频率参数的监测方法可用DSP的多周期捕获单元来监测。具体方法是采用过零比较器产生方波,利用DSP中的捕获单元CAP,捕获上升沿或下降沿,通过计数器计数来计算频率。TMS320-LF2407A的事件管理器共有6个捕获单元。对于EVA模块,与它相关的捕获单元引脚有3个,分别是CAP1、CAP2和CAP3,可以选择通用定时器1或2作为它们的时基,然而CAP1和CAP2一定要选择相同的定时器作为时基。与EVB模块相关的捕获单元引脚也有3个,分别为CAP4、CAP5和CAP6,可以选择通用定时器3或4作为它们的时基, CAP4和CAP5也要选择相同的定时器作为时基。在捕获单元使能后,输入引脚上的指定跳变将所选通用定时器的计数值装入到相应的FIFO堆栈。相应的中断标志位被置位,如该中断标志没有被屏蔽,外设中断将产生一个中断请求信号。
将捕获到的新计数值存入到FIFO堆栈时,捕获FIFO状态寄存器(CAP FIFOx)的相应位就进行调整以反映FIFO堆栈新的状态。从捕获单元输入引脚处发生跳变到所选通用定时器的计数值被锁存之间的延时需要2个CPU时钟周期。通过以上方法可计算出频率。
本检测仪器的系统软件编制采用μC/OS-II操作系统。 μC/OS-II是一种源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统,符合RTCA(航空无线电技术委员会)DO-178B标准(该标准为航空电子设备所使用软件的性能要求而制定的)[4]。由于μC/OS-II采用多任务机制,采用优先级调度算法完成任务间的调度,并支持抢占式调度,通过任务调度和任务监视,系统具有较好的实时性和安全性,μC/OS-II具有可裁减的体系结构,并具有内存管理、中断管理和任务控制块(TCB)扩展的功能,有较好的可扩展性。
系统任务分为模拟量采集任务、电力参数计算任务、通讯任务和显示任务等,并对任务分配不同的任务优先级。当确定了任务后,系统即可按照μC/OS-II的调度机理进行任务调度,具体任务分配工作是由调度器(scheduler)完成。任务调度分为中断级调度和任务级调度,中断级调度由μC/OS-II中的OSIntExt()函数完成;任务级调度由μC/OS-II中的OSSched()函数来完成。本系统中,时间片段的产生、通讯接收中断、ADC采集中断都属中断级调度,其余任务均属任务级调度。
在实际应用中,首先将实时多任务操作系统μC/OS-II移植到TMS320LF2407A中。主程序采用C语言编写,主程序流程图如图3。
图3 主程序流程示意图
关于μC/OS-II移植到该处理器上的源代码较多,具体可参照相关文献资料[5],此处不对移植程序代码详细分析,只将移植时需用户自己编写几个函数如下:(1)编写OS_CPU_A.ASM; 包括4个子程序_OSStartHighRdy();_OSCtrxSw();_OSIntCtxsw()和OSTickISR();这部分需要对处理器的寄存器进行操作,所以必须用汇编语言编写。(2)编写OS_CPU_C.C;本文件仅包括OSTaskStkInit()子程序,该函数模仿TI公司的I$$SAVE库函数对任务堆栈进行初始化。(3)编写OS_CPU.H;包括用#define定义的与处理器相关的常量、宏和类型定义。有系统数据类型定义、栈增长方向定义,关中断和开中断定义、系统软中断的定义等。(4)按需配置OS_CFG.H,按需修改CPU中断向量表和外设向量表。
在成功移植μC/OS-II,就可添加相应的应用任务子程序,逐个任务调试,完成系统的软件设计。
本系统是基于实时嵌入式操作系统μC/OS-II设计的电力参数监测仪器,具有结构简单、成本低廉等优点。实验表明该系统在数据处理、转换、通讯等方面,具有实时性好、系统抗干扰能力强、可扩展性好等特点,易于在类似的工业用以及民用的测控系统中推广使用。
[1] TMS320LF2407,TMS320LF2406, TMS320LF2402 DSP Controllers[R] . SPRS094H,Texas Instruments, 2002.
[2] 刘和平,严利平. TMS320LF240x DSP结构、原理及应用[M] . 北京:北京航空航天大学出版社,2002.
[3] 张雄伟,陈亮. DSP集成开发与应用实例[M] . 北京:电子工业出版社,2002.
[4] LABROSSE J J. 嵌入式实时操作系统μC/OS-II [M] . 邵贝贝. 2版. 北京:北京航空航天大学出版社,2003.
[5] 陈是知. μC/OS-II系统内核分析、移植与驱动程序开发[M] . 北京:人民邮电出版社,2008.