信息收集完毕。下面为你系统梳理支持 HSR/PRP 硬件加速的具体芯片方案及实现架构。
核心结论
HSR/PRP 的硬件实现分为三大技术路线:① SoC 内置可编程引擎(PRU/专用MAC)运行冗余固件;② 工业交换机芯片内置 HSR/PRP 硬件引擎;③ FPGA IP 核。TI Sitara PRU-ICSSG 方案和Microchip LAN969x 交换机芯片是目前生态最成熟、文档最完善的两条路径;NXP i.MX RT1180/LS1028A 凭借集成 TSN 交换机成为后起之秀;FPGA IP 核(SoC-e、NetTimeLogic)则用于定制化和高带宽场景。
关键实现细节
1. 重复帧检测算法(硬件核心)
标准只规定"重复帧必须丢弃",但未规定实现方式,各芯片厂商自行设计:
- 签名(Signature)= 源MAC地址(48bit) + 16bit序列号,唯一标识一帧
- 节点表(Node Table):硬件维护的哈希表/链表,记录每个源节点最近收到的序列号
- 检测逻辑:收到帧 → 计算签名 → 查表 → 序列号 > 已记录 → 新帧(接收并更新表);序列号 ≤ 已记录 → 重复帧(丢弃)
- "宁重勿丢"原则:标准规定 if in doubt, forward the duplicate——表满或查询不确定时允许重复通过,绝不误丢真实帧
- 表深度:TI PRU 可配置至 128 项;SoC-e IP 核可综合时配置;交换机芯片通常支持 256+ 项
2. HSR 的 cut-through 转发
HSR 环上的中间节点不需要存储完整帧再转发:
- 收到帧的前几个字节(DMAC+SMAC+HSR Tag)即可判断是否已转发过
- 未转发过 → 立即向对端端口转发(cut-through),延迟<3μs
- 已转发过(绕行回来的帧)→ 丢弃
- 源节点回收:发送节点将自己注入环、绕行一圈回来的帧从环上移除,防止无限循环
3. PRP 的 RCT 透明性
PRP 的 RCT 在 FCS 之后,普通以太网设备:
- 检查 FCS 时会将 RCT 算入(因为 RCT 在 FCS 之后,实际是 FCS 覆盖到 payload,RCT 不影响 FCS 校验——具体来说 PRP 的 FCS 是基于原始帧计算的,RCT 是额外追加的,普通设备会把 RCT 当作帧的一部分但 FCS 仍正确)
- 实际上普通设备收到 PRP 帧时,长度字段会包含 RCT,设备会将其当作正常 payload 的一部分,上层协议(如 IP)会忽略多余的尾部字节
- 因此SAN(单连接节点)可直接接入 PRP 的 LAN-A 或 LAN-B,不需要 RedBox
4. 软件 vs 硬件实现的边界
| 功能 | 纯软件(Linux hsr/PRP驱动) | 硬件加速(PRU/ASIC/FPGA) |
|---|---|---|
| 帧复制/标签插入 | CPU 中断处理,延迟高 | 硬件线速,零CPU |
| 重复帧检测 | 内核协议栈,占用CPU | 硬件表查询,线速 |
| HSR cut-through | 不支持(必须store-forward) | 支持,<3μs |
| 千兆线速 | 小帧下CPU瓶颈明显 | 线速无压力 |
| 节点表维护 | 内核哈希表 | 硬件CAM/哈希 |
| 适用场景 | 低带宽、原型验证 | 产品级、工业现场 |
Linux 内核已有hsr模块(net/hsr/),可在普通双网卡设备上实现 PRP/HSR,但仅适合百兆或低负载场景,千兆线速下必须硬件加速。
5. RedBox 的硬件实现
RedBox(冗余盒)用于连接非冗余设备到 HSR/PRP 网络,硬件需额外实现:
- 代理节点表(Proxy Node Table):记录 RedBox 后面所有 SAN 节点的 MAC 地址,代其发送监督帧
- HSR-PRP 转换:在 HSR 标签和 PRP RCT 之间转换,序列号映射
- QuadBox:两个 RedBox 背靠背连接两个 HSR 环,需处理跨环重复检测(避免4份帧在第二个环上循环)
Microchip LAN969x 和 Marvell 88E6393X 支持多个 RedBox 实例并行/串行运行,这是高端交换机芯片的优势。
选型建议
| 应用场景 | 推荐方案 | 理由 |
|---|---|---|
| 单芯片终端节点(DAN) | TI AM652x/AM654x | PRU-ICSSG 千兆 HSR/PRP,生态成熟,Linux/RTOS 双支持,参考设计完善 |
| 低成本MCU级终端 | NXP i.MX RT1180 | 跨界MCU集成千兆TSN交换机,MCUXpresso SDK 自带 PRP 示例,BOM简单 |
| 多端口工业交换机 | Microchip LAN969x / Marvell 88E6393X | ASIC 硬件原生支持,多 RedBox 实例,线速无压力 |
| HMI+网关一体化 | NXP LS1028A | A72双核+GPU+6端口TSN交换机,适合带显示的工业网关 |
| 百兆低成本终端 | TI AM571x / Renesas RZ/N1L | PRU/内置交换机支持百兆 HSR/PRP,成本低 |
| 定制/高带宽/特殊接口 | SoC-e / NetTimeLogic FPGA IP | 可定制端口数、速率、集成其他功能(EtherCAT、PTP等) |
| 国产化需求 | 格基 SF9056(HSR) | 国产工业交换芯片支持 HSR,PRP 支持需确认 |
避坑提示
- AM335x/AM437x 不支持 HSR/PRP——PRU-ICSS 仅百兆 Dual EMAC,不要误用
- RZ/N2L 仅支持 PRP 不支持 HSR——官方社区已确认,选型时注意
- LAN9668 的 HSR/PRP 支持有限——全功能需 LAN969x 系列
- 千兆 HSR/PRP 必须硬件加速——Linux 软件方案在千兆小帧下 CPU 占用过高,不推荐产品化
- HSR 环最大 512 节点——PRP 双网无节点数限制,大规模网络选 PRP
- RGMII 接口时序——PRP/HSR 对双端口同步发送有要求,RGMII 时序裕量需留足,建议用硬件提供的 IO 延迟校准
需要我进一步展开某个芯片的原理图设计、PRU 固件开发流程,或 RedBox/QuadBox 的具体实现吗?