分析了40个BUG后对“时间同步”的总结

汽车电子与软件 2023-08-24 07:35

01、外部授时的应用背景


智能网联汽车需要与车外系统进行信息交互。

车外系统的交互包括诸如车端向TSP的事件上报、信号上报;远控事件,车端与云端、手机端之间的信息交互;安全证书的有效期认证;蓝牙钥匙的使用期间授权;V2V之间交互;V2I之间交互等等。

广义上,车内HMI大屏显示的时间也算是车端与外部乘员系统的信息交互。

在进行信息交互时,车端的时钟系统与需要与车外的时钟系统对齐基准时间,也即遵循相同的时钟体系,以便在时间维度定位事件。


02、外部授时的场景

在某些初始场景,如整车断KL30电后上电,或整车深休眠->唤醒,车内的基准时钟会紊乱,维护为一个错误的起始时间。比如常见的1970/1/1 0:00:00。

这个时候就需要由外界的时间源给车端的时钟进行授时。


03、外部时钟源

车端通常使用的外界授时时钟源包括:GNSS原子时、NTP时间、TSP时间、NITZ时间。

GPS原子时是通过GPS卫星播发的原子时,通常视为最高精度时间源,具有最高的授时优先级;车端需要具备GPS接收机,通过GPS接收机接收到GPS信号以解算出该原子时。

NTP时间是由NTP服务端提供的网络时间;精度次于GPS原子时间,且其时钟稳定性依赖于所使用的NTP服务器的稳定性。车端需要能够通过蜂窝网络访问NTP服务器以获取到NTP时间;

NITZ为基站所提供的时间;精度次于NTP时间。车端需要具备蜂窝通信模组与基站进行空口交互以获取该时间;

TSP时间为车企自行维护平台的时间,其时间源多为NTP时间,所以本质是NTP时间。

除外部授时源外,车端自身通常使用RTC芯片在浅休眠->唤醒时用于恢复时间。


04、举个例子说明外部授时

车端的外部授时,可以类比这样的场景。

一个人喝断片了,然后被关在小黑屋里睡觉。小黑屋里没有钟表。

这个人睡醒后,不知道今夕是何年何月何日 几时几分几秒。

他怎么才能知道现在的真实时间呢?

他可以选择拿起座机电话(是的屋子里有个座机电话,视为接受外部授时的通道)给一个他信得过的人打电话,实时获知当下的时间。

于是就完成了来自外部的授时。


05、时间维持

这个人得知了真实时间,他可以选择一直不挂断电话,一直问询电话对端当下的真实时间,以便于维持小黑屋里的时钟系统。

他还有另外一种选择,就是自己维持时间的递增。

比如,这个人找到了个有电的秒表(是的屋子里有个秒表,作为维持时相对时间的工具),于是他记下当下的时间后,然后开始启动该秒表。

这个时候他就可以挂断电话了,因为如果想知道当下的时间,只要用 他记录的那个时间 + 秒表显示已经走的秒数,即可计算得到当下的时刻。


06、车内域间时间同步 

车内系统与车外系统需要对齐时间。车内各域控之间也需要对齐时间。

车内各域控制器独立分布,域控之间通过以太网、CANFD等实体总线进行联结和通信。各域控都有自己的一个时钟,且在上电运行时,都有精准维持自己时钟的能力,用于域内交互时对信号事件等标注上相应的时间戳。

可以想象下各个域控系统都有自己的一块手表,每块表都是相对比较精确地逐秒累加时间;但在同一时刻,各个系统的手表报的是不同的时间值。

在对每个信号事件标注时间戳的时候,同一时刻的时间戳是凌乱的,这样跨域间对时间敏感的业务无法正常运行,无法通过多域各自打印的日志分析排查问题。

所以车内每个域控都需要对齐时钟,也即统一时间基准。

由于获取外部时间需要诸如蜂窝通讯、GPS信号接收能力等,所以不是每个域控都会与外界授时源交互获取授时。

车端通常会选取一个主时钟,用于与外界时钟系统进行时间的对齐,也即外部授时。再由被外部可靠时钟源授时后的主时钟对域内各控制器进行车内的时间同步。


07、举个例子,说明车内域间时间同步

还是被关小黑屋的那个人A。

他发现屋里还有另一部电话。拿起来拨打后对方接了起来。原来是他另一个一起喝断片的朋友B,现在被关在了另一个小黑屋里。

这个B的小黑屋里没有外线电话,只有3部内线电话,一部是通朋友A,另外2部分别通另外两个一起吃饭喝断片的朋友C和D。

C和D分别只有一部内线电话,拿起来只能和B通话。结构如下这种:
注:一起喝断片的ABCD


外面的世界,即外部UTC时间系统

小黑屋们,即失去了正确时间基准的车内时间系统

外线电话,即可获得外部授时的能力通道

内线电话,即车内域间时间同步的能力通道

A房间,有外线+内线电话,即车内的主时钟

B房间,可以与多个房间进行通话,不同房间之间无法直接通话,即B房间为域内的网关域控

C房间和D房间,分别对应 车内的非主时钟、非网关的域控


A通过和B的内线电话告诉了B当前的时刻,B知道后,拿起和C、D两人小黑屋连线的内线电话,告知C、D当前的时间。

经过这番操作,ABCD四人完成了粗糙的时间同步。(之所以粗糙是因为未消除传输延时)。


08、车内域间时间同步故障来源 

由上图可知,末端域控节点获取同步时间的链路存在多个环节。某时间同步系统的下游节点出现错误时间(域控时间与UTC时间存在偏差),可能的原因很多,并非完全是主时钟时间源错误所致。

比如可能的原因有:

  1. 主时钟时间源错误

    1. 系统功能设计失效

    2. 硬件异常故障

    3. 软件基础库异常故障

    4. 授时时间源时间异常

    5. 车辆出现过异常工况 (如断kl30) && 无蜂窝网络无法获得ntp时间 && 封闭空间无法获得GNSS授时(此看似极端场景在研发阶段经常出现)

    6. 报文播发异常

  2. 网关转发异常

    1. 主时钟节点-网关节点物理链路/协议链路异常

    2. 网关转发报文异常

    3. 网关处理时间报文逻辑异常

  3. 下游节点接收异常

    1. 网关节点-下游节点物理链路/协议链路异常

    2. 下游节点接收报文异常

    3. 下游节点处理时间报文逻辑异常

    4. 下游节点应用层获取时间报文链路异常

    5. 下游节点应用层展示时间处理逻辑异常


作为主时钟的功能owner,比较头疼的是但凡下游节点出现时间显示异常的现象,就被按头分析。有些时候是主时钟问题,有些是下游逻辑或链路问题,有些时候是使用场景问题。

断电断网在地库,喊破喉咙也没有人来授时。

这也是我写这篇文章的初衷,希望更多的汽车工程师了解时间同步的大致逻辑,以便更好地识别问题。


09、车内时间同步的环节

在智能网联汽车上,时间同步这个业务包括如下环节:
  1. 整体
    a. 外部不同时间源授时:授时能力、优先级仲裁
    b. 域间时间同步:同步通道CAN、gPtp等
    c. 不同业务对不同时间源的选取及使用逻辑
  2. 主时钟
    a. 接受多源授时能力
    b. 多源使用逻辑
    c. 多板板间的时间同步
    d. 板上的时间维持
    e. 特殊电源模式下时间恢复机制
    f. CAN、gPtp报文播发


下面选取一些主要环节进行说明。


10、整车层面,不同业务对不同时间源的选用逻辑 

通常的设计方案,整车各域控使用相同的时间源。也即,各域控上的各个业务使用相同的时间基准,共源。

该共源时间源的最高优先级通常指定的是 最高精度的GPS原子时间。只要满足GPS时间获取的条件,就更新时间源为GPS时间。

也有部分OEM根据实际业务需要,选择TSP的时间作为时钟源。

选用TSP的时间是由于车端大部分与外部系统进行交互的时间敏感业务多需车端与TSP的时间对齐,如远控、车辆使用授权等。

TSP使用的时间源为NTP时间,精度不如GPS原子时间,但足以支撑业务。对于NTP服务器极小概率偶发崩溃等情况的应对,践行的是“要错一起错”的准则。

选用不同时间源的根本目的,是为了实现不同业务 向不同对端时间系统的对齐。

有的业务更倾向于对齐TSP时间,有的业务更倾向对齐GPS时间。所以可以考虑多源授时,多源同步的方案。


11、不同时间源切换所带来的时间跳变

不同时间源进行切换可能会带来毫秒级乃至秒级的跳变。对于从特殊工况中完成首次被授时的时间恢复,可能出现非常大幅度的跳变。

跳变可能向已经发生过的时间跳变,也可能向尚未发生的时间跳变。

回跳是个比较令人头疼的场景。会导致产生数据顺序上报、记录类的业务出现相同时间戳的不同日志;对于一些有严格时序要求的业务,会造成功能失效的情况。

所以在设计功能逻辑时,对于时序有严格要求的业务需要使用单调时钟(系统滴答)以保证时间不会会跳,避免使用墙上时钟以免出现回跳导致的失效。


12、gPTP机制 

下面大致介绍下基于gPTP(IEEE802.1AS)总线的同步机制。

gPTP是一种基于以太网总线的标准的时间同步机制。运行在MAC层,距离物理层近可以减少运行在上层所引起的延时及不确定性,减少传输时延。gptp可以实现各域节点之间ns级别的时间同步。

在gPTP域内,需要指定一个gptp节点作为主时钟(Master),其他gptp节点作为从时钟(Slave)。主时钟通过播发gptp报文的方式实现对其他从时钟节点的时间同步。

提到gPTP就少不了提到PTP。gPTP是基于PTP协议的衍生强化版,两种协议适用不同的硬件环境及用途。

PTP与gptp协议的区别。

面向工程人员的区别主要体现在报文发送内容、报文发送顺序存在区别,gptp比ptp多了delay_resp_follow_up的报文,抓包需要参考不同协议进行分析理解。

原理上的区别是gPTP增加测量了主从端口的时钟频率的偏差,即增加了时钟频率换算系数的计算,而PTP的报文交互未见此环节。

PTP与gPTP的区别详见:https://blog.csdn.net/weixin_43408952/article/details/125082433。

gPTP协议的报文流程交互相比于PTP更为复杂,报文的交互逻辑,具体可查看张大侠专栏:https://zhuanlan.zhihu.com/p/101003490。写的很清楚。


13、PTP 的钟差以及时延测量逻辑 

此处以PTP协议报文的发送内容来理解主从之间clockoffset和pathdelay的测量方法。

PTP时间同步有两个前提。一是主从分别有自己维护的时钟系统,且可准确实现相同时间步长的时钟自增;二是从时钟聪明地知道传输过程有时延,且默认双向时延相同。

报文发送流程图示意如下:

具体的交互逻辑及意图描述如下:

1.起始,主从时钟各自维护自己的时间基准;
2. t1时刻主时钟向从时钟播发sync报文,通知进行同步;从时钟在t2时刻接收到该sync报文指令;

3. 主时钟随后播发follow_up报文,报文payload中携带上一条sync播发对应的主时钟时刻;

4. 基于前述步骤,从时钟可知,在自己接收到sync报文的时刻所对应的主时钟的时刻;仅通过这两个时刻无法获知主从时钟之间的时钟差(clockoffset),因为该时间差包含了主->从的传输延迟(pathdelay)。

因此下一步即从时钟需要探测pathdelay是多少。

5. 在一定时长后(这里举例5 min,实际为ms级),在t3时刻,从时钟向主时钟发送探测pathdelay的delay_req请求;

6. 主时钟在 t4 时刻接收到从时钟发送的delay_req请求,然后发送响应报文delay_resp。该报文的payload携带了t4这个时刻;

7. 通过上述两步骤,t3 和 t4 这两个时间差包含了 主从之间的时钟差及从->主的传输延迟 pathdelay;

8. 此处默认 主->从 和 从->主 的链路传输延迟是相同的。

9. 从时钟基于上述的t1-4数据,可计算得到与主时钟之间的clockoffset 以及 主从之间的传输延迟pathdelay。

clockoffset用于从时钟的系统时钟校准,pathdelay用于以太网switch转发数据包时的时间差补足。


14、PTP机制的拟人化理解



接下来介绍下作为主时钟域控实现域内板间时间同步。


15、板间同步的必要性

主时钟需要具备多种对外播发时间同步数据的通道。介质多为CAN 和以太网,报文分别为CAN报文和GPTP报文。

CAN总线时间同步采用 Autosar的TimeSync协议机制。以太网总线时间同步采用GPTP协议机制。

CAN总线和以太网总线两条时间同步通道并行,一是互为灾备冗余,二是面向不同总线节点。

但不论通过哪条总线对外播发时间同步的消息,主时钟播发的CAN报文和gptp报文上的payload时间数据体都应该是相同的。

CAN报文播发和gptp报文播发功能通常分别由MCU和MPU承接。MCU和MPU之间需要实现有效的时间同步,以保证通过不同通道播发的时间数据是一致的。


16、板间同步的困难点 

在异常场景时间恢复时,由于MCU的快速启动及低功耗等特性,多使用MCU上挂接的RTC用于MCU系统的时间恢复。

MPU侧多用于承接外部授时源的授时。但在初始场景,MPU侧通常是需要从MCU侧快速获取时间,并基于当前场景形成判断逻辑确认进入哪一种授时源的授时,以避免多次低优先级的授时源授时而引起多次跳变。

MPU完成外部授时后,需要对MCU侧再进行时间校准以消除MCU RTC恢复MCU系统时间所引起的与MPU系统时间之间的误差。

MCU与MPU之间的时间同步存在系统延迟误差。该误差可能固定可测量出具体数值用于标定补偿,也可能随机不可测不可标定。

实车的使用工况还包含KL30断电冷启MCU RTC时间丢失、地库内无GNSS信号无法获取GPS时间、无蜂窝网络无法获取NTP授时等各种场景,还需要考虑读取RTC失败等偶发电器故障等。

所以主时钟域内的板上及板间 时间恢复、时间同步与反向同步、时间有效性判断、时间维持、外部授时源缺失、休眠期间时间维持、休眠时间写入等,都是需要考虑和设计。

一句话总结即是 MCU和MPU之间的时间同步逻辑非常复杂。是我迄今经手过的烧脑排行前几的系统功能方案。

本想稍微展开写一点,但一展开就写的不只一点了。就变成系统功能规范了。所以就先到这了。


以上即是我对时间同步的理解。存在偏颇之处烦请专家指正。


-END-

添加微信”btighteast”加入微信交流群
(仅限专业人士,添加备注单位+姓名)
汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 更多生命体征指标风靡的背后都只有一个原因:更多人将健康排在人生第一顺位!“AGEs,也就是晚期糖基化终末产物,英文名Advanced Glycation End-products,是存在于我们体内的一种代谢产物” 艾迈斯欧司朗亚太区健康监测高级市场经理王亚琴说道,“相信业内的朋友都会有关注,最近该指标的热度很高,它可以用来评估人的生活方式是否健康。”据悉,AGEs是可穿戴健康监测领域的一个“萌新”指标,近来备受关注。如果站在学术角度来理解它,那么AGEs是在非酶促条件下,蛋白质、氨基酸
    艾迈斯欧司朗 2025-02-27 14:50 380浏览
  •         近日,广电计量在聚焦离子束(FIB)领域编写的专业著作《聚焦离子束:失效分析》正式出版,填补了国内聚焦离子束领域实践性专业书籍的空白,为该领域的技术发展与知识传播提供了重要助力。         随着芯片技术不断发展,芯片的集成度越来越高,结构也日益复杂。这使得传统的失效分析方法面临巨大挑战。FIB技术的出现,为芯片失效分析带来了新的解决方案。它能够在纳米尺度上对芯片进行精确加工和分析。当芯
    广电计量 2025-02-28 09:15 99浏览
  • 请移步 gitee 仓库 https://gitee.com/Newcapec_cn/LiteOS-M_V5.0.2-Release_STM32F103_CubeMX/blob/main/Docs/%E5%9F%BA%E4%BA%8ESTM32F103RCT6%E7%A7%BB%E6%A4%8DLiteOS-M-V5.0.2-Release.md基于STM32F103RCT6移植LiteOS-M-V5.0.2-Release下载源码kernel_liteos_m: OpenHarmon
    逮到一只程序猿 2025-02-27 08:56 190浏览
  • 在物联网领域中,无线射频技术作为设备间通信的核心手段,已深度渗透工业自动化、智慧城市及智能家居等多元场景。然而,随着物联网设备接入规模的不断扩大,如何降低运维成本,提升通信数据的传输速度和响应时间,实现更广泛、更稳定的覆盖已成为当前亟待解决的系统性难题。SoC无线收发模块-RFM25A12在此背景下,华普微创新推出了一款高性能、远距离与高性价比的Sub-GHz无线SoC收发模块RFM25A12,旨在提升射频性能以满足行业中日益增长与复杂的设备互联需求。值得一提的是,RFM25A12还支持Wi-S
    华普微HOPERF 2025-02-28 09:06 119浏览
  • 一、VSM的基本原理震动样品磁强计(Vibrating Sample Magnetometer,简称VSM)是一种灵敏且高效的磁性测量仪器。其基本工作原理是利用震动样品在探测线圈中引起的变化磁场来产生感应电压,这个感应电压与样品的磁矩成正比。因此,通过测量这个感应电压,我们就能够精确地确定样品的磁矩。在VSM中,被测量的样品通常被固定在一个震动头上,并以一定的频率和振幅震动。这种震动在探测线圈中引起了变化的磁通量,从而产生了一个交流电信号。这个信号的幅度和样品的磁矩有着直接的关系。因此,通过仔细
    锦正茂科技 2025-02-28 13:30 85浏览
  • 构建巨量的驾驶场景时,测试ADAS和AD系统面临着巨大挑战,如传统的实验设计(Design of Experiments, DoE)方法难以有效覆盖识别驾驶边缘场景案例,但这些边缘案例恰恰是进一步提升自动驾驶系统性能的关键。一、传统解决方案:静态DoE标准的DoE方案旨在系统性地探索场景的参数空间,从而确保能够实现完全的测试覆盖范围。但在边缘案例,比如暴露在潜在安全风险的场景或是ADAS系统性能极限场景时,DoE方案通常会失效,让我们看一些常见的DoE方案:1、网格搜索法(Grid)实现原理:将
    康谋 2025-02-27 10:00 240浏览
  •           近日受某专业机构邀请,参加了官方举办的《广东省科技创新条例》宣讲会。在与会之前,作为一名技术工作者一直认为技术的法例都是保密和侵权方面的,而潜意识中感觉法律有束缚创新工作的进行可能。通过一个上午学习新法,对广东省的科技创新有了新的认识。广东是改革的前沿阵地,是科技创新的沃土,企业是创新的主要个体。《广东省科技创新条例》是广东省为促进科技创新、推动高质量发展而制定的地方性法规,主要内容包括: 总则:明确立法目
    广州铁金刚 2025-02-28 10:14 92浏览
  • 振动样品磁强计是一种用于测量材料磁性的精密仪器,广泛应用于科研、工业检测等领域。然而,其测量准确度会受到多种因素的影响,下面我们将逐一分析这些因素。一、温度因素温度是影响振动样品磁强计测量准确度的重要因素之一。随着温度的变化,材料的磁性也会发生变化,从而影响测量结果的准确性。因此,在进行磁性测量时,应确保恒温环境,以减少温度波动对测量结果的影响。二、样品制备样品的制备过程同样会影响振动样品磁强计的测量准确度。样品的形状、尺寸和表面处理等因素都会对测量结果产生影响。为了确保测量准确度,应严格按照规
    锦正茂科技 2025-02-28 14:05 126浏览
  • 应用趋势与客户需求,AI PC的未来展望随着人工智能(AI)技术的日益成熟,AI PC(人工智能个人电脑)逐渐成为消费者和企业工作中的重要工具。这类产品集成了最新的AI处理器,如NPU、CPU和GPU,并具备许多智能化功能,为用户带来更高效且直观的操作体验。AI PC的目标是提升工作和日常生活的效率,通过深度学习与自然语言处理等技术,实现更流畅的多任务处理、实时翻译、语音助手、图像生成等功能,满足现代用户对生产力和娱乐的双重需求。随着各行各业对数字转型需求的增长,AI PC也开始在各个领域中显示
    百佳泰测试实验室 2025-02-27 14:08 247浏览
  • Matter 协议,原名 CHIP(Connected Home over IP),是由苹果、谷歌、亚马逊和三星等科技巨头联合ZigBee联盟(现连接标准联盟CSA)共同推出的一套基于IP协议的智能家居连接标准,旨在打破智能家居设备之间的 “语言障碍”,实现真正的互联互通。然而,目标与现实之间总有落差,前期阶段的Matter 协议由于设备支持类型有限、设备生态协同滞后以及设备通信协议割裂等原因,并未能彻底消除智能家居中的“设备孤岛”现象,但随着2025年的到来,这些现象都将得到完美的解决。近期,
    华普微HOPERF 2025-02-27 10:32 199浏览
  • 1,微软下载免费Visual Studio Code2,安装C/C++插件,如果无法直接点击下载, 可以选择手动install from VSIX:ms-vscode.cpptools-1.23.6@win32-x64.vsix3,安装C/C++编译器MniGW (MinGW在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序.)4,C/C++插件扩展设置中添加Include Path 5,
    黎查 2025-02-28 14:39 118浏览
  • 在2024年的科技征程中,具身智能的发展已成为全球关注的焦点。从实验室到现实应用,这一领域正以前所未有的速度推进,改写着人类与机器的互动边界。这一年,我们见证了具身智能技术的突破与变革,它不仅落地各行各业,带来新的机遇,更在深刻影响着我们的生活方式和思维方式。随着相关技术的飞速发展,具身智能不再仅仅是一个技术概念,更像是一把神奇的钥匙。身后的众多行业,无论愿意与否,都像是被卷入一场伟大变革浪潮中的船只,注定要被这股汹涌的力量重塑航向。01为什么是具身智能?为什么在中国?最近,中国具身智能行业的进
    艾迈斯欧司朗 2025-02-28 15:45 191浏览
  • RGB灯光无法同步?细致的动态光效设定反而成为产品客诉来源!随着科技的进步和消费者需求变化,电脑接口设备单一功能性已无法满足市场需求,因此在产品上增加「动态光效」的形式便应运而生,藉此吸引消费者目光。这种RGB灯光效果,不仅能增强电脑周边产品的视觉吸引力,还能为用户提供个性化的体验,展现独特自我风格。如今,笔记本电脑、键盘、鼠标、鼠标垫、耳机、显示器等多种电脑接口设备多数已配备动态光效。这些设备的灯光效果会随着音乐节奏、游戏情节或使用者的设置而变化。想象一个画面,当一名游戏玩家,按下电源开关,整
    百佳泰测试实验室 2025-02-27 14:15 133浏览
  • 美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?‌美国加州CEC能效认证与美国DOE能效认证在多个方面存在显著差异‌。认证范围和适用地区‌CEC能效认证‌:仅适用于在加利福尼亚州销售的电器产品。CEC认证的范围包括制冷设备、房间空调、中央空调、便携式空调、加热器、热水器、游泳池加热器、卫浴配件、光源、应急灯具、交通信号模块、灯具、洗碗机、洗衣机、干衣机、烹饪器具、电机和压缩机、变压器、外置电源、消费类电子设备
    张工nx808593 2025-02-27 18:04 107浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦