周樑 吴浩伟 姜波 陈涛
(武汉第二船舶设计研究所,武汉 430064)
本文研究了一种基于 FPGA+DSP技术的舰船监控单元。将其与断路器等配合构成的智能化开关柜。其与传统开关柜的主要区别在于数据处理与信息取样、控制的通讯方式上。传统开关柜是将系统电压、支路电流、开关状态量以控制电缆传送到集中监控台,由集中监控台统一实现保护控制功能[1]。智能开关柜采用监控单元直接进行电流、电压及开关状态信息的采集,并能够独立进行数据处理,实现保护、控制、测量等功能,同时通过标准接口上传。能实现数据采集与监控、事故报警、事故追忆等功能。
该监控单元安装在智能配电柜中,不但要求多路采集大量数据,同时还要求通过通信网络与监控台实时通信,对控制芯片提出了很高的要求。
当前常用的控制芯片主要有三种,分别为FPGA[2]、DSP[3]及 ARM[4]。FPGA 是专用集成电路中集成度最高的一种,用户可对内部的逻辑模块和模块重新配置,以实现用户的逻辑,目前FPGA同时具有软件编程的灵活性和 ASIC电路的快速性等优点,适合高速数字信号处理。DSP是一种集成高速乘法器,具有多组内部总线,能进行快速乘法和加法运算,具有处理精度高、处理数据量大等优势,同时集成有各种外设接口。特别适用于数据处理和数据通信。ARM支持双指令集,具有很好的兼容性,适用于界面以及应用程序等方面,因此该处理器主要用于与人机接口显示和数据接口等控制方面。
综合考虑以上控制芯片各自的优缺点,本装置采用了DSP+FPGA双控制器的方案。
DSP 选用 TI公司 TMS320LF28335[5~6],该芯片采用高性能的静态 CMOS技术,低功耗设计。具有高性能的 32位 CPU。采用哈佛总线结构,实现了片内、片外寻址的统一。且芯片内部集成了多种功能模块,其中包括 ADC,PWM,eCAP等芯片提供了多种通信接口,其中包括SPI,SCI,I2c等,且同一种通信接口的数量不止一个,只需增加外围器件即可实现扩展功能。
FPGA选用Altera公司的超大规模可编程逻辑器件 Cyclone系列的 EP1C6PQ240[7]作为辅控制芯片,该芯片有5980个逻辑单元,嵌入式存储块有一列M4K块,每个M4K块可以组成各种存储器,包括双端口、单端口RAM、ROM和FIFO等,I/O单元包含一个双向I/O缓冲器和三个寄存器,具有2个锁相环和8个独立系统时钟,芯片管脚数为240个,可用管脚数为185个。
在监控单元中,大量的现场实时数据需要采集和处理,并及时、迅速地向集中监控台传输,即向集中监控台提供整个控制过程的具体数据,同时还要完成判断处理并通过输出模块发送各种控制命令。其硬件结构原理参见图1。
图1 监控单元硬件结构图
1) A/D芯片。该系统采用AD7865作为A/D芯片,它的主要特性有:高速14位A/D转换器,同时采样4个输入通道,并具有4个采样、保持放大器。其优点在于能够真正实现多路信号的同步采样,并保持各通道信号的相位关系。本系统共配置了4片AD7865,能同步采样多达16路模拟量数据。
2) 磁隔离。所有开关量的输入输出均采用磁隔离技术,可有效提高抗干扰能力,本系统选择了16片4路集成磁隔离芯片ADUM1410,使得该模块能同时完成多达32输入,32路输出的数据采集。
3) FPGA主要完成数据输入输出控制及数据预处理功能。所有的开关量信号经过光耦输出将送入FPGA,所有的模拟量信号经A/D芯片转换为数字信号后也送入FPGA,因此FPGA需要向A/D芯片提供控制信号来控制A/D芯片的读写,所有的数据将在FPGA内进行预处理以供DSP读取。
通过干预的不合理医嘱分析发现,中心审方药师在重复用药、适应症、超说明书用药等方面把控较好,而在溶媒用量、配伍禁忌、给药途径等方面把关不严,仍由PIVAS药师纠正此类不合理医嘱。如万古霉素1.5 g加入100 mL 0.9%氯化钠注射液;多巴胺与呋塞米配伍;前列地尔注射液静脉滴注等。双重审方给患者用药安全上了双保险。
4) DSP主要完成数据处理、逻辑控制及通讯功能。由于FPGA已经将大量数据做了预处理,而且本系统中DSP与FPGA的16位地址线和16位数据线均相连,采用并行数据传输,因此DSP只要通过简单的指令即可快速读取所需要的开关量和模拟量值,为状态监测及故障诊断功能提供基础。
5) 数据存储器。由于本系统具有能掉电保持要求,故本系统外扩数据存储器采用掉电不丢失SRAM IS61LV25616。
6) CAN通信。大多数嵌有CAN控制器的控制芯片只有一个 CAN控制器,如果希望系统具有双CAN接口,则需要外接一个CAN控制芯片,增加了硬件成本,电路结构更复杂[6~7]。而本系统使用的DSP芯片中嵌有两个CAN控制器,因此只要将两个CAN控制器分别外接CAN驱动器就可以实现与两条独立的CAN总线连接。
7) 以太网通信 本系统选用了W5100作为以太网接入芯片[8]。W5100包含了 TCP/IP、UDP等网络协议和 DLC、MAC以太网协议。它提供多种总线,包括两种并行总线以及SPI串行总线等接口方式。内置16KB数据缓冲双口RAM,可快速进行数据交换。
DSP具有纯软件实现的灵活性,适用于流程复杂的算法。因此本系统利用DSP主要完成数据处理、逻辑控制及通讯功能。但是用 DSP完成FFT运算需占用大量DSP的运算时间,使整个系统的数据吞吐率降低。而FPGA资源丰富,易于组织流水和并行结构,因此利用FPGA完成所有信号的预处理,主要是进行FFT运算。
FFT实现的设计方案有顺序处理、级联处理、并行处理和阵列处理[8]。顺序处理每次运算仅用一个蝶形单元,处理方式简单,运算速度较慢。级联处理、并行处理和阵列处理的速度较快,但占用资源较多。本设计采用改进的顺序处理方案,在原有顺序处理的基础上对FFT处理过程中数据传输进行控制,使得该结构在继承原有顺序处理电路简单、占用资源较少优点同时又兼有级联处理运算速度较快的优点。采用自顶向下的方法对处理器模块化,其结构框图如图2。
图2 FFT处理器结构框图
蝶形运算单元是整个FFT处理单元的重要部分,直接影响整个FFT单元性能。基2时间抽取的蝶形信号流程图如图3所示,p和q为数据序号,xm(p)和xm(q)是第m级蝶形运算的输入,xm+1(p)和xm+1(q)是该蝶形运算的输出,WrN为相应的旋转因子。
图3 第m级蝶形信号流程图
图3的算法表示为:
由上式看出,一个基2蝶形运算要进行1次复乘、2次复加。为了提高运算速度采用并行运算,采用 4个实数乘法器、3个实数加法器和 3个实数减法器组成。如图4所示。设蝶形运算单元的输入数据为 x1=x1_re+jx1_im 和x2=x2_re+jx2_im,旋转因子为WrN=c-jd,则输出为y1=y1_re+jy1_im和y2=y2_re+jy2_im。
存储单元在FFT处理单元中存储器是必不可少的单元,蝶形运算数据的输入输出和中间结果的存储都要经过存储器,图2中存储器A接收外部输入数据,存储器B是中间结果单元,除第一级蝶形运算外每级数据的输入输出均经过该存储器。在两块存储器和蝶形运算模块之间加入两个数据控制器配合工作,可以在写入上一组中间结果的同时读取下一组蝶形运算数据,从而提高FFT的处理速度。
图4 蝶形运算单元
旋转因子单元是存储FFT运算所需的旋转因子WrN=exp(-j2πr/N)。旋转因子分为实部和虚部,由于它们是小于1的小数,故在设计中需将其定点化。其过程是将旋转因子扩大214倍,取整数部分转化为16位定点数保存。根据旋转因子的对称性和周期性,在利用 ROM存储旋转因子时,可以只存储旋转因子表的一部分,通过地址的改变查询出每级蝶形运算所需的旋转因子。
控制单元用于协调驱动各模块,在FFT运算中具有关键作用。旋转因子单元数据控制器的读信号,存储器A、B的读写信号都是由控制单元产生。控制单元具有单独的输入时钟,可产生相应的控制信号。
图5 监控单元程序流程
DSP软件结构采取的是模块化设计,使用C++语言编写。程序流程如图 5,主要完成的功能有信号检测、数据处理、数据传输以及逻辑控制。因此按照功能分为以下三个模块:数据处理模块、状态监测模块、通信模块。
数据处理模块的主要功能为实时接收来自FPGA的电流、电压量,通过计算转换成相应的电压、电流、有功功率、无功功率、功率因数及频率等工程信息,实时接收断路器、隔离开关的分合位置信号。
状态监测模块的主要功能为通过实时监测采集的模拟量、开关量的数值和状态,与模拟量所设上限、下限等限值比较,当测量值越限时向集中监控台发出报警,并作相应处理。当发生故障开关跳闸时将设备动作的所有信息记录,保护信息以文件形式保存。
通信模块主要功能为实现与集中监控台建立联系,对所有采集的信息数据进行汇总和综合处理,并把各类信息上送给集中监控台。其按功能又分为 CAN通信模块、以太网通信模块两个部分。
CAN通信模块分为三个层次,硬件抽象层文件、功能函数层文件、应用程序接口层。其中硬件抽象层文件定义了各 CAN控制器的寄存器数据格式及读写访问的方法。功能函数层文件包括CAN控制器各种控制功能的实现函数和CAN总线异常中断处理函数。应用程序接口层的文件包括3个函数。
①初始化CAN控制器,包括使能CAN模块,CAN时钟设置、配置CAN管脚等。②发送数据,使发送报文按协议打包或解析后在总线上传输,可通过本点把本设备检测参数和状态向 CAN网络上上位机发送,实现远程网络监控和管理。③接收数据,接收上位机发送的与本节点标识符相匹配的报文来对本节点检测和运行控制。
如图6所示太网通信模块分为6个子模块:初始化模块(主要功能为对W5100内部寄存器初始化)、创建socket模块、网络连接模块、数据发送模块、数据接收模块、关闭socket模块。其中socket是应用程序与网络协议的接口,在用户进程和网络协议之间起到桥梁作用。
本文设计的基于 FPGA+DSP技术的监控单元,已应用在某船的配电柜中。应用结果表明该单元具有实时性高、可靠性好、通信接口丰富的特点。实现了上位机监控终端与现场设备的双网络远程监控。为整个监控系统采取灵活而可靠的网络拓扑结构提供基础,具有很好的推广应用价值。
图6 以太网通信程序流程
[1] 李勇. 低压配电开关柜智能监控单元设计[D]. 成都理工大学, 2010.
[2] 彭坚, 何渝. 基于 FPGA 的交通信息采集系统的设计与应用[J]. 计算机应用与软件, 2011, 28(1): 82~84.
[3] 崔学深, 张建华, 肖刚. DSP技术在电力系统中的应用和硬件实现方式[J]. 现代电力, 2002, 19(2): 36~42.
[4] 崔秀芳, 喻方平, 常勇. 基于ARM的船舶现场监控模块的设计[J]. 微计算机信息, 2007, 23(11):159,166~167.
[5] 苏奎峰, 吕强, 邓志东, 汤霞等. TMS320x28xxx原理与开发[M]. 北京:电子工业出版社, 2009.
[6] 楼晓春, 何丽莉. 基于DSP28335的电能质量监测仪器设计[J]. 杭州电子科技大学学报, 2010, 30(4):146~152.
[7] 张晶. 基于 USB2.0接口的数字图像通信模块设计[D]. 南京理工大学, 2008.
[8] 邹依依等. W5100在DSP以太网数据通信系统中应用[J]. 工业控制计算机, 2008, 21(8): 20~21, 23.