打印
[DSP编程]

CAN通信相关问题,求指教。

[复制链接]
3354|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pinda_|  楼主 | 2013-10-22 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天,我在做CAN通信过程中,又一次遇到了这个问题,我想,应该提出来,看看大家的想法是什么。

我的环境如下:
两台下位机A、B之间进行通信,一台上位机C进行监控,三台设备之间通信CAN连接板之间进行通信。

问题如下:
A、B之间能直接进行通信,可以保证CAN正常。但是,三台设备之间进行通信时,我用下位机B发送,A、C应该都能接收,但是实际情况是C接收了,A没反应;但是,通过上位机C给下位机A一个指令,下位机A接收到后返回一条指令,这时,下位机B和上位机C同时能接收到。

我想问:
会不会是因为硬件方面的原因,电阻阻值过120耦就无法实现通信? 但是,并联情况下会超出,串联情况下,刚刚好是120耦,现在无法理解这个原因。

注:上位机C通过串口转CAN进行连接。

相关帖子

沙发
fastolf| | 2013-10-22 15:04 | 只看该作者
每个节点都必须设置为normal状态,看下你配置的状态对不对,A可能配置为监听模式了。

使用特权

评论回复
板凳
pinda_|  楼主 | 2013-10-23 14:27 | 只看该作者
fastolf 发表于 2013-10-22 15:04
每个节点都必须设置为normal状态,看下你配置的状态对不对,A可能配置为监听模式了。 ...

你说的节点指的是哪个?CAN的配置的话,可以保证是对的,没有错误。

使用特权

评论回复
地板
fastolf| | 2013-10-23 14:36 | 只看该作者
pinda_ 发表于 2013-10-23 14:27
你说的节点指的是哪个?CAN的配置的话,可以保证是对的,没有错误。

我说的节点 就是指你所谓的A、B、C 终端normal状态的设备,监听设备不是节点。

使用特权

评论回复
5
fastolf| | 2013-10-23 14:38 | 只看该作者
“A、C应该都能接收,但是实际情况是C接收了,A没反应”
是否是软件原因,如果CAN H/L波形都OK,那么有可能是A设备将你发的ID过滤了。

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
zhangmangui + 6 赞一个!
6
pinda_|  楼主 | 2013-10-23 14:42 | 只看该作者
fastolf 发表于 2013-10-23 14:36
我说的节点 就是指你所谓的A、B、C 终端normal状态的设备,监听设备不是节点。 ...

可以确定是normal, 不然,我用上位机发送给A端,A端应该也无法接收,但是,事实是接收了,且响应后,B羰与上位机都收到了信息。昨天问硬件那边的人,他们也给不出个好的解释,就是说有些可以,有时候不可以。晕呼呼。

使用特权

评论回复
7
pinda_|  楼主 | 2013-10-23 14:44 | 只看该作者
fastolf 发表于 2013-10-23 14:38
“A、C应该都能接收,但是实际情况是C接收了,A没反应”
是否是软件原因,如果CAN H/L波形都OK,那么有可能 ...

当时也想过这个问题,所以,最直接的方法,做了个实验。去掉上位机C,和A之前进行直接通信,结果,通信正常,有响应数据。现在猜想,是不是上位机接收完后把数据给屏蔽了?

使用特权

评论回复
8
fastolf| | 2013-10-23 14:44 | 只看该作者
pinda_ 发表于 2013-10-23 14:42
可以确定是normal, 不然,我用上位机发送给A端,A端应该也无法接收,但是,事实是接收了,且响应后,B羰 ...

你的响应是指进了接受数据的中断吧?

使用特权

评论回复
9
pinda_|  楼主 | 2013-10-23 14:47 | 只看该作者
fastolf 发表于 2013-10-23 14:44
你的响应是指进了接受数据的中断吧?

我的响应指的是A端接收到请求数据后,发送相应的解析数据给B端,然后,B端对接收到的数据进行解析,发现数据正常,没有错误。

使用特权

评论回复
10
fastolf| | 2013-10-23 14:53 | 只看该作者
pinda_ 发表于 2013-10-23 14:44
当时也想过这个问题,所以,最直接的方法,做了个实验。去掉上位机C,和A之前进行直接通信,结果,通信正 ...

一般多个设备连接在一起,只要节点大于2个,相互通信肯定没问题的。
刚看了下手册“Termination resistors RCAN_Land RCAN_H(125Ω) are not connected to pin RTL or pin RTH for testing purposes because the minimum load allowed on the CAN bus lines is 500Ωper transceiver”与匹配电阻关系应该不大。你可以保证一个设备在发送数据的同时,别的设备没有发数据么?个人感觉软件影响更大些。

使用特权

评论回复
11
pinda_|  楼主 | 2013-10-23 14:55 | 只看该作者
fastolf 发表于 2013-10-23 14:53
一般多个设备连接在一起,只要节点大于2个,相互通信肯定没问题的。
刚看了下手册“Termination resistor ...

这个可以保证,上位机只是相当于一个检测设备,没有自动发的程序。所以,很纠结这样的一个存在。你的那份资料,我晚上有时间看看,说不定会有什么启发。

使用特权

评论回复
12
fastolf| | 2013-10-23 14:57 | 只看该作者
“两台下位机A、B之间进行通信,一台上位机C进行监控,三台设备之间通信CAN连接板之间进行通信。”如果C仅仅是监控,那么可以设为lisence监听即可,但是你的C设备还是往总线上发数据了。

使用特权

评论回复
13
pinda_|  楼主 | 2013-10-23 15:04 | 只看该作者
fastolf 发表于 2013-10-23 14:57
“两台下位机A、B之间进行通信,一台上位机C进行监控,三台设备之间通信CAN连接板之间进行通信。”如果C仅 ...

C端好像并没有发数据。我再把环境说一遍吧:

A端:接收邮箱:505
           发送邮箱:550
           等待数据接收,(数据接收与发送都是通过中断进行控制)
B端:接收邮箱:550
           发送邮箱:505
           等待数据接收,(数据接收与发送都是通过中断进行控制)
C端:上位机
           可直接发送数据,也可以接收数据,但是接收到数据后,无任何反馈信号产生。

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
zhangmangui + 6 赞一个!
14
fastolf| | 2013-10-23 15:33 | 只看该作者
pinda_ 发表于 2013-10-23 15:04
C端好像并没有发数据。我再把环境说一遍吧:

A端:接收邮箱:505

上位机的接收是中断么,你的CAN速率多少啊?

使用特权

评论回复
15
pinda_|  楼主 | 2013-10-23 15:47 | 只看该作者
CAN速率是1M,  上位机是一个windows下的软件,通过串口转CAN口进行连接。

使用特权

评论回复
16
pinda_|  楼主 | 2013-10-23 15:48 | 只看该作者
fastolf 发表于 2013-10-23 15:33
上位机的接收是中断么,你的CAN速率多少啊?

CAN速率是1M,  上位机是一个windows下的软件,通过串口转CAN口进行连接。

使用特权

评论回复
17
fastolf| | 2013-10-23 15:50 | 只看该作者
pinda_ 发表于 2013-10-23 15:48
CAN速率是1M,  上位机是一个windows下的软件,通过串口转CAN口进行连接。

你用的CAN速率还是比较快的,建议将上位机接收数据改为中断接收。另外可以将CAN的速率降一降,看稳定性如何。

使用特权

评论回复
18
pinda_|  楼主 | 2013-10-23 16:10 | 只看该作者
fastolf 发表于 2013-10-23 15:50
你用的CAN速率还是比较快的,建议将上位机接收数据改为中断接收。另外可以将CAN的速率降一降,看稳定性如 ...

上位机软件的接收方式不是很清楚是什么,我是采用一个外部工具进行接收的,有空去查下;关于CAN的波特率问题,哎,暂时是无法改动了。谢谢你的回答,你的回答对我的帮助很大。

之前没在意这个问题,最近又有点忙,花些周六周日时间,我来做个测试看看,那边的程序要我自己重新写下,一个CAN应该容易的,估计要花些时间才能回复你了。

这个帖子我先保留着,到时候测试完毕后,再来回复下,测试结果。:D

使用特权

评论回复
19
fastolf| | 2013-10-23 16:18 | 只看该作者
pinda_ 发表于 2013-10-23 16:10
上位机软件的接收方式不是很清楚是什么,我是采用一个外部工具进行接收的,有空去查下;关于CAN的波特 ...

:lol加油!

使用特权

评论回复
20
zhangmangui| | 2013-10-23 18:10 | 只看该作者
pinda_ 发表于 2013-10-23 14:55
这个可以保证,上位机只是相当于一个检测设备,没有自动发的程序。所以,很纠结这样的一个存在。你的那份 ...

资料分享出来啦  呵呵

使用特权

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

本版积分规则

个人签名:该吃吃,该喝喝!!!

13

主题

173

帖子

0

粉丝