1. 工业网关需求分析与STM32选型

工业现场做通信改造时,最先遇到的往往不是“协议怎么写”,而是“现场到底乱成什么样”。一条产线上可能同时存在西门子S7-1200的Profinet、三菱FX系列的RS-422、几台Modbus RTU温控表、一台CANopen伺服,以及上位机要求的MQTT上云通道。这些设备各自为政,接口电气特性不同、数据语义不同、刷新周期不同,传统做法是用工控机加多张通信卡,成本高、体积大、长期运行稳定性也难保证。多协议网关要解决的,正是把这种“多源异构”收敛成“统一出口”的问题。

从需求角度看,工业现场通信痛点可以归纳为四类。第一是物理层碎片化:RS-232、RS-485、CAN、以太网并存,电平、隔离、终端电阻要求各异。第二是协议语义割裂:Modbus的寄存器地址、CANopen的对象字典、Profinet的槽位索引,彼此没有天然映射关系。第三是实时性分层:急停、联锁类信号要求毫秒级,而温度、电量类数据秒级刷新即可,网关必须能区分优先级。第四是运维与上云:现场需要本地缓存、断线续传、远程配置,还要把数据以JSON或二进制形式送到云平台。

因此,多协议网关的功能定义应当围绕“南向采集、北向汇聚、内部映射、边缘处理”四层展开。南向负责多路串口、CAN、以太网的协议解析与轮询调度;北向负责以太网、4G或Wi-Fi的上行链路;内部映射把不同协议的变量统一到一张“点表”中,点表包含变量名、源协议、源地址、数据类型、缩放系数、刷新周期和优先级;边缘处理则完成滤波、报警判断、本地存储和断线续传。这四层决定了MCU需要哪些外设资源。

多协议网关四层功能与STM32外设资源对应关系 南向采集层 RS-485 / Modbus RTU USART + DE/RE + 隔离 RS-232 / 仪表 USART + 电平转换 CAN / CANopen bxCAN + 收发器 以太网 / Profinet MAC + PHY + 协议栈 DI/DO 开关量 GPIO + 光耦隔离 AI/AO 模拟量 ADC / DAC + 运放 内部映射与调度 统一点表 变量名/源地址/类型 协议解析引擎 Modbus/CANopen/PN 轮询调度器 周期/优先级/超时 数据缓存 SRAM + 外部Flash 边缘处理 滤波/报警/缩放 北向汇聚层 以太网 / TCP Modbus TCP / MQTT 4G / Cat.1 AT指令 / PPP Wi-Fi / 蓝牙 SDIO / SPI JSON / 二进制 数据封装 断线续传 本地队列 + 重发 运维管理层 本地配置 Web / 串口CLI 远程升级 IAP / 双区备份 日志与诊断 运行统计/告警 看门狗 IWDG + 复位 RTC 时间戳 事件顺序记录 采集 映射 管理

接下来是MCU选型。STM32F4、F7、H7三个系列都能覆盖上述功能,但资源边界差异明显。F4系列以Cortex-M4内核为主,主频最高180MHz,典型型号STM32F407带1MB Flash、192KB SRAM、3个USART、3个SPI、2个CAN、1个以太网MAC,适合协议数量不多、点表规模在几百点以内的中低端网关。F7系列升级到Cortex-M7,主频216MHz,带L1 Cache和更大的SRAM(如STM32F767有512KB SRAM),以太网和CAN资源更充裕,适合需要同时跑Modbus TCP、CANopen和轻量边缘计算的场景。H7系列主频可达480MHz甚至550MHz,SRAM可达1MB以上,带双精度FPU和更丰富的高速接口,适合多路以太网、复杂协议栈和较大点表的高端网关。

选型时不能只看主频,要按“接口数量、协议栈内存、实时性、成本与供货”四个维度逐项核对。接口数量方面,先统计现场需要几路RS-485、几路CAN、几路以太网,再对照MCU的USART、CAN、ETH外设数量,注意有些USART引脚会与CAN或ETH复用,需要提前做引脚规划。协议栈内存方面,Modbus RTU从站占用较小,Modbus TCP加上LwIP通常需要几十KB RAM,CANopen从站栈约十几KB,若再叠加MQTT和JSON解析,F4的192KB SRAM会偏紧,F7或H7更从容。实时性方面,若要求1ms级联锁响应,需要评估中断延迟和DMA搬运能力,H7的Cache和TCM RAM优势明显。成本与供货方面,F4系列单价低、渠道广,适合批量产品;F7和H7单价较高,且部分型号交期波动大,选型时应优先选择长期供货承诺明确的型号,并预留至少一个引脚兼容的备选型号。

下面给出一份可直接用于选型评审的对照表,参数为典型值,实际以具体型号数据手册为准。

对比项 STM32F407 STM32F767 STM32H743
内核 / 主频 Cortex-M4 / 168MHz Cortex-M7 / 216MHz Cortex-M7 / 480MHz
Flash / SRAM 1MB / 192KB 2MB / 512KB 2MB / 1MB
USART / UART 4+2 4+4 4+4
CAN 2路 bxCAN 3路 bxCAN 2路 FDCAN
以太网 1路 10/100 MAC 1路 10/100 MAC 1路 10/100 MAC
典型网关定位 中低端、串口为主 中高端、多协议并行 高端、多路高速汇聚
成本与供货 低,渠道广 中,需关注交期 高,优先选长期供货型号
选型评审时建议先画一张“接口需求清单”,把每一路通信的协议、电气类型、刷新周期、点数和优先级列清楚,再与MCU外设表逐项打勾。凡是出现“外设数量刚好够用”的情况,都要预留一路备用,避免后期增加设备时无口可用。

最后是外设接口需求评估的落地方法。以一台典型网关为例:南向需要2路RS-485(Modbus RTU,9600bps,各带16台从站)、1路CAN(CANopen,500kbps,8个节点)、1路RS-232(调试与仪表);北向需要1路以太网(Modbus TCP + MQTT);本地需要1路SDIO接SD卡做数据缓存,1路I2C接EEPROM存配置,1路RTC做时间戳。按这个清单,F407的USART数量刚好满足,但若再增加1路RS-485就会紧张;F767则有余量,且SRAM足够同时运行LwIP、FreeRTOS和多个协议任务。若项目要求双以太网冗余或EtherCAT从站,则应直接考虑H743并外接PHY或专用从站控制器。

成本与供货考量要贯穿整个选型过程。建议在BOM中同时锁定主选和备选型号,两者尽量做到引脚兼容或封装兼容,例如LQFP144封装的F407与F767在部分引脚上可兼容布局。批量采购前应确认代理库存和原厂长期供货计划,避免选用已进入停产预警的型号。对于网关这类需要长期现场运行的产品,MCU的供货稳定性往往比单颗价格更重要。

不要仅凭“主频高”就选H7。若协议数量少、点表小,F4完全够用,强行上H7会推高成本并增加电源与PCB设计难度。选型的正确顺序是:先定接口和协议清单,再算内存和实时性余量,最后才比较价格与供货。