本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf。作者:Zijian/TENG
原文地址(获取最新更新):https://www.cnblogs.com/tengzijian/p/15221138.html
缩写
- TS:Time Synchronization
- TBR:Time Base Resources
- NM:Network Management
- SM:State Management
- PN:Partial Network
11 时间同步
11.1 概览
不同应用/ECU之间的时间同步(TS)非常重要,尤其是在分布式系统中,需要确定不同事件的相关性时:要么能及时追踪这些事件,要么能在精确的时间点触发这些事件。
因此,AP 向应用提供了时间同步 API,用于取得和其他实体、ECU 同步的时间信息。
时间同步功能由不同的时基资源(TBR,Time Base Resources)提供,时基资源在系统中以预编译的配置形式呈现。
11.2 设计
AP 中用到下列三种技术来满足时间同步需求:
- CP 中的 StbM
- chrono 库 - C++11 的
std::chrono
或boost::chrono
- POSIX 时间接口
经过对这些模块的接口和其所覆盖需求的分析,AP 决定设计一套包含 CP StbM 功能,但遵循 std::chrono 风格的时间同步 API。
时间同步模块考虑了以下功能:
- 启动行为
- 构造行为(初始化)
- 正常操作
- 错误处理
今后的 release 中还会考虑:
- 关闭行为
- 错误分类
- 版本检查
11.3 架构
对每个时基资源 TBR,应用都可以访问其特定的类实现。
通过该句柄,应用可以查询提供的时基类型(上述五种类型之一),然后获取该时基类型的特定类实现。应用还可以通过该句柄直接创建 timer。
TS 模块不提供将 TBR 和其他节点/ECU 时基同步(如 network time protocol 或 time agreement protocol)的方法。
时基资源 TBR 的实现可能有一个专门的周期功能,从时间同步以太网等模块取得时间信息,来同步 TBR。
应用程序使用由 TBR 提供和管理的时间信息。TBR 充当时基代理,提供对同步时基的访问。这样 TS 模块从“真实”时基提供者中抽象出来。
12 网络管理
12.1 网络管理算法概览
AUTOSAR NM 基于去中心化的网络管理策略,即每个网络节点仅依据通信系统中接收/传输的网络管理报文,独立地执行活动。
AUTOSAR NM 算法基于周期性的 NM 报文。NM 报文通过多播消息发送,集群中所有的节点都会接收。
收到 NM 报文意味着发送节点想要保持网络集群处于唤醒状态。如果某个节点想要进入睡眠模式,它会停止发送 NM 报文,但如果仍然收到来自其他节点的 NM 消息,则暂缓进入睡眠模式。最终如果所有的节点都不再发送 NM 报文(意味着所有节点都想进入睡眠模式),则经过一定时间(定时器超时),所有的节点都将进入睡眠模式。
如果 NM 集群中的任意节点需要总线通信,可以开始发送 NM 报文,唤醒整个 NM 集群。
12.2 架构
AP 规范描述了 AP 网络管理的功能、API 设计和配置,无关底层通信媒介。目前只考虑了以太网,但该架构独立于总线技术。
网络管理 NM 旨在由状态管理 SM 控制,因为部分网络 PN 的控制需要协调相关应用集(通过 SM 控制的 Functional Group State)。本章内容尚未反映该设计。
其主要目的是协调底层网络(局部网络 PN,VLAN 或物理通道)在内部协调状态机的正常模式和总线睡眠模式的转换。
它向状态管理 SM 提供了服务接口,用于请求/释放网络及查询状态。它协调不同实例(网络句柄)的请求,并通过网络提供聚合的机器请求。
如果使用了局部网络 PN 功能,则 NM 消息可以包含 PN 请求,ECU 可以忽略请求其他 PN 的 NM 报文。在这种情况下,即使其他 PN 仍有通信,ECU 依然可以关闭或部分关闭。