浅谈TC10休眠唤醒规范

时间:2024-04-05 18:34:41

TC10休眠唤醒规范(OPEN Sleep/Wake-up Specification V2.1)是针对车载以太网100BASE-T1,是对IEEE 802.3bw的补充和完善。TC10休眠唤醒规范主要规范了车载以太网物理层(PHY)的休眠唤醒,包括新的服务原语的定义、PHY电源模式的定义、电源模式跳转条件定义以及时间参数定义等内容。其与车载以太网应用层的休眠唤醒UDPNM结合使用,才能真正实现车辆基于以太网的休眠唤醒策略/方法。

TC10休眠唤醒规范的学习和理解,对车载以太网休眠唤醒策略及技术方案的开发有一定的指导意义。本文接下来将用4部分对TC10进行介绍。

 

新服务原语

TC10引入并介绍三个新的服务原语,用于辅助完成PHY的休眠唤醒。

 

   Service Primitives

Description

LPS

Low Power Sleep,睡眠请求,是请求转换到睡眠的节点/网关所发送,最少64 bits

WUR

Wake-Up Request,唤醒请求,是节点/网关PHY发送,用于分发唤醒请求,最少64 bits,同时要求唤醒网络的最大跳数是4

WUP

Wake-Up Pulse,唤醒请求,是节点/网关PHY发送,用于分发唤醒请求,持续时间1ms(±0.3ms),在双绞线上的活动被partner PHY作为远程唤醒

 

表中WUR和WUP的发送方相同、且都是唤醒请求,有什么区别呢?

这里要简单说明下两者的区别:WUR是link up链路上主动唤醒节点/网关所发;而WUP是training模式下的节点/link down链路上的网关所发。

结合TJA 1101资料里唤醒转发的示意图来阐述更容易理解。下图中PHY 1和PHY 2 均处于NORMAL状态,即link up状态,网关内的PHY 3、PHY 5和节点的PHY 4、PHY 6均处于sleep状态。在图示的唤醒转发过程中,PHY 1所在的节点想唤醒PHY 4和PHY 6所在的节点,以便完成某项功能的实现。首先PHY 1请求唤醒,因为PHY 1和PHY 2处于link up状态,因此发送的唤醒信号是WUR;网关转发唤醒信号时,由于相应的链路(PHY 3和PHY 4、PHY5和PHY 6)处于sleep状态,因此发送的唤醒信号是WUP。

 

浅谈TC10休眠唤醒规范

图1  唤醒转发示意图(Source:TJA 1101 ApplicationHints)

 

 

PHY电源模式 

参照TC10并结合图2,先对PHY电源模式进行简要介绍:

 

PHY Power Mode

Description

NORMAL

正常数据传输状态,正常收发数据

SLEEP_ACK

睡眠确认状态,PHY收到对端睡眠指令(LPS)时进入

SLEEP_REQUEST

睡眠请求状态,PHY本身请求睡眠或者PHY接收对端睡眠指令(LPS)一定时间后进入

SLEEP_SILENT

睡眠静默状态,能量检测电路保持非使能以阻止虚假的唤醒毛刺,阻止通过LPS命令的相互唤醒

SLEEP_FAIL

睡眠失败状态,睡眠被终止,PHY将回到NORMAL状态

SLEEP

睡眠状态,PHY部分功能断电,等待唤醒脉冲或者软件唤醒

 

PHY电源模式主要定义了休眠唤醒过程中的各种状态,结合状态跳转的各种判定条件(定时器溢出、变量/参数值变化),完成PHY休眠唤醒的控制。

 

PHY电源模式跳转

 

浅谈TC10休眠唤醒规范

   图 2  PHY电源模式及跳转示意图(Source:OPEN Sleep/Wake-up Specification V2.1)

 

结合图2来查看下PHY各电源模式之间的跳转关系。假设起始时,链路上的2个PHY(PHY A和PHY B)均处于NORMAL模式。图中的定时器、变量/参数变化将用文字描述,以便于理解。

  1. 处于NORMAL模式的PHY A请求睡眠,进入SLEEP_REQUEST模式,发送LPS指令给PHY B,并启动睡眠请求定时器(sleep_req_timer);

  2. 处于NORMAL模式的PHY B接收到PHY A发送的LPS指令,进入SLEEP_ACK模式,并启动睡眠确认定时器(sleep_ack_timer);

  3. 如果PHY B由于传入信息而终止睡眠,PHY B回到NORMAL模式;

  4. 如果PHY B没有拒绝睡眠(即没有信息传入),则将同样进入SLEEP_REQUEST模式,并发出LPS指令;

  5. PHY B由于先收到LPS,且已发送LPS指令,PHY B将直接进入SLEEP_SILENT模式;PHY A在接收到PHY B发送的LPS指令后,也同样进入SLEEP_SILENT模式;

  6. 如果PHY A在定时器sleep_req_timer溢出时仍未收到PHY B发送的LPS指令,将进入SLEEP_FAIL模式,继而回到NORMAL模式;

  7. 在SLEEP_SILENT模式,若在sleep_req_timer溢出时,收到非zero符号(loc_act_detect = True),则PHY A/B进入SLEEP_FAIL模式,继而回到NORMAL模式;

  8. 在SLEEP_SILENT模式,若在sleep_req_timer溢出前,收到连续的zero符号(loc_act_detect = False),则PHY A/B进入SLEEP模式。

  9. 处于SLEEP模式下的PHY A/B当接收到本地唤醒或者远程唤醒信号/指令后,进入NORMAL模式,开始正常通信。

     

不同芯片供应商对TC10的支持不一样,各PHY芯片对TC10电源模式及跳转条件也都有各自的修订,在实际应用中,建议查询相应芯片的datasheet。

 

定时器参数

 

PHY电源模式状态跳转涉及的定时器参数,ECU开发过程中需要考虑这些时间参数。本表中未列出唤醒传输时间参数和唤醒转发传输时间参数,有需求者可以查阅TC10。

 

Timer

Description

Recommendation

sleep_ack_timer

SLEEP_ACK状态持续时间

8 ms

sleep_req_timer

SLEEP_REQUEST和SLEEP_SILENT状态持续时间

16 ms

 

本文仅对TC10休眠唤醒规范做简要解析,深入的研究既需要对规范理解,也需要结合实际项目来实现。同时本文讲解的主要是针对100BASE-T1版本的TC10,目前1000BASE-T1的TC10规范draft版本也已经开始讨论,大家还有什么疑问欢迎下方留言哦~

浅谈TC10休眠唤醒规范