2. 唤醒时序概念:为什么需要唤醒?

做 T1 PHY 的唤醒时序分析,先得搞清楚一件事:为什么要有唤醒这一说?

说白了,汽车电子系统里大部分节点平时都在睡觉。你想想看,一辆车熄火之后,ECU、传感器、网关这些模块如果还全功率运行,电瓶很快就亏空了。我早年调试过一个车载网关项目,就是因为睡眠/唤醒逻辑没处理好,车子放一晚上就启动不了——那教训太深刻了。

2.1 低功耗模式:为什么非睡不可?

T1 PHY 是车载以太网的物理层器件,它本身支持多种低功耗模式。目的是在链路空闲时把功耗从几十毫瓦降到微瓦级别。

典型的低功耗模式包括:

模式功耗典型值链路状态唤醒延迟
正常模式30–50 mW数据收发—
静默模式5–10 mW只维持偏置几微秒
深度睡眠1–5 µW完全断开毫秒级
待唤醒模式50–100 µW监听唤醒信号10–100 µs

嗯,这里要注意:深度睡眠功耗最低,但唤醒延迟也最大。如果你做的是安全气囊控制器,显然不能容忍毫秒级延迟。所以 T1 PHY 针对不同应用场景设计了多种睡眠深度,我个人习惯根据节点的实时性要求来选择。

2.2 唤醒信号的作用

唤醒信号,本质上是一个从低功耗状态跳转到正常工作状态的触发条件。它必须满足两个基本要求:

  • 能被处于极低功耗下的接收器检测到(功耗预算极其有限)
  • 不误触发(避免系统被蹭醒)

我在项目中遇到过最头疼的问题,就是电源线上的噪声被 PHY 误判为远程唤醒信号,导致整辆车的 CAN 网络每隔几秒就唤醒一次,电流从 5 mA 飙升到 300 mA。最后花了两周,才在唤醒检测阈值上加了迟滞滤波器。

核心观点: 唤醒信号不是“有电压就行”,而是必须满足特定的时序约束——脉冲宽度、幅度、边沿斜率、回读确认。T1 PHY 的唤醒序列如果时序不对,节点能进水却醒不过来。

2.3 唤醒信号的分类

从信号来源和物理形式两个维度,我们可以把 T1 PHY 的唤醒信号分为以下几类:

按来源分

  • 本地唤醒: 由本节点自身的条件触发(例如车门解锁、点火信号、LIN报文等)。PHY 通过专用唤醒引脚(WAKE_IN)接收数字电平变化。
  • 远程唤醒: 由同一总线上的其他节点发送的特定模式(比如一串特定的脉冲序列或曼彻斯特码)。接收 PHY 通过差分总线检测。

按物理形式分

  • 边沿唤醒: 检测电平跳变(上升沿或下降沿)。简单,但易受干扰。
  • 脉冲宽度唤醒: 只有在信号持续超过某个时间窗口后才确认唤醒。比如 T1 规范里定义的唤醒脉冲必须保持 t_pulse 宽度(典型值 10 µs)。
  • 模式匹配唤醒: 接收一串预定义的 bit 序列,只有完整匹配才唤醒。安全等级最高,但实现复杂、消耗静态功耗多。

你想想看,如果只用简单的边沿唤醒,那么任何一个尖刺噪声都能把休眠的 ECU 叫醒。所以我接手过的量产项目,几乎清一色采用脉冲宽度唤醒 + 滤波窗口,兼顾低功耗和抗干扰。

避坑提醒: 我曾经在一个 ADAS 项目中,为了省电选择了极窄脉冲唤醒(1 µs),结果在 EMC 测试时频繁误唤醒。后来不得不改回 10 µs 标准宽度,并额外增加了 3 次采样确认。所以别轻易压缩脉冲宽度,要留足够的抗干扰余量。

2.4 唤醒信号的时序参数

T1 PHY 的唤醒时序通常包含以下关键参数(以 Open Alliance 标准为例):

参数符号最小值典型值最大值
唤醒脉冲宽度t_wake_pulse8 µs10 µs15 µs
唤醒脉冲间隔t_wake_gap4 µs5 µs10 µs
唤醒序列长度n_pulses4616
唤醒确认时间t_wake_confirm100 µs200 µs500 µs

这些不是摆设。我曾经遇到过芯片 datasheet 里写着“唤醒脉冲宽度最小 5 µs”,结果样片在 85 °C 下测试死活唤不醒。后来翻勘误表才发现——工艺角下低功耗比较器响应时间漂移了 3 µs。从那以后,我设计唤醒时序时至少留 50% 的余量。

2.5 知识结构图:唤醒信号分类与作用

唤醒信号分类与作用(T1 PHY) 唤醒信号 按来源分类 按物理形式分类 本地唤醒 远程唤醒 边沿唤醒 脉冲宽度唤醒 模式匹配唤醒 唤醒信号的作用: 将PHY从极低功耗状态(µW级)切换回正常收发状态(mW级)。 必须携带足够能量且满足时序约束,才能克服睡眠状态下的检测盲区。 关键参数:t_wake_pulse (8–15 µs) · t_wake_gap (4–10 µs) · n_pulses (4–16)

2.6 唤醒时序设计的几个原则

基于以上概念,我总结了几条实战经验:

  1. 先确定系统允许的最大唤醒延迟,然后反向选择低功耗模式。延迟预算在 100 µs 以内的,不要用深度睡眠。
  2. 唤醒信号必须和噪声在时域上能区分开。例如用脉冲宽度 + 最小间隔,噪声通常不具备这么稳定的周期特性。
  3. 本地唤醒引脚要加 RC 滤波,硬件去抖。我习惯用 1 kΩ + 100 nF,时间常数约 100 µs,配合软件再确认一次。
  4. 远程唤醒的脉冲序列最好在 PHY 内部做至少 3 次采样,防止单次误判。

唤醒时序的概念并不复杂,但一旦匹配不好,整个网络的低功耗性能就会崩掉。说白了,它就是一个“从睡到醒”的握手协议,只不过协议的两端分别是硬件状态机和你的设计容忍度。

嗯,这一节先聊到这里。记得:T1 PHY 的唤醒不是简单的“电平来了就工作”,而是一个有时间窗口、有幅度阈值、有模式校验的精确过程。错过任何一个细节,都有可能在整车的休眠电流测试中翻车。