Adaptive AUTOSAR 学习笔记 16 - 时间同步和网络管理
本系列学习笔记基于 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 依然可以关闭或部分关闭。
更多关于 Adaptive AUTOSAR 文章
Adaptive AUTOSAR 学习笔记 16 - 时间同步和网络管理的更多相关文章
- Adaptive AUTOSAR 学习笔记 8 - 干货小结:背景、技术、特征、架构、方法论和 Manifest
官方文档下载方式及介绍情参见 Adaptive AUTOSAR 学习笔记 2 - 官方文档下载及阅读建议. 这是 Adaptive AUTOSAR 学习笔记的第 8 篇,学习笔记 3 - 7 翻译了 ...
- Adaptive AUTOSAR 学习笔记 3 - AP 背景、技术及特征(中文翻译)
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本.本文从AUTOSAR_EXP_PlatformDesign.pdf开始,一边学习,一边顺带着翻译一 ...
- Adaptive AUTOSAR 学习笔记 6 - 架构 - 方法论和 Manifest
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 7 - 应用设计和 Manifest
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 15 - 持久化 Persistency
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...
- Adaptive AUTOSAR 学习笔记 4 - 架构
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 2 - 官方文档下载及阅读建议
目前互联网上没有太多的 Adaptive AUTOSAR 的学习资料,官方文档是一个很不错的途径.看过官方文档才发现,目前很多关于 Adaptive AUTOSAR 的文章都是官方文档的简化翻译,不如 ...
- Adaptive AUTOSAR 学习笔记 5 - 架构 - 物理视图
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- Adaptive AUTOSAR 学习笔记 10 - 执行管理
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 EM:Execution Ma ...
随机推荐
- git 强推本地分支覆盖远程分支
git 强推本地分支覆盖远程分支git push origin 分支名 --force
- SaltStack 命令注入漏洞(CVE-2020-16846)
SaltStack 是基于 Python 开发的一套C/S架构配置管理工具.2020年11月SaltStack官方披露了CVE-2020-16846和CVE-2020-25592两个漏洞,其中CVE- ...
- 除了Swagger UI,你还能选择 IGeekFan.AspNetCore.RapiDoc
IGeekFan.AspNetCore.RapiDoc 看到博客园上的这个文章,说了下Knife4J,评论里有人推荐RapiDoc,放了几个图,看了下,还不错. 心里 便有个想法,借着上次研究 Kni ...
- IP地址,InetAddress类的使用
IP地址 IP地址:InetAddress(没有构造器,通过静态方法返回) java.net包下 唯一定位一台网络上的计算机 127.0.0.1:本机localhost ip地址的分类 IPV4/IP ...
- gRPC学习之四:实战四类服务方法
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Eclipse带参数调试的方法
下面是体现带参数调试的一个代码demo,首先输出参数的数量,然后依次输出每个参数. public class ArgsEx { public static void main(String[] arg ...
- windows运行Tomcat配置自定义的jdk环境运行。
找到tomcat下的bin目录下文件 setclasspath.bat 第二行加上你想运行的jdk路径即可. set "JRE_HOME=D:\Program Files (x86)\jdk ...
- SQL 练习4
查询不存在" 01 "课程但存在" 02 "课程的情况 SELECT * from sc WHERE cid = '02' AND sid not in (SE ...
- NOIP 模拟 $25\; \rm string$
题解 \(by\;zj\varphi\) 考虑对于母串的每个字符,它在匹配串中有多少前缀,多少后缀. 设 \(f_i\) 表示 \(i\) 位置匹配上的前缀,\(g_i\) 为后缀,那么答案为 \(\ ...
- join控制线程的执行循序 T1 -> T2 -> T3
/** * 控制线程的执行循序 T1 -> T2 -> T3 * join实现 */ public static void join(){ Thread t1 = new Thread(( ...