3. 车载以太网物理层与R-Car MAC集成
在 R-Car 平台上做车载以太网,物理层(PHY)与 MAC 的集成质量直接决定链路能否稳定跑满 100 Mbps 或 1 Gbps。R-Car H3/M3、R-Car V3H/V4H 等 SoC 内部集成 EtherAVB(部分型号还带 TSN 能力),对外通过 RGMII 或 SGMII 连接外部 PHY。理解 PHY 选型、接口时序、MAC 配置与链路诊断,是把“能通”变成“可靠”的关键。
一、PHY 选型:100BASE-T1 与 1000BASE-T1 的取舍
车载以太网与消费级以太网最大的区别在于物理介质:100BASE-T1(IEEE 802.3bw)和 1000BASE-T1(IEEE 802.3bp)都使用单对非屏蔽双绞线,通过 PAM3 编码实现全双工,同时支持 PoDL 供电。选型时先看带宽需求:摄像头、雷达原始数据、域控内部骨干通常需要 1000BASE-T1;而车身控制、诊断、音频等 100 Mbps 已足够。
关键参数上,100BASE-T1 速率 100 Mbps,典型链路预算约 15 dB,线缆长度一般限制在 15 m 以内;1000BASE-T1 速率 1 Gbps,链路预算更紧,通常要求 15 m 以内且对回波损耗、模式转换更敏感。PHY 选型还要看:是否支持 RGMII/SGMII、是否内置 TSN 时间戳、是否支持 OPEN Alliance TC10 睡眠唤醒、工作温度等级(AEC-Q100 Grade 2/1)、以及是否通过 OPEN Alliance 互操作测试。
常见器件如 Marvell 88Q2112(1000BASE-T1)、NXP TJA1101(100BASE-T1)、Broadcom BCM89811 等。选型时务必确认 PHY 的 MAC 接口类型与 R-Car 侧一致,否则需要额外转换。
二、RGMII 与 SGMII:接口时序与连接方式
RGMII 是 100 Mbps/1 Gbps 常用的并行接口,使用 4 位数据线,在 1 Gbps 下时钟 125 MHz,采用 DDR(双沿)采样。RGMII 的 TX/RX 各有一组:TXC/RXC、TXD[3:0]/RXD[3:0]、TX_CTL/RX_CTL。TX_CTL 在时钟上升沿表示 TXEN,下降沿表示 TXERR;RX_CTL 上升沿表示 RXDV,下降沿表示 RXERR。RGMII 对时序非常敏感,通常需要在 PHY 或 MAC 侧加入 1.5~2 ns 的延迟(RGMII Delay),否则采样窗口会偏移。
SGMII 是串行接口,使用一对差分线收发,速率 1.25 Gbps(8b/10b 编码后),通过 SerDes 实现。SGMII 的优势是引脚少、抗干扰好,适合长距离板间连接;但需要 PHY 和 MAC 都支持 SGMII,且通常需要外部时钟或参考时钟。R-Car 部分型号的 EtherAVB 支持 SGMII,但需确认具体引脚复用。
实际连接时,RGMII 走线要等长(±50 mil 以内),阻抗 50 Ω,避免跨分割;SGMII 差分对要 100 Ω 差分阻抗,长度匹配更严格。若 PHY 与 R-Car 之间距离较远,优先选 SGMII。
三、R-Car EtherAVB/TSN MAC 配置要点
R-Car 的 EtherAVB 模块在 Linux 下通常由 ravb 驱动管理。设备树中需要正确描述 PHY 节点、MDIO 总线、RGMII 延迟等。以下是一个典型的设备树片段示例(以 R-Car H3 为例,参数为教学示例,实际以板级设计为准):
&avb {
pinctrl-0 = <&avb_pins>;
pinctrl-names = "default";
phy-mode = "rgmii-id";
phy-handle = <&phy0>;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
tx-internal-delay-ps = <1500>;
rx-internal-delay-ps = <1500>;
};
};
};
其中 phy-mode = "rgmii-id" 表示 MAC 和 PHY 内部都加延迟,这是最常见的配置。若 PHY 侧已加延迟,则用 rgmii;若 MAC 侧加延迟,用 rgmii-txid 或 rgmii-rxid。延迟值需根据实际走线和 PHY 手册调整,典型 1.5~2 ns。
TSN 配置方面,R-Car 部分型号支持 IEEE 802.1Qbv(时间感知整形)、802.1Qav(信用整形)、802.1AS(时间同步)。在 Linux 下可通过 tc 命令配置 Qbv 门控列表,或使用 ethtool 查看时间戳能力。若使用 TSN,需确保 PHY 支持硬件时间戳,否则精度无法保证。
四、链路诊断与信号完整性排查
链路不通时,按以下顺序排查:
- MDIO 通信:用
mdio-tool或ethtool -m读取 PHY ID(寄存器 2/3)。若读不到,检查 MDC/MDIO 上拉、地址配置、复位 GPIO。 - 链路状态:读 BMSR(寄存器 1)的 Link Status 位,或
ethtool eth0查看Link detected: yes/no。若 no,检查线束、连接器、对端 PHY。 - RGMII 时序:用示波器测 TXC 与 TXD 的建立/保持时间。若眼图闭合,调整延迟值。常见现象是 100 Mbps 能通、1 Gbps 不通,多为延迟不对。
- 信号完整性:测差分对回波损耗(S11)、插入损耗(S21)。1000BASE-T1 要求回波损耗在 1~600 MHz 内优于 12 dB(示例值,以规范为准)。若超标,检查连接器、线束屏蔽、PCB 走线。
- 误码率:用 PRBS 测试仪或
iperf3长时间打流,观察是否有 CRC 错误(ethtool -S eth0 | grep crc)。若 CRC 增长,说明信号质量差或干扰大。
rgmii-id 默认值,若不通再逐步调整 tx-internal-delay-ps 和 rx-internal-delay-ps,每次调整 200~300 ps,同时用 ethtool 观察链路状态。
五、集成检查清单
| 检查项 | 方法 | 合格判据(示例) |
|---|---|---|
| PHY ID 可读 | mdio-tool 读寄存器 2/3 | 返回值与手册一致 |
| 链路建立 | ethtool eth0 | Link detected: yes |
| 协商速率 | ethtool eth0 | Speed: 1000Mb/s |
| RGMII 延迟 | 示波器测建立/保持 | 满足 PHY 手册时序 |
| CRC 错误 | ethtool -S eth0 | 长时间打流无增长 |
| 回波损耗 | VNA 测 S11 | 1~600 MHz 优于 12 dB |
完成以上配置与排查后,R-Car 的 EtherAVB MAC 即可与车载 PHY 稳定配合,支撑 100 Mbps 或 1 Gbps 的车载以太网通信。实际项目中,建议在硬件设计阶段就与 PHY 厂商确认 RGMII 延迟和线束要求,避免后期反复调试。