汽车CAN总线基础-CAN总线简介
1.1 CAN是什么
CAN是Controller Area Network的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。
1.2 CAN的起源
汽车CAN总线是20世纪80年代初德国Bosch公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议。
传统汽车线束连接如图1.21。
在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”,“通过多哥LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化,现在在欧洲已是汽车网络的标准协议。
现在,CAN总线的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
在汽车上的应用,CAN节点已经达到最多90个电子控制节点了。
1.1 CAN的发展史
※1983年,Bosch开始研究车上的网络技术;
※1986年,Bosch在SAE大会公布CAN协议;
※1987年,Intel与Philips先后推出CAN控制器芯片;
※1991年,Bosch颁布CAN2.0技术规范,CAN2.0包括A和B两个部分;
※1991年,CAN总线最先在Benz S系列轿车上实现;
※1993年,ISO颁布CAN国际标准ISO-11898;
※1994年,SAE颁布基于CAN的J1939标准;
※2003年,Maybach颁布带76个ECU的新车型(CAN、LIN、MOST);
※2003年,VW颁布了带35ECU的新车型Golf;
……
※未来,CAN总线将部分被FlexRay所取代,但是CAN总线将会被持续应用相当长的时间。
1.2 CAN的特性
※多主结构依据优先权进行总线访问;
※无破坏性的基于优先权的逐位仲裁;
※借助验收滤波器的多地址帧传递;
※远程数据请求;
※全系统数据相容性;
※错误检测与出错信令;
※很远的输出传输距离(长达10Km);
※高速的数据传输速率(高达1Mbps);
※高度实时性,每帧报文允许传输最多8个字节的数据;
※发送期间丢失仲裁或出错而遭到破坏的帧可自动重发;
※暂时错误和永久性故障节点的判别以及故障节点的自动脱离;
※脱离总线的节点不影响总线的正常工作。
1. 多主控制
在总线空闲时,所有的单元都可开始发送消息,最先访问总线的单元可获得发送权,多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。
2. 消息的发送
在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连接的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符ID决定优先级。ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开发发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
3. 系统的柔软性
与总线相连接的单元没有类似于“地址”的信息,因此在总线伤增加单元时,连接在总线上的其他单元的软硬件及应用层都不需要改变。
4. 通信速度
根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度,即使有一个单元的通信速度与其他的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
5. 远程数据请求
可通过发送“远程帧”请求其他单元发送数据。
6. 错误检测功能、错误通知功能、错误恢复功能
所有的单元都可以检测错误及错误检测功能。检测出错误的单元会立即同时通知其他所有单元及错误通知功能。正在发送消息的单元一旦检测出错误,会强制结束当前的发送,强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止及错误恢复功能。
7. 故障封闭
CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障单元从总线上隔离出去。
8. 连接
CAN总线是可同时连接多个单元的总线,可连接的单元总数理论上是没有限制的,但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
CAN总线基础总线简 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)