查看: 5521|回复: 11

[分享] CAN数据在总线上的延时存在

[复制链接]
  • TA的每日心情
    无聊
    2019-8-29 13:37
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    88

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    2022-1-14
    发表于 2016-11-1 18:44:01 | 显示全部楼层 |阅读模式
    现象:调试CAN接口的时候,A板发现在发出数据后2秒内打开B板电源B板能接收到。超过这个时间B板则无法接收数据。
    原因:示波器测量得知,CAN数据在发出后,如果总线上没有设备读取,则会延时存在2-3秒的时间,因此造成了上述奇怪的现象。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-21 08:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    3

    主题

    86

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    242
    最后登录
    2017-4-26
    发表于 2016-11-1 20:12:13 | 显示全部楼层
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-21 08:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    3

    主题

    86

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    242
    最后登录
    2017-4-26
    发表于 2016-11-1 20:14:33 | 显示全部楼层
    ;P;P;P;P;P;P;P;P
    哎...今天够累的,签到来了1...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    343

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1260
    最后登录
    2017-11-6
    发表于 2016-11-1 21:20:06 | 显示全部楼层
    那是因为你开启可失败重发,而且重发的间隔设置的较长或者重试的次数较多。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-8-29 13:37
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    88

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    2022-1-14
     楼主| 发表于 2016-11-2 10:19:46 | 显示全部楼层
    watershade 发表于 2016-11-1 21:20
    那是因为你开启可失败重发,而且重发的间隔设置的较长或者重试的次数较多。 ...

    我的硬件平台是S08DZ60,CAN相关设置并无重发相关设置项,并且我也看到我们用的CAN盒(周立功的),也是有这个现象:如果总线上没有设备读取发出帧,则此帧会延时存在2秒左右的时间。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    343

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1260
    最后登录
    2017-11-6
    发表于 2016-11-2 21:25:48 | 显示全部楼层
    jinandawei 发表于 2016-11-2 10:19
    我的硬件平台是S08DZ60,CAN相关设置并无重发相关设置项,并且我也看到我们用的CAN盒(周立功的),也是 ...

    我有山寨的周立功CANalyst-II,的确会有因为通讯有问题而出现的重复发送问题。但是我不确定这个重连的情况可不可以通过修改参数去掉。但是如果CAN总线是正常有效的,那么只要你的帧发送到了总线上,就不会存在这种现象。不要忘了CAN是广播网络。广播的意思就是说:我向群里说句话,有没有人回应无所谓,因为硬件上其实每台设备都在监听。不是我的我听而不闻。


    另外我不知道你希望的方式是怎样的。2秒对于实时通讯是个噩梦。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    343

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1260
    最后登录
    2017-11-6
    发表于 2016-11-2 21:44:35 | 显示全部楼层
    我没有用过你说的MCU,为此我专门查询了一下。估计你可以通过它的CANTARQ寄存器来取消帧的发送。你设定一定的时间或者直接查询CAN里面的时间寄存器,如果超过你设定的时间就取消发送。或者用定时中断。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-8-29 13:37
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    88

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    2022-1-14
     楼主| 发表于 2016-11-3 10:58:23 | 显示全部楼层
    watershade 发表于 2016-11-2 21:44
    我没有用过你说的MCU,为此我专门查询了一下。估计你可以通过它的CANTARQ寄存器来取消帧的发送。你设定一定 ...

      实际项目中,针对这个问题,无需特别处理,因为正常情况下,设备都是在监听网络消息的。
      只是凑巧了,如果网络只有两个设备,A设备关机了(或者关闭CAN接口芯片电源、或者使CAN芯片出于STANDBY模式),B设备发出CAN消息(因无设备接收,消息会在网络上延时2秒),A设备在这个时间段内开启CAN功能,能接收到B设备之前发出的消息。如果这个逻辑在实际项目中没有逻辑问题,那么可以忽略此问题。
      如果此问题不能接受,如果B设备不是自己公司开发,那么此问题也无法解决,或者只能请B设备开发商去解决。
    我们的项目在这种情况下可以接受,因此无需解决。谢谢你了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    343

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1260
    最后登录
    2017-11-6
    发表于 2016-11-3 21:25:42 | 显示全部楼层
    jinandawei 发表于 2016-11-3 10:58
    实际项目中,针对这个问题,无需特别处理,因为正常情况下,设备都是在监听网络消息的。
      只是凑巧了 ...

    如果你开发的USB转CAN类似的设备,信号延迟是肯定的。因为USB的包应该2ms一次,具体我忘了。提醒一下。祝你工作愉快
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-16 10:29
  • 签到天数: 41 天

    连续签到: 1 天

    [LV.5]常住居民I

    3

    主题

    216

    帖子

    0

    高级会员

    Rank: 4

    积分
    539
    最后登录
    2017-10-11
    发表于 2016-11-4 20:06:19 | 显示全部楼层
    学习一下高级的CAN协议,玩不来!
    开开好心情!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 19:08 , Processed in 0.107053 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表