电子说
适应汽车网联趋势,以及舒适性的需求,车载以太网将会在汽车车载网络中得到普遍应用。而基于安全考虑,往往汽车的相关产品和协议规范会将工程师们绕的晕头转向。小编在这就给各位看官解锁汽车以太网PHY睡眠和唤醒的正确姿势。
1相关命令介绍
由于IEEE802.3bw规范没有制定链路睡眠和唤醒的机制,因此,OPEN联盟制定了该规范并定义了新命令作为对IEEE802.3bw规范的补充。新命令包括LPS、WUR和WUP,这三个命令在PHY芯片手册十分常见,故而理解这些命令是十分必要的。
Low Power Sleep(LPS)
低功耗睡眠(LPS)是某节点向链路伙伴指示睡眠请求的命令。当链路已建立起连接时,LPS由请求转换到睡眠状态的节点发送。
Wake-Up Request(WUR)
唤醒请求(WUR)是某节点向链路伙伴指示唤醒请求的命令。WUR可以由节点PHY或交换机PHY发送,并通过活动链路转发。
Wake-Up Pulse(WUP)
唤醒脉冲(WUP)也是对链路伙伴指示唤醒请求的命令。但与WUR不同,WUP通过非活动链路转发唤醒请求。
该规范定义的这三个命令,用于请求断电或通过活动链路和非活动链路发出唤醒信号。
2睡眠与唤醒规范
如果暂时不需要节点的功能并为了降低功耗,可以进入睡眠模式。在睡眠模式下,除唤醒输入和活动检测外,所有内部功能都将关闭。
如果网络中有节点处于睡眠状态,当需要该节点工作时,通过唤醒并配合唤醒转发,可以灵活地使得一些节点或快速使全局节点退出睡眠模式。唤醒分为本地唤醒和远程唤醒,本地唤醒是通过唤醒引脚唤醒节点,而远程唤醒是通过双绞线远程唤醒节点。
网络管理可选择关闭网络所选节点并协调,这种可选择性链路关闭和快速全局唤醒的网络概念特别适用于汽车以太网。
2.1 睡眠转换过程规范
图1
首先假设链路已连接,此时链路双方均处于正常模式,则经历以下步骤:
如果一端PHY决定要进入睡眠模式,则PHY将先进入睡眠请求状态并将发送LPS命令;
接收到LPS命令的链路伙伴进入睡眠确认状态并启动一个“睡眠确认定时器”,如果没有设置睡眠拒绝且在该定时器超时前没有接受到数据消息,则链路伙伴也将进入睡眠请求状态并发送LPS命令;
此时PHY和链路伙伴检测到它已发送和接收LPS命令,则它转换到静音状态并最终进入睡眠模式;而如果PHY在“睡眠请求定时器”超时之前未完成握手,则PHY进入睡眠失败并返回正常模式。
2.2 唤醒及唤醒转发规范
对于唤醒及唤醒转发规范应注意以下几点:
唤醒的命令取决于链路的状态。如果链路已连接,则PHY将通过活动链路发送WUR命令;如果链路断开,PHY将发送WUP命令。如果连接尚未建立,例如因为连接建立仍在准备中,则首先建立连接,然后发送WUR命令。
多PHY设备(例如,交换机)实现了选择性唤醒转发机制。如果多PHY设备在一个端口上检测到WUR或WUP,则必须可以将请求转发到设备的其他PHY。通过断开链路(WUP)唤醒或通过连接链路(WUR)唤醒到另一个PHY。此外,还应该在唤醒事件时发生时产生指示标志。唤醒检测过程的实现留给PHY供应商,且不得超过2ms。
链路上任何传输的IDLE模式都将触发唤醒检测。如果在设计时不注意这一点,可能使得一些不期望的唤醒发生,故本文将在之后以TJA1101作为实例应用时说明。
图2
LP1、LP2、LP3可以是PHY或交换机,它们的端口P1和P2可以是MDI或唤醒I/O引脚。当LP的某一端口检测到WUP/WUR或本地唤醒时且转发使能,则在其端口通过唤醒I/O输出唤醒信号或发送WUP/WUR转发唤醒信息至另一端口,如LP1中的P2和P1的唤醒过程。唤醒转发功能使得网络具有了快速全局唤醒能力。
该规范规定PHY的唤醒过程应满足以下要求:
必须有专用I/O引脚唤醒,且引脚应支持唤醒转发输出和本地唤醒输入;
对于多PHY设计,可以连接这些引脚,且必须为高电平有效,但I/O电压留给设计者;
在本地唤醒引脚处识别唤醒请求的脉冲持续时间阈值应至少为10us,低于此值的脉冲将被忽略,必须保证检测到超过40us的脉冲持续时间,因此,本地唤醒输出脉冲必须具有至少40us的持续时间才能被可靠地检测到。
3TJA1101睡眠与唤醒应用实例
图3
它展示了TJA1101各种状态转换,转换条件限于篇幅有限不便解释未标出,它完全遵循了睡眠转换过程规范,即实现了图1所示的睡眠转换途径。
3.1TJA1101睡眠功能
TJA1101除了遵循睡眠转换过程规范外,还进行了扩展,其表现如下:
扩展了一些进入睡眠模式的其他方式,比如PHY睡眠时可以不通过握手确认;
链路伙伴可以拒绝接受LPS命令而不进入睡眠请求状态。
此外,TJA1101要成功进行睡眠转换还应注意以下问题:
在进入睡眠请求模式后,应停止链路数据传输和访问PHY寄存器操作,并保证没有唤醒事件发生(除非拒绝唤醒);
需要握手确认睡眠请求的,应使链路伙伴进行相应配置,例如禁止睡眠拒绝;
当PHY配置为SLAVE时且链路已连接时,若想主动进行睡眠转换,则还需要禁止远程唤醒,否则PHY无法进入睡眠模式,对于该点的解释将在下文介绍。
3.2TJA1101唤醒及唤醒转发TJA1101的唤醒及唤醒转发机制也遵循了该规范,但除了唤醒持续时间与唤醒检测时间可以配置等比较基础的扩展外而无明显的功能扩展,但受到该规范启发,在利用该功能时应注意以下问题:
相比TJA1101引入了待机(STANDBY)模式,但TJA1101被唤醒后进入待机模式而不会直接进入正常模式;
当PHY配置为MASTER时且处于正常模式时,若链路伙伴处于睡眠状态时,即便没有主动设置唤醒,链路伙伴也会退出睡眠模式,出现该现象的原因是因为PHY在这种情况下会发送IDLE使链路伙伴被唤醒,正如上文“唤醒及唤醒转发规范”第三点规定,如需避免该问题可使链路伙伴设置为禁止唤醒。
4结语
以上就是车载PHY的唤醒与睡眠规范概要及应用实例,尽管各半导体制造商设计的车载PHY在扩展功能上会有所差异,但万变不离其宗——规范,它们均会参照OPEN联盟制定的规范,所以掌握该规范会使得你可以更轻松利用各种车载PHY的唤醒和睡眠功能
全部0条评论
快来发表一下你的评论吧 !