AUTOSAR StbM时间同步模块的应用

AUTOSAR StbM时间同步模块的应用

一、SWC获取全局时间

本地时间T1

全局时间T2

当正常收到全局时间T2时,会记录收到全局时间T2时的本地时间T1。

假设收到的全局时间是12345,本地时间是1000,那么1000就相当于是全局的12345。

StbM_MainFunction的周期是100ms,同步报文的周期是1000ms。

1、SWC调用StbM_GetCurrentTime获取全局时间。

2、StbM获取当前的本地时间戳,因为SWC是随机获取的,所以肯定不是和StbM_MainFunction同周期

的,假设这个时候本地时间是1156ms,全局时间还没有下次同步,所以还是12345ms。

3、StbM获取上次同步的全局时间戳,也就是12345ms,然后计算本地时间戳与上次StbM_MainFunction更

新的本地时间的差值,也就是1156-1100 = 56ms。

4、计算全局时间,也就是拿StbM维护的本地时间(1100 - 1000) + 56 得到上次全局时间同步的差值,也

就是当前的时间相对于上次同步的时间差,得到全局时间就是12345+100+56

二、SWC获取StbM的状态
在这里插入图片描述

可以配置这个回调函数以及对应的mask,这样在发生我们想要的状态转换时,就会自动调用回调函数。

在这里插入图片描述

bit0 :STBM_EV_GLOBAL_TIME_BASE 在第一次发生时间同步的时候会置位

bit1:STBM_EV_TIMEOUT_OCCURED 如果在时间同步后发生了时间同步报文超时,该位置1

bit2:STBM_EV_TIMEOUT_REMOVED 在接收到时间同步报文恢复后会置位,并且清除bit1

bit3: STBM_EV_TIMELEAP_FUTURE 在接收到时间同步报文恢复后会置位

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

美好生活丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值