帮忙分析一下CAN总线的波形,不知道这样是不是正常的
本帖最后由 板砖横飞 于 2012-3-3 12:08 编辑现在在调试CAN总线,用示波器抓了几个波形,大家帮忙看看是不是正常的。第0张图是只加一个匹配电阻时的波形,第1张图是只加一个匹配电阻时的波形的放大图,观察最后一位波形变高了。第2张图和第3张图是两端加了两个匹配电阻的波形和波形放大图,最后一位也变高了。不知道这是不是正常的波形,我的通讯是正常的。 没人遇到这种情况吗 也许你的接收器件在最后一位的时候输入阻抗改变了
比如它忽略了最后一位, 最后一位时候进入了高阻态之类的 没人遇到这种情况吗,正常的波形最后一位是不是应该和以前的电平等高的?还是就是应该搞一点 本帖最后由 刘前辈 于 2012-3-8 09:07 编辑
呵呵,最后一位是接收方回送给发送方的应答信号ACK,传输方向(电压电流)在这一位换向了。总线信号电平此时由接收节点电路确定;所以可能不一样(2个节点驱动电平不一样,甚至两边节点电源电压不一样)。——可以故意做个实验:让发送和接收共电源试试。或者2节点发送/ 接收交换方向/交换电路板试试。(换向后,最后一位岂不是要变低了?)
不过终端电阻应该是安装在总线2端端点的2个120 欧姆,总线纯电阻应低于60欧姆。冒尖好像噪声吸收不够。
// 本帖最后由 刘前辈 于 2012-3-8 08:52 编辑
最简单的证实方法就是发送端软件改变一下发送目标地址,使网络上没有任何节点匹配接收,这样没有任何节点发出响应应答ACK信号,——现象应该是最后一位高消失了。
软件不变的证实方法是断开接收节点总线,使发送端向“空总线”发送数据帧,——没有任何接收节点,当然没有ACK信号。
、、 非常感谢 6# 刘前辈 用单节点验证了一下,确实没有最后一位变高了,谢谢 6# 刘前辈 呵呵,最后一位是接收方回送给发送方的应答信号ACK,传输方向(电压电流)在这一位换向了。总线信号电平此时由接收节点电路确定;所以可能不一样(2个节点驱动电平不一样,甚至两边节点电源电压不一样)。——可以故 ...
刘前辈 发表于 2012-3-7 16:33 https://bbs.21ic.com/images/common/back.gif我已经在CAN总线的两端加了120欧姆的匹配电阻,加了匹配电阻也存在最后一位变高的情况,难道是CAN收发器先天原因造成的。 现在出现了这样一个现象,如果单节点的时候,确实没有最后一位变高了(ACK没有变高)。后来我又做了一个实验,控制器和10个模块通信,就是控制器和另外10个节点通信,10个节点的地址分别是0-9,当是10个节点通信时,从波形上看,能明显的看到总线上数据是一发一回的两帧数据(这两帧数据的最后一位都是超高的),当我去掉10个节点中的8个节点后,重新运行程序。发现总线上很多数据是连在一起的两帧数据(应该是一发一回),也有很多单帧数据(一发没回),但是这个单帧数据的最后一位也变高了,这就不正常了,因为没有节点能回复它(因为我去掉了8个节点),就是没有节点接受这个数据,也就没有节点会吧ACK拉高了,但是实际的情况是,发送帧的ACK确实被拉高了。 6# 刘前辈 我也遇到了这种问题,有哪位高手解释下。 这个问题我也遇到了,经过实验,基本确定原因:报文(除应答位外)是由1个终端发送的,而应答位是由总线上其他多个终端发送的,驱动能力比较强。总线上只有2个终端就不会有这样的问题。 这个问题有结论么,需要解决么
页:
[1]