在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统
被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很
多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需
要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后,CAN 通过 ISO11898 及 ISO11519 进
行了标准化,现在在欧洲已是汽车网络的标准协议。
现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
图 1 是车载网络的构想示意图。CAN 等通信协议的开发,使多种 LAN 通过网关进行数据交换得以实现。
1) 多主控制。
在总线空闲时,所有的单元都可以开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
多个单元同时发送时,发送高优先级 ID 消息的单元可获得发送权。
2) 消息的发送
在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以
开始发送新的消息。两个以上的单元同时发送消息是,根据标示符(Identifier 以下称 ID)决定
优先级。ID 并不是发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时
开始发送消息时,对各消息 ID 的每个位进行逐个仲裁。仲裁获胜(被判定为高优先级)的单元
可继续发送消息,仲裁失利的单元则立刻停止发送而转为接收模式。
3) 系统的柔软性
与总线相连的单元没有类似于“地址”的信息,因此在总线上增加单元时,连接在总线上的其他单
元的软硬件及应用层都不需要改变。
4) 通信速度
根据网络的规模,可设置合适的通信速度。在同一网络中,所有单元必须设置统一的通信速度。
5) 远程数据请求
任意单元都可以发送“遥控帧”来请求其他单元发出数据。
6) 错误检测功能—错误通知功能—错误恢复功能
所有单元都可检测错误(检测功能)。 检测出错的单元会立即通知其他所有单元(错误通知功能)。
发送出错的单元,会立即停止当前发送,并不断重新发送此消息,直到发送成功为止(错误恢复
功能)。
7) 故障封闭
CAN 可以判断出错误的类型是总线上暂时的错误(如外部噪声等)还是持续的数据错误(如单
元内部的故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此
故障的单元从总线上隔离出去。
8) 连接
CAN 总线是可以同时连接多个单元的总线。可连接的单元总数理论上是没有限制的,但实际上
可连接的单元数受总线上的时间延迟及电气负载的限制,降低通信速度,可连接的单元数增加;
提高通信速度,则可连接的单元数减少。
OSI(Open System Interconnect),即开放式系统互联。 一般都叫 OSI 参考模型,是 ISO(国际标准化组织)
![](https://img2018.cnblogs.com/i-beta/1822267/201911/1822267-20191114200802676-155127544.png)
![](https://img2018.cnblogs.com/i-beta/1822267/201911/1822267-20191114200715131-1005481218.png)
![](https://img2018.cnblogs.com/i-beta/1822267/201911/1822267-20191114201435816-1957515183.png)