搜索
bottom↓
回复: 89

不带CAN接口的MCU, 怎么实现CAN总线

[复制链接]

出0入0汤圆

发表于 2014-12-24 19:03:00 | 显示全部楼层 |阅读模式
觉得应该也能实现.

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2014-12-24 19:05:24 | 显示全部楼层
这是什么问题啊。。。。。8031都可以。。。

出0入0汤圆

发表于 2014-12-24 19:06:41 | 显示全部楼层
可以呀,就是成本高太多,没什么价值。例如外扩SJA1000作为CAN协议控制器。

出0入0汤圆

 楼主| 发表于 2014-12-24 19:06:58 | 显示全部楼层
lans0625 发表于 2014-12-24 19:05
这是什么问题啊。。。。。8031都可以。。。

还没用过CAN,
现在有些MCU带CAN接口, 有些不带.
实现上肯定不同, 想了解一下

出0入0汤圆

发表于 2014-12-24 19:10:50 | 显示全部楼层
用CAN芯片

出0入0汤圆

发表于 2014-12-24 19:17:23 | 显示全部楼层
用CAN芯片最保险

出0入0汤圆

 楼主| 发表于 2014-12-24 19:17:46 | 显示全部楼层
koarm 发表于 2014-12-24 19:06
可以呀,就是成本高太多,没什么价值。例如外扩SJA1000作为CAN协议控制器。

SJA1000这种独立CAN控制器,
是不是: 主MCU只要读写数据,不用理会CAN协议?

而带CAN接口的MCU, 除了配上收发器, 通讯协议全部要用程序运行?

出0入0汤圆

 楼主| 发表于 2014-12-24 19:20:41 | 显示全部楼层

CAN芯片好像有很多

出0入0汤圆

 楼主| 发表于 2014-12-24 19:20:56 | 显示全部楼层

SJA1000可不便宜, 比MCU还贵

出0入0汤圆

 楼主| 发表于 2014-12-24 19:22:42 | 显示全部楼层
用UART口,采用便宜的收发器,能实现CAN吗

出0入0汤圆

发表于 2014-12-24 19:25:04 | 显示全部楼层
扩展SPI接口的CAN协议控制器 MCP2515

出0入0汤圆

 楼主| 发表于 2014-12-24 19:31:55 | 显示全部楼层
edawn 发表于 2014-12-24 19:25
扩展SPI接口的CAN协议控制器 MCP2515

这个是独立控制,不用主MCU管协议的事吗?

出0入0汤圆

发表于 2014-12-24 19:34:24 | 显示全部楼层
控制器再加收发器啊

出0入0汤圆

 楼主| 发表于 2014-12-24 19:42:36 | 显示全部楼层
demonye 发表于 2014-12-24 19:34
控制器再加收发器啊

了解,
带CAN接口的MCU(比如KEA128),集成了完整CAN控制器吗?

出100入101汤圆

发表于 2014-12-24 20:02:39 | 显示全部楼层
SJA1000,本来就不便宜。

出100入101汤圆

发表于 2014-12-24 20:03:18 | 显示全部楼层
swap2013 发表于 2014-12-24 19:42
了解,
带CAN接口的MCU(比如KEA128),集成了完整CAN控制器吗?

一般来说,也需要外置phy,也不便宜。

出100入101汤圆

发表于 2014-12-24 20:04:31 | 显示全部楼层
swap2013 发表于 2014-12-24 19:31
这个是独立控制,不用主MCU管协议的事吗?

协议是协议,can是can,两回事。

出100入101汤圆

发表于 2014-12-24 20:05:20 | 显示全部楼层
swap2013 发表于 2014-12-24 19:22
用UART口,采用便宜的收发器,能实现CAN吗

这个要看CAN控制器的接口。

出0入0汤圆

发表于 2014-12-24 20:17:25 | 显示全部楼层
没必要自己去实现吧。                                                                                                                                   

出0入0汤圆

发表于 2014-12-24 20:24:09 | 显示全部楼层
自己实现难度太大了点吧,费时费力还不如直接用带CAN 的MCU值

出0入0汤圆

发表于 2014-12-24 20:27:58 | 显示全部楼层
SJA1000作为CAN协议控制器,

出0入0汤圆

发表于 2014-12-24 20:29:32 | 显示全部楼层
CAN芯片撒,正解,市面上这么多CAN芯片。

出0入0汤圆

发表于 2014-12-24 20:39:40 | 显示全部楼层
CAN控制器 Co4011B

出0入0汤圆

发表于 2014-12-24 20:45:39 | 显示全部楼层
还有51核的CAN开发板

出0入0汤圆

 楼主| 发表于 2014-12-24 20:48:23 | 显示全部楼层
有点清楚了,谢谢各位

出0入0汤圆

 楼主| 发表于 2014-12-24 20:50:20 | 显示全部楼层
最简单的还是带CAN的单片机加收发器。如果没有CAN,就再加个控制器。
不管怎么样,CAN协议都是程序实现。

出0入0汤圆

 楼主| 发表于 2014-12-24 20:52:22 | 显示全部楼层
不知道上面的理解对不对?
另外,如果是完全自己的网,CAN协议可以自己定。是不是这样呢

出0入0汤圆

发表于 2014-12-24 21:05:25 | 显示全部楼层
swap2013 发表于 2014-12-24 19:42
了解,
带CAN接口的MCU(比如KEA128),集成了完整CAN控制器吗?


没做过,也只是了解
can协议是在控制器里,不用理会
应用层协议得自己写

出0入0汤圆

 楼主| 发表于 2014-12-24 21:14:55 | 显示全部楼层
demonye 发表于 2014-12-24 21:05

没做过,也只是了解
can协议是在控制器里,不用理会

恩,按层来说比较清楚

1、收发器是物理层
2、控制器是链路层
3、“协议”是应用层,自己写的
应该是这样吧

出0入0汤圆

 楼主| 发表于 2014-12-24 21:15:55 | 显示全部楼层
控制器-链路层
如果mcu不内至,则用外部的,没必要自己搭电路实现。

出0入0汤圆

 楼主| 发表于 2014-12-24 21:16:40 | 显示全部楼层
控制器-链路层
如果mcu不内至,则用外部的,没必要自己搭电路实现。

出0入0汤圆

发表于 2014-12-24 21:56:25 | 显示全部楼层
可以用SJA1000 , SJA1050都可以的

出0入0汤圆

发表于 2014-12-24 22:04:24 | 显示全部楼层
swap2013 发表于 2014-12-24 21:14
恩,按层来说比较清楚

1、收发器是物理层

手上正好有一份PPT
不知你有了没有
我上传你看下










本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-12-25 01:28:28 | 显示全部楼层
SJA1000这个IC能满足你的要求

出0入0汤圆

 楼主| 发表于 2014-12-25 06:01:30 | 显示全部楼层
demonye 发表于 2014-12-24 22:04
手上正好有一份PPT
不知你有了没有
我上传你看下

谢谢,刚开始了解,没有这个

出0入0汤圆

发表于 2014-12-25 07:42:06 来自手机 | 显示全部楼层
所谓的带can,其实就是把外部控制器集成到内部而已。

出0入0汤圆

发表于 2014-12-25 08:08:04 | 显示全部楼层
PCA82C200 ,sja1000 都可以

出0入0汤圆

发表于 2014-12-25 08:11:24 | 显示全部楼层
听说有人模拟can的,但是不懂!我也在纠结有些飞卡32位不带can比较麻烦。比如KE02.

出0入0汤圆

发表于 2014-12-25 08:33:23 | 显示全部楼层
jiang887786 发表于 2014-12-25 08:11
听说有人模拟can的,但是不懂!我也在纠结有些飞卡32位不带can比较麻烦。比如KE02. ...

搞模拟的不容易吧,投入大,搞成熟了也耗时间,还是用现成的芯片方便

出0入0汤圆

发表于 2014-12-25 08:33:32 | 显示全部楼层
外扩芯片,很多选择

出0入0汤圆

发表于 2014-12-25 09:06:16 | 显示全部楼层
外置模块,但是不划算那,,一个带SPI接口的外置模块价格比买     stm32带有can控制器 + 电平转换芯片  组合的价钱还要贵,不划算,

出0入0汤圆

发表于 2014-12-25 09:36:15 | 显示全部楼层
MCU如果没有CAN接口的话 最好的方式就是外接CAN芯片,比如SJA1000,作为CAN协议控制器。

出0入0汤圆

发表于 2014-12-25 09:37:13 | 显示全部楼层
使用外置CAN芯片的好处是当can总线发生错误的时候,比如被烧坏,不会影响MCU的工作。

出100入101汤圆

发表于 2014-12-25 09:39:40 | 显示全部楼层
hyf88 发表于 2014-12-25 09:06
外置模块,但是不划算那,,一个带SPI接口的外置模块价格比买     stm32带有can控制器 + 电平转换芯片  组 ...

这个赞同。某些场合,“电平转换芯片”都可以不要。

出0入0汤圆

 楼主| 发表于 2014-12-25 09:39:58 | 显示全部楼层
子鱼 发表于 2014-12-25 09:37
使用外置CAN芯片的好处是当can总线发生错误的时候,比如被烧坏,不会影响MCU的工作。 ...

这个, 有收发器在前面顶着吧

出100入101汤圆

发表于 2014-12-25 09:40:14 | 显示全部楼层
demonye 发表于 2014-12-24 22:04
手上正好有一份PPT
不知你有了没有
我上传你看下

不错的资料。

出0入0汤圆

发表于 2014-12-25 09:40:43 | 显示全部楼层
fengyunyu 发表于 2014-12-25 09:39
这个赞同。某些场合,“电平转换芯片”都可以不要。

还有不需要电平转换芯片的??? 说来听听,

出100入101汤圆

发表于 2014-12-25 09:41:10 | 显示全部楼层
superrf 发表于 2014-12-25 08:33
搞模拟的不容易吧,投入大,搞成熟了也耗时间,还是用现成的芯片方便

还没有看到有用GPIO模拟can总线。

出0入0汤圆

发表于 2014-12-25 09:41:14 | 显示全部楼层
swap2013 发表于 2014-12-25 09:39
这个, 有收发器在前面顶着吧

使用隔离芯片,

出100入101汤圆

发表于 2014-12-25 09:45:08 | 显示全部楼层
hyf88 发表于 2014-12-25 09:40
还有不需要电平转换芯片的??? 说来听听,

前段时间论坛里有发电路。就是单片机的can总线间直连,好像有根线上加个二极管隔离下。

出0入0汤圆

发表于 2014-12-25 09:46:46 | 显示全部楼层
fengyunyu 发表于 2014-12-25 09:45
前段时间论坛里有发电路。就是单片机的can总线间直连,好像有根线上加个二极管隔离下。 ...

没有电平转换怎么通信??疑惑不解

出100入101汤圆

发表于 2014-12-25 09:48:08 | 显示全部楼层
hyf88 发表于 2014-12-25 09:46
没有电平转换怎么通信??疑惑不解

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-12-25 09:53:10 | 显示全部楼层

哎呦,,不错哦,,这本书叫什么名字? 对应的板子能通过兑换奖品得到吗?

出100入101汤圆

发表于 2014-12-25 09:54:13 | 显示全部楼层
hyf88 发表于 2014-12-25 09:53
哎呦,,不错哦,,这本书叫什么名字? 对应的板子能通过兑换奖品得到吗? ...

这个是论坛有人发的,具体哪个帖子记不到了。

出0入0汤圆

发表于 2014-12-25 09:57:22 | 显示全部楼层
fengyunyu 发表于 2014-12-25 09:54
这个是论坛有人发的,具体哪个帖子记不到了。

我找到书籍的源码了,,,

出0入0汤圆

发表于 2014-12-25 10:36:16 | 显示全部楼层
不懂 学习学习

出0入0汤圆

发表于 2014-12-25 10:41:20 | 显示全部楼层
外接CAN芯片~

出0入0汤圆

 楼主| 发表于 2014-12-25 11:09:23 | 显示全部楼层

这个好,就靠UART发送脚拉低.
调试时候可以用

出100入101汤圆

发表于 2014-12-25 11:10:19 | 显示全部楼层
swap2013 发表于 2014-12-25 11:09
这个好,就靠UART发送脚拉低.
调试时候可以用

这个不是UART的TX、RX

出0入0汤圆

发表于 2014-12-25 11:13:59 | 显示全部楼层
can芯片呀

出0入0汤圆

发表于 2014-12-25 11:16:48 | 显示全部楼层
没必要这样折腾,直接换片子

出0入0汤圆

发表于 2014-12-25 11:37:31 | 显示全部楼层
最好外扩SJA1000 或者换带CAN控制器的单片机。

出0入0汤圆

发表于 2014-12-25 11:42:01 | 显示全部楼层
闪客 发表于 2014-12-25 11:37
最好外扩SJA1000 或者换带CAN控制器的单片机。

外扩价格贵,,外扩比较适合在原来的项目或者产品的基础做升级,要换掉整个系统的芯片还是比较麻烦的,

可以在产品更新换代的时候,采用换芯片的方法,

出0入0汤圆

 楼主| 发表于 2014-12-25 13:13:22 | 显示全部楼层
fengyunyu 发表于 2014-12-25 11:10
这个不是UART的TX、RX

汗,还是要CAN

出0入0汤圆

发表于 2014-12-25 13:20:59 | 显示全部楼层
这个你怎么模拟,也需要一个CAN收发器链接can总线的。
控制部分你可以使用MCU作,但是总线上的东西还是用专用的好

出0入0汤圆

发表于 2014-12-25 13:25:37 | 显示全部楼层
mfketggo111 发表于 2014-12-25 13:20
这个你怎么模拟,也需要一个CAN收发器链接can总线的。
控制部分你可以使用MCU作,但是总线上的东西还是用专 ...

模拟??谁这么强大的?  软件能模拟?  can收发的速度,自己用FPGA来做还差不多呢,

出0入0汤圆

发表于 2014-12-25 13:39:04 | 显示全部楼层
craigtao 发表于 2014-12-25 13:25
模拟??谁这么强大的?  软件能模拟?  can收发的速度,自己用FPGA来做还差不多呢, ...

兄弟,挖坟贴是违规的,不要为了获得飞币而翻老帖子出来。

出0入0汤圆

发表于 2014-12-25 13:39:24 | 显示全部楼层


哈哈,有用就好

出0入0汤圆

发表于 2014-12-25 13:47:28 | 显示全部楼层
浪里白条 发表于 2014-12-25 13:39
兄弟,挖坟贴是违规的,不要为了获得飞币而翻老帖子出来。

谢谢提醒啊,

收藏些资料,以备后面换板子能有资料,也是能得写飞币,

目的还是为了使用飞思卡尔的芯片嘛,,

出0入0汤圆

发表于 2014-12-30 14:19:05 | 显示全部楼层
CAN接口芯片,不过都很贵哦。

出0入0汤圆

发表于 2015-1-5 17:06:35 | 显示全部楼层
外部CAN芯片啊

出0入0汤圆

发表于 2015-1-5 17:13:08 | 显示全部楼层
没必要自己折腾CAN控制器。                                                                                                                          

出0入0汤圆

发表于 2015-1-5 17:32:30 | 显示全部楼层
MCP2515,SPI接口的CAN控制芯片,3元

出0入0汤圆

 楼主| 发表于 2015-1-5 17:41:29 | 显示全部楼层
modbus 发表于 2015-1-5 17:32
MCP2515,SPI接口的CAN控制芯片,3元

这个真便宜!

出0入0汤圆

发表于 2015-1-5 17:52:20 | 显示全部楼层
can芯片,或者软件模拟,外部再搭一下

出0入0汤圆

发表于 2015-1-5 18:20:59 | 显示全部楼层
lzl000 发表于 2015-1-5 17:52
can芯片,或者软件模拟,外部再搭一下

软件模拟这个难度比较大啊

出0入0汤圆

发表于 2015-1-5 18:21:27 | 显示全部楼层
modbus 发表于 2015-1-5 17:32
MCP2515,SPI接口的CAN控制芯片,3元

有这么便宜嘛 ,白菜价啊

出0入0汤圆

发表于 2015-1-5 20:12:24 | 显示全部楼层
...直接加个SPI甚至UART转CAN总线的芯片就OK啊

出0入0汤圆

发表于 2015-1-6 00:13:39 | 显示全部楼层
franki 发表于 2015-1-5 18:21
有这么便宜嘛 ,白菜价啊

是这么便宜,一直在用,虽然用的不是很多。

出0入0汤圆

发表于 2015-1-6 06:46:20 | 显示全部楼层
外扩协议芯片,非常占用MCU资源,这个年代已经不能再用了

出0入0汤圆

发表于 2015-1-6 08:01:59 | 显示全部楼层
没有必要自己模拟,换个MCU就可以了

出0入0汤圆

发表于 2015-1-6 18:33:33 | 显示全部楼层
modbus 发表于 2015-1-6 00:13
是这么便宜,一直在用,虽然用的不是很多。

这么便宜的片子稳定不 ?

出0入0汤圆

发表于 2015-1-6 20:08:39 | 显示全部楼层
本帖最后由 小柯师傅 于 2015-1-6 20:10 编辑

好像没看到理想的回答。就让鄙人抛砖下。
为什么好像其他的协议可以用软件模拟数据链路层,而CAN不行。CAN 2.0B是个完备改进的CSMA/CD协议(包含数据链路层和物理层)。核心价值大家可以发现CAN的数据桢里有个SOF+11位标识符的仲裁场。每个CAN节点在发送的同时必须对总线的位错误监控,这个的实时性很高,用硬件逻辑完成会比较靠谱,软件不能保证在1Mbps的情况下对总线的仲裁。希望回答到楼主了.

出0入0汤圆

 楼主| 发表于 2015-1-6 20:54:41 | 显示全部楼层
小柯师傅 发表于 2015-1-6 20:08
好像没看到理想的回答。就让鄙人抛砖下。
为什么好像其他的协议可以用软件模拟数据链路层,而CAN不行。CAN  ...

嗯,很专业啊

出0入0汤圆

 楼主| 发表于 2015-1-6 20:57:05 | 显示全部楼层
"MCP2515,SPI接口的CAN控制芯片,3元"
这个应该是正解

出0入0汤圆

发表于 2015-1-6 21:40:18 | 显示全部楼层
franki 发表于 2015-1-6 18:33
这么便宜的片子稳定不 ?

很稳定,没出过问题,1个CPU带了4个MCP2515

出0入0汤圆

发表于 2015-1-6 22:10:23 来自手机 | 显示全部楼层
mcp2515很好用,还有官方版的中文手册和历程。

出0入0汤圆

发表于 2015-1-7 02:44:53 来自手机 | 显示全部楼层
评论总能学到很多东西

出0入0汤圆

发表于 2015-1-7 06:24:36 | 显示全部楼层
楼主是想io模拟can吧。低速可以。高速不大可能。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-6-14 17:02

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

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