qiutie 发表于 2007-1-29 16:14

关于CAN总线接收的问题,请高手帮忙

用AT89C51、SJA1000、TJA1040搭建的CAN总线控制电路中采用MAX708同时给单片机和和SJA100复位。遇到如下问题:<br />1.发送正常,但接收不正常(其中接收的每个字节中只是低四位正确,而高四位不正确,例如发送:0XAA&nbsp;0XBB&nbsp;0XCC&nbsp;0XDD&nbsp;0XEE,0XFF,0X11,0X22,收到的数据为0X6A&nbsp;0X6B&nbsp;0X4C&nbsp;0X6D&nbsp;0X6E,0X4F,0X01,0X02)<br />2.另外还有个问题:我上面的实验是在仿真器下调试运行的,我将程序代码下载到AT89C51RD2中,在单片机却不能正常运行,我测了单片机的晶振和SAJ1000晶振都是正常的。复位信号也正常,在单片机中不对SAJ1000操作的程序代码是正常的,就是对SJA1000操作的代码是不好用的。<br />请高手帮忙给看一下,先谢了!

wxj1952 发表于 2007-1-30 11:41

很简单

1、读一下SJA1000内部发送缓存,即地址64H~76H的内容。或者仿真器XDATA地址0064H~0076H的内容即清楚了。然后是接收方相应内部RXB......。<br /><br />2、加入开机延时0.5秒。

qiutie 发表于 2007-1-31 19:26

现在的问题是发送正常,而接收不正常,并且不稳定!

现在的问题是发送正常,而接收不正常,并且不稳定!就是第一个问题还没有得到解决,接收每一帧都有误码,例如:从端发送的数据为:0x11&nbsp;0x22&nbsp;0x33&nbsp;0x44&nbsp;0xaa&nbsp;0xbb&nbsp;0xcc&nbsp;0xdd&nbsp;,则单片机端接收的数据为:0x11&nbsp;0x22&nbsp;0x83&nbsp;0x44&nbsp;0xaa&nbsp;0x6b&nbsp;0xcc&nbsp;0xcd&nbsp;<br />调了好几天了,这个问题还是没有得到解决

zysunol 发表于 2007-1-31 20:15

查查波特率设置

双方波特率设置一样吗?

qiutie 发表于 2007-1-31 21:15

波特率设置应没有问题的

波特率设置应没有问题的,因为发送的数据是正确的,就是接收的数据不完全正确

wxj1952 发表于 2007-2-1 20:25

应该发试验数据

1、发55,aa,00,ff,这些特殊数据,另外,如果发送33得到83,那就发送83,看看得到几?总不会得到33吧,如此来分析找到原因。<br />2、换块板子,有没有不同的结果。

qiutie 发表于 2007-2-2 17:54

又焊了一块板子

又焊了一块板子,还是老样子,在basicCAN下还是老样子,我的接收端只支持BasicCAN,所以没有办法在peliCAN下测试,估主没有办法了,是不是我在画PCB的时侯引起信号干扰r线没有处理好

wxj1952 发表于 2007-2-2 21:08

倒提醒了我一个好主意

要知道,Peli和Basic节点是可以互相通信的。例如你接收端只支持BasicCAN,那么你可以在发送端用PeliCAN标准帧发送。(或者在接收端用Peli标准帧进行接收,无论发送方是Basic/Peli帧都可以的)要知道两者是兼容的!注意到两者的接收缓存格式是一样的。它们在内部会自动转换为一致。到了总线上,帧格式都一样了。<br /><br />这样做的意义在于,你在发送/接收端用Basic和Peli两种程序进行实验,很少可能犯同样的错误。由此肯定软件的正确性。<br /><br />3、总线上是否接了120欧姆电阻?

qiutie 发表于 2007-2-4 08:37

我又焊了第三块板,新的问题又出现了...

我又焊了第三块板,新的问题又出现了.<br />我先介绍一下我的电路结构:AT89S52扩展了32K的RAM(P0口接一个573),P0口10K上拉接SJA1000,所有的片选信号接74hc138。<br /><br />经过多次实验发现:当RAM测试正常的情况下,CAN总信的通信就会出现上述问题。当RAM测试不正常时,也就是RAM不好用的情况下,CAN上的通信完全正常。现在我怀疑电路设计上是否正确,CAN是否要重新放一个573进行锁存,若放573,573电路接法是否与RAM的接法相同。

wxj1952 发表于 2007-2-4 19:55

硬件设计问题!

论坛上争论过的问题。SJA1000已经把373锁存器集成到芯片内了,要再加一个573也没什么不可以。<br /><br />很想看看设计电路图。

qiutie 发表于 2007-2-5 19:49

电路已经上传

电路已经上传

wxj1952 发表于 2007-2-8 18:43

没看到电路.

qiutie 发表于 2007-2-10 10:52

上面的问题搞定,现在又出了新问题

上面的问题我查到了原因,是由RAM和SJA1000地址冲突引起的;<br />现在出了一个小问题,CAN总线在10K,20K,80K下我进行了两块板通信测试,数据正常,但是我在做5K的通信实验时就不好用了,其中5K时BTR0=0X7F,BTR1=0XFF,请大家帮忙看一下。

yizaisong 发表于 2007-3-1 14:02

to qiutie

to&nbsp;qiutie&nbsp;<br />我是刚刚接手一个CAN总线的小项目,能否借你原理图一览,<br />谢谢<br />信箱YZS1980@SOHU.COM

kekechong 发表于 2007-3-2 10:03

SJA1000接收问题

我的问题更严重,就是不能接收,接收端一点反应也没有,总线上有信号,该从哪里里下手呢???真急呀!
页: [1]
查看完整版本: 关于CAN总线接收的问题,请高手帮忙