1 引言
目前,作为监测系统核心器件的微处理器一般采用高性能单片机、数字信号处理器(DSP)等提高系统的处理速度。但是,随着电力系统监测趋于多功能、智能化、可视化的发展。上述单一的器件已不能完全满足要求。本文介绍了一种新型嵌入式微处理器PPC 405EP以及基于PPC 405EP的电力监测系统,能够满足高实时性、良好的人机交互和多种通信方式要求。
2 PPC 405EP微处理器
20世纪90年代,IBM和Motorola以及Apple公司共同开发了32位/64位PowerPC系列微处理器,主要应用于PC、网络通讯、工业控制领域。PowerPC灵活的体系结构可实现多种专用系统。PPC405EP是IBM/AMCC公司高性能嵌入式32位RISC,运算速度高达333 MI/s,内部集成微处理器的常用外围组件,特别适用于工业控制领域,为实现低成本系统,提供了高性价比。PPC 405EP的主要特点为:16 KB数据Cache,16 KB指令Cache,写缓冲区;虚拟内存管理单元MMU;2个10/100 Mb/s以太网控制器;SDRAM控制器;2个UART;外围接口总线,直接
支持8位、16位SRAM和外围其他设备;可编程中断控制器,支持7个外部和19个内部的边沿或电平触发中断:PCI V2.2接口标准模块;DMA控制模块,可对8位、16位、32位的数据进行操作;I2C系统总线模块;通用可编程I/O口(GPIO);可编程定时/计数器:支持JTAG板级测试。
3 在线监测系统的设计
被监测设备传输的电压电流信号经电流电压互感器变换后.再经信号调理电路放大、滤波,送入数据采集板。采集板内的单片机控制A/D采样或判断开关信号变化,完成各种数值运算,与预设的报警限定值作比较。如果在报警范围内,申请占用CAN总线向嵌入式主模板发送数据,与此同时,嵌入式主模板监听综自网络中的报文,采用103/104协议解析获得设备状态等信息(例如:开关状态)。嵌入式主模板把采集板传输的故障信息和故障发生时解析的报文存入CF卡同时以短信方式通知相关人员,人们可以通过监视器浏览、分析这些故障文件。其原理框图如图1所示。
3.1 数据采集及信号预处理模块
考虑设备监测点较多,而且系统需要处理的任务种类繁多,既有数据采样、计算、监听网络报文等周期性任务,又有通信、人机交互等随机性事件。因此在硬件设计上,选用单片机完成数据采集、分析计算以减轻PPC 405EP的负担。每块采集板要完成8路4 mA~20 mA模拟信号采样或者16路开关量信号输入,选用Philip公司的P89LV51RD2能很好满足采集要求。
AD7939是ADI公司生产的8通道、低功耗(13.5 mW)模/数转换器,其分辨率为12-bit,最高采样频率达1.5 MS/s。AD7939与单片机接口简单,不需其他外围电路,大大简化电路设计。值得注意的是,AD7939具有数字电源与模拟电源,数字噪声很容易干扰A/D转换结果。为了提高抗干扰能力,数字电源由模拟电源经过由22μF、0.1μF和电感组成的π型滤波器后产生,数字地与模拟地接电感滤波后连接在一起。
3.2 基于PPC 405EP的嵌入式主板
3.2.1 PCI电路
PCI总线是一种先进的高性能32/64位地址数据复用局部总线。PPC 405EP处理器带有PCI总线接口,支持PCI2.2规范,PCI总线频率高达66 MHz。利用其PCI总线接口,设计了3个USB接口分别接鼠标、键盘、U盘,1个VGA接口用于显示器,2个IDE接口用于接CF卡保存数据。选用Ali单片实现3个USB接口的PCI转USB控制器。M5273、SMIPCI转VGA控制器LynxEM+SM712和Silicon单片实现2个IDE接口的PCI转IDE控制器SII0680A。直接挂在PPC 405EP的PCI总线上。
3.2.2 通信电路
根据PPC 405EP处理器的通信端口,设计了以太网、RS-485通信的外围电路,其中以太网通信用于监听综自网络中报文,外围器件选用LXT971ALC;RS-485通信用于与GSM模块接口,根据预设的故障级别通过短信形式将越限故障信息发送到相关人员手机,通信收发器使用SN65HVD10。为了提高通信质量,采用光电隔离器件ADuM1301隔离。选用独立CAN通信控制器SJA1000实现CAN通信。因为SJA1000与PPC 405EP的读写时序不完全兼容,必须对PPC 405EP的读写时序进行变换。主要包括地址数据复用总线、地址锁存信号ALE、读(RD)信号、写(WR)信号和片选信号(CS)的变频。PPC 405EP器件的高8位数据线、读(POE)、写(PWE)控制线、片选信号和低8位地址线都接入CPLD。在CPLD内部完成PPC 405EP的地址线、控制线组合的逻辑译码。VHDL代码可实现符合SJA1000的读写时序。以下为VHDL程序代码。
另外,PPC 405EP为3.3 V器件,要与5 V的SJA1000无缝连接,还需用电平转换器隔离。电平转换器74KVXC3245加在CPLD与SJA1000之间。CAN通信的外围电路如图2所示。CAN通信收发器使用PCA82C250,同样用ADuM1301隔离。系统中CPLD除了完成逻辑译码,还充当PPC 405EP的外部看门狗,在CPLD内部计数器溢出之前CPLD计数器清零。由于所需资源很少,CPLD采用Altara公司的EPM240即可满足要求。
3.2.3 串行时钟和E2PROM电路
I2C总线接口的时钟器件和存储器件分别选用PCF8563和AT24C02,它们挂接在PPC 405EP处理器的I2C总线上,如图3所示。PCF8563是Philips公司生产的工业级实时时钟,具有功耗低、精度高特点,使嵌入式系统的硬件主模板具有较长的稳定时钟信号。AT24C02是一个2 KB的串行E2PROM,用于存
放系统软件在运行过程中所需的重要参数。如采样频率、故障报警等级等。
3.2.4 电源
电源是整个系统中的重要部分,系统的大多数不稳定因素或故障都是由于电源设计而造成的。本设计采用LT1765和MIC39150-1.8分别产生3.3 V和1.8 V电源。LT1765是Linear公司的3 A开关电源,其典型电路如图4所示。输入电压为3 V~25 V。输出电压则根据R1和R2(一般固定阻值为10 kΩ)的阻值而定,计算公式如下:
另外,PPC 405EP对上电及掉电的顺序的要求:上电时要求先V核后VI/O,而掉电则要求按先VI/O后V核的顺序,如果不满足此顺序,PPC 405EP的最小系统不能正常上电复位。这里采用12 V直流电压同时输入LT1765和MIC39150-1.8.满足上面要求顺序。
4 软件实现
4.1 内核驱动程序
Linux将每个设备看作一个文件,即可以像对待文件那样使用read、write等系统实现读写功能。首先在。PPC 405EP平台的PPC Linux内核加入CAN、SII0680A等外设驱动。以CAN驱动为例,简要说明Linux下驱动的数据处理流程。
由于CAN一帧的数据长度最大为8个字节,以模拟采集板为例,当8个测点同时发生故障时,其通过CAN传送给PPC 405EP的数据帧必然远超过一帧数据,这时需要在驱动中进行解包、组帧等处理。因此,CAN驱动中的数据处理流程就显得相当重要。
其接收过程:当CAN控制器接收数据时,产生接收中断,启动接收中断处理程序上半部分将CAN控制器接收缓冲器中的内容复制到接收队列而不作任何处理,解包和组帧将在中断处理的下半部分完成,并将处理的帧放入帧队列,最后用户使用系统调用从接收帧队列中读取完整的一帧;发送过程:用户进程通过系统调用向驱动程序传送一帧任意长度的数据,驱动程序中发送数据的程序按照协议将该帧分段打包,放入发送队列,并向CAN控制器请求发送。
4.2 应用程序
系统的应用软件由运行在前台的系统管理程序和运行于后台的网络监听、数据分析程序两部分组成。这两部分程序相互独立,它们之间的交互是通过信号量和共享内存的方式实现。
系统管理程序基于Qt开发。Qt是一个跨平台的C++图形用户界面库,支持Linux平台。系统管理程序主要完成报警文件浏览、文件拷贝、采集参数管理、磁盘(CF卡)更换、报警参数管理等人机相互功能。因为Qt是基于C++的,而Linux是基于C,因此在Qt访问Linux下用户的函数时,需在Qt中用关键字extern“C”声明。
后台程序为主要在嵌入式PPC Linux下开发。本系统的任务划分为:CAN通信、网络监听及报文分析。线程之间的数据共享采用互斥锁保护,以免陷入死锁状态。为了增强装置通用性,关于测点设备的相关信息,根据现场实际需要事先写入XML文件中,当系统启动时先读取该文件内容初始化监听、分析程序的配置。其工作流程图如图5所示。
5 结束语
PPC405EP处理器具有低功耗、低成本、高性能特点,本设计充分采用PPC 405EP的各种内置外围组件接口,简化设计,降低成本。此监测装置已运用于变电站的设备监测中,且运行效果良好。