打印

CAN通讯异常波形

[复制链接]
4132|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 紫阳真人 于 2019-1-21 16:54 编辑

LPC1788通过CAN发送数据给上位机,正常情况下TX脚对地波形如下:

但一批板子里面有些不能进行CAN通讯的,用示波器扎TX-GND波形如下:


请问是哪里出了问题?
/*****************************分割线2019年1月16日16:14:59********************************/
进度更新:
1、CAN芯片ISO1050出了问题,把隔离电源B0505S的电压拉低到了4.5V,通过更换芯片能够正常通讯,大部分都是这颗芯片损坏,原因不明;
2、为什么MCU的TX脚在ISO1050前端,而输出波形会出现异常?
3、有一例TX脚输出为一条稳定的高电平,测量B0505S电压正常5.26V;


/*****************************分割线2019年1月21日10:53:48********************************/
进度更新:
发现TX脚输出异常波形或电平全部是ISO1050出了问题,损坏原因尚不明确







相关帖子

沙发
ningling_21| | 2019-1-16 13:56 | 只看该作者
用的什么芯片?
230还是1050?

使用特权

评论回复
板凳
jjjyufan| | 2019-1-16 14:01 | 只看该作者
换颗收发器试试呢 换颗单片机呢
图呢?

使用特权

评论回复
地板
jjjyufan| | 2019-1-16 14:02 | 只看该作者
终端电阻加没?

使用特权

评论回复
5
紫阳真人|  楼主 | 2019-1-16 16:07 | 只看该作者
jjjyufan 发表于 2019-1-16 14:01
换颗收发器试试呢 换颗单片机呢
图呢?

是用ISO1050,发现是这颗芯片坏了,把隔离电源电压都从5.25V拉低到了4.5V,换了一颗就好了,但是问题是为什么单片机TX脚输出波形也不正常了?


使用特权

评论回复
6
紫阳真人|  楼主 | 2019-1-16 16:10 | 只看该作者
ningling_21 发表于 2019-1-16 13:56
用的什么芯片?
230还是1050?

用的1050是这颗芯片坏了,楼上有图,为什么单片机输出也异常了,另外还有一块板的单片机TX输出一条稳定的高电平,也很奇怪

使用特权

评论回复
7
ningling_21| | 2019-1-16 20:30 | 只看该作者
紫阳真人 发表于 2019-1-16 16:07
是用ISO1050,发现是这颗芯片坏了,把隔离电源电压都从5.25V拉低到了4.5V,换了一颗就好了,但是问题是为 ...

TX波形有可能受到坏的1050影响。

使用特权

评论回复
8
gx_huang| | 2019-1-16 20:41 | 只看该作者
CAN发送时会监测总线电压,如果外部短路,硬件仲裁终止发送。

使用特权

评论回复
9
紫阳真人|  楼主 | 2019-1-16 22:01 | 只看该作者
ningling_21 发表于 2019-1-16 20:30
TX波形有可能受到坏的1050影响。

从结果看,确实是受坏的1050影响,如果说被强行拉低抬高是说不过去的,因为单片机引脚和1050之间串了100R电阻,单片机如果正常发报文出来还是可以通过测试点TP9抓出来的,但现在抓到的是不正常的波形,怀疑是1050影响到了CAN通讯的某个环节。

使用特权

评论回复
10
紫阳真人|  楼主 | 2019-1-16 22:05 | 只看该作者
gx_huang 发表于 2019-1-16 20:41
CAN发送时会监测总线电压,如果外部短路,硬件仲裁终止发送。

这么说那些电压被拉低的,发送异常波形就说得通了,但是后面一个电压正常5.25V的,TX脚输出确是一条高电平可能不是这个原因

使用特权

评论回复
11
jjjyufan| | 2019-1-17 08:53 | 只看该作者
1050 6 7 脚最好串个限流电阻 几欧的

使用特权

评论回复
12
jjjyufan| | 2019-1-17 08:53 | 只看该作者
H L 其实最好还要有个共模电感

使用特权

评论回复
13
FAQ| | 2019-1-18 10:13 | 只看该作者
特意登陆回帖,其实这是错误帧。只要不能正常收到ack就会异常。就会开始发错误帧。

使用特权

评论回复
14
FAQ| | 2019-1-18 10:16 | 只看该作者
ack是经过收发器芯片从HL传过来的到发送单片机的rx脚上,如果rx脚不能正常收到ack就会认为发出去的数据没被目标设备收到。就会开始发送错误帧。

使用特权

评论回复
15
FAQ| | 2019-1-18 10:21 | 只看该作者
总的来说,即使是自己发出去的波形,也就是tx脚发出的数据波形,发出的同时自己的rx也会对发出去的数据波形进行监控。如果在rx脚上不能正常收到发出去的波形以及其他设备返回的ack就会认为异常。这也是can通信能够保证数据准确可靠的原因之一。

使用特权

评论回复
16
FAQ| | 2019-1-18 10:28 | 只看该作者
can收发器芯片内部电路,你看芯片手册能看出来内部逻辑,tx和rx脚其实是连接在一起的,这样就能保证tx发出去的数据会被rx脚收到,这样起到监控作用,如果芯片故障了不能把tx的数据返回到rx脚上,就会出现收不到对方的ack,自己就会不停的发错误帧,甚至开了自动离线管理的话连波形也没了。

使用特权

评论回复
17
FAQ| | 2019-1-18 10:29 | 只看该作者
本帖最后由 FAQ 于 2019-1-18 10:31 编辑

所以tx脚的波形是受到收发器芯片的影响的,这很正常。

使用特权

评论回复
18
FAQ| | 2019-1-18 10:36 | 只看该作者
你可以做的简单实验测试验证我说的,将收发器芯片干脆拆掉也就是让tx和rx悬空这时候tx脚连波形也测不到。然后接着把tx和rx直接用镊子短路在一起重新上电测试波形就又出来了,并且出来的波形叫做错误帧。也就是你所说的异常波形。

使用特权

评论回复
19
紫阳真人|  楼主 | 2019-1-21 10:44 | 只看该作者
FAQ 发表于 2019-1-18 10:36
你可以做的简单实验测试验证我说的,将收发器芯片干脆拆掉也就是让tx和rx悬空这时候tx脚连波形也测不到。然 ...

首先非常感谢对原理的讲解,其次抱歉因太忙回复晚了。今早我按照你说的方法测试了TX的波形:
1、我直接断开单片机CAN_RX脚与ISO1050的RXD之间的电阻R20,测量单片机CAN_TX脚的波形;
2、直接取下ISO1050测量CAN_TX脚波形;
3、测量故障样机的CAN_TX脚波形;
发现以上三个波形一样。然后我又测量了以下波形:
4、直接将单片机CAN_TX脚和CAN_RX脚短接,CAN_TX波形;
5、正常通讯的样机CAN_TX波形;
发现后面两个波形是一样的。


使用特权

评论回复
20
紫阳真人|  楼主 | 2019-1-21 11:06 | 只看该作者
jjjyufan 发表于 2019-1-17 08:53
H L 其实最好还要有个共模电感

6、7脚上已经有PESD1CAN钳位了,这样还是不可靠吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:必须有所突破

75

主题

525

帖子

9

粉丝