打印

两个CAN口能否直接对连

[复制链接]
9190|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tanybin|  楼主 | 2011-1-5 09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
正常来讲一个CAN网络里面有多节点,长距离通讯的时候,需要用到CAN收发器,将CAN控制器的TX和RX转换成CANH,CANL的差分信号。
但是如果我的板内两个MCU之间通讯,如果也走CAN方式的话(也就是CAN网络里面只有两个节点),能否将CAN收发器去除,直接将CAN1控制器的TX连接CAN2控制器的RX,CAN1控制器的RX连接CAN2控制器的TX?

原来发表于CAN-bus区里面,不过好像人气不旺,故在此重发,望高手指导一下。

相关帖子

沙发
木头东瓜| | 2011-1-5 09:56 | 只看该作者
能,不过,你还不如直接串口算了,那样做一点意义都没有

使用特权

评论回复
板凳
mmax| | 2011-1-5 10:00 | 只看该作者
呵呵,可以。
可能LZ的程序框架都搭好了,软件用CAN方便一些。

使用特权

评论回复
地板
tanybin|  楼主 | 2011-1-5 10:22 | 只看该作者
呵呵。没办法。我拿到板子的时候,发现有这个问题,我看到板子上面接了两个CAN收发器,去找设计者,设计者说CAN不能直接对连,必须加收发器,我感到有点疑惑,故发帖咨询一下大家。用CAN口通讯,可能是考虑比串口快吧。

使用特权

评论回复
5
ejack| | 2011-1-5 12:30 | 只看该作者
说“能”的同学们,请问你们TX信号如何回到RX脚?



CAN MAC发出的东西永远回读不到,漫无止境的错误循环……

使用特权

评论回复
6
airwill| | 2011-1-5 13:14 | 只看该作者
就是, 怎么可能呢! 没有好好分析 CAN 协议就说能了!
不过我有一个办法, 不用收发器连接多个 CAN 节点, 楼主不妨试试:
把若干节点的 TX 连接一个快速二极管(4148), TX 接 K. 最后把所有的二极管的 A 连接起来;
这个 A 的公共点和各个节点的 RX 都连到一起; 再用上拉电阻拉正.
这办法符合协议, 缺点是有些收发器具有的故障自动离开总线功能不能实现了

使用特权

评论回复
7
tanybin|  楼主 | 2011-1-5 14:51 | 只看该作者
这么看来是不行的了,看来人家的设计还是有道理的。至于接二极管那个方法也就不试了,还是老老实实用收发器吧。

使用特权

评论回复
8
aliang2007| | 2011-1-5 22:26 | 只看该作者
没这样用过
不过应该可以
自己搭个电路试试呗

使用特权

评论回复
9
tanybin|  楼主 | 2011-1-6 09:22 | 只看该作者
5楼和6楼,你们的意思是不能这样接。我查看了一下CAN的协议,找到下面这段话,不知道是不是就是你们所说的TX信号会回到RX

• 位错误(Bit Error)
单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则在此位时间
里检测到一个位错误。
但是在仲裁场(ARBITRATION FIELD)的填充位流期间或应答间隙(ACK SLOT)
发送一“隐性”位的情况是例外的—— 此时,当监视到一“显性”位时,不会发出位错误。当发送器发送
一个被动错误标志但检测到“显性”位时,也不视为位错误。

使用特权

评论回复
10
电子乌托邦| | 2011-1-6 09:47 | 只看该作者
关注

使用特权

评论回复
11
ejack| | 2011-1-6 12:26 | 只看该作者
是的。CAN MAC必须了解CAN总线上的真实情况,以便判断总线或自身是否存在问题、并进行相应的处理。
所以CAN收发器的框图中驱动后的差分信号在内部环回到接收输入端。

因为CAN收发器的这种结构,在采用485协议层 + CAN PHY时,软件必须过滤掉收到的自己发送的帧。

使用特权

评论回复
12
tanybin|  楼主 | 2011-1-6 13:30 | 只看该作者
11# ejack

谢谢你的答复。
不过你也给我提出了一个新的概念,还请你答疑解惑一下。

你说可以用485协议层+CAN PHY是个什么概念? 是指用UART+CAN收发器,转成差分传输,就和UART+485收发器一样吗?只是在使用中需要用软件将接收到的自己发送的数据给剔除掉?

使用特权

评论回复
13
335821223| | 2011-1-15 22:47 | 只看该作者
是不能接到一起的,因为CAN TX在发送时,会通过RX引脚检测总线电平是否正确,而总线电平检测是由收发器实现的,没有了收发器,CAN会检测到总线电平错误而导致总线关闭.

使用特权

评论回复
14
lenningwong| | 2011-3-23 15:09 | 只看该作者
不能。
能的话就不是CAN协议了,也不是串口(电平不符合)。
CANL和CANH之间的显隐性电压才化为TX或RX,都是二进制的。

使用特权

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

本版积分规则

6

主题

60

帖子

1

粉丝