基于 STM32 + FPGA 船舶电站控制器设计与实现
近年来,随着半导体技术迅猛发展,以ARM架
构为核心的微控制单元(Micro Controller Unit,
MCU)和现场可编程门列(Field-Programmable Gate
Array,FPGA)因具有性能优异、功能完善、供货稳定
和成本较低等优势[1]而在工业现场控制领域得到
广泛应用,在船舶机舱自动化领域的应用也在不断
深入,具有广阔的应用前景。
以往的船舶电站控制器通常以PLC设备为核
心,同时需要配备相应的电量变送器、同步并车模块
和开关量输入输出模块等基本模块。因此,以往的
单台发电机组控制单元是在以PLC为核心的船舶
电站控制器的基础上组建的,而这样的电站控制系
统组网极其复杂,所需的安装空间也非常大,很大程
度上限制了其在现代舰船,尤其是在电网容量巨大
的全电力推进船舶上应用的前景。[2]
为适应现代舰船电站控制系统的发展,亟需一
种可在单个模块中完成以往船舶电站控制器所有功
能的电站控制器。现代嵌入式处理器,尤其是ARM
架构的MCU和可编程逻辑器件FPGA的组合架构
完全可以使其变为现实。![]()
1 ARM + FPGA架构设计
1. 1船舶电站控制器功能需求
船舶电站控制器所需的控制功能接口类型繁
多,包括对原动机及发电机进行基本控制和安全保
护所需的开关量接口、模拟量接口及与船舶电站系![]()
![]()
![]()
![]()
![]()
统内其他设备互联互通的接口等。图1为单台传统
柴油发电机主要接口信号。
由图1可知,电站控制器所需的功能接口主要
包括模拟量(交流量和直流量)接口、开关量(开关
量输入输出)接口和通信总线(RS485和CAN等)
接口等。
1. 2 ARM + FPGA架构选型
针对电站控制器功能接口的需求,选用ARM +
FPGA架构作为单模块电站控制器的基本架构。
STM32F437是基于高性 能ARMCortex-M4
32位RISC内核 的MCU:集 成 了FPU,自 适 应 实 时
(ART)加 速 度 器,MPU,225 DMIPS /1. 25 DMIPS /
MHz(Dhrystone 2. 1) ,256 + 4KB SRAM和32位数
据总线及DSP指令;闪存高达2 MB,工作频率高达
180 MHz,主要应用于工业控制领域,可满足电站控
制器对核心CPU运算能力及外设的要求。
FPGA是在PAL,GAL和CPLD等可编程器件的
基础上进一步发展的产物,在逻辑控制和时序控制
方面有着其他类型控制器不可比拟的优势。电站控
制器所要处理的逻辑信号数量较大,且关键的安全
保护逻辑不容有丝毫差错。FPGA独立于MCU的
运行体系及可靠的逻辑处理能力使其成为电站控制
器逻辑处理单元的最佳选择。[3]
EP2C5Q208C8是ALTERA公司的Cyclone II系
列FPGA,拥 有4 608个LEs(片 上RAM共 计
119 808 bits)、13个18 × 18硬件乘法器、2个高性
能PLL及142个用户自定义IO,在逻辑门数量和运
算速度方面完全可以满足电站控制器的功能需求。
2控制器硬件设计
电站控制器的硬件是基于电站控制器对接口资
源的需求设计的,可满足大部分电站控制系统对单
机控制器的接口需求,并针对行业未来的发展预留
了部分可扩展的接口。硬件设计结构框图见图2。
2. 1模拟量采集部分硬件设计
电站控制器需要处理的模拟量包括交流电量采
集和直流电量输入采集。
1)交流电量采集将AD7606作为采集主体,与
MCU间通过SPI总线连接。AD7606由ADI公司设
计生产,内部集成有16位、200 kSPS的AD转换器,
可实现对6路交流信号的同步采样。AD7606模拟
前端具有箝位保护、输入缓冲器和二阶抗混叠模拟
滤波 器,能保证对交流信号的调理精度。基 于
AD7606的交流电量采集硬件设计拓扑结构见图3。
2)直流电量采集部分主要采集标准4 ~ 20 mA
的电流环信号。其模拟前端采用差分输入结构,可
有效降低共模干扰,并提高采集精度;其后端采样通
过MCU自身集成AD转换器完成,采样精度为12
位。结合STM32F437的集成AD转换器支持多种
采样模式的特点,在MCU算法中加入数字滤波器,
以进一步提高直流电量的采集精度。直流电量采集
硬件设计拓扑结构见图4。
3控制器软件设计
电站控制器软件可分为应用层、应用接口层和
驱动层。软件的分层设计可使开发人员仅关注整个
结构中的某一层即可完成所有内容,从而大大提高
开发效率;同时,减弱层与层之间的依赖关系,可逐
层对软件进行更新迭代,更有利于各层间逻辑的复
用。图7为电站控制器软件设计框图。
图7电站控制器软件设计框图
电站控制器软件设计中较为关键的算法主要有
电站控制器核心控制算法、交流电量测量算法和准
同步并车算法。
3. 1电站控制器核心控制算法设计
应用层主要实现电站控制器的核心控制算法,
其主要功能有:
1)发电机组根据负载的需要,自动启动、投入
运行和停车;
2)发电机与电网母线自动同步和并车;
3)电网电压与频率自动恒定;
4)并联运行机组间自动实现负载(有功和无
功)的分配和转移;
5)按电站负载情况自动卸除或投入次要负载;
6)重载控制;
7)故障的自行报警和自动保护及按一定程序
自动投入相应的完好机组并解除故障机组。
电站控制器核心控制算法的各个功能模块均固
化于MCU内,同时提供配置接口,用以实现对各功
能模块的使能和禁用,并配置相应参数。在实际应
用中,可针对不同船型的组网形式灵活配置不同功
能模块的工作模式。![]()
3. 2交流电量测量算法设计
在电站控制器中,交流电量的测量是最基础的
功能,是保证其他功能稳定、可靠的前提。电站控制
器通过采集3相电压和3相电流信号来计算交流电
量参数,包括电压和电流有效值、有功功率、无功功
率、功率因数及频率等。[4]
