frank21 发表于 2009-3-20 12:03:26

请教 CAN-BUS的协议 种类和它们的关系

最近在学习CAN-BUS,看书时看到CAN有各种标准,SAE J1939-11,SAE J2284 , DeviceNet, CANopen, SDS等。如下图。
但是在看CAN控制器时,如MCP2515的datasheet时,提到支持CAN2.0A/2.0B。
所以我就迷糊了,这CAN 2.0和CANopen等标准是什么关系,我在选择CAN芯片时需要注意些什么。请高手指点!

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426642.jpg
(原文件名:1212.jpg)

erxun 发表于 2009-3-20 12:26:35

先有CAN2.0A/2.0B ,再有SAE J1939-11、SAE J2284 、 DeviceNet、CANopen、SDS等

如果是刚开始搞这个通讯,可以自己整个简单的协议:滤波器和数据帧这两块是重点。

lnskngdc 发表于 2009-3-20 12:41:16

CAN2.0是协议标准,无论是用何种协议,帧格式都是符合这个标准的

saeJ1939是卡车用通讯协议
CANopen是面向对象通讯协议
SDS最早是海军用的通讯协议

举个例子:CAN2.0规范是路,而各种协议则是在路上跑的车,无论自行车还是汽车,都要顺着路走
选择CAN芯片基本要看你用在什么地方了,汽车上用freescale或瑞萨

高速或者低速决定用哪个物理层接口芯片

lnskngdc 发表于 2009-3-20 12:42:26

补充以下:NMEA-2000是用在美国海军的协议,复杂的很,国内用的较少

frank21 发表于 2009-3-20 12:58:46

我把我看的这份CAN-BUS入门资料也上传上来,其中讲得还挺详细的。
点击此处下载 ourdev_426646.pdf(文件大小:1.87M) (原文件名:CAN入门书.pdf)

frank21 发表于 2009-3-20 13:13:54

谢谢,erxun 老孟和lnskngdc!

我是否可以理解,只要支持CAN2.0A/2.0B的驱动芯片和控制芯片就可以应用在SAE J1939-11、SAE J2284 、 DeviceNet、CANopen、SDS等这些标准协议中?至于具体用哪个协议,是程序的事情了

老孟提到“可以自己整个简单的协议:滤波器和数据帧这两块是重点。”
在上面我看的资料中有提到数据帧,但是滤波器我不是很明白,这应该是软件滤波器吧,不用特殊的硬件电路吧?

lnskngdc 发表于 2009-3-20 13:21:25

CAN2.0b兼容2.0a
滤波器是指报文滤波,设置一个节点只接收你想要接收的节点报文
数据帧有8字节,可以规定某个字节具体数值代表何种命令(含义),这是应用层的核心

frank21 发表于 2009-3-20 13:38:10

我这儿主要用于传输多个功能模块间的控制信号,波特率500k可能差不多。
我看了一些文章,感觉总线控制器MCP2515和SJA1000用的比较多,总线收发器PCA82C250用得比较多,请问控制器和收发器芯片如何选择?

现在我刚入手,手上也没有什么实验板。请问大家,对新手来说哪个对上手更有帮助,先参考网上资料做个硬件出来,还是先买个现成的开发板学习?如果买开发板的话,有什么产品可以推荐的吗?

lnskngdc 发表于 2009-3-20 15:21:17

个人觉得初学用sja1000容易些

hiberhe 发表于 2009-3-20 19:30:04

DeviceNet和CANopen上跑在CAN总线上的上层协议,都是针对特定应用的,如果是自己用,不涉及和其它工业网络互联,还是自己设计简单的上层协议来得高效和简便.

DeviceNet规范是要收费的,...CANopen好像有的也是

modelfly 发表于 2009-3-20 21:45:56

最好能选内部集成CAN控制器的MCU,比如Freescale,这样可以降低难度。

我可不是给freescale做广告啊

denmeng 发表于 2009-5-20 16:20:37

CANopen的许多文档都是不公开的。

wellqueen 发表于 2009-10-6 09:58:14

现在的CAN协议还是比较保守,特别是在汽车应用这一领域。

xtaozi001 发表于 2009-12-14 09:29:35

很有意义的讨论!我现在也开始搞!

teltium 发表于 2009-12-14 09:59:55

我刚从微芯力克搞了一批STM8S208来做CAN的测试,交流

challenger86 发表于 2010-1-28 11:21:00

can的帧格式是11字节时,自己定义协议时,标识符的格式是怎样的?是不是功能码10~6bit,目标地址5~3,源地址2~0的格式?其中功能码是不是代表了优先级?请各位楼主指点!

Appcat 发表于 2010-1-28 11:28:34

刚刚把STM32的CAN 跑起来,收发芯片是TJA1050T,500Kbps,跑的还不错。

fdx32810 发表于 2010-5-3 22:17:16

mark

dong02dong02 发表于 2012-2-7 13:01:50

现在各个车厂用的CAN都比较杂。有些还是初期阶段。开发的并不深入。

xuyijun2006 发表于 2012-3-29 11:51:16

汽车的canbus 协议是每个汽车厂家的定义都不一样的。论坛里的资料基本没什么用!
我有个大汽车厂商汽车通讯协议,诊断协议,需要的可以和我联系,qq:896431296

xiaoanda 发表于 2012-8-3 13:37:12

frank21 发表于 2009-3-20 12:58 static/image/common/back.gif
我把我看的这份CAN-BUS入门资料也上传上来,其中讲得还挺详细的。
点击此处下载 ourdev_426646.pdf(文件大 ...

谢谢了。

2009chinalj 发表于 2012-8-5 16:03:11

正在弄stm 的can

llysc 发表于 2012-8-6 13:56:02

也要开始搞CAN,自诊断协议不懂~~~~~{:huffy:}{:huffy:}
页: [1]
查看完整版本: 请教 CAN-BUS的协议 种类和它们的关系