一、CAN总线的起源
CAN总线是由德国研发和生产汽车电子产品著称的BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。CAN总线是一种多主控(Multi-Master)的总线系统。传统总线系统如USB或以太网等是在总线控制器的协调下,实现从A节点到B节点大量数据的传输。CAN网络的消息是广播式的,即在同一时刻网络上所有节点侦测的数据是一致的,它是一种基于消息广播模式的串行通信总线。
CAN总线的历史
1983年,Bosch开始内部开发车身网络(in-vehicle network)。
1986年,Bosch在SAE大会发布了CAN协议,开始了CAN总线的国际化。
1987年,Intel,Philips率先开发出CAN芯片。
1991年,Bosch发布了CAN 2.0,里面包含了A,B两部分(标准CAN,和扩展CAN)。
1992年,奔驰率先开发出基于CAN总线的汽车。
1993年,ISO 11898(data link(数据链路层),high-speed physical layer(高速物理层))发布。
1995年,ISO 11898 发布了扩展CAN的数据格式。
2003年,ISO 将原有的ISO 11898分成ISO 11898-1(数据链路层)和ISO 11898-2(高速物理层)两部分。
2004年,ISO 11898-4(TTCAN)发布。
2006年,ISO 11898-3(Low-power,low-speed physical layer)发布。
2007年,ISO 11898-5(low-power,high-speed physical layer)发布。
2011年,开始CAN FD协议的开发。
2013年,ISO 11898-6(physical layer with selective wake-up 功能)发布。
2015年,ISO 11898-1(Classical CAN和CAN FD)修订版发布。
二、什么是CAN总线
CAN(Controller Area Network)控制器局域网,是ISO串行通信协议。CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。
三、CAN总线的优点
CAN总线的很多优点,使得它得到了广泛的应用,如传输速度最高到1Mbps, 通信距离最远到10km,无损位仲裁机制,多主结构。
CAN的特点
1.基于多主优先级的总线访问
在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据标识符( Identifier 以下称为 ID)决定优先级(ID值越小优先级越高),优先级高的获得总线访问权。 ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
2.非破坏性仲裁机制
3.广播型
节点通过本地过滤接收自己所需的数据,不需要的就过滤掉。
4.配置灵活
可随意增减节点,不影响软硬件。节点数量理论上无限制,实际受电气负载限制。
5.系统范围内数据一致性
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。 通信速度较快,通信距离远。 最高 1Mbps(距离小于 40M),最远可达 10KM(速率低于 5Kbps)。
6.错误检测
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
7.自动重传仲裁或错误期间被破坏的数据
具有错误检测、错误通知和错误恢复功能。 所有单元都可以检测错误(错误检测功能),检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
8.区分临时错误和永久性故障节点,自动关闭有缺陷节点
四、点对点通信与总线通信的区别
上世纪八十年代以来,汽车ECU越来越多,如ABS,电控门窗,电子燃油喷射装置。如果仍然采用常规的点对点布线方式,即电线一段与开关相接,另一端与用电设备相通,将会导致车上电线数目的急剧增加,从而带来线束的冗余及维修成本的提高。这就对汽车的线束分布及信息通讯提出了更高的要求。总线技术可以实现信息的实时共享,解决了传统布线方式中线束多,布线难,成本高等问题,CAN(Controller Area Network)总线技术应运而生。
![](https://img-blog.csdnimg.cn/202005051136316.jpg)
![](https://img-blog.csdnimg.cn/20200505113724994.jpg)
待补充...