汽车的时间都去哪儿了

说起时间,你会先想到什么?是瞥一下电脑屏幕右下角,按下手机锁屏键看看那亮光的数字,抑或是打开视频APP看看那个跨年演讲?如果在前面加个定语,「汽车的时间」,你又会想到什么呢?是液晶仪表上的本次行驶时长,抑或是奔驰中控面板上的万国时钟?
实际上,时间作为人机交互的小灵通和多事件协同的指挥棒,汽车上到处能看到时间的身影。下面我们来看几个典型的应用场景。
图片
(图1:汽车中控面板上的实体钟表)
汽车上关于时间的Use Case
Use Case1: 正时系统
虽然说起汽车上的时间,人们通常会想到电子和软件,但事实上时间概念的出现早于汽车的发明。而从汽车发明到现在,一直处于汽车核心技术地位的发动机,就一直是时间同步的践行者。发动机的每个冲程与其进排气时刻、点火时刻都息息相关。如何保证他们都能做到时间同步,步调一致呢?优秀的机械工程师以旋转的曲轴作为主时间节点(Time Master),通过凸轮轴和正时皮带(链条)来实现,让相关零件都能在正确的时间和正确的位置做正确的事。
图片
(图2:正时链条示意图)
Use Case2: 智驾功能付费时间
在当前汽车智能网联化迅猛发展的环境下,不管是传统巨头还是新势力,都推出了酷炫的智能驾驶和座舱功能。而不少厂家也随之推出了按月付费订阅软件功能的新玩法。那么假设用户仅支付了5月份的费用,但不续费。那么车子是怎么知道功能是否过期了呢?通过联网?如果到了五月底,用户把车载网络全部关掉,并且把车上系统时间调回到五月初,是否就能接着再用一个月?答案当然是不行的,优秀的工程师们早就想到了这些问题。至于其原理,我们在下文再进一步探讨。
图片
(图3:ADAS功能按月付费)
Use Case3: 传感器信息融合
多传感器融合是智能驾驶赛道下的火热话题,而时间同步则是其中绕不过的技术点。异构传感器(例如毫米波雷达和摄像头)的测量周期一般都不一样。而目前流行的架构中,传感器融合算法并不在传感器ECU上运行,而是放在域控制器或者中央计算单元中,这也会带来不同的传输时延。如下示意图,融合算法在处理传感器数据的时候,可能需要按传感器的时间戳来预测相应的数据变化,以对齐时间维度。实际上智能驾驶领域用到的传感器远不止2个,像IMU、RTK、摄像头、激光雷达、轮速传感器等,如果不能对齐时间维度,则很容易差之毫厘谬以千里。
图片
(图4:目标融合与传感器测量时间示意图)
Use Case4: 音视频同步
智能驾驶和智能座舱的飞速发展,让汽车上的音视频日益丰富,视频源和音频源的产生也各式各样。例如倒车雷达的滴滴声和倒车影像中的距离线提示就需要时间同步,如果车离障碍物已经很近,但滴滴声还因为滞后而不紧不慢,则是非常不好的用户体验。
时间功能需求
说了上面几个Use Case,接下来我们再来归纳下这些Use Case实际上的需求。
直接需求1:节点间同步时间
你有一个手表,我有一个手表,这两个手表的时间需要是相等或者有对应关系(比如时区),才有意义。这就是「对手表」的需求。在汽车上的时间也一样,节点之间通过时间戳等信息来协调交流,如果打时间戳的基准不一样,则失去意义。所以节点之间的时间同步是一个直接的需求。
直接需求2:节点内维护时间
对好了手表,还得需要手表自己跑的准,因为不可能一直都在对手表。比如一天对一次手表,那么这一天内,手表起码不能跑偏太多。这就是「手表」维护时间精度的需求。汽车上的时间也类似,ECU内部维护时间的时钟会影响精度,对时间处理的时长也会影响精度。例如雷达追踪到物体在t1时刻,但内部获取时间戳的软件模块跑了1秒才生成时间戳,那么即使时钟本身没有误差,时间戳也有了1秒的误差。
间接需求1:功能安全
在汽车上,有了一个功能,往往就会有对应的功能安全要求,时间这个功能也不例外。例如上文提到传感器融合的例子,如果有电子电器故障,导致传感器时间戳失效,那么也得有相应的检测机制和安全响应,否则按照错误的时间戳计算出来的车控数据,可能会对驾驶员造成威胁。
间接需求2:网络信息安全
网络信息安全也是智能汽车的「需求常客」。如果攻击者通过伪造时间,延长付费功能的使用时间,会造成公司的经济损失。如果恶意篡改关键传感器的时间戳,可能还会危害行车安全。所以功能安全和网络信息安全是关于汽车时间功能的两个重要需求。
几种汽车上的时间
上面抽象出来的4个需求,实际上在不同的应用场景下,可能会有不同的组合,也会有不一样的细节需求。比如场景A可能对同步精度需求是1ms,但是对功能安全和信息安全没有要求。场景B可能需要这个时间能让驾驶员看懂,而场景C的时间只需要机器之间通讯就行。为了针对不同应用场景下的不同需求,汽车上往往也有多种时间。但是不管哪种时间,它们本质上都可以用这个公式来描述:y=kx+b。没错,就是最简单的线性方程,因为时间本身就是线性的。k对应的是计时的频率,时间走的快慢。而b对应的是偏差offset。
时间1:UTC
UTC是协调世界时,全称Universal Time Coordinated,是最主要的世界时间标准。它的k值非常准确,是基于铯-133原子基态跃迁辐射振荡的。但我们实际所处的宇宙其实没有这么完美,比如地球自转是在默默变慢的。所以隔若干年就会加入闰秒,也就是修改b值,来抵消与现实世界的偏差。UTC也是我们在汽车上最常见的用于人机交互的时间基准,许多其它时间都是在UTC的基础上衍生的。
时间2:北京时间
UTC是统一的时间标准,所以UTC是没有时区的。但是以UTC为基础,通过时区偏移运算(亦即改变b值),就可以得出我们电脑或者手机上的地区时间。所谓北京时间,其实就是东八区时间,可以通过UTC+8h来计算。我们电脑设置时间常常能看到这个公式。
图片
(图5:UTC与北京时间示意图)
时间3:GPS时间
GPS卫星信号中也包含一个时间,它的k值和UTC一样,在1980年的时候也和UTC对齐过,但是在那之后就没有加入闰秒了。所以GPS时间比UTC快了若干整数秒。在汽车上,GPS模块接收到GPS时间后,一般也会处理成UTC时间再和其他ECU通讯授时。
时间4:Unix或POSIX时间
它本质上还是UTC,只是UNIX或类UNIX系统使用的时间表示方式。一般定义为从UTC 的1970年1月1日0时0分0秒(这个时刻也称Epoch)起至现在的总秒数。随着汽车智能网联化发展,Linux或者POSIX系统在智能座舱和智能驾驶领域应用的越来越多,基于Epoch的时间表示也越来越常见。
(图6:Unix时间和UTC对应关系)
时间5:用户自定义时间
汽车作为消费品,当然要留给用户足够的个性化定义空间,时间也不例外。汽车中控大屏上一般也会留出选项,让用户自定义设置时间。比如有些用户就是享受时间任我调配的感觉,喜欢把中控时间调早半小时。
时间6:车内精确时间
以上提到的几种时间,本质上都是带有人机交互性质的,也就是需要给人看的。而且它们都需要一直维护,也就是说即使汽车熄火了,用户回家睡大觉了,但汽车上的时间还要维持。但有些场景下,时间只用给车上的机器看,不需要给人看。例如发动机正时和传感器融合的场景下,只需要节点之间用同一个时间基准就行,但是时间的分辨率和精度要求很高。这就是车内的精确时间。这个时间一般由汽车发动上电开始从零计时,汽车熄火断电后也不会持久化保存。
汽车上的时间同步架构
上面说了几种时间,那么它们在车上各个ECU之间是怎么同步的呢?下图是一种典型的车载网络和时间同步架构示意图。车上的中央网关充当车上的时间主节点,类似交响乐团里的指挥,其他车上ECU都是听它的。
对于车内精准时间,就是由主时间节点检测到上电之后开始从0计时,并同步给各个边缘ECU或者域控制器。域控制器则类似「二道贩子」,会把主节点传来的时间调整后再同步给挂在它下面的ECU。车上控制器之间的时间同步机制根据总线类型的不同,也略有差异。常见的以太网网络会使用gPTP(Generalized Precision Time Protocol)协议,基于CAN网络或FlexRay的则一般会使用AUTOSAR定义的CAN和FlexRay同步规范。
虽然中央网关主时间节点在车上是老大哥,但对于UTC和GPS时间等,它还得听外界的,与云端或者GPS对齐。下图例子中,中央网关就通过TBox与云端通讯,通过NTP (Network Time Protocol)协议授时UTC。
图片
(图7:一种车载时间架构)
这几种时间同步协议,因应各自网络传输特性都做了相应设计,这里我们不展开细节。但是宏观的来看,其本质还是通过握手信息来调整上文提到的线性方程中的k和b值。如下图所示,同步过程就是双方传递时间戳,然后校准。不同协议的握手次数和校准公式略有不同。
图片
(图8:四种时间同步关键握手步骤示意图)
如果用拟人化的口吻来抽象理解同步过程,就像是下面的这个聊天记录。
图片
(图9:时间同步握手过程示意图)
而时间同步相应的功能安全和网络安全要求,则可以在握手过程实施对应手段来满足。比如在握手消息里加上校验和(Checksum)和Rolling Counter,实现时间同步握手的端对端保护。又或者在握手消息里加上数字签名,通过验证签名来确保时间没有被篡改。
写在最后
时间是一个抽象浪漫而又实用高效的理念,乍一听可能觉得和汽车关系不大,但实际上汽车里到处是时间的影子。本文从汽车上关于时间的应用场景出发,分析了实际需求,介绍了几种时间和一种车载时间架构,着重介绍的更多是功能和软件层面的汽车时间。现实车辆上的这些功能当然都需要相应的硬件器件作为基础和依托,也就是汽车上有很多看得见和看不见的「钟表」在跑着。这些硬件也都需要满足汽车工业要求的可靠性规范。所以汽车上的时间看似简单,但却是一个综合的系统工程,需要多领域交互。希望本文能帮助各位同仁对汽车上的时间加深理解,亦请各位专家不吝指正赐教。
参考来源:
1.https://cdn.vector.com/cms/content/know-how/_technical-articles/Ethernet_Timesync_Automobil-Elektronik_201608_PressArticle_EN.pdf#:~:text=The%20princi%20pal%20methoDS%20for%20time%20synchronization%20in,Networking%29%20Task%20Group.%20The%20Global%20AUTOSAR%20Time%20Concept2.Specification of Time Synchronization (autosar.org)
3.https://grouper.ieee.org/groups/802/1/files/public/docs2019/dg-potts-automotive-time-sync-use-case-0319-v01.pdf
欢迎加入Auto Byte社区
Auto Byte 为机器之心推出的智慧出行垂直媒体,关注自动驾驶、新能源、芯片、软件、汽车制造和智能交通等方向的前沿研究与技术应用,透过技术以洞察产品、公司和行业,帮助汽车领域专业从业者和相关用户了解技术发展与产业趋势。
欢迎注标星,并点击右下角点赞在看