本文主要是介绍AUTOSAR_EXP_PlatformDesign - 11 Time Synchronization,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
AUTOSAR_EXP_PlatformDesign - 11 Time Synchronization
【translated by sky8336, 2019.06.09, Shanghai】
11 Time Synchronization
11.1Overview
当跨分布式系统的不同事件之间的有关联时,不同应用程序和/或ECUs之间的时间同步(TS)是至关重要的,这样既可以及时跟踪这些事件,也可以在准确的时间点触发它们。
因此,为应用程序提供了一个时间同步API,以便它能够检索与其他实体/ ecu同步的时间信息。
然后,时间同步功能通过不同的“时基资源”(从现在开始称为TBR)提供,这些“时基资源”通过预构建配置出现在系统中。
11.2Design
对于自适应平台,考虑了以下三种不同的技术来满足所有必要的时间同步需求:
- 经典平台的StbM
- 库chrono -要么std::chrono (c++ 11),要么boost::chrono
- 时间POSIX接口
在分析了这些模块的接口和它们所包含的时间同步特性之后,我们的动机是设计一个时间同步API,它提供了一个围绕经典平台的StbM模块的功能,但是具有std::chrono风格。
时间同步模块考虑以下功能方面:
- 启动行为(startup behavior)
- 构造函数行为(初始化)
- 常规操作
- 错误处理
在未来的版本中将考虑以下功能方面:
- 关闭行为
- 错误等级(Error Classification)
- 版本检测
11.3Architecture
应用程序将对每个Time Base资源(TBR)访问不同的专门化类实现。
通过这个句柄,应用程序将能够查询所提供的时间基类型(上面给出的五种类型之一),然后为该类型的时间基获得一个专门的类实现。通过这个句柄,应用程序还可以直接创建一个计时器。
TS模块本身不提供将TBRs同步到其他节点和/或ecu上的时基的方法,如网络时间协议或时间一致协议。
TBRs的实现可能具有专用的循环功能,该功能从时间同步以太网模块或类似的模块检索时间信息来同步TBRs。
应用程序消耗由TBRs提供和管理的时间信息。因此,TBRs充当时间基代理,提供对同步时间基的访问。通过这样做,TS模块从“真实的(real)”时基提供者中抽象出来。
------------------------
【end-2019.06.09】
这篇关于AUTOSAR_EXP_PlatformDesign - 11 Time Synchronization的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!