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。

图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电源模式跳转

图 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休眠唤醒规范相关推荐

  1. 浅谈Python代码风格规范 PEP8

    浅谈Python PEP8 本文只简要谈及一下,python的编码风格指南-PEP8. PEP8 全称<Python Enhancement Proposal #8>译作:8号Python ...

  2. 浅谈Linux内核编程规范与代码风格

    1 缩进 Tab的宽度是八个字符,因此缩进的宽度也是八个字符.有些异教徒想让缩进变成四个字符,甚至是两个字符的宽度,这些人和那些把 PI 定义为 3 的人是一个路子的. 注意:缩进的全部意义在于清晰地 ...

  3. 浅谈TC8数据链路层测试

    当今时代,智能汽车已成为一个炙手可热的话题,各种先进汽车电子技术蓬勃发展,比如自动驾驶.V2X.OTA......这些新技术的背后都离不开车载以太网通信技术的支持.其中数据链路层实现了链路管理.虚拟局 ...

  4. 休眠后gpio状态_浅谈Digi XBee模块的休眠模式

    浅谈Digi XBee模块的休眠模式 2020-3-25 Digi XBee S2C模块,如果仅连接电源线可以测得,在待机情况下,大约是10.5mA左右的电流,在休眠时的功耗可以低到0.5uA.可以知 ...

  5. java变量命名规则_浅谈JAVA开发规范与开发细节(上)

    开发团队在开发过程中,由于每个人的开发习惯,以及对于技术的理解深浅程度不一,往往一个项目在开发过程中,代码的质量,代码的风格都不尽相似,所以有一份适合团队的代码规范是非常有必要的,而一个团队的代码规范 ...

  6. 浅谈 JavaScript 编程语言的编码规范--转载

    原文:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/ 对于熟悉 C/C++ 或 Java 语言的工程师来说,Jav ...

  7. 浅谈 TypeScript【下】-- TypeScript 语言规范与基本应用

    文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在 [浅谈 TypeScript[上]]中,简单讲述了关于JavaScript静态类型检查工具Flow的用法等.可以看到,我们接下来讲述的TypeS ...

  8. 外架小横杆外露长度规范要求_浅谈提高悬挑架质量、安全及视觉效果的管理方法...

    摘 要:随着高层建筑日趋增多,脚手架在施工时是必不可少的,而悬挑式脚手架由于不受层高和场地限制的特点在高层建筑施工中被广泛应用.相对于落地式钢管脚手架,悬挑式脚手架具有投入低.周转快.节约工期等优点. ...

  9. 浅谈 JavaScript 编程语言的编码规范

    转自:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/?ca=drs-tp4608 developerWorks 中 ...

最新文章

  1. 生成有关 SQL Server 2005 Analysis Services 多维数据集数据源的本地化报表
  2. pxe网络安装操作系统 原理与详细过程
  3. asp开发中存储过程应用全接触 _asp技巧
  4. php smart模板,vaphp整合smart模板有关问题
  5. OkHttp3中的代理与路由
  6. axure源文件_Axure教程:实现网易云音乐有声播放效果
  7. navigator 携带参数_福州振动时效参数视频,振动时效设备用途
  8. Python笔记-假设检验之单样本T检验
  9. instr和substr函数
  10. PNP : Work Cound Frequence
  11. 2012考研数学二第(11)题——链式法则偏导数
  12. Linux软件漏洞修复指南
  13. idea中创建scala的worksheet第五章
  14. 口袋之旅html5超强账号,口袋之旅好号和密码
  15. 阅读查询计划:楼梯SQL Server索引级别9
  16. 2022年危险化学品经营单位主要负责人考试题模拟考试题库及答案
  17. 抖音一个老人和一个机器人歌曲_抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲...
  18. 力求颜值与干货齐高,出品人深度解读三大专场
  19. 最优控制问题matlab编程实例,matlab实现解决最优控制中的内点约束问题
  20. Linux驱动之设备树

热门文章

  1. vue使用iview中Upload上传组件
  2. 用Java描述世界:数据
  3. 优达学城《无人驾驶入门》学习笔记——卡尔曼滤波器实现详解
  4. coredns服务器配置
  5. Wannafly Winter Camp Day 3 G排列(贪心)
  6. 万能遥控程序c语言,单片机解码万能红外遥控器C51程序
  7. 攻防世界web新手fileclude
  8. artifactory-pro7 部署以及ladp、nginx配置
  9. 关于Mysql查询时间粒度DATA_FORMAT使用说明
  10. java多线程之Callable接口