0引言
通信电源系统运行质量的好坏将直接关系到通信网络运行的可靠性及稳定性。通信电源监控系统具有“三遥”、数据的存储及处理、告警的查询分析和统计等功能。通信电源设备运行参数多,实时效果强,所以在监控系统当中选择功能强大的控制芯片,应用嵌入式操作系统,采用嵌入式软件开发技术使其尽可能地发挥出强大的控制管理功能是当前通信电源监控系统的发展趋势。
与传统的51单片机开发的通信电源监控系统相比,通过μC/OS-Ⅱ与TMS470R1A288结合开发的通信电源系统有足够的实时性、可靠性和可扩展性,同时成本更低。
1 μC/OS-Ⅱ在TMS470R1A288的移植
ARM7(Advanced RISC Machines)是目前在嵌入式领域里应用非常广泛的RISC微处理器系列,以其低成本、低功耗、高性能的优点占据了嵌入式系统应用领域的领先地位。μC/OS-Ⅱ可以看作是一个功能强大完善的多任务调度器,具有很好的可移植性。将μC/OS-Ⅱ移植到ARM系列的TMS470R1A288处理器上,需要修改三个和ARM体系结构相关的文件,下面一一介绍。
1.1OS_CPU.H
数据类型定义部分的修改是和所用的编译器相关的,不同的编译器会使用不同的字节长度来表示同一数据类型;由于处理器现场的寄存器在任务切换时都将会保存在当前运行任务的堆栈中,所以OS_STK数据类型必须和处理器的寄存器长度保持一致;定义堆栈的增长方向;宏定义包括开关中断的宏定义,以及进行任务切换的宏定义。
1.2 OS_CPU_A.ASM
用ARM的汇编指令实现了下面四个函数:OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()
1.3OS_CPU_C.C
μC/OS-Ⅱ的移植要求用户编写以下10个简单的C函数:
ostaskstkinit(),ostaskcreatehook(),ostaskdelhook(),ostaskswhook(),ostaskstathook(),ostimetickhook(),ostaskidlehook(),osinithookbegin(),osinithookend(),ostcbinithook()。但惟一必要的函数是ostaskstkinit(),其他9个函数必须声明,但是如果没有特殊需求,则只需要简单地将它们都实现为空函数即可。
2通信电源监控系统的硬件结构
本方案设计的通信电源监控系统主要实现后台通讯、模块通信、开关量及模拟量的测量、告警管理、电池管理、液晶显示和键盘处理的功能,同时还可通过以太网、RS 485或Modem方式将系统的当前运行信息上传后台集中监控中心。此通信电源监控系统的硬件结构框图如图1所示。开关量输入部分主要实现对交流输入空开、交流输出空开、防雷器状态的监控;模拟量信号采集部分实现对交流电压、母排电压、电池电压、电池电流、负载电流、电池温度的测量;告警干结点输出部分主要实现整流模块故障、负载下电、电池保护、交流SPD故障、交流停电等的故障通过声光的形式输出,以便用户能及时处理系统故障。
3通信电源监控系统的软件设计
根据通信电源监控系统要实现的主要功能及嵌入式实时操作系统μC/OS-Ⅱ的任务调度,可将软件部分划分为如下11个相对独立的任务,按优先级从高到低分别是:RTC任务、界面菜单显示任务、CAN协议通讯任务、I2C协议通讯任务、后台通信协议任务、模拟量测量任务、告警任务、电池管理任务、网络通讯任务、自检任务、系统配置参数存储任务。每个任务都是一个无限的循环,在任意时刻,都只能处于以下5种状态之一:休眠态、就绪态、运行态、挂起态(等待某一事件发生)及被中断态。多任务运行的实现实际上是靠CPU(中央处理单元)及μC/OS-Ⅱ在许多任务之间转换和调度来实现的。本系统任务间的通信和同步用到的系统服务是互斥型信号量,信号量用于控制共享资源的使用权。综上所述,本监控系统的软件框架如图2所示。
4结语
本文介绍了在ARM7系列微处理器TMS470R1A288上移植多任务实时操作系统μC/OS-Ⅱ开发通信电源监控系统的方案,详细介绍了其硬件设计和软件设计。该设计改善了传统通信电源监控系统实时性差、成本高、部分软件故障导致整个监控单元故障的缺点,使通信电源监控系统具有足够的灵活性、健壮性、实时性。