搜索
bottom↓
回复: 131

两MCU之间CAN通讯,距离很近,能否直接CAN引脚相连

  [复制链接]

出0入0汤圆

发表于 2014-9-30 20:39:21 | 显示全部楼层 |阅读模式
请教一个问题,两MCU之间CAN通讯,距离很近,在一块PCB板上,能否直接CAN引脚相连,不用CAN驱动器。  有人尝试过吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-9-30 20:40:17 | 显示全部楼层
只两台?

出0入0汤圆

 楼主| 发表于 2014-9-30 20:43:26 | 显示全部楼层

恩,就是两片单片机之间, 串口通道不够用了,才想到这个。

出0入0汤圆

发表于 2014-9-30 20:46:32 | 显示全部楼层
两台不用仲裁,应该可以

出0入0汤圆

发表于 2014-9-30 21:01:34 | 显示全部楼层
CAN用的是差分信号,单片机那用差分信号线呢?

出0入0汤圆

 楼主| 发表于 2014-9-30 21:10:59 | 显示全部楼层
why1220 发表于 2014-9-30 21:01
CAN用的是差分信号,单片机那用差分信号线呢?

   不用驱动器转化为差分,直接把输入,输出引脚对接

出0入0汤圆

发表于 2014-9-30 21:21:02 | 显示全部楼层
不能把,can收发器要实时监测总线状态的。

出0入0汤圆

发表于 2014-9-30 21:23:59 来自手机 | 显示全部楼层
有什么意义?

出0入0汤圆

发表于 2014-9-30 21:27:46 | 显示全部楼层
没试过,我觉得应该可以。

出0入0汤圆

发表于 2014-9-30 21:29:01 | 显示全部楼层
CAN的RX不光是接收总线上其它人的通讯,也要实时监听自己的发送,以实现冲突仲裁。
既然是在板,UART不就可以了吗?

出10入0汤圆

发表于 2014-9-30 21:32:44 来自手机 | 显示全部楼层
io口模拟串口吧,低波特率的可以!

出0入0汤圆

 楼主| 发表于 2014-9-30 21:33:00 | 显示全部楼层
aozima 发表于 2014-9-30 21:29
CAN的RX不光是接收总线上其它人的通讯,也要实时监听自己的发送,以实现冲突仲裁。
既然是在板,UART不就可 ...

串口通道不够用了,才想到这个。

出0入0汤圆

发表于 2014-9-30 21:44:17 | 显示全部楼层
模拟个串口或者SPI、IIC都行啊,为何非要CAN。

出0入0汤圆

发表于 2014-9-30 21:48:42 | 显示全部楼层
本帖最后由 huangqi412 于 2014-9-30 21:50 编辑

看过这种不用CAN芯片的歪路子资料,不限于两个,可以多个组网

5V--[R]-------------------------------
               |        |
              ----      |
             \ D /    |
            ____    |
              |        |
           TX       RX

出0入0汤圆

发表于 2014-9-30 21:49:17 | 显示全部楼层
可以,两个CAN的输入连起来,输出分别通过OC门(如74LVC1G07)连到输入,输入线加一个上拉电阻。

出0入0汤圆

发表于 2014-9-30 21:50:46 | 显示全部楼层
电阻+二极管  

出0入0汤圆

 楼主| 发表于 2014-9-30 22:00:08 | 显示全部楼层
yuguoliang 发表于 2014-9-30 21:49
可以,两个CAN的输入连起来,输出分别通过OC门(如74LVC1G07)连到输入,输入线加一个上拉电阻。 ...

有参考电路吗?

出0入0汤圆

 楼主| 发表于 2014-9-30 22:05:47 | 显示全部楼层
huangqi412 发表于 2014-9-30 21:48
看过这种不用CAN芯片的歪路子资料,不限于两个,可以多个组网

5V--[R]-------------------------------

   能提供更确切的线路图吗?

出0入0汤圆

发表于 2014-9-30 22:08:50 | 显示全部楼层
lookatu 发表于 2014-9-30 22:05
   能提供更确切的线路图吗?

就是5V串电阻,TX接二极管,RX直接接,  N个都往上挂
你自己飞几根线找两单片机试试就知道了

出0入0汤圆

发表于 2014-9-30 22:10:17 | 显示全部楼层
14楼的点子够牛的,简单易行!

出0入0汤圆

发表于 2014-9-30 22:11:12 | 显示全部楼层
电路可参考 huangqi412  的,其实都是一样的, 就是CAN的发送接二极管连到接收或是通过OC(74HC07)门,效果是一样的,用二极管的话,负极接发送,正极接接收,二极管选正向压降低点的。
简单描述一下电路的接法,CAN的发送通过二极管或OC门连接到CAN的接收,CAN接收上接一个上拉电阻。此时CAN发送高电平时,通过上拉电阻,CAN的接收收到高电平,当CAN发送低电平时,通过二极管或OC门将接收拉低,CAN的接收收到低电平。
然后把多个CAN芯片的接收连在一起,就可以互相通讯了,任何一个CAN发送的数据,所有的CAN都能拉收到。系统中的上拉电阻有一个就可以了。

出0入0汤圆

发表于 2014-9-30 22:21:15 | 显示全部楼层
huangqi412 发表于 2014-9-30 21:48
看过这种不用CAN芯片的歪路子资料,不限于两个,可以多个组网

5V--[R]-------------------------------

对的,防止图腾柱短路中就可以了

出0入0汤圆

发表于 2014-9-30 22:43:07 | 显示全部楼层
学习了,这个主意不错

出0入0汤圆

 楼主| 发表于 2014-9-30 22:45:59 | 显示全部楼层
yuguoliang 发表于 2014-9-30 22:11
电路可参考 huangqi412  的,其实都是一样的, 就是CAN的发送接二极管连到接收或是通过OC(74HC07)门,效 ...

明白了,这个思路不错

出0入0汤圆

 楼主| 发表于 2014-9-30 22:48:18 | 显示全部楼层
huangqi412 发表于 2014-9-30 22:08
就是5V串电阻,TX接二极管,RX直接接,  N个都往上挂
你自己飞几根线找两单片机试试就知道了 ...

 看明白了。多谢

出0入0汤圆

发表于 2014-9-30 23:29:17 来自手机 | 显示全部楼层
yuguoliang 发表于 2014-9-30 22:11
电路可参考 huangqi412  的,其实都是一样的, 就是CAN的发送接二极管连到接收或是通过OC(74HC07)门,效 ...

学习,正要用到CAN,顺便请教一下,这种连接方法距离是多少,谢谢了!

出0入0汤圆

发表于 2014-9-30 23:39:22 | 显示全部楼层
和无节操串口多点通信一模一样的。。。
都有can了肯定也有SPI吧,感觉比CAN用起来简单多了。。。还能多点通信。。。

出0入0汤圆

发表于 2014-10-1 00:25:07 | 显示全部楼层
14大神鉴定完毕

出0入0汤圆

发表于 2014-10-1 07:40:32 来自手机 | 显示全部楼层
标记一下,can应用

出0入0汤圆

发表于 2014-10-1 08:57:59 | 显示全部楼层
楼上的都做过实验,确定可以使用?

出0入0汤圆

发表于 2014-10-1 09:17:00 | 显示全部楼层
试好了说一声,谢谢,我下次也想这样用.

出0入0汤圆

发表于 2014-10-1 10:09:39 | 显示全部楼层
向高手学习!收藏一下

出0入0汤圆

发表于 2014-10-1 10:37:32 | 显示全部楼层
这样也可以,学习了

出0入0汤圆

发表于 2014-10-1 13:38:23 | 显示全部楼层
不要想了,行不通的。

出0入0汤圆

发表于 2014-10-1 14:38:11 | 显示全部楼层
zhaotyue 发表于 2014-9-30 23:29
学习,正要用到CAN,顺便请教一下,这种连接方法距离是多少,谢谢了!

不要贪心好不好,人家芯片厂投资做CAN芯片是小孩子过家家好玩?你还想推广到所有场合啊。

出0入0汤圆

发表于 2014-10-1 14:39:39 | 显示全部楼层
楼主只是想板上通信一下肯定没问题,  你们还想扩展到远距离通信让芯片厂破产?

出0入0汤圆

发表于 2014-10-1 14:45:09 | 显示全部楼层
楼主是否测试?能通讯?

出0入0汤圆

发表于 2014-10-1 15:27:34 来自手机 | 显示全部楼层
应该不行的,加一个TJA1050就可以了!

出0入0汤圆

发表于 2014-10-1 15:32:44 | 显示全部楼层
直接连接好像不可以。
楼上有谁做过实际的,分享一下。

出0入0汤圆

发表于 2014-10-1 15:35:47 | 显示全部楼层
直接连还不如用spi

出300入477汤圆

发表于 2014-10-1 20:45:09 来自手机 | 显示全部楼层
当然行,如果单片机所有io可以随便设为od输出,那么把两个can tx都设成od,两个收两个发四条线全连起来,外接一个上拉电阻就行了

出300入477汤圆

发表于 2014-10-1 20:47:34 来自手机 | 显示全部楼层
如果tx自身不带od功能,只能用21楼的做法外加oc/od了

出0入0汤圆

发表于 2014-10-1 22:03:34 | 显示全部楼层
正要学CAN通信,围观一下

出0入0汤圆

发表于 2014-10-2 10:23:48 | 显示全部楼层
学习了,标记

出0入4汤圆

发表于 2014-10-2 11:07:56 | 显示全部楼层
模拟iic就行了,这样弄can有啥实际意义???

出300入477汤圆

发表于 2014-10-2 11:13:01 来自手机 | 显示全部楼层
cwei 发表于 2014-10-2 11:07
模拟iic就行了,这样弄can有啥实际意义???

意义就是快,不用模拟。并且是真双向通迅。
i2c是主从结构就不说了,你以为模拟一个i2c从机容易吗?

出0入0汤圆

发表于 2014-10-2 12:27:13 | 显示全部楼层
必须加CAN接口芯片

出0入0汤圆

发表于 2014-10-2 12:48:04 | 显示全部楼层
现在用的是TJA1050CAN仲裁芯片,但是CAN有一个自发自收的机制,那样是不需要CAN芯片的,那么我觉得两台单片机直接相连,不形成网络应该是可以的吧

出0入0汤圆

发表于 2014-10-3 07:10:33 来自手机 | 显示全部楼层
学习了。。

出0入0汤圆

发表于 2014-10-3 12:08:31 | 显示全部楼层
最近项目也打算用CAN了,但是我的是两块板子连接,距离也很近。。。

出0入0汤圆

 楼主| 发表于 2014-10-3 15:36:31 | 显示全部楼层
簡丶灬讠己 发表于 2014-10-3 12:08
最近项目也打算用CAN了,但是我的是两块板子连接,距离也很近。。。

最好在一块PCB板上,远了信号没办法保证。

出0入0汤圆

发表于 2014-10-3 16:35:12 | 显示全部楼层
两个单片机通讯,为何纠结于can。好多模拟方式。

出300入477汤圆

发表于 2014-10-3 16:48:49 | 显示全部楼层
簡丶灬讠己 发表于 2014-10-3 12:08
最近项目也打算用CAN了,但是我的是两块板子连接,距离也很近。。。

直接OC上拉对连仅限于同一块板子内部。
如果信号要到板子外部,就不要这么干了,老老实实装个TJA1050吧,也不贵
当然,在同一个板子上,确实没必要用收发器。

不用收发器的情况下,如果你的CAN控制器支持,其实你可以用远远超过标准的波特率,例如用2M,5M,10M等等。。。仅仅受你的分布电容和上拉电阻的驱动能力权衡。
这也是不用收发器的一个好处。

如果用收发器,你怎么也不可能超过1M的上限(最快的CAN收发器只有1M)

出0入0汤圆

发表于 2014-10-4 10:27:18 | 显示全部楼层
学习了,谢谢

出0入0汤圆

发表于 2014-10-12 22:47:33 | 显示全部楼层
自已弄的电路能保证可靠吗?表示怀疑。看看CAN接口芯片内部的电路,你就知道没那么简单了。

出0入0汤圆

发表于 2014-10-19 16:47:00 | 显示全部楼层
我觉得41楼redroof说的可能是对的。

出0入0汤圆

发表于 2014-10-19 16:51:29 | 显示全部楼层
tyw996 发表于 2014-10-12 22:47
自已弄的电路能保证可靠吗?表示怀疑。看看CAN接口芯片内部的电路,你就知道没那么简单了。 ...

你的理解有点偏差,楼主的意思是:如同UART端口一样,加上一片SP3232就可以与PC通讯,不加也能在两片MCU之间通讯,不存在可靠性问题。

出0入0汤圆

发表于 2014-10-19 17:36:46 来自手机 | 显示全部楼层
我来听课,学习了,谢谢。

出0入0汤圆

发表于 2014-10-19 17:41:09 | 显示全部楼层
我板上两个STM32F103就是用的SPI通迅的。 不停的向对方传输缓存中的数据。快速并且简单。

出300入477汤圆

发表于 2014-10-19 18:28:23 来自手机 | 显示全部楼层
464839941xql 发表于 2014-10-19 16:47
我觉得41楼redroof说的可能是对的。

当然是对的,很多年前就这么用过,太正常了

出0入0汤圆

发表于 2014-10-19 23:42:47 | 显示全部楼层
可以 咋不用spi i2c

出0入0汤圆

发表于 2014-10-20 06:36:23 来自手机 | 显示全部楼层
14楼,大神~~~

出0入0汤圆

发表于 2014-10-20 06:43:00 | 显示全部楼层
过来学习一下

出0入0汤圆

发表于 2014-10-20 06:56:34 来自手机 | 显示全部楼层
不错的想法啊,学习学习

出0入0汤圆

发表于 2014-10-20 07:31:31 来自手机 | 显示全部楼层
膜拜,这都行的话,是个爱折腾的主

出0入0汤圆

发表于 2014-10-20 07:47:33 | 显示全部楼层
用最少的投入换最大收获

出0入0汤圆

发表于 2014-10-20 07:48:43 | 显示全部楼层
想法不错,但是有点冒险

出0入0汤圆

发表于 2014-10-20 08:19:32 来自手机 | 显示全部楼层
mark,学习下

出0入0汤圆

发表于 2014-10-20 08:19:50 来自手机 | 显示全部楼层
mark,学习下

出0入0汤圆

发表于 2014-10-20 08:37:24 | 显示全部楼层
没加电压变换器?加个TJA1040吧,不加是不行的,电压完全不行。而且CAN线上要接终端电阻,让CAN总线的负载电阻保持在60欧姆。

出0入0汤圆

发表于 2014-10-20 08:47:02 | 显示全部楼层
can也能用,但是两个之间用spi或者iic或者模拟uart可能更好

出0入0汤圆

发表于 2014-10-20 09:03:03 | 显示全部楼层
楼主这样用不正确,CAN总线不像485那样简单,10楼说的对,CAN的RX不光是接收总线上其它人的通讯,也要实时监听自己的发送,以实现冲突仲裁。

出0入0汤圆

发表于 2014-10-20 09:51:50 | 显示全部楼层
yuguoliang 发表于 2014-9-30 22:11
电路可参考 huangqi412  的,其实都是一样的, 就是CAN的发送接二极管连到接收或是通过OC(74HC07)门,效 ...

解释的很透彻,学习了~

出0入0汤圆

发表于 2014-10-20 10:02:13 | 显示全部楼层
不错的想法啊,学习学习

出0入0汤圆

发表于 2014-10-20 10:33:49 | 显示全部楼层
没有CAN物理层应该不行。

出0入0汤圆

发表于 2014-10-20 11:23:11 | 显示全部楼层
低速用IO模拟串口,速度高些的用SPI

出300入477汤圆

发表于 2014-10-20 11:56:29 | 显示全部楼层
yueleilei 发表于 2014-10-20 10:33
没有CAN物理层应该不行。

怎么没物理层??
CAN的物理层本质上就是线与。
所以你在外面接成线与,就有“物理层”了
你自己分析一下逻辑,看看在外面线与跟你给两边加收发器,在CAN控制器这一端看到的有什么区别??

出0入0汤圆

发表于 2014-10-20 12:02:20 | 显示全部楼层
如果不出现总线冲突的情况,应该是可以的

出0入0汤圆

发表于 2014-10-20 12:49:59 | 显示全部楼层
留名做标记。有时候串口用完了,再想扩展通信口,这个方式还是挺好的

出0入0汤圆

发表于 2014-10-20 13:00:54 | 显示全部楼层
学到了一招,以后可以试试

出0入0汤圆

发表于 2014-10-28 17:12:15 | 显示全部楼层
绝对的标记,刚开始研究can,好落后了……

出300入477汤圆

发表于 2014-10-29 08:18:51 来自手机 | 显示全部楼层
amxx 发表于 2014-10-20 12:02
如果不出现总线冲突的情况,应该是可以的

唉,怎么这么多人转不过这个弯呢!
外面线与就是对付总线冲突的,跟正常收发器一样。你不用管冲突,控制器自动重发

出0入0汤圆

发表于 2014-10-29 10:04:44 | 显示全部楼层
貌似很腻害的样子。。。

出0入0汤圆

发表于 2014-11-8 21:23:32 | 显示全部楼层
说得对,我来补充两句:redroof说的对,大家知道差分信号吧,比TTL电平抗干扰,传得远,CAN线路的H、L就是这种所谓“线与”的差分形式,电路板级的传输完全可以不用差分,回到原始形态,就是全部输入、输出挂到一根带上拉电阻的导线上!这样说大家能理解吧?

出0入4汤圆

发表于 2014-11-8 21:48:56 | 显示全部楼层
应该可以吧,但是没用过,看看学习一下!

出0入0汤圆

发表于 2014-11-10 14:50:52 | 显示全部楼层
当然可以啊,就和232不加驱动芯片是一样的,传输距离和抗干扰差点

出0入4汤圆

发表于 2014-11-10 16:01:33 | 显示全部楼层
可以连接的,如果多CAN连接可以用二极管隔离,如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-11-10 16:21:59 | 显示全部楼层
在学习中,拓展一下知识面,见识了!

出0入0汤圆

发表于 2014-11-10 16:22:14 | 显示全部楼层

出0入0汤圆

发表于 2014-11-10 19:41:15 来自手机 | 显示全部楼层
可以吗?没试过,不过发送脚要发馈给接受脚,或者can的模式配置一下

出0入37汤圆

发表于 2014-11-10 20:01:42 | 显示全部楼层
mark,有空验证下

出100入101汤圆

发表于 2014-11-10 21:00:58 | 显示全部楼层
huangqi412 发表于 2014-9-30 21:48
看过这种不用CAN芯片的歪路子资料,不限于两个,可以多个组网

5V--[R]-------------------------------

R代表电阻么?要多大阻值?D又代表什么二极管?

出100入101汤圆

发表于 2014-11-10 21:03:25 | 显示全部楼层
tarzar 发表于 2014-11-10 16:01
可以连接的,如果多CAN连接可以用二极管隔离,如下图

这本书的书名是什么?

出0入4汤圆

发表于 2014-11-10 21:46:25 | 显示全部楼层
fengyunyu 发表于 2014-11-10 21:03
这本书的书名是什么?

嵌入式系统原理与实践:ARM Cortex-M4 Kinetis微控制器

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-11-10 22:03:43 | 显示全部楼层
tarzar 发表于 2014-11-10 16:01
可以连接的,如果多CAN连接可以用二极管隔离,如下图

同求书名。
看到K60,是K60的教程?

出0入4汤圆

发表于 2014-11-10 22:08:51 | 显示全部楼层
nos002 发表于 2014-11-10 22:03
同求书名。
看到K60,是K60的教程?

看94楼,已经回复了,王宜怀的书
嵌入式系统原理与实践:ARM Cortex-M4 Kinetis微控制器

出0入0汤圆

发表于 2014-11-11 06:50:28 来自手机 | 显示全部楼层
14L get            

出0入0汤圆

发表于 2014-11-11 07:52:48 | 显示全部楼层
tarzar 发表于 2014-11-10 16:01
可以连接的,如果多CAN连接可以用二极管隔离,如下图

牛,可以。。。照着这个连接更好的理解can物理层本质

出0入0汤圆

发表于 2014-11-11 08:05:53 | 显示全部楼层
不能,可以用二极管实现
头像被屏蔽

出0入0汤圆

发表于 2014-11-11 17:03:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 06:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表