40562|95

108

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一个can总线节点发送数据出现丢包现象 [复制链接]

 
can设置的波特率是500k……一直在等待发送标志位为发送正确之后再接着发送下一个数据……请问为啥会出现丢包现象?必须要加延时吗

360截图20160619153754312.jpg (19.33 KB, 下载次数: 6)

360截图20160619153754312.jpg
此帖出自ARM技术论坛

最新回复

有 2个 经验分享: 硬件 :检查 终端电阻,CAN 通信线 共地; 软件:加大 发送数据的 时间 间隔  详情 回复 发表于 2017-8-23 22:52
点赞 关注(1)
 

回复
举报

1950

帖子

4

TA的资源

版主

沙发
 
楼主,你好,
虽然你这样,一直传用的case比较少,你可以加等待试试,正常500kbps, 8byte的 message , 1ms 也就能发4个。
你是怎么判断丢包的,CAN上面就你一个节点吗。
此帖出自ARM技术论坛
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
5525 发表于 2016-6-19 16:40
楼主,你好,
虽然你这样,一直传用的case比较少,你可以加等待试试,正常500kbps, 8byte的 message , 1ms ...

我是用的can分析仪……你的意思是说必须要加延时嘛
此帖出自ARM技术论坛

点评

CAN 的 message 的确不是一个挨一个的。 但是这个间隔正常 can controller,硬件会控制。 你可以加了试试看一下,先加他个1ms,看看还丢不丢, 不丢了就把延时往小处调。  详情 回复 发表于 2016-6-19 16:54
 
 
 

回复

1950

帖子

4

TA的资源

版主

4
 
洋洋阳阳 发表于 2016-6-19 16:45
我是用的can分析仪……你的意思是说必须要加延时嘛

CAN 的 message 的确不是一个挨一个的。
但是这个间隔正常 can controller,硬件会控制。

你可以加了试试看一下,先加他个1ms,看看还丢不丢,
不丢了就把延时往小处调。



此帖出自ARM技术论坛
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

5
 
5525 发表于 2016-6-19 16:54
CAN 的 message 的确不是一个挨一个的。
但是这个间隔正常 can controller,硬件会控制。

你可以加了 ...

message 的确不是一个挨一个的?什么意思啊……可以加你qq交流一下吗?我现在项目需要发送好多数据不允许加延时的
此帖出自ARM技术论坛
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

6
 
洋洋阳阳 发表于 2016-6-19 16:59
message 的确不是一个挨一个的?什么意思啊……可以加你qq交流一下吗?我现在项目需要发送好多数据不允许 ...

在吗???请教一个像我这样的一直循环发送必须加延时吗??确实加延时的话丢包的丢的明显少了
此帖出自ARM技术论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

7
 
CAN Message, Message 之间会空上几个bit,
500kbps的话,一个bit 2us, Message件应该会空上 6us 以上

你判断丢了,具体是怎么判断的,
计划一定时间内,预定送100个,却受到了一些,丢了一些?

CAN总线上几个节点? 其他节点都不发消息吗?
此帖出自ARM技术论坛

点评

我现在又遇到新的问题……这里的数据域的8字节的速率计算的是每帧数据里面的8个字节的数据域的速率……是通过定时器中断来计算的……实验用的线是杜邦线  详情 回复 发表于 2016-6-24 11:12
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

8
 
5525 发表于 2016-6-19 17:13
CAN Message, Message 之间会空上几个bit,
500kbps的话,一个bit 2us, Message件应该会空上 6us 以上

...

我现在只是用一个节点做测试的……用can分析仪看到发送结果……就是像我帖子里的照片那样在一个循环发送了100次 ……结果在can分析仪上只是受到50次
此帖出自ARM技术论坛

点评

这个问题找的原因所在了……是分析仪的问题……分析仪丢包  详情 回复 发表于 2016-6-24 11:10
 
 
 

回复

1950

帖子

4

TA的资源

版主

9
 
本帖最后由 5525 于 2016-6-19 17:31 编辑

你送的数据是连续的?1,2,3,4,5,。。。,100
却只收到了,1, 3, 5,...,99?

你把发送延时先加他个1ms,看看还丢不丢,不丢了就把延时往小处调,到10us 算保险了。
此帖出自ARM技术论坛

点评

我试试看  详情 回复 发表于 2016-6-19 17:28
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

10
 
5525 发表于 2016-6-19 17:22
你送的数据是连续的?1,2,3,4,5,。。。,100
确收到了,1, 3, 5,...,99?

你把发送延时先加他个1ms,看 ...

我试试看
此帖出自ARM技术论坛

点评

谢谢你  详情 回复 发表于 2016-6-19 17:28
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

11
 
此帖出自ARM技术论坛
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

12
 
洋洋阳阳 发表于 2016-6-19 17:16
我现在只是用一个节点做测试的……用can分析仪看到发送结果……就是像我帖子里的照片那样在一个循环发送 ...

这个问题找的原因所在了……是分析仪的问题……分析仪丢包
此帖出自ARM技术论坛

点评

买来就是让他分析的,所以分析仪那边,正常都是好的呀, 你看看分析仪的速率设定,和采样点设定是不是好的。 还有就是,你预想的速率 和 实际的 bit 宽度是否一致。 这里面 就3 个地方 1 分析仪的设定,分  详情 回复 发表于 2016-6-25 12:30
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

13
 
5525 发表于 2016-6-19 17:13
CAN Message, Message 之间会空上几个bit,
500kbps的话,一个bit 2us, Message件应该会空上 6us 以上

...

我现在又遇到新的问题……这里的数据域的8字节的速率计算的是每帧数据里面的8个字节的数据域的速率……是通过定时器中断来计算的……实验用的线是杜邦线

问题.jpg (61.43 KB, 下载次数: 2)

问题的描述

问题的描述

wenti 2.jpg (127.47 KB, 下载次数: 1)

can总线模式的设置

can总线模式的设置
此帖出自ARM技术论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

14
 
你的结果
从0.25Mbps,到0.75Mbps, 8字节速率看来是ok的,正常就50%,且总线上就你一个送的节点。

波特率设定的对不对,你可以直接用示波器量CAN PIN, H L都可以
0.25Mbps - 1bit 4us
0.50Mbps - 1bit 2us
1.00Mbps - 1bit 1us

如果偏差太大,说明设定有点误差,
因为 正常 CAN Controller 都是8Mhz 供过去,规整的速率,计数器的误差都比较小。
此帖出自ARM技术论坛

点评

这个问题找到了……很感谢你的回复……我仔细的考虑了一下……应该是我设置成了自动重传导致  详情 回复 发表于 2016-6-27 10:44
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

1950

帖子

4

TA的资源

版主

15
 
洋洋阳阳 发表于 2016-6-24 11:10
这个问题找的原因所在了……是分析仪的问题……分析仪丢包

买来就是让他分析的,所以分析仪那边,正常都是好的呀,
你看看分析仪的速率设定,和采样点设定是不是好的。

还有就是,你预想的速率 和 实际的 bit 宽度是否一致。

这里面 就3 个地方
  1 分析仪的设定,分析仪看到结果
  2 示波器看到的总线上的生波形
  3 ECU里面的送收,程序,判断的结果
此帖出自ARM技术论坛

点评

再向你请教三个问题: 1.有三个节点……两发一收,我是不是只是可以通过设置两个发送节点的ID来确定发送的先后顺序,ID越小越先发送。 2.在实际的工程运用当中,是用的什么样介质的线作为总线使用。 3.我的实际长  详情 回复 发表于 2016-6-27 10:52
买到的分析仪是丢包的……100块钱买到的……  详情 回复 发表于 2016-6-27 10:46
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

16
 
5525 发表于 2016-6-25 12:26
你的结果
从0.25Mbps,到0.75Mbps, 8字节速率看来是ok的,正常就50%,且总线上就你一个送的节点。

波 ...

这个问题找到了……很感谢你的回复……我仔细的考虑了一下……应该是我设置成了自动重传导致
此帖出自ARM技术论坛
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

17
 
5525 发表于 2016-6-25 12:30
买来就是让他分析的,所以分析仪那边,正常都是好的呀,
你看看分析仪的速率设定,和采样点设定是不是好 ...

买到的分析仪是丢包的……100块钱买到的……
此帖出自ARM技术论坛

点评

再向你请教三个问题: 1.有三个节点……两发一收,我是不是只是可以通过设置两个发送节点的ID来确定发送的先后顺序,ID越小越先发送。 2.在实际的工程运用当中,是用的什么样介质的线作为总线使用。 3.我的实际长  详情 回复 发表于 2016-6-27 10:51
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

18
 
洋洋阳阳 发表于 2016-6-27 10:46
买到的分析仪是丢包的……100块钱买到的……

再向你请教三个问题:
1.有三个节点……两发一收,我是不是只是可以通过设置两个发送节点的ID来确定发送的先后顺序,ID越小越先发送。
2.在实际的工程运用当中,是用的什么样介质的线作为总线使用。
3.我的实际长度大概90米……这样的环境当中需要考虑哪些干扰因素,如何避免。
此帖出自ARM技术论坛
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

19
 
5525 发表于 2016-6-25 12:30
买来就是让他分析的,所以分析仪那边,正常都是好的呀,
你看看分析仪的速率设定,和采样点设定是不是好 ...

再向你请教三个问题:
1.有三个节点……两发一收,我是不是只是可以通过设置两个发送节点的ID来确定发送的先后顺序,ID越小越先发送。
2.在实际的工程运用当中,是用的什么样介质的线作为总线使用。
3.我的实际长度大概90米……这样的环境当中需要考虑哪些干扰因素,如何避免。
此帖出自ARM技术论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

20
 
>1.有三个节点……两发一收,我是不是只是可以通过设置两个发送节点的ID来确定发送的先后顺序,ID越小越先发送。

"ID越小越先发送。"
这个只有在两个发送ECU,同时发送,2us级别能对的上的时候,小的先发。
多大的数据,什么发送频率,要先计算,然后在app层控制啊。


而且单单一个消息8Byte,发的人高兴了,受的人弄起来没那个好弄啊,除非你都是考虑的理想情况。
你看这样怎么样

ECU_A,
发DATA_ID,0x010 生数据
发CONTROL_ID 0x011 至少能标志开始和结束

ECU_B
发DATA_ID, 0x020 生数据
发CONTROL_ID 0x021  至少能标志开始和结束

ECU_C


此帖出自ARM技术论坛

点评

初学者不明白你所说的概念……  详情 回复 发表于 2016-6-27 11:45
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表