基于 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 是基于高性 能 ARM Cortex -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 模拟量采集部分硬件设计
电站控制器需要处理的模拟量包括交流电量采
集和直流电量输入采集。
- 交流电量采集将 AD7606 作为采集主体,与
MCU 间通过 SPI 总线连接。AD7606 由 ADI 公司设
计生产,内部集成有 16 位、200 kSPS 的 AD 转换器,
可实现对 6 路交流信号的同步采样。AD7606 模拟
前端具有箝位保护、输入缓冲器和二阶抗混叠模拟
滤波 器,能保证对交流信号的调理精度。基 于
AD7606 的交流电量采集硬件设计拓扑结构见图 3。

- 直流电量采集部分主要采集标准 4 ~ 20 mA
的电流环信号。其模拟前端采用差分输入结构,可
有效降低共模干扰,并提高采集精度; 其后端采样通
过 MCU 自身集成 AD 转换器完成,采样精度为 12
位。结合 STM32F437 的集成 AD 转换器支持多种
采样模式的特点,在 MCU 算法中加入数字滤波器,
以进一步提高直流电量的采集精度。直流电量采集
硬件设计拓扑结构见图 4。

3 控制器软件设计
电站控制器软件可分为应用层、应用接口层和
驱动层。软件的分层设计可使开发人员仅关注整个
结构中的某一层即可完成所有内容,从而大大提高
开发效率; 同时,减弱层与层之间的依赖关系,可逐
层对软件进行更新迭代,更有利于各层间逻辑的复
用。图 7 为电站控制器软件设计框图。
图 7 电站控制器软件设计框图
电站控制器软件设计中较为关键的算法主要有
电站控制器核心控制算法、交流电量测量算法和准
同步并车算法。
3. 1 电站控制器核心控制算法设计
应用层主要实现电站控制器的核心控制算法,
其主要功能有:
- 发电机组根据负载的需要,自动启动、投入
运行和停车;
-
发电机与电网母线自动同步和并车;
-
电网电压与频率自动恒定;
-
并联运行机组间自动实现负载( 有功和无
功) 的分配和转移;
-
按电站负载情况自动卸除或投入次要负载;
-
重载控制;
-
故障的自行报警和自动保护及按一定程序
自动投入相应的完好机组并解除故障机组。
电站控制器核心控制算法的各个功能模块均固
化于 MCU 内,同时提供配置接口,用以实现对各功
能模块的使能和禁用,并配置相应参数。在实际应
用中,可针对不同船型的组网形式灵活配置不同功
能模块的工作模式。
3. 2 交流电量测量算法设计
在电站控制器中,交流电量的测量是最基础的
功能,是保证其他功能稳定、可靠的前提。电站控制
器通过采集 3 相电压和 3 相电流信号来计算交流电
量参数,包括电压和电流有效值、有功功率、无功功
率、功率因数及频率等。[4]
