文章目录

  • 前言
  • 介绍和功能概述
  • 术语
  • 限制
  • 功能规格
    • SYNC and FUP Message
    • Offset Messages
  • Acting as Time Master
    • SYNC and FUP message processing
    • OFS message processing
    • Transmission mode
    • Debounce Time

前言

版本:

介绍和功能概述

CanTSyn 模块处理 CAN 总线上时间信息的分配。
仅在广播 CAN 消息中将时间信息从主设备传输到从设备具有以下缺点:由于 CAN 特定效应(如仲裁和 BSW 特定延迟),时间值变得不准确。

该概念提出了一个两步机制:

  • 在第一个广播消息(所谓的 SYNC 消息)中,传输时间信息的第二部分 (t0r)。发送 ECU,即 Time Master 使用 CAN 低级机制,如“CAN 传输确认”来检测消息实际传输的时间点 (t1r),即它需要一个时间戳。
    接收 ECU,即 Time Slave,接收消息并使用 CAN 低级机制(如“CAN 接收指示”)来检测实际接收消息的时间点 (t2r)。
  • 在第二个广播消息(所谓的后续 (FUP) 消息)中,时间主控发送前一个 SYNC 消息中传输的时间信息与实际检测到的传输时间之间的偏移量。 FUP 消息没有时间戳,无论是在发送方还是在接收方。
  • Time Slave 现在可以将 SYNC 和 FUP 消息中的信息与其先前为接收的 SYNC 消息获取的时间戳相结合,并通过仅接收一条消息并省略时间戳来以更精确的方式确定传输的时间信息。

下图显示了 CAN 时间同步机制。

术语

TBD.

限制

CanTSyn 的当前版本不支持硬件时间戳功能。
第一个后果是,由于 Rx-/Tx-ISR 延迟和检索当前时间之前的执行时间,时间同步不太准确。
第二个后果是需要在全球时间 PDU 的 CAN 驱动程序中中断。
SYNC 和 OFS 消息中的时基限制为 32 位,因此支持的最大时间值为 4294967295 秒 (232-1)。
时间主站、时间网关和时间从站应使用时基参考时钟,最坏情况下的精度为 10µs。

功能规格

SYNC、FUP、OFS 和 OFNS 消息分配给专用消息类型“TimeSync”。
同一时域的 SYNC、FUP、OFS 和 OFNS 消息通过复用信号组共享相同的 CAN ID。 如果时间同步消息由相同的时间主站或时间网关发送,则对于不同的时域,可以使用相同的 CAN ID。 如果时间同步消息由不同的时间主站或时间网关发送,则对于不同的时域,应使用不同的 CAN ID。 多路复用器位于字节 0,命名为“类型”。
CRC 的使用是可选的。 为确保多个时间观测单元之间有很大的可变性,如果接收器不支持 CRC 计算,配置将决定如何处理 CRC 保护的 Timesync 消息。 因此,接收器可能只是使用给定的时基值而不评估CRC

SYNC and FUP Message

Offset Messages

偏移消息可以与时间同步消息复用(使用相同的 PDU 等)。
对于经典 CAN (CAN 2.0),使用两种不同的偏移消息,OFS 和 OFNS。
对于它们两者,都有带和不带 CRC 字段的变体。
对于 CAN FD,如果 CanTSynUseExtendedMsgFormat 为 TRUE,则 OFS 和 OFNS 的内容合并为单个扩展 OFS 消息(也存在带和不带 CRC 字段的变体)。

Acting as Time Master

时间主站是一个实体,它是某个时基的主站,并将该时基传播到通信网络某个段内的一组时基,作为该时基的源。
如果 Time Master 也是 Global Time Base 的所有者,即所有其他 Time Base 所源自的 Time Base,那么它就是 Global Time Master。 时间网关通常由一个连接到一个或多个时间从站的时间主站端口组成。 当将时间实体映射到真实的 ECU 时,必须注意,一个 ECU 可以是一个时基的时间主站(甚至全局时间主站)和另一个时基的时间从站。

什么是时间主站的实体?

主设备应通过调用 CanIf_Transmit 来传输 SYNC、FUP、OFS 和 OFNS 消息,其中 PduId 是通过相应时域的 CanTSynGlobalTimePduRef 导出的。

SYNC and FUP message processing

时间主控器应使用 SYNC 消息启动同步时基的每个时间同步序列。

时间主控器应使用 FUP 消息完成同步时基的每个时间同步序列。

等待 CanTSyn_TxConfirmation() 函数期间的任何超时都会重置状态机以再次开始新的 SYNC 传输。

对于同步时基,如果 timeBaseStatus 中的 GLOBAL_TIME_BASE 位已设置且 CanTSynGlobalTimeTxPeriod 不相等,则 Time Master 使用带有 CanTSynGlobalTimeTxPeriod (ECUC_CanTSyn_00017 : ) 的 SYNC 消息循环传输(根据图 5:Master CAN SYNC/FUP) 相关的 cyclicMsgResumeCounter 没有运行(见 7.4.5)。

如果相同的 CAN ID 用于时间同步消息,则 SYNC 和 FUP 序列不应被同一时域的时间同步消息或其他时域的时间同步消息中断。

根据 CanTSynGlobalTimeTxCrcSecured (ECUC_CanTSyn_00015 : ),SYNC / FUP 消息的类型应为:


FUP 消息的发送器(Time Master)使用作为 SYNC 到 FUP 的触发条件,即 debounceCounter 值达到 0,如 7.4.4 中所述。

SYNC 消息的每个传输请求都应被监视传输确认超时 CanTSynMasterConfirmationTimeout (ECUC_CanTSyn_00020 : )。 如果超时发生,传输请求将被撤销,并且不发送 FUP 消息。

OFS message processing

TBD.

Transmission mode

TBD.

Debounce Time

去抖动时间应禁止特定 CAN PDU 的传输突发。 如果多个 PDU 用于多个时域,则无法在特定 CAN 总线上禁止 Timesync 消息的传输突发,因为 CanTSyn 模块内没有可配置的 PDU 间去抖动时间。

Specification of Time Synchronization over CAN 研读笔记相关推荐

  1. python编程从入门到实践pdf_Python编程入门研读笔记(二)

    <Python的四则运算>是本单元的第二课,本课依然存在许多"坑".请各位老师放心,这些坑我已经帮你踩过了.如果您对我的教材研读笔记有任何意见或建议,请在文章底部留言O ...

  2. uboot研读笔记 | 04 - 移植uboot 2012.04到JZ2440(支持Nor Flash读写)

    项目开源地址:https://github.com/Mculover666/uboot-jz2440 0. 教程完整目录 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理 01 ...

  3. iOS WebviewJavascriptBridge 源码研读笔记

    这两天接近元旦,事情稍微少些,有些时间,索性写点什么,就从最擅长的iOS混合开发写起了,由于iOS开发经验不到四年吧,期间还搞了一年半的前端,有些知识可能还是积累的不足,能力不足,水平有限,可能有谬误 ...

  4. 关于在线评论有用性的论文研读笔记---21-30篇

    目录 21.A study of factors that contribute to online review helpfulness. (Computers in Human Behavior) ...

  5. uboot研读笔记 | 13 - uboot编译构建Makefile分析研读(2016.03版本)

    一.uboot的编译 首先来回顾一下uboot如何编译. (1)设置临时环境变量 export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- (2)指定板级配 ...

  6. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(MAML)研读笔记

    这里是引用 MAML全文目录 论文地址 摘要 介绍 相关概念 model-agnostic N-way K-shot Task 5-way 5-shot的实验设置 算法流程 fine-tune算法流程 ...

  7. 论文研读笔记(二)——VGG

    论文研读系列汇总: 1.AlexNet论文研读 2.VGG论文研读 3.GoogLeNet论文研读 4.Faster RCNN论文研读 5.ResNet 论文研读 6.SENet 论文研读 7.CTP ...

  8. 论文研读笔记(一)——ALEXnet

    写这个博客的原因为目前使用比较多的网络结构主要有ResNet(152-1000层),GoogLeNet(22层),VGGNet(19层).大多数模型都是基于这几个模型上改进(比如目标检测里Faster ...

  9. 论文研读笔记(三)——基于障碍函数的移动机器人编队控制安全强化学习

    基于障碍函数的移动机器人编队控制安全强化学习(Barrier Function-based Safe Reinforcement Learning for Formation Control of M ...

  10. 关于在线评论有用性的论文研读笔记---41-50篇

    目录 41.The power of numbers: an examination of the relationship between numerical cues in online revi ...

最新文章

  1. 2022-2028年中国涤纶市场投资分析及前景预测报告
  2. VS项目中引入dll的方法
  3. Redis的Zset操作
  4. 浅谈ICA算法的概念、本质和流程
  5. python 代码片段9
  6. Python str / bytes / unicode 区别详解 - Python零基础入门教程
  7. 两级联动mysql怎样查询_我的二级联动下拉框(方便以后查询)
  8. 计算机考研复试面试常问问题 数据结构篇(上)
  9. NETAPP存储常用巡检命令
  10. java实现一个月的日历打印,Java实现按年月打印日历功能【基于Calendar】,日历calendar...
  11. 关于Oracle的PARALLEL MAX SEVERS参数
  12. 高歌——【先声夺银】四种能力判断你的炒白银水平
  13. selenium爬虫模拟登录PayPal
  14. 【css】让img图片居中显示
  15. UART嵌入式通信协议(以AVR单片机为例)
  16. zookeeper 集群 + kafka 集群 : 安装部署(附单机部署)
  17. C++-Nuget包一键打包-上传工具开发分享
  18. 磁盘占用率100%——多番尝试
  19. C++ boost 解析 Json
  20. linux防火墙ip黑名单,【转】Linux防火墙(iptables)之黑名单

热门文章

  1. 真格量化学习处理——几个功能小函数
  2. wim工具扫描linux磁盘,图文解说WIMTOOL的安装及利用该工具编辑WIM文件
  3. matlab-高数 diff 二阶偏导数
  4. android图片背景颜色透明度,android:设置背景图片、背景颜色透明
  5. 2018年将会改变人工智能的5个大数据趋势
  6. 在spyder中设置缩进对齐线提示
  7. 掌握技巧可以快速完成网站备案
  8. 一些游戏用到的渲染技术
  9. 线性代数的本质(Essense of Linear Algebra)——3Blue1Brown
  10. 【烈日炎炎战后端】Redis(6.1万字)