CAN总线中的电平
CAN总线就是通过显性和隐性电平的变化来传输数据的。
数据从CAN总线起始节点发出,到达终点,各个ECU各取所需。就像一辆公交车,沿途经过各个站点。
因此,CAN总线也被形象地称为CAN-BUS总线。
CAN-BUS总线
CAN总线取代了昂贵而笨重的传统配电线束,降低了整车成本,传输效率更高,功能更加完善。
1986年2月,在底特律SAE大会上,CAN总线正式发布。
1987年,英特尔交付了第一款CAN控制器芯片82526,这是CAN协议的第一个硬件实现。从1983年到1987年,仅仅4年时间,一个想法就变成了现实。此后不久,飞利浦半导体推出了82C200。
1991年,奔驰500E成为世界上第一款搭载CAN总线的量产车型。同年,博世发布了CAN2.0标准,分为CAN2.0A(11位标识符)和CAN2.0B(29位标识符)。
1993年11月,国际标准化组织(ISO)发布了CAN标准ISO11898:1993,同时发布的还有ISO 11519-2。这是世界上第一版CAN国际标准,随后进行了多次修订和演进。
ISO11898:1993同时定义了数据链路层和高速物理层,通俗的讲就是它规定了如何在电线上发送和接收数据,通信速度为5kbps-1Mbps(高速CAN)。
ISO 11519-2则定义了通信速率在125kbps以下的通信标准(低速CAN),其通信速度相对较慢,但优点在于其对硬件的要求低、成本低。同时,该标准允许在CAN总线连接失败时通信得以继续进行,因此又叫容错CAN(LSFT CAN)。
从2003年开始,ISO 11898 CAN标准分离为ISO 11898-1和ISO 11898-2两部分,后续又发布了其他部分,并进行了整合。
在2016年之前,ISO 11898涵盖6个部分,即:
(ISO 11898-1-2003)
Part1:Data link layer and physical signalling
(ISO 11898-2-2003)
Part2:High-speed medium access unit
(ISO 11898-3-2006)
Part3:Low-speed,fault-tolerant,medium-dependent interface
(ISO 11898-4-2004)
Part4:Time-triggered communication
(ISO 11898-5-2007)
Part5:High-speed medium access unit with low-power mode
(ISO 11898-6-2013)
Part6:High-speed medium access unit with selective wake-up functionality
在2016年,其中的Part2、Part5、Part6被合并成了一个新的Part2,即:ISO 11898-2-2016,原有的ISO 11898-5-2007和ISO 11898-6-2013被撤回。
值得一提的是ISO 11898-3-2006的发布取代了最早发布的ISO 11519-2,所以如今很多人没听过ISO 11519。
行文至此,终于知道了ISO 11898的来龙去脉,以及其与ISO 11519的关联。
2.CAN诊断协议:汽车的“翻译官”
CAN通信协议只规定了信号的传输规则,实际上,从上个世纪90年代开始,汽车的电子化趋势越来越明显,各种传感器、执行器和控制单元的故障诊断成了一个大问题。
每个设备都有自己的诊断方法,这无形中增加了汽车维修的难度及成本。
为了解决这个问题,ISO组织于1991年开始研究诊断相关标准。
诊断的概念来源于医学,当病人出现头晕、发烧、呕吐等不适症状时,医生通过询问、观察或者仪器检测,得到相关数据,并进行对症治疗。
车辆的诊断过程也有类似的地方,外部诊断设备(Tester),通过汽车总线连接车辆,获取车辆各个ECU的状态信息,从而在不拆解车辆的情况下为车辆维修提供可靠的依据。
诊断时,Tester端与ECU端通过一问一答的形式进行通信,因此,需使用同样的“语言”——诊断协议。
1996年,最早的诊断协议ISO 9141出现,该协议的典型特点是通信前需要双方建立握手协议,比较繁琐,随着技术的发展及时间的推移,该协议已经逐步退出历史舞台了。
到了1999年,ISO 14230诞生,也就是常说的KWP2000(Keyword Protocol 2000)。该协议实现了一套完整的车载诊断服务,最初使用K-Line(又叫K线)串行传输,最大通信速率10.4Kbps。现在已经没有多少车企应用此诊断协议了。
后来,基于CAN的KWP2000,即ISO 15765于2001年出现了,最大速率可达1Mbps。
该协议包含如下几个部分: