铁甲网首页 铁甲论坛 CANBUS总线基础讲解

发帖

评论

CANBUS总线基础讲解

铁牛叉车 2009-11-10

1.1万 15

1986 年2 月Robert Bosch 公司在SAE 汽车工程协会大会上介绍了一种新型的串行总线CAN
控制器局域网,那是CAN 诞生的时刻今天在欧洲几乎每一辆新客车均装配有CAN 局域网同样CAN
也用于其他类型的交通工具从火车到轮船或者用于工业控制CAN 已经成为全球范围内最重要的总线之
一 甚至领导着串行总线在1999 年接近6 千万个CAN 控制器投入应用2000 年市场销售超过
1 亿个CAN 器件
在1980 年的早些时候Bosch 公司的工程师就开始论证当时的串行总线用于客车系统的可行性因为
没有一种现成的网络方案能够完全满足汽车工程师们的要求于是在1983 年初Uwe Kiencke 开始研究
一种新的串行总线新总线的主要方向是增加新功能减少电气连接线 使其能够用于产品而非用于驱
动技术来自 Mercedes-Benz 的工程师较早制定了总线的状态说明而Intel 也准备作为半导体生产的主要
厂商当时聘请的顾问之一是来自于德国Braunschweig-Wolfenbüttel 的Applied Science 大学教授Wolfhard
Lawrenz 博士 给出了新网络方案的名字Controller Area Network ,简称CAN 来自Karlsruhe 大学的教授
Horst Wettstein 博士也提供了理论支持
1986 年2 月CAN 诞生了在底特律的汽车工程协会大会上由 Bosch 公司研究的新总线系统被称为
汽车串行控制器局域网 Uwe Kiencke Siegfried Dais 和 Martin Litschel 分别介绍了这种多主网络
方案此方案基于非破坏性的仲裁机制能够确保高优先级报文的无延迟传输并且不需要在总线上设
置主控制器此外CAN 之父上述几位教授和Bosch 公司的Wolfgang Borst Wolfgang Botzenhard
Otto Karl Helmut Schelling Jan Unruh 已经实现了数种在CAN 中的错误检测机制该错误检测也包括自
动断开故障节点功能以确保能继续进行剩余节点之间的通讯传输的报文并非根据报文发送器/接收器的
节点地址识别几乎其它的总线都是如此而是根据报文的内容识别同时用于识别报文的标识符也规
定了该报文在系统中的优先级
当关于这种革新的通讯方案的大部分文字内容制定之后于1987 年中期Intel 提前计划2 个月交付了
首枚CAN 控制器82526 这是CAN 方案首次通过硬件实现仅仅用了四年的时间设想就变成了现实
不久之后Philips 半导体推出了82C200 这两枚最先的CAN 控制器在验收滤波和报文控制方面有许多不
同一方面由Intel 主推的FullCAN比由Philips 主推的BasicCAN占用较少的CPU载荷另一方面 FullCAN
器件所能接收的报文数目相对受到限制BasicCAN 控制器仅需较少的硅晶体今天的CAN 控制器中孙
子辈们在同一模块中的验收滤波和报文控制方面仍有相当的不同制造出BasicCAN 和FullCAN 两大阵
营
标准化与一致性
在1990 年早些时候Bosch CAN 规范CAN 2.0 版被提交给国际标准化组织在数次行政讨论之后
应一些主要的法国汽车厂商要求增加了Vehicle Area Network VAN 内容并于1993 年11 月出版了
CAN 的国际标准ISO11898 除了CAN 协议外它也规定了最高至1Mbps 波特率时的物理层同时在国
际标准ISO11519-2 中也规定了CAN 数据传输中的容错方法1995 年国际标准ISO11898 进行了扩展
以附录的形式说明了29 位CAN 标识符
但令人伤心的是所有出版的CAN 规范均包含错误或者不完整因此为避免出现不兼容的CAN 应
用Bosch 公司一直在进行验证CAN 芯片是否基于Bosch 的CAN 参考模型的工件此外几年来在Lawrenz
教授领导下位于德国Braunschweig/Wolfenbüttel 的 Applied Science 大学进行CAN 的一致性测试测试模
式基于国际标准测试规范ISO16845
当前修订的CAN 规范正在标准化中ISO11898-1 称为CAN 数据链路层ISO11898-2 称为非容
错CAN 物理层ISO11898-3 称为容错CAN 物理层国际标准ISO11992 卡车和拖车接口和ISO11783
农业和森林机械都在美国标准J1939 的基础上定义了基于CAN 应用的子协议但是它们并不完整
CAN 先行者的发展
尽管当初研究CAN 的起点是应用于客车系统但CAN 的第一个市场应用却来自于其他领域特别是
在北欧CAN 早已得到非常普遍的应用在荷兰电梯厂商Kone 使用CAN 总线瑞士工程办公室Kvaser
已建议将CAN 应用至一些纺织机械厂Lindauer Dornier 和 Sulzer 并由他们提供机器的通讯协议这一
领域中在 Lars-Berno Fredriksson 的领导下公司建立了CAN 纺织机械用户集团 到1989 年他们
已研究出通讯原理并于1990 年早期帮助建立CAN Kingdom 开发环境尽管CAN Kingdom 并不是一
种基于OSI 参考模型的应用层但它被认为是基于CAN 的高层协议的原型
在荷兰Philips 医疗系统决定使用CAN 构成X 光机的内部网络成为CAN 的工业用户主要由Tom
Suters 发表的Philips 报文规范PMS 提出了CAN 网络的第一个应用层来自德国Weingarten 的Applied
Science 大学教授 Konrad Etschberger 博士也持同样的观点他管理Steinbeis Transfer Center for Process
Automation Stzp 公司现在更名为IXXAT Automation 公司并开发出一个类似的方案
不管如何第一个高层协议正在形成大多数CAN 的先行者使用单片电路的方法通讯功能网络管
理应用代码组合在同一个软件之中即使一些用户有较多的标准模块可供利用但面对所有的解决方案
他们也一定存在着缺陷必须持续稳定地发展CAN 的高层协议即使在今天仍然有部分用户低估这个
问题
在1990 年的早些时候开始筹划成立一个用户组织从而将不同的解决方案标准化在1992 年初的
几个月里当时VMEbus 杂志的主管出版社Franzis Holger Zeltwanger 将用户和厂商集中在一起讨
论建立一个促进CAN 技术发展的中立平台同时也针对串行总线市场进行分析1992 年5 月CiA CAN
in Automation 用户集团正式成立仅在几个星期后CiA 即发表了第一份技术杂志那是关于物理层的
CiA 推荐仅使用遵循ISO11898 的CAN 收发器到现在为止在当时的CAN 网络中使用非常普遍但并不
兼容的RS-485 收发器已基本消失尽管它也是厂商提供的
CiA 的首批任务之一是规定CAN 的应用层根据Philips 医疗系统PMS 和Stzp 所提供的内容依
靠其余CiA 会员的协助CAL CAN 应用层也称为绿皮书诞生了在制定CAN 应用规范时
CiA 的一个主要任务是进行CAN 专家和其他CAN 学习者之间的信息交流因此从1994 年起CiA 每年
召开一次国际CAN 会议iCC
另外一个理论的方法是借鉴于LAV 一个农业的交通工具协会在1980 年晚些时候开始一个基于
CAN 的农业交通工具总线系统LBS 被制定出但在工作最终完成前国际标准化委员会决定改向支持
US 解决方案J1939 这也是一个基于CAN 的应用子协议由SAE 的 Truck and Bus 协会制定J1939
是一个非模块化的方案简单易学但灵活性很差
从理论到实践
当然生产CAN 模块集成器件的15 家半导体厂商主要聚焦于汽车工业从1990 年中期起Infineon
公司和Motorola 公司已向欧洲的客车厂商提供了大量的CAN 控制器作为下一波从1990 年后期起远
东的半导体厂商也开始提供CAN 控制器1994 年NEC 推出了传说中的CAN 芯片 72005 但是这一
步太早了当时这个器件并不能投入使用
从1992 年起Mercedes-Benz 奔驰 开始在他们的高级客车中使用CAN 技术第一步使用电子控制
器通过CAN 对发动机进行管理第二步使用控制器接收人们的操作信号这就使用了2 个物理上独立的
CAN 总线系统它们通过网关连接其他的客车厂商也纷纷赶来斯图加特学习在他们的客车上也使用2
当前修订的CAN 规范正在标准化中ISO11898-1 称为CAN 数据链路层ISO11898-2 称为非容
错CAN 物理层ISO11898-3 称为容错CAN 物理层国际标准ISO11992 卡车和拖车接口和ISO11783
农业和森林机械都在美国标准J1939 的基础上定义了基于CAN 应用的子协议但是它们并不完整
CAN 先行者的发展
尽管当初研究CAN 的起点是应用于客车系统但CAN 的第一个市场应用却来自于其他领域特别是
在北欧CAN 早已得到非常普遍的应用在荷兰电梯厂商Kone 使用CAN 总线瑞士工程办公室Kvaser
已建议将CAN 应用至一些纺织机械厂Lindauer Dornier 和 Sulzer 并由他们提供机器的通讯协议这一
领域中在 Lars-Berno Fredriksson 的领导下公司建立了CAN 纺织机械用户集团 到1989 年他们
已研究出通讯原理并于1990 年早期帮助建立CAN Kingdom 开发环境尽管CAN Kingdom 并不是一
种基于OSI 参考模型的应用层但它被认为是基于CAN 的高层协议的原型
在荷兰Philips 医疗系统决定使用CAN 构成X 光机的内部网络成为CAN 的工业用户主要由Tom
Suters 发表的Philips 报文规范PMS 提出了CAN 网络的第一个应用层来自德国Weingarten 的Applied
Science 大学教授 Konrad Etschberger 博士也持同样的观点他管理Steinbeis Transfer Center for Process
Automation Stzp 公司现在更名为IXXAT Automation 公司并开发出一个类似的方案
不管如何第一个高层协议正在形成大多数CAN 的先行者使用单片电路的方法通讯功能网络管
理应用代码组合在同一个软件之中即使一些用户有较多的标准模块可供利用但面对所有的解决方案
他们也一定存在着缺陷必须持续稳定地发展CAN 的高层协议即使在今天仍然有部分用户低估这个
问题
在1990 年的早些时候开始筹划成立一个用户组织从而将不同的解决方案标准化在1992 年初的
几个月里当时VMEbus 杂志的主管出版社Franzis Holger Zeltwanger 将用户和厂商集中在一起讨
论建立一个促进CAN 技术发展的中立平台同时也针对串行总线市场进行分析1992 年5 月CiA CAN
in Automation 用户集团正式成立仅在几个星期后CiA 即发表了第一份技术杂志那是关于物理层的
CiA 推荐仅使用遵循ISO11898 的CAN 收发器到现在为止在当时的CAN 网络中使用非常普遍但并不
兼容的RS-485 收发器已基本消失尽管它也是厂商提供的
CiA 的首批任务之一是规定CAN 的应用层根据Philips 医疗系统PMS 和Stzp 所提供的内容依
靠其余CiA 会员的协助CAL CAN 应用层也称为绿皮书诞生了在制定CAN 应用规范时
CiA 的一个主要任务是进行CAN 专家和其他CAN 学习者之间的信息交流因此从1994 年起CiA 每年
召开一次国际CAN 会议iCC
另外一个理论的方法是借鉴于LAV 一个农业的交通工具协会在1980 年晚些时候开始一个基于
CAN 的农业交通工具总线系统LBS 被制定出但在工作最终完成前国际标准化委员会决定改向支持
US 解决方案J1939 这也是一个基于CAN 的应用子协议由SAE 的 Truck and Bus 协会制定J1939
是一个非模块化的方案简单易学但灵活性很差
从理论到实践
当然生产CAN 模块集成器件的15 家半导体厂商主要聚焦于汽车工业从1990 年中期起Infineon
公司和Motorola 公司已向欧洲的客车厂商提供了大量的CAN 控制器作为下一波从1990 年后期起远
东的半导体厂商也开始提供CAN 控制器1994 年NEC 推出了传说中的CAN 芯片 72005 但是这一
步太早了当时这个器件并不能投入使用
从1992 年起Mercedes-Benz 奔驰 开始在他们的高级客车中使用CAN 技术第一步使用电子控制
器通过CAN 对发动机进行管理第二步使用控制器接收人们的操作信号这就使用了2 个物理上独立的
CAN 总线系统它们通过网关连接其他的客车厂商也纷纷赶来斯图加特学习在他们的客车上也使用2
图片
全部评论