Fig 1

AutoSar CP中的时间同步部分主要由Stbm,TimeSyncOverEth和底层的以太网模块组成。

底层的以太网模块主要负责收发报文和时间戳。

如果系统设计决定使用网卡NIC的时钟作为全局的时钟源,则网卡硬件需要在Sync等报文进出网口的时候,使用自身的时钟给这些报文打时间戳,并把这些时间戳提供给上层的TimeSyncOverEth。

要注意这里打时间戳不是说把时间戳打到Sync等报文上。而是记录下这个时间点,并通过别的接口单独提供给TimeSyncOverEth

系统设计不使用网卡NIC的时钟作为全局时钟源的情况暂时不讨论。

Stbm和TimeSyncOverEth模块共同完成1588或802.1as协议。总的来说,TimeSyncOverEth偏重于报文的收发和从报文中计算出时间值。Stbm偏重于将TimeSyncOverEth计算出来的时间和ECU的具体结合。

Fig 1展示了这些模块之间的关系,Eth NIC负责通信和使用自身的HwClock对报文打时间戳。同时VirtualLocalTime也可以使用Eth NIC中的HwClock作为时钟来源。Virtual Local Time中的HwCounter会从Eth NIC中读取HwClock的值。SwCounter的作用就是扩展HwCounter的计数范围,所以基本上将Virtual Local Time中的SwCounter和HwCounter一起看作一个大寄存器就好了。

注意VirtualLocalTime和NIC中的HwClock都没有具体的UTC时间信息,只是简单的timer读数。

TimeSyncOverEth模块收到各个报文后,根据Sync中的时间值,FollowUp中的correction和相应的Pdelay值,计算出真实的时间值,并把这个时间值和相应的时间戳(即相应的Sync报文到达网口的时候NIC记录下的timer读数)给到Stbm。计算过程详见1588/802.1AS。

Fig 2

Stbm的内部逻辑可综合参考Fig 1和Fig 2。我觉得我画的Fig 1比autosar的Fig 2更容易理解一点。

Stbm内部主要的概念有三个,一个是Virtual Local Time,一个是Synchronized Time Base,一个是Offset Time Base。

上面已经说过,Virtual Local Time没有具体的UTC时间,只是一个软硬结合的大计时器,只能用来记录时间的流逝(也就是计时器读数的增长),而不能表示具体的时间。

具体的UTC时间的表示是Synchronized Time Base和Offset Time Base维护的。其中Offset Time Base的时间是从Synchronized Time Base的时间加上一个offset得到的,其余没有什么特别。所以初步理解的时候主要看Synchronzied Time Base。下面简称Time Base。

Autosar的Stbm允许维护32个不同的Time base,主要是备份用。在系统层面,一个Timebase会对应系统中的一个Time domain。

各个Timebase的主要任务就是维护Virtual Local Time和具体的UTC时钟之间的关系。不同的time base会和不同的time master同步,不同的time master频率不一样,所以不同time base对时间的“理解”也不一样。这里的“理解”包含两个意思,一个是时间的绝对值,一个是时间走的快慢。比如,time base 1认为virtual local time +10,UTC时间就+1ms,time base 2认为virtual local time +12,UTC时间+1ms。这样的区别是因为time base 1和time base 2同步到了不同的time master上了。

Fig 3

Fig 3对于理解Stbm的工作原理更有帮助。

在Fig 3中可以看到,NIC在timer读数=8的时候收到了Sync报文,最终TimeSyncOverEth将“time = 10.11,LocalTime = 8”这样的信息给到了Stbm。所以现在Stbm的TimeBase1知道,“在Virtual Local Time =8(同时NIC HwClock也是8)的时候,实际时间是10.11”

当App向TimeBase1查询时间(Stbm_GetCurrentTime())时,TimeBase1发现现在Virtual Local Time是19(19要怎么读到autosar没定义,我理解是非标的操作)。

所以current time = 10.11 + (19-8)* factor。这就是autosar时间同步机制的基本思路。AP和CP一样的。

在autosar的设计中,时钟的调谐其实就是调上面公式的factor,也就是说autosar的设计是通过微调factor来使slave的频率和master一致。但是如果某个ECU选用的时钟源是可调的,比如PLL,那也可以在硬件层面调整频率。但那样的话就不能支持多time domain的系统设计了。

cpld xilinx 定义全局时钟_AutoSAR中的时钟同步机制相关推荐

  1. cpld xilinx 定义全局时钟_时钟相关概念

    欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群 一.时钟相关概念 理想的时钟模型是一个占空比为50%且周期固定的方波.Tclk为一个时钟周期,T ...

  2. cpld xilinx 定义全局时钟_FPGA/CPLD设计工具:Xilinx ISE 5.x使用详解

    第1章 ISE系统简介 1.1 FPGA/CPLD简介 1.1.1 FPGA/CPLD的基本原理 1.1.2 FPGA/CPLD的特点 1.2 FPGA/CPLD的设计流程 1.3 ISE系列产品的新 ...

  3. cpld xilinx 定义全局时钟_FPGA/CPLD设计工具:Xilinx ISE使用详解

    第1章  ISE系统简介  1 1.1  FPGA/CPLD简介  1 1.1.1  FPGA/CPLD的基本原理  2 1.1.2  FPGA和CPLD的特点  7 1.2  FPGA/CPLD的设 ...

  4. cpld xilinx 定义全局时钟_Xilinx+CPLD介绍

    Xilinx CPLD 系列产品 1.1 简 介 Xilinx CPLD 系列器件包括 XC9500 系列器件. CoolRunner XPLA 和 CoolRunner- Ⅱ系列 器件. Xilin ...

  5. 大白话总结类《王者荣耀》等MOBA游戏中的网络同步机制

    案例游戏: <英雄联盟> <王者荣耀>等PVP游戏 实际解决方案: 同步机制:不锁步的帧同步 网络:传输层的UDP配合应用层的可靠性检验 以下从问题出发讨论解决方案. 主要问题 ...

  6. 游戏中的网络同步机制——Lockstep(转载)

    原文转自http://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockstep 0 ...

  7. 游戏中的网络同步机制(一)帧同步Lockstep

    转载自:https://www.jianshu.com/p/64b3f162dcf4 参考游戏中的网络同步机制--Lockstep 一.前言 每个人或多或少都接触过网游,那个虚拟的世界给予了我们无穷的 ...

  8. Linux中的线程同步机制-futex

    Linux中的线程同步机制(一) -- Futex 引子 在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这 ...

  9. 游戏中的网络同步机制——Lockstep(帧同步)

    本文来自: https://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockste ...

最新文章

  1. 使用wget在linux服务器上下载oracle软件
  2. ubuntu 10.10下搭建android开发环境 安装必要工作用软件
  3. sql array 数组基本用法(二)
  4. 使用python实现简单的爬虫
  5. jquery导入数据_Web技术——简单的数据库编程
  6. html5滑动删除置顶,html5向左滑动删除特效
  7. excel教程自学网_想学习PS和视频剪辑,自学,有哪些好的学习网站和资源吗?
  8. 04-02 接口协议分析工具
  9. 利用opencv作透明重叠人群密度热度图
  10. HTML CSS设计与构建网站
  11. r语言如何计算t分布临界值_如何利用R语言进行meta分析—详细教程(2)
  12. asp mysql rs.recordcount_关于recordcount等-1的问题
  13. Zbar源码解析——zbar_oho_条形码阅读器|2021SC@SDUSC
  14. 测试论坛和网站资源分享
  15. Java基础语法之数组练习——循环输出数列的值并求和
  16. 用git统计代码提交行数
  17. 在ubuntu16阿里云服务器上vnpy1.9.2连接老虎证券开放api以及裸api开发
  18. VC2015 qt 打包发布
  19. CAD打开文件提示许可检出超时,AutoCAD将关闭
  20. MacW资讯:如何在Final Cut Pro X中安裝fcpx模板

热门文章

  1. Ways to 优化JAVA程序设计和编码,提高JAVA性能
  2. RCP开发小技巧(二)
  3. 使用vmware克隆CentOS后网卡名称修改(强迫症)
  4. Google的Java开发规范
  5. Lazy loading
  6. 找不到具有绑定 MetadataExchangeHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 [https]...
  7. nginx 0.8.x + PHP 5.2.13 胜过apache十倍的web服务器
  8. 一些很实用且必用的小脚本代码:
  9. 解决老版本eclipse无法完全替换主题的问题
  10. 序列到序列网络seq2seq与注意力机制attention浅析