基于μC/OS-II的基站监控终端
扫描二维码
随时随地手机看文章
近年来,随着移动通信业务的迅猛发展,尤其是 3G通信网建设的进行,通信基站的建设数量与日俱增。通信运营商对快速建站、降低基站综合成本和运营维护成本的要求更加迫切。基站监控终端,可做到基站无人值守、远程监控,给基站内设备提供一个稳定可靠的工作环境,能够明显降低运营商的维护和管理成本,具有很高的应用价值。设计基站监控系统的核心问题在于如何保证各功能模块和监控模块自身的正常运行,对于各种异常和故障如何及时做出准确的报警,以及面向使用者的人性化设计等方面。
1 监控终端硬件设计
1.1 功能描述基站监控终端主要有 3个要求:门禁功能(对进入基站的人员进行身份验证)、环境控制功能(为设备提供安全合适的环境)、报警功能(对各种故障和异常及时做出报警)。
本监控终端的硬件结构如图 1所示。基站内智能电源、空调和通风系统,通过标准数据通信接口与本监控终端传输设备和控制信息。智能电源能够自动管理和切换市电和蓄电池,为站内设备提供稳定的-48V电源,空调系统使用专用的空调柜机及工业级控制模块,可以改善站内温湿度环境,这两者与终端采用 RS485连接。通风系统由风机和百叶窗组成,相对空调系统而言的结构简单,可靠性高,且较为省电,是优先使用的温度控制手段,通风系统与终端采用 RS232连接。监控终端需要采集交直流电源电压电流数据,温湿度等模拟量数据,采集水浸、烟感和与门禁相关的干结点开关信号,监控终端具有本级显示和键盘输入功能。监控终端通过时隙提取设备、拨号 MODEM、外置 GSM MODEM 3种手段向区域监控中心传送基站状态参数和报警数据,本终端设计了与这 3种通信设备硬件接口和软件协议。
1.2硬件设计
监控终端选择 RDC公司的 R8800作为 CPU。R8800微控制器是 16位 RISC嵌入式微处理器,指令集与 x86兼容, R8800可以与 AM186EM相互替换,昀高工作频率达到 40MHz。 R8800具有 1M的寻址空间, 32个 PIO管脚,7个内部中断,6个外部中断,3个定时器, 1个 Uart,WDT看门狗,100QFP/LQFP封装[3]。本终端采用两块 128K × 8-bit Flash ROM,两块 128K × 8-bit Static RAM,满足 1M的寻址空间。
利用现场可编程门阵列( FPGA)设计 CPU外设的译码电路,本终端采用 Xilinx XCS20芯片,该芯片具有 2万门,160个 IO端口,具有 JTAG调试端口,芯片不必脱离线路板就可以更新设计并下载逻辑电路程序。FPGA除了对 16C554的片选、多路选择开关、数模转换、FLASH芯片的译码外,还负责键盘输入、水浸、门状态、锁芯状态、出门按钮、红外、烟感信号的干结点开关信号输入,液晶显示输出,门锁和照明的控制,与实时时钟 HT1380的串行通信。
本终端通过两个异步通信芯片 16C554外扩 6个收发单元, 3个 RS232端口,连接通风系统、时隙提取设备和 GSM MODEM,2个 RS485端口,连接工业空调和智能电源,还有 1个独立的收发控制电路与拨号 MODEM接口。16C554内含 4个 16C550异步通信单元,每个单元独立控制发送与接收,且具有 16字节 FIFO以减少中断请求次数,波特率发生器可编程。本终端用了 6个 16C550单元,这六路通信中断接至 R8800的六个外部中断端口上,实现通信接收信息中断。
表征各种环境参量的传感器的输出信号经过预处理输出一系列的模拟信号,模拟信号经过多路选择开关送给 A/D转换芯片,A/D转换芯片把转换后的数据送入 FLASH芯片进行存储。
键盘选用通用 4×4按钮键盘,包括: 10个数字键、上下键、确认键、返回键。选择 8279芯片作为键盘接口芯片,它能自动完成键盘的扫描输入,能自动清除按键抖动,并实现多键同时按下的保护,减轻软件负担。液晶显示器件选择了带有接口芯片 ST7920的图形点阵式液晶显示模块 LCM12864,显示分辨率为 128×64,它具有多种接口方式和三种显示方式(图形方式、文本方式及图形和文本合成方式),内部具有字符发生器,可管理 64K显示缓冲区及字符发生器,允许随时访问显示缓冲区。
2 监控终端的软件设计
2.1软件任务模块软件部分由 R8800控制程序和 FPGA程序组成。由于篇幅的限制,本文主要讨论基于 μC/OS-II的监控终端软件设计。
本系统采用μC/OS-II面向中小型的嵌入式操作系统。采用 μC/OS-II实时系统之后,程序的结构变得非常清晰,根据程序的功能划分出各个任务(task),系统任务示意如图 2所示,利用μC/OS-II提供的信号量、邮箱等进行各个任务之间的同步、数据交换以及对共享资源进行保护[4]。
系统设计了开机任务,中断服务,用户任务。
(1)开机任务( TaskStart)。系统进行自检,按程序规定的流程检测所有设备是否正常工作。自检成功后,命令系统进入主程序启动多任务环境,运行所有默认系统任务和用户任务。开机任务完成后进行自我删除。
(2)中断服务程序( Inttask0~Inttask5)。中断服务程序主要是 R8800响应 16C554串口扩展芯片的接收信息的中断请求,进入相应的处理程序(帧接受任务 TaskUart0Receive~ TaskUart5Receive),首先对帧信息的完整性与正确性做出判断,对接收到的命令帧进行判断,调用系统相应模块或任务,并回应主叫命令 (帧处理任务 TaskUart0Handle~ TaskUart5Handle)。
(3)用户任务。该软件系统拥有 16个任务,数据处理和键盘处理任务通过判断后进行任务切换。主要用户任务如下:
A.键盘扫描任务 (TaskUser0_KeyBoard),采用任务循环,对键盘信息(键盘由 FPGA进行扫描,将键盘信息存在 FPGA的 RAM中)进行动态扫描,当得到新的合法扫描码时,就向键盘邮箱(KeyBoardMailbox)发送带有键盘扫描码信息的消息。
B.数据采集任务( TaskUser1_DataCollection),采用任务循环,数据采集任务包括模拟量和干结点开关量的数据采集,模拟量的采集由 FPGA译码控制,将模数转换数据存入 Flash,开关量的采集由 FPGA负责采集,也存入 Flash中。CPU将 Flash中的模拟量和开关量数据进行分析处理,在模拟量数据处理上采用去极值求平均法去噪,即对一个检测点采集多个值去掉昀大值和昀小值然后求平均,这个平均值就作为该点的数据值,对数字量也采用多采集几次的方法增加可靠性。这样可以消除突发脉冲、随机噪声的干扰,从而进一步提高了系统的抗干扰性和稳定性。[!--empirenews.page--]
C.温度控制任务( TaskUser2_TemperatureControl),根据数据采集任务中获得室内外的温度状况,在兼顾考虑节能等要求的情况下,决定控制环境的策略(采用通风系统还是空调系统,还是两者都采用)。
D.门禁控制任务( TaskUser3_DoorGuard),根据数字量(门磁、锁芯和红外传感器)信号,如果同时有门磁告警和红外告警判定为人员入侵,启动报警任务进行报警。
E.报警任务( TaskUser4_Alarm),从通信、数据采集任务和门禁控制任务等处获得系统的异常和故障情况,及时调用帧发送任务向监控中心和维护人员报警,报警信息包括基站识别号、告警类型及属性值、告警时间等。
此外,还有中断服务程序中提到的帧处理任务,帧发送任务,键盘处理任务,显示任务,查询任务(供查询历史数据),设置任务(设置系统运行参数)。
2.2 Paradigm C++集成环境下程序的编写 监控终端软件基于μC/OS-II嵌入式操作系统,由上述各程序模块组成,在 Paradigm C++
5.1集成环境下编译和调试通过( Paradigm C++是美国 Devtools公司开发的 80x86集成开发环境)。Paradigm C++ IDE带有可视化助理 (Visual Assist)的编辑器(Editor)、编译器 (Compiler/Assembler)、连接工具 (Linker)、定位器 (Locater)、Lint工具和集成调试器(Integrated debugger)。Paradigm的集成调试器屏蔽了硬件特殊性,提供了一个标准的软件接口,主机上的 Paradigm调试器通过 RS232串口与本终端目标板建立通信连接,进行软件调试 [5][6]。
通常移植μC/OS-II需要注意的两点问题:
(1)与硬件有关问题,由于 R8800与 x86指令兼容,所以 μC/OS-II的移植根据参考文献 4和 R8800说明文档编写与处理器相关的代码,系统采用 40MHz的晶振,由于定时器与时钟节拍有关,修改定时器相关的设置。
(2)与编译器有关问题,由于 Paradigm C++集成开发环境包括的编译器和汇编器与 Borland兼容,所以 μC/OS-II移植代码基本与参考文献 4一致。
3 结束语
本基站监控终端是基于 16位微处理器和实时操作系统 μC/OS-II的设计,在可靠性和对事件的处理能力、特别是通信能力上明显优于八位机处理系统。在实验中,实现了区域监控中心对基站设备运行状态和环境参量的监控。监控终端能够记录和存储相关的重要数据,显示运行情况。实现了集成化、智能化、网络化的集中监控,实现了基站的无人值守,节约了人力资源成本。