0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

车载时钟同步can_tsync实现原理

麦辣鸡腿堡 来源:UndefinedReference 作者:jinbao.tang 2023-10-27 14:39 次阅读

CAN时钟同步来源,AUTOSAR cp的规范,AUTOSAR定义的基于CAN总线时间同步的CanTSyn模块处理CAN总线上的时间信息分发,它以广播的形式将时间信息从master节点(TM) 传输到各slave节点(TS),还可通过时间网关(TW)将时间同步到其他子网,以解决因各ECU节点的硬件时钟信号偏差、CAN总线传输延时如协议仲裁以及各ECU节点内的软件处理等原因导致的时间延迟。网络拓扑如下:

图片
can_tsync实现原理

有了上述基础之后,我们会理解到can timesync实现起来也不会太难,在autosar cp的框架下,所有的时间都是从StdmM(Synchronized Time-Base Manager)获取的。所以,我们可以如下伪代码:

C                  
// can time master                  
TimeRaw_t t0r;                  
StbM_GetCurrentTimeRaw(&t0r);                  
CanTsync_SetT0r(t0r);                  
CanIf_Transmit(sync_message);                  
CanTsync_TxComfirmation()                  
{                  
    TimeRaw_t t1r;                  
    StbM_GetCurrentTimeRaw(&t1r);                  
    uint32_t t4r = CanTsync_GetT4r(t0r, t1r);                  
    CanTsync_SetT4r(t4r);                  
    CanIf_Transmit(fup_message)                  
}
C                  
// can time slave                  
TimeRaw_t t2r, t3r, t4r, t0r;                  
CanSync_RxIndication(sync_msg)                  
{                  
    StbM_GetCurrentTimeRaw(&t2r);                  
    t0r = CanTsync_GetT0r(sync_msg);                  
}                  
CanSync_RxIndication(fup_msg)                  
{                  
    StbM_GetCurrentTimeRaw(&t3r);                  
    t4r = CanTsync_GetT0r(fup_msg);                  
    TimeRaw_t real_time = CanTsync_CalcuTimeOffset(t0r, t2r, t3r, t4r);                  
    StbM_SetGlobalTime(real_time);                  
}

can tsync来源于autosar cp,所以上述实现风格也是仿照autosar cp的风格。StbM是整个cp的时间基础管理,负责抽象底层不同的时间同步协议,为上层提供统一的时间戳接口以及当前的时间同步状态的接口。整体框架如下:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2470

    浏览量

    459269
  • 车载
    +关注

    关注

    17

    文章

    565

    浏览量

    83101
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87222
  • 时钟同步
    +关注

    关注

    0

    文章

    72

    浏览量

    12618
收藏 人收藏

    评论

    相关推荐

    怎么实现基于TMS320LF2407A的双CAN同步通讯板设计?

    这里提出一种基于TMS320LF2407A的双CAN同步通讯板设计,从而解决了车载PLC与防空武器TTCAN网络链接问题。
    发表于 06-03 06:12

    如何使用PTP实现时钟同步

    我正在尝试使用 PTP 实现时钟同步,请帮忙。
    发表于 03-31 09:00

    AUTOSAR CAN时钟同步问题

    请问有没有AUTOSAR CAN时钟同步的能运行的代码,或者有没有能做这一块的大佬,主要是CanTsyn和STBM这两个模块的。有偿,价格都好商量,急需。
    发表于 11-09 00:00

    基于FPGA的GPS同步时钟装置的设计

    在介绍了GPS 同步时钟基本原理和FPGA 特点的基础上,提出了一种基于FPGA 的GPS同步时钟装置的设计方案,实现了高精度
    发表于 07-30 11:51 45次下载

    同步时钟及等级

    同步时钟及等级 基准时钟 同步网由各节点时钟和传递同步定时信号的
    发表于 04-03 16:27 3678次阅读

    基于总线同步时钟卡设计与实现(PCI Express)

    中各个设备之间时间的一致性和准确性,系统中配备时钟源进行授时,同步时钟卡从时钟源获取高精度的时间,使系统中各个设备与主机时钟源保持高精度的
    发表于 10-30 13:25 0次下载
    基于总线<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>卡设计与<b class='flag-5'>实现</b>(PCI Express)

    嵌入式同步时钟系统的设计方案

    分享到:标签:嵌入式; 同步时钟 同步时钟系统是同步设备中实现
    发表于 11-04 10:21 6次下载
    嵌入式<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>系统的设计方案

    基于FPGA的高精度同步时钟系统设计

    介绍了精密时钟同步协议(PTP)的原理。本文精简了该协议,设计并实现了一种低成本、高精度的时钟同步系统方案。该方案中,本地
    发表于 11-17 15:57 6365次阅读
    基于FPGA的高精度<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>系统设计

    微波时钟同步设计方案

    v2,SyncEth,ToP,TDM时钟同步等,以满足无线设备和传输设备的时钟同步和传输需求。 微波时钟
    发表于 12-07 20:51 588次阅读

    如何将一种异步时钟域转换成同步时钟

     本发明提供了一种将异步时钟域转换成同步时钟域的方法,直接使用同步时钟对异步时钟域中的异步写地址
    发表于 12-21 17:10 5次下载
    如何将一种异步<b class='flag-5'>时钟</b>域转换成<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>域

    车载以太网和CAN的区别

    车载以太网和CAN的网络扑拓结构不同,车载以太网采用的是点对点的星型拓扑结构,而CAN总线采用的是总线型结构。
    的头像 发表于 02-05 15:41 9480次阅读

    IEEE1588时钟同步在PTN网中的实现

    电子发烧友网站提供《IEEE1588时钟同步在PTN网中的实现.pdf》资料免费下载
    发表于 10-24 09:39 0次下载
    IEEE1588<b class='flag-5'>时钟</b><b class='flag-5'>同步</b>在PTN网中的<b class='flag-5'>实现</b>

    车载时钟同步can_tsync同步原理

    can_tsync同步原理 整体来说,can的时间同步还是比较简单的,如下图所示,整个过程如下(tips:时间戳自1970年1月1日00:00:00经过的时间,是由秒+纳秒组成的。):
    的头像 发表于 10-27 14:32 1065次阅读
    <b class='flag-5'>车载</b><b class='flag-5'>时钟</b><b class='flag-5'>同步</b><b class='flag-5'>can_tsync</b><b class='flag-5'>同步</b>原理

    车载时间融合与utc同步

    时间融合和使用 对于整车来说,Tsync模块需要将整车所有vehicle time和utc同步好,对于用户来说,开发者最好提供获取vehicle time和utc时间的接口,用户无需要关注时钟
    的头像 发表于 10-27 14:47 838次阅读
    <b class='flag-5'>车载</b>时间融合与utc<b class='flag-5'>同步</b>

    时钟同步怎样组网?

    时钟在一开始很可能并不完全一致,这可能是由于硬件差异、通信延迟、时钟漂移或其他因素引起的。因此,时钟同步对于网络中各个节点的协同操作具有重要意义。在网络中
    的头像 发表于 01-16 15:10 244次阅读