题记:本文系笔者数年心血之结晶,2014年3月19日成稿,随即投往国内某知名专业期刊,日前收到退稿邮件。失望之余,细读退稿原因,感觉其技术观点或为当前多数业内专家的共同思路,即使另投他刊,结果亦应大抵如此。敝帚自珍之心人皆有之,实不甘就此自弃,遂将敝作发往各大论坛,以供业内读者品鉴。若幸蒙抬爱,还望荐之于同仁、师友,以为技术革新之助力,拜托拜托!如有不明之处、斧正之言、补充意见,亦欢迎提出,跟帖、发邮件(linwei_jinan@126.com)均可,鄙人不胜感激之余,必将尽力与诸君交流,多谢多谢!
以FPGA为核心实现继电保护装置的片内系统架构及保护算法实现策略
作者:林伟
摘要:以FPGA为核心实现保护算法,基于FPGA芯片提供的大量分布式运算资源,用流水线技术使数据处理过程节拍化,使现有的各级、各种算法尽可能并行执行,可以为保护算法设计师提供更多可支配的运算能力,使其不再受限于CPU、DSP的可用运算时间,能够根据需要合理组织现有算法,进而有条件以硬件资源换性能、用新的思路设计综合性能更高的保护新算法。介绍了以FPGA为核心实现继电保护装置的一种片内系统架构、基于FPGA实现保护算法的基本策略,为现有保护装置的改进、新保护算法的开发提供了借鉴。
关键词:继电保护,FPGA,继电保护算法,智能变电站
0.
引言
众所周知,基于CPU/DSP的继电保护装置的算法是串行执行的,在硬件底层表现为对少量运算单元的时分复用,运算单元的速度、数量限制了保护算法的整体执行速度,限制了装置的速动性。同时,为了保证速动性,保护算法设计师必须将算法的复杂程度限制在一定范围内,无法按照理想的方式添加、组织算法。进而,在为解决现有问题或提高装置的综合性能而构思新的保护算法时,开发者的思路也因为核心硬件运算能力的不足而受到限制。
基于FPGA实现保护算法,此前已有部分研究成果发表[1][2][3][4][5]。这些文章尽管在一定程度上验证了用FPGA实现保护算法的可行性、速度优势,但在内容上或者侧重于替代,侧重于如何用FPGA实现已有的某种具体的保护功能,或者虽然及述及系统级方案,但在保护算法实现策略方面着墨不多,也未包含最新的智能变电站过程层设备中的重要模块在FPGA系统设计中的布局。更重要的是,这些成果对FPGA技术之于保护算法开发的开创性意义重视不够,未予突出的强调。
本文借鉴了参考文献[4]图3、参考文献[5]图5的架构,提出一种包含智能变电站过程层设备输入/输入模块、以FPGA为核心实现继电保护装置的片内系统架构,继而绕过具体保护功能的实现,从在大多数保护算法中表现为共性的基本数据流的角度描述了用FPGA实现保护算法的基本策略,介绍了在FPGA环境下对传统保护算法架构逐步进行简化的途径。同时着重指出,FPGA技术提供了“以硬件资源换性能”的技术手段,建议充分利用其提供的海量高速分布式运算资源,以新的思路寻找新的故障特征信息、开发性能更优异的保护算法,并为此提供了一些基本的思考方向,以供读者借鉴,同时希望能够促进更多资源投入到这一充满创新机会的领域。
1.
FPGA技术的最新进展及优势
现场可编程门阵列(FPGA,Field Programmable Gate Array)本质上是集成在单一芯片中的一些可以由应用开发人员在一定层面上自由组合的分布式逻辑电路资源,提供了在底层硬件级别并行实现高速信号整理、数据处理的技术手段。
近年来,各主流制造商为FPGA芯片集成了日益丰富的硬件资源,能够以一两千元的价格提供速度为几百MHz、可以独立/协同运行、功能可配置的几百个基础DSP硬核、几百个片内RAM块、十几万个带寄存器的多输入逻辑运算单元(还能以更高的价格提供资源更多的芯片),在某种意义上提供了类似“片内大型计算机”的运算资源。结合日益强大的开发调试工具(包括工具提供的CPU、FIR、FFT、浮点运算单元等软核IP),使现代FPGA芯片具备了并行、高速、运算资源丰富、定时精确、功能灵活、开发调试手段先进的特点,相比于目前继电保护装置中用于执行保护算法的主流芯片-- CPU、DSP,具有显著的优势。这些优势,在近年来智能变电站二次设备的研发中已经初露端倪[6][7][8]。
2.
以FPGA为核心实现继电保护装置的片内系统架构
本架构着眼于如何构建继电保护装置中具有共性的功能框架,把主数据通道上的各算法模块整合到了FPGA芯片中,利用嵌入式软核CPU实现初始化、人机界面、保护定值下发等慢速、辅助功能,以提高设备性能、简化系统架构。其特征是分布式运算、并行处理,核心理念是“以硬件资源换性能”。
图1给出了装置的主FPGA片内系统架构,其中包含了智能变电站过程层设备的通讯接口模块、数据预处理模块。虚线框内是在主FPGA芯片中实现的功能。图中未示出位于PCB上的以太网PHY芯片、SDRAM、FLASH、键盘等功能器件以及外接的北斗/GPS等功能设备。
图1中各模块分别占用FPGA中的一部分硬件资源,在嵌入片内的软核CPU的协调下各司其职、互相协作、并行运行。近年来各保护设备厂商已经在智能变电站二次设备的通信接口、数据预处理环节中用FPGA实现了其中的一些模块[6][7][8],本文不再赘述。以下仅对个别模块、板卡做简略说明。
“嵌入片内的软核CPU模块”是由开发工具利用FPGA片内提供的可编程逻辑/寄存器/连线资源、基础DSP硬核、RAM块等硬件资源以及片外FLASH存储器搭建的CPU最小系统,可以在芯片厂商提供的集成开发环境下像普通CPU一样进行软件开发,经与“软核CPU总线接口模块”连接的子模块(图中未示出)、以太网PHY芯片与上位机通信,在本架构中用来实现系统初始化、启动、暂停、再配置(例如,接收、应用用于变更保护定值的数据集,接收、应用用于变更保护逻辑组态的数据集,接收、应用用于变更保护算法功能模块内部的工作参数、功能组合方式的数据集)、重启,以及其它慢速功能(例如键盘响应),从而留出更多FPGA硬件资源用于高速数据处理(也可将本模块移至片外由单片机实现,以节省成本– 代价是降低了系统的硬件集成度、抗干扰能力)。
“数据、信号调度模块” 利用FPGA片内的可编程逻辑/寄存器/连线资源构成多路并行运行、互相协作的状态机,完成各模块之间的数据、信号的调度工作,包括为“保护算法模块”提供所需的数据、将其输出的跳闸信号提供给图1右下角的输出接口模块。在必要情况下,由其它各模块在与本模块接口处提供输入/输出双口RAM或FIFO,作为数据交换的缓冲空间,同时也作为时钟域转换接口,在整个片上系统中充分利用现代FPGA提供的可自由布置的多个时钟域资源,以使高、低速模块的运行并行不悖,在速度、功耗、成本之间取得合理的平衡。
“本地模拟量、开关量采集、预处理板”完成对本地模拟量、开关量的采集、预处理、上传工作,提供模拟ALF、A/D、光隔等功能器件,用板载FPGA接收主FPGA提供的配置、启动等信息,完成对A/D的配置/控制、数字量/开关量的采集与预处理,并提供与主FPGA通信的高速串行通信接口。
篇幅超限,待续...... |