附:CAN总线协议 ISO 11898(含最新的2024版)系列标准
ISO 11898 2024https://mp.weixin.qq.com/s?__biz=MzI3NjcyODA2Ng==&mid=2247506152&idx=1&sn=e204ba71a2a7d7e9b23fdcd5bc0197a5&chksm=eb738885dc04019366f07acae2385d3faee4eafde74f0b653340e9b9e2fcecdc750ba09f178a&token=653550924&lang=zh_CN#rd
今年国际化标准组织(ISO)在2024年5月27日发布了文件 ISO 11898-1:2024,在2024年3月22日发布了文件ISO 11898-2:2024。ISO 11898-1文件和ISO 11898-2文件,分别提供了CAN在数据链路层和物理层的要求规范。
ISO 11898-1:2024基于之前的文件,将CAN XL和CAN FD light新纳入了ISO 国际标准,并对CAN的三代协议,即CAN CC(classic)、CAN FD(flexible datarate)和CAN XL(extended data-field length),进行了详细说明。同时,此文件在附录A中对CAN FD light进行了标准化定义。
ISO 11898-2:2024文件将CAN SIC和CAN SIC XL收发器新纳入了ISO国际标准,该标准涵盖了PMA选项,包括HS-CAN(high speed)、CAN FD、CAN SIC(signal improvement capability)和CAN SIC XL收发器。目前,CAN的四种收发器均已符合ISO国际标准水平。
ISO 11898-2:2024版本标志着CAN总线收发器的最高速率由CANFD行业认可的8Mbit/s提速最高到20Mbit/s,传输宽带不仅填补了CAN与Ethernet之间速率差距,2048Byte的payload和实时性的保留也给CAN网络本身带来更大的设计开发空间。
借着CAN总线新标准上线,来和大家聊聊在汽车行业中广泛应用的CAN总线相关知识,文中用通俗易懂的案例来讲解CAN总线通信的相关概念。
CAN BUS是Controller Area Network的缩写,全称也叫做控制器局域网络总线。
CAN总线发展时间线
1986年,底特律的汽车工程师协会(SAE)大会上,博世正式推出了控制局域网(CAN)串行总线系统,最早用于连接客车和卡车的ECU。
1987年,英特尔和飞利浦分别推出了第一款CAN控制器芯片——82526和82C00,标志着CAN通信从概念走向现实。
1991年,博世发布了CAN 2.0技术规范,包括两个版本:CAN 2.0A(11位)和CAN 2.0B(29位)。同年,CAN总线最先应用在了奔驰S系列车上用于连接发动机和变速箱的ECU,随后在汽车行业中得到了广泛的应用。
1993年,ISO发布了CAN总线的第一版国际标准ISO 11898:1993。该版本定义了CAN的数据链路层和物理层,为CAN总线的全球推广和应用提供了统一的标准和规范。
1994年:SAE颁布了基于CAN的J1939标准。
2003年:Maybach发布带76个ECU的新车型,VW发布带35个ECU的新型Golf,进一步推动了CAN总线在汽车工业中的应用。同年,ISO发布了第二版ISO 11898-1:2003,进一步规范了CAN的数据链路层和物理信号层,并增加了对高速中介接入单元和低速容错中介接口的描述。
2004年:ISO 11898-4:2004标准发布,规定了时间触发总线(TB)的基本概念、特征和要求。
2007年:ISO发布了第二版ISO 11898:2007,涵盖了CAN的数据链路层和高速物理层。
2015年:ISO发布了最新版ISO 11898-1:2015,继续沿用并更新了之前版本的内容。
2016年:ISO发布了ISO 11898-2:2016,专门针对CAN的高速物理层进行规范
2024年:发布了新的版本ISO 11898-1:2024和ISO 11898-2:2024,CAN 技术的所有协议及收发器完全纳入ISO标准,是CAN标准化成型的又一重要里程碑。
用一个乘坐公共汽车的案例来通俗解读CAN总线
CAN总线是一种串形数据通信协议,它的通信接口集成了CAN协议的物理层和数据链路层的功能,可以完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等工作。
用一个通俗易懂的案例来解释上面这段话:
CAN总线也叫CAN BUS,BUS的本义是公共汽车。最开始的时候,是将CAN总线比作公共汽车。这个比喻很形象,公共汽车可以运输大量的乘客,而CAN总线上面,它也传输着大量的数据信息。简单来说,CAN总线就是一种用于传输数据的通信协议。
CAN总线的特点
现代汽车越来越多地采用了电子控制装置,这些控制装置需要检测和交换大量的数据。如果继续采用传统的连接方法,如点对点的连接方式,需要大量的信号传输线,控制器上的针脚数就必须要增加,线路也会变得更复杂,带来更多的干扰。而线束增加会增加汽车的重量以及生产成本,并且故障率也会变高,故障排查的难度也会变大。
采用CAN总线的数据传递形式,不管有多少控制器和多大的信息容量都可以通过CAN-H和CAN-L这两条数据线来进行传递,减少系统的复杂性,连在CAN总线上的控制器,称之为CAN总线的节点。
大多数人有搭乘公共汽车的经验,公共汽车是到站停靠,乘客到目的站点之后依次的下车,CAN总线上的数据传递,类似于乘客到站下车,所有的数据信息都在CAN总线上,但并不是所有的控制器都会去接收这些信息,控制器只会接收自己所需要的数据信息,那些不需要的信息就会被忽略掉。
CAN总线具备线束少、使用方便、可靠性高、数据密度大、数据传输快等特点。
现代汽车上很多的电子控制器的数据都需要在CAN总线上进行传输,会不会像早晚高峰挤公交车一样出现杂乱无序的情况?
大家知道会议通常会议会有一个主持人,他会提出一个或者是多个会议议题,其他人坐下来听或者是发表自己的观点。
CAN总线的数据传递也是通过类似于会议的机制来实现的,只不过这个会议的过程并不是由一方来主导的,而是每个参会的人员都可以提出会议的议题,这就是多组通信模式。
CAN总线上的所有节点都是可以发送数据的,但如果a节点和b节点同时发送,就需要根据节点的ID来仲裁发送的顺序,如果a的优先级是大于b的,根据仲裁机制,b就会主动停止发送,这个时段就由a来发送数据。这就是优先级判别机制。
OSI参考模型与CAN总线
无论是哪种总线包括CAN总线在内,都是基于OSI参考模型的。OSI模型有7层,在汽车行业中用得最多的就是物理层、数据链路层和应用层。网络层和传输层,也有相应的规范去做具体的应用。常规的总线的传输协议,底层通常只有物理层和数据链路层。
设备之间的通信其实是相同层次之间的信息沟通,即物理层与物理层的信息进行交换,数据链路层与数据链路层的信息进行交换,层与层之间,是相互独立的。
基于这种层次化的结构,各个通信层次才能各司其职,高效且相互独立的工作。
物理层,主要完成控制器间的信号的传送,把各种信息转化为可以传输的物理信号,并将这些信号传输到目标控制器。就是规定不同的控制器之间进行数据传输的时候,需要用什么样的介质来进行链接,也就是定义传输介质。对应的,还有如何进行传输信号的解析和编码。
例如我们选择的传输介质是光纤、同轴电缆或者是双绞线,这些传输介质在传输的时候,都是物理电学信号,而在物理层之上,我们认为都是计算机事件,对应传输的是二进制数据。物理层以上的信息往下传或者是物理层的信息往上传,都会有信息传输编码解析的规则。
物理层还包括定义传输拓扑结构,在计算机行业里面,通常有环形的、总线形的、竖形的、星形的等各种各样的传输拓扑结构。
(在后期分享CAN总线物理层内容的时候,会给大家详细介绍CAN总线的拓扑结构)
数据链路层,物理层能够实现信号的传输,信号如何传送数据?多个节点同时发送的时候该怎么办呢?如何保证数据的可靠性?如果发生错误的时候该怎么办?发送与接收目标应该如何去选择呢?
这些问题都在数据链路层来解决!
数据链路层对应的具体定义的一套协议,协议定义如何对物理层传上来的数据或者是应用层传下来的数据进行编码,包括访问的机制如何去做同步,数据出错的保护以及数据流的控制等等。
最上层的是应用层,物理层和数据电路层就像我们生活中完善的快递系统,他们并不关心信息的内容是什么,只负责完成信息的收发和传递,而规定这些数据的用途以及含义是属于应用层的工作,该层规定控制器的工作流程和数据的具体含义。
后期将给大家详细介绍CAN协议数据链路层和物理层相关内容,敬请期待~
ISO 11898-1:2024和ISO 11898-2:2024下载☞↓↓↓↓