cpld xilinx 定义全局时钟_AutoSAR中的时钟同步机制
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中的时钟同步机制相关推荐
- cpld xilinx 定义全局时钟_时钟相关概念
欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群 一.时钟相关概念 理想的时钟模型是一个占空比为50%且周期固定的方波.Tclk为一个时钟周期,T ...
- 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系列产品的新 ...
- 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的设 ...
- cpld xilinx 定义全局时钟_Xilinx+CPLD介绍
Xilinx CPLD 系列产品 1.1 简 介 Xilinx CPLD 系列器件包括 XC9500 系列器件. CoolRunner XPLA 和 CoolRunner- Ⅱ系列 器件. Xilin ...
- 大白话总结类《王者荣耀》等MOBA游戏中的网络同步机制
案例游戏: <英雄联盟> <王者荣耀>等PVP游戏 实际解决方案: 同步机制:不锁步的帧同步 网络:传输层的UDP配合应用层的可靠性检验 以下从问题出发讨论解决方案. 主要问题 ...
- 游戏中的网络同步机制——Lockstep(转载)
原文转自http://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockstep 0 ...
- 游戏中的网络同步机制(一)帧同步Lockstep
转载自:https://www.jianshu.com/p/64b3f162dcf4 参考游戏中的网络同步机制--Lockstep 一.前言 每个人或多或少都接触过网游,那个虚拟的世界给予了我们无穷的 ...
- Linux中的线程同步机制-futex
Linux中的线程同步机制(一) -- Futex 引子 在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这 ...
- 游戏中的网络同步机制——Lockstep(帧同步)
本文来自: https://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockste ...
最新文章
- 使用wget在linux服务器上下载oracle软件
- ubuntu 10.10下搭建android开发环境 安装必要工作用软件
- sql array 数组基本用法(二)
- 使用python实现简单的爬虫
- jquery导入数据_Web技术——简单的数据库编程
- html5滑动删除置顶,html5向左滑动删除特效
- excel教程自学网_想学习PS和视频剪辑,自学,有哪些好的学习网站和资源吗?
- 04-02 接口协议分析工具
- 利用opencv作透明重叠人群密度热度图
- HTML CSS设计与构建网站
- r语言如何计算t分布临界值_如何利用R语言进行meta分析—详细教程(2)
- asp mysql rs.recordcount_关于recordcount等-1的问题
- Zbar源码解析——zbar_oho_条形码阅读器|2021SC@SDUSC
- 测试论坛和网站资源分享
- Java基础语法之数组练习——循环输出数列的值并求和
- 用git统计代码提交行数
- 在ubuntu16阿里云服务器上vnpy1.9.2连接老虎证券开放api以及裸api开发
- VC2015 qt 打包发布
- CAD打开文件提示许可检出超时,AutoCAD将关闭
- MacW资讯:如何在Final Cut Pro X中安裝fcpx模板
热门文章
- Ways to 优化JAVA程序设计和编码,提高JAVA性能
- RCP开发小技巧(二)
- 使用vmware克隆CentOS后网卡名称修改(强迫症)
- Google的Java开发规范
- Lazy loading
- 找不到具有绑定 MetadataExchangeHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 [https]...
- nginx 0.8.x + PHP 5.2.13 胜过apache十倍的web服务器
- 一些很实用且必用的小脚本代码:
- 解决老版本eclipse无法完全替换主题的问题
- 序列到序列网络seq2seq与注意力机制attention浅析