3、网关硬件选型:主流CAN转以太网芯片对比

做网关选型,说白了就是选“大脑”和“嘴巴”。
大脑负责处理协议,嘴巴负责收发数据。
我这些年折腾过不少方案,踩过坑也捡过宝。今天就把三种主流路线掰开揉碎讲清楚。

3.1 方案一:STM32+PHY(内置CAN控制器)

这是我最常用的方案。STM32系列很多型号自带CAN控制器,比如F105、F407、H743。
你只需要外接一个PHY芯片(比如TJA1050),再加一个以太网PHY(比如LAN8720A),就能同时搞定CAN和以太网。

核心优势: 集成度高,BOM成本低,软件可定制性强。

我在一个车载网关项目里用过STM32F407+LAN8720A+TJA1050的组合。
当时客户要求同时转发5路CAN数据和1路以太网数据,还要做协议转换。
嗯,这个方案跑下来,CPU占用率才40%左右,完全扛得住。

组件 型号举例 作用
主控MCU STM32F407VGT6 运行协议栈,处理数据
CAN PHY TJA1050 将CAN控制器信号转为差分电平
以太网PHY LAN8720A 将MAC层信号转为RJ45电平
小技巧: 选STM32时注意看CAN控制器数量。F407有2个,H743有3个。如果你需要接多路CAN,别买少了。

3.2 方案二:MCP2515+ENC28J60(外挂控制器)

这个方案适合低成本、低性能的场景。
MCP2515是Microchip的独立CAN控制器,通过SPI接口和MCU通信。
ENC28J60是独立以太网控制器,也是SPI接口。
说白了,就是MCU本身没有CAN和以太网外设,全靠外挂芯片补上。

我记得有个朋友做智能家居网关,主控用的是ESP8266,没有CAN接口。
他就外挂了MCP2515和ENC28J60,硬是把CAN和以太网都接上了。
不过代价是性能受限——SPI时钟跑不了太高,数据量大时容易丢包。

避坑指南: 我曾经在MCP2515的中断处理上吃过亏。它的中断引脚是开漏输出,必须外部上拉。第一次画板子忘了加上拉电阻,调试了整整两天才发现。
对比项 MCP2515 ENC28J60
接口 SPI(最高10MHz) SPI(最高20MHz)
缓冲区 2个接收缓冲,3个发送缓冲 8KB收发缓冲
典型延迟 约50μs(单帧) 约100μs(单帧)
适用场景 低速CAN(125kbps以下) 低吞吐以太网(<1Mbps)

3.3 方案三:专用网关模块(一体式方案)

如果你不想自己画板子、写驱动,直接买现成的网关模块是最省事的。
比如周立功的CANET系列、创芯科技的CAN转以太网模块。
这些模块内部已经集成了MCU、CAN控制器、以太网控制器,甚至跑好了协议栈。

你只需要通过AT指令或者配置软件设置参数,就能直接用了。
我有个项目工期特别紧,从立项到交付只有两周。
当时果断选了专用模块,一周搞定硬件,一周写应用层代码,按时交了货。

适用场景: 快速原型验证、小批量生产、非核心功能模块。
方案 开发周期 单件成本 灵活性 推荐指数
STM32+PHY 2-4周 低(约30-50元) 高 ★★★★★
MCP2515+ENC28J60 1-2周 最低(约15-25元) 中 ★★★☆☆
专用网关模块 即插即用 高(约100-300元) 低 ★★★★☆

3.4 选型决策流程

你想想看,选方案其实就三个问题:

  1. 量有多大? 批量超过1000片,建议自研方案(STM32+PHY)。
  2. 时间有多紧? 少于1个月,直接买专用模块。
  3. 性能要求高不高? 需要高速转发(>1000帧/秒),必须上STM32+PHY。
我的建议: 如果这是你第一次做CAN转以太网网关,先用专用模块把功能跑通,再考虑自研方案。这样风险最低。
CAN转以太网网关硬件选型决策流程 开始选型 批量 > 1000片? 是 否 自研方案(STM32+PHY) 专用网关模块 工期 < 1个月? 高速转发需求? 提示:自研方案成本低但周期长;专用模块省时间但单价高。根据项目实际情况灵活选择。 如果时间充裕且批量大,优先自研;反之则用模块快速交付。

3.5 我的最终建议

如果你问我个人偏好,我会说:
量产项目用STM32+PHY,原型验证用专用模块,低成本玩具用MCP2515+ENC28J60。

别想着一个方案打天下。我见过有人为了省几块钱,在高速网关里用MCP2515,结果丢包率高达5%,最后被客户骂惨了。
也见过有人花大价钱买专用模块,结果量产后发现成本根本扛不住。

选型这事,说白了就是平衡成本、时间、性能三个维度。
你心里有数了,就知道该选哪个了。