搜索
bottom↓
回复: 28

CAN通信100次,成功率90次左右,可能原因会是啥?

[复制链接]

出0入0汤圆

发表于 2018-3-28 08:48:10 | 显示全部楼层 |阅读模式
在使用飞思卡尔单片机进行CAN2.0B通信时,遇到通信成功率问题,即一块板子发送数据,另外一块收到数据后应答,大概有90%的成功率,群里做过CAN通信的朋友,说下这个情况算不算正常?谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2018-3-28 08:51:33 | 显示全部楼层
用示波器观察can总线波形吧,
或者can总线分析仪,看发送数据有没有问题吧。

出90入0汤圆

发表于 2018-3-28 08:51:51 | 显示全部楼层
肯定不正常。
实验室,短距离,几天也没有错误。

出0入0汤圆

发表于 2018-3-28 09:01:55 | 显示全部楼层
我用CANOE测试10000帧数据都可以做到不丢帧,你觉得能正常吗?要是正常你还敢开汽车么?这么高的错误率

出0入0汤圆

发表于 2018-3-28 09:14:05 来自手机 | 显示全部楼层
看看评论,对CAN总线就放心了

出0入0汤圆

 楼主| 发表于 2018-3-28 10:03:03 | 显示全部楼层
很想知道以前遇到过类似问题,然后解决的,有类似经历的,把经历可以拿出来分享下。

出0入0汤圆

发表于 2018-3-28 10:33:58 | 显示全部楼层
建议先上示波器,看下波形。
然后can分析仪。
这么高的丢失率太不正常。
我是做电机的,主从机之间使用CAN,现场有中频炉等大功率设备,干扰源比较多。
主从机CAN连接线3m左右,比较近。
调试的时候,我监控主从之间发包和收包,监控了36小时左右,丢了一个包,收发差一个。

出0入0汤圆

发表于 2018-3-28 11:15:19 | 显示全部楼层
应该是你的线缆阻抗较大,换个0.25方或0.5的双绞线试试

另外,1M波特率情况下,距离不要太长

可以考虑在其中一个节点的CANH和CANL之间加一个120欧姆电阻

出0入0汤圆

发表于 2018-3-28 11:25:46 | 显示全部楼层
高波特率下一定要加终端电阻

出0入0汤圆

发表于 2018-3-28 18:38:40 来自手机 | 显示全部楼层
以前拿网线做过,0丢包啊,数据就是1。2。3 然后间隔不是1就是丢包了

出0入0汤圆

发表于 2018-3-28 20:27:09 | 显示全部楼层
可能的原因:
1.中断电阻不匹配
2.线太长
3.采样点设置不合理

出0入0汤圆

 楼主| 发表于 2018-3-28 21:33:01 | 显示全部楼层
试试终端电阻,当前的终端电阻,一头是68+68的配置,另外一头也是68+68,但是电阻中间我接了地

出0入0汤圆

发表于 2018-3-28 22:46:04 | 显示全部楼层
aoe123 发表于 2018-3-28 21:33
试试终端电阻,当前的终端电阻,一头是68+68的配置,另外一头也是68+68,但是电阻中间我接了地
...

建议先按照正确的解法试一下,你搞个68+68,还接地,为啥要这样搞呢

出0入0汤圆

发表于 2018-3-29 10:58:38 | 显示全部楼层
不对吧 我做CAN通信实验 就数据帧 周末两天不停歇

上位机记录通信情况 返回的数据 500ms轮询通讯5块板子都没出现过错误

出0入36汤圆

发表于 2018-3-30 10:59:49 | 显示全部楼层
不正常,正常强干扰环境误码率应该低于千分之一

出0入0汤圆

发表于 2018-3-30 11:06:50 | 显示全部楼层
aoe123 发表于 2018-3-28 21:33
试试终端电阻,当前的终端电阻,一头是68+68的配置,另外一头也是68+68,但是电阻中间我接了地
...

但是电阻中间我接了地???中间是应该在在CAN芯片上的。不可以接地。阻抗,回路全不对了。

出0入0汤圆

 楼主| 发表于 2018-3-30 15:03:01 | 显示全部楼层
仔细看了各位的意见,我把硬件重新检查了一遍,首先,我去掉了楼上说的2个68欧姆电阻中间接地的那个接法,但是依然保留另外一端的68+68的接法,其实,那边的68+68中间是有一个10nF的电容接地的!!然后再测试,正确率下降到70%左右!!这是第一步,不仅没有解决问题,反而把通信的成功率降低了。然后,想到会不会是保护用的TVS管的问题,于是,我把那只管子焊下来,再测,测试2万次不到,只丢了1个包。至此,基本可以确定是保护用的TVS管的问题。最后,谢谢楼上各位。结贴,祝贺一下,红包就不发了

出0入0汤圆

发表于 2018-3-31 08:12:15 | 显示全部楼层
aoe123 发表于 2018-3-30 15:03
仔细看了各位的意见,我把硬件重新检查了一遍,首先,我去掉了楼上说的2个68欧姆电阻中间接地的那个接法, ...

CAN走的是差分信号 ,为什么要接地?   
那么应该是TVS结电容太大了

出0入0汤圆

发表于 2018-3-31 08:51:30 | 显示全部楼层
aoe123 发表于 2018-3-30 15:03
仔细看了各位的意见,我把硬件重新检查了一遍,首先,我去掉了楼上说的2个68欧姆电阻中间接地的那个接法, ...

TVS 具体什么原因  不仿讲一下,这样大家都明白    就不用都在跳坑了

出0入0汤圆

 楼主| 发表于 2018-3-31 09:04:16 | 显示全部楼层
前面关于接地的表述,正确的应该是2只电阻中间通过一只10nF电容接地,不是直接接地;另外,没有那只电容也没事,我的理解那只电容就是去掉一点高频谐波吧。TVS去掉就好了,应该是TVS的选的不合适,离散电容太大了,不适合用在CAN通信这种场合,我的波特率不到100k.

出0入0汤圆

发表于 2018-3-31 09:07:01 | 显示全部楼层
估计是终端电阻的问题,尝试加个120欧的终端电阻

出0入0汤圆

发表于 2018-3-31 12:23:46 | 显示全部楼层
aoe123 发表于 2018-3-31 09:04
前面关于接地的表述,正确的应该是2只电阻中间通过一只10nF电容接地,不是直接接地;另外,没有那只电容也 ...

CAN输出1时是高阻输出,所以离散电容不能太大,加120欧终端电阻后能好些

出0入0汤圆

发表于 2018-3-31 13:32:37 来自手机 | 显示全部楼层
终端电阻!终端电阻!终端电阻!是在终端,一边一个120欧,不是在线上随便找俩地方,各放一个120欧。CAN线是直线式,还是星形?有没有多个节点发出相同标识符的帧?

出0入0汤圆

 楼主| 发表于 2018-3-31 21:53:36 | 显示全部楼层
CAN BUS的拓扑结构我是知道的,问题解决了。

出0入0汤圆

发表于 2018-4-2 19:46:48 来自手机 | 显示全部楼层
98%的负载率也不丢包。

出0入0汤圆

 楼主| 发表于 2018-4-3 07:17:35 | 显示全部楼层
最新回复,问题是软件。谢谢,现在发送10000次没有错了。

出0入0汤圆

发表于 2018-4-3 22:47:10 | 显示全部楼层
aoe123 发表于 2018-3-31 09:04
前面关于接地的表述,正确的应该是2只电阻中间通过一只10nF电容接地,不是直接接地;另外,没有那只电容也 ...

中间的电容有两个作用:
1、用于稳定CAN隐性时的2.5V电压
2、抗干扰,恶劣工况下能提高通信稳定性
有些CAN收发器还有个Split引脚,接在该电容上同样能起到稳定隐性电平的作用

出0入0汤圆

 楼主| 发表于 2018-4-4 17:27:06 | 显示全部楼层
赞同27楼的

出100入101汤圆

发表于 2018-4-5 17:04:47 | 显示全部楼层
aoe123 发表于 2018-4-3 07:17
最新回复,问题是软件。谢谢,现在发送10000次没有错了。

软件问题?还是TVS的问题?大神分享下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 19:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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