灵动微电子 · 2023年07月21日 · 北京市

CAN总线开发一本全(1)- CAN总线发展历史

CAN总线开发一本全(1)- CAN总线发展历史

  • CAN 总线技术发展里程碑
  • 从构思到第一个芯片
  • 标准化和规格 ISO 11898
  • CAN时代的先锋 CiA
  • 从理论到实践 DeviceNet & CANopen
  • 时间触发的通讯 TTCAN & CANopen同步传输
  • 当局批准
  • CAN FD的出现
  • CAN的未来是光明的
  • 第三代CAN
  • 总结
  • 参考文献

本文的大部分内容来自于CAN in Automation(CiA)组织官方网站( https://can-cia.org/ )公布网页内容的翻译。

CAN 总线技术发展里程碑

CAN总线即为控制器局域网络(Controller Area Network,简称CAN或者CAN bus) ,是一种功能丰富的车用总线标准。被设计用于在不需要主机(Host)的情况下,允许网络上的单芯片和设备相互通信。一辆车所有的控制器、传感器、电子设备等的通信只需要两个信号线构成的总线即可形成互联,极大地优化了整车的布线。如今,欧洲几乎所有汽车都配备了至少一个CAN网络,CAN还用于其他类型的车辆,从火车到轮船,以及工业控制中。CAN是最主要的总线协议之一,甚至可能是全球领先的串行总线系统。

image.png
图x 汽车上的CAN总线

表1 CAN总线发展大事记

image.png

从构思到第一个芯片

在1980年代初期,博世(Bosch)的工程师正在评估现有的串行总线系统,以探讨其在汽车中的可能用途。由于没有可用的网络协议能够满足汽车工程师的要求,因此Uwe Kiencke于1983年开始开发新的串行总线系统。

新的总线协议主要是要增加新的功能,减少线束不是CAN发展背后的驱动力。奔驰(Mercedes-Benz)的工程师很早就参与了新的串行总线系统的规范制定阶段,英特尔(intel)作为潜在的主要半导体供应商也参与了进来。来自德国Braunschweig-Wolfenbüttel的应用科学大学(现为Ostfalia University of Applied Science)的Wolfhard Lawrenz教授被聘为顾问,他将新的网络协议命名为“Controller Area Network(控制器区域网络)”。来自卡尔斯鲁厄大学的Horst Wettstein教授也提供了学术帮助。

1986年2月,CAN诞生了:在底特律的SAE大会上,新的总线系统被称为“Automotive Serial Controller Area Network(汽车串行控制器局域网)”。Uwe Kiencke,Siegfried Dais和Martin Litschel介绍了多主机网络协议。它基于一种非破坏性仲裁机制,该机制允许总线访问具有最高优先级的帧而没有任何延迟。没有中心控制器。此外,CAN之父(上述人员以及博世员工Wolfgang Borst,Wolfgang Botzenhard,Otto Karl,Helmut Schelling和Jan Unruh)已经实现了几种错误检测机制。错误处理还包括自动断开故障总线节点,以保持其余节点之间的通信。传输的帧不是由帧发送器或帧接收器的节点地址(几乎在所有其他总线系统中)识别的,而是由它们的内容识别的。表示帧有效载荷的标识符,还具有 指定帧在网络段内的优先级。

image.png
figure-dias_kiencke_litschel

图x Dr. Siegfried Dais, Prof, Dr. Uwe Kiencke 和 Martin Litschel

随后,许多介绍该创新通信协议的演讲和出版物,直到1987年中期(比计划提前两个月),英特尔才交付了第一款CAN控制器芯片82526(FullCAN)。这是CAN协议的第一个硬件实现。在短短四年内,一个想法就变成了现实。此后不久,飞利浦半导体推出了82C200(BasicCAN)。这两个最早的CAN控制器产品在接收过滤和帧处理方面有很大的不同:

  • 英特尔的FullCAN概念要求所连接的微控制器的CPU负载更少,但是FullCAN设备在可以接收的帧数方面受到限制
  • 飞利浦的BasicCAN控制器可以使用更小的晶元面积完成功能。

image.png
figure-intel-82526

图x 英特尔的82526组网方案

随着半导体设计和工艺的发展,在当今的CAN控制器中,可以在精简的晶元上实现了比较完善的接收过滤和帧处理过程,不再受限于BasicCAN和FullCAN对制造成本和功能做出的取舍。

标准化和规格 ISO 11898

早在1990年代初,博世CAN规范(2.0版)就已经发布,用于国际上的标准。在发生了几场政治纠纷之后,尤其是涉及到法国一些主要汽车制造商开发的“车载区域网络”(VAN,Vehicle Area Network),ISO 11898标准于1993年11月发布。除了CAN协议外,它还标准化了物理层,速率高达1 Mbit / s。与此同时,一种基于CAN总线的具有低功耗和容错机制的数据传输过程被标准化,被写入ISO 11519-2。但由于该规范本身存在缺陷,因此从未被实现。在1995年,ISO 11898标准中新增了使用29位CAN标识符的扩展帧格式,被写入到附录中。

非常遗憾的是,当时所有已发布的CAN规范和标准化都包含错误或不完整。为避免不兼容的CAN实施方案,博世需要确保所有CAN芯片均符合Bosch CAN参考模型。此外,由Wolfhard Lawrenz教授领导的德国Braunschweig-Wolfenbüttel的应用科学大学的技术团队,已经进行了几年的CAN一致性测试,基于ISO 16845一致性测试计划标准,开发了一系列测试模型。今天,已经有多家测试机构可提供CAN一致性测试服务。

修订后的CAN规范继续标准化:

  • ISO 11898-1 加入了对“ CAN数据链路层”
  • ISO 11898-2 加入了对“非容错” CAN物理层
  • ISO 11898-3 加入了“容错CAN物理层”。
  • ISO 11992系列(卡车和拖车接口)和ISO 11783(农业和林业机械)系列指定了基于SAE J1939网络方法的应用配置。但它们两个互不兼容,因为物理层规范不同。

CAN时代的先锋 CiA

尽管CAN原本被开发用于汽车应用,但实际最早使用CAN的应用来自其他的市场领域。特别是在北欧,CAN在早期已经非常流行。在芬兰,电梯制造商Kone使用了CAN总线。瑞典工程办公室Kvaser向一些纺织机械制造商(Lindauer Dornier和Sulzer)及其供应商建议将CAN作为机器内部的通信协议。在Lars-Berno Fredriksson的领导下,这些公司成立了“ CAN纺织品用户小组”。到1989年,他们制定了沟通原则,有助于在1990年代初塑造开发环境“ CAN Kingdom”。尽管CAN Kingdom不是一个遵循于OSI参考模型的应用层模型,但它仍被看做是基于CAN的高层协议的最初原型。

在荷兰,飞利浦医疗系统将CAN用于其X射线机的内部联网,作为CAN总线在工业领域的应用。主要由Tom Suters开发的“ Philips消息规范”(PMS)代表了CAN网络的第一个应用层。来自德国Weingarten应用科学大学的Konrad Etschberger教授也有相同的想法,在他负责的Steinbeis过程自动化转移中心(STZP)中,他开发了类似的协议。

尽管第一个标准化的高层协议开始出现,但大多数CAN开拓者还是采用了集成开发的方法,通信功能、网络管理和应用层的软件包被打包在一起。即使某些用户希望采用模块化的方法,但他们仍有订制解决方案的缺点。增强和维护统一的CAN高层协议的必要性,在当时被低估了,而在今天仍然如此。

在1990年代初,是成立了一个用户小组的时候了,以推广CAN协议并促进其在许多应用中的使用。1992年1月,当时的《 VMEbus》杂志编辑(出版商:Franzis)的Holger Zeltwanger吸引了用户和制造商一起建立了一个中立的平台,用于CAN的技术研讨以及串行总线系统的市场营销。两个月后,“ CAN in Automation”(CiA)国际用户和制造商小组正式成立。在这段时间里,CAN Newsletter已经开始发布。

CiA成立的几周后,发布了第一份技术出版物,涉及物理层:CiA建议仅使用符合ISO 11898的CAN收发器。如今,制造商专用的EIA-485收发器在CAN网络中非常普遍,但那个时候,并不总是兼容,这种情况现在应该已经完全消失了。

CiA的首要任务之一是规范CAN应用层。利用飞利浦医疗系统公司和STZP提供的现有材料,并在CiA其他成员的帮助下,开发了“ CAN应用程序层”(CAL, CAN Application Layer),也称为“绿皮书”。在开发使用CAN的规范时,CiA的主要任务之一是,组织CAN专家与那些希望在CAN上变得更多知识的专家之间进行沟通。因此,从1994年开始,发起了国际CAN会议(iCC,international CAN Conference)。

LAV(德国农业车辆协会,German agricultural vehicle association)探索了另一种方法。自1980年代后期以来,一种基于CAN的农用车辆总线系统(LBS)被提出来,但在开发完成之前,国际委员会已决定支持一个美国的解决方案J1939(ISO 11783)。SAE卡车和公共汽车协会的委员会定义了基于CAN的应用程序配置文件。J1939是一种非模块化方法,虽然非常易于使用,但也不够灵活。

还有一个专为卡车开发的CAN标准化,卡车和拖车之间的网络标准化为ISO11992。该协议基于J1939,从2006年起在欧洲使用。汽车系统趋向于使用OSEK-COM和OSEK-NM,这是一种通信和网络管理协议。两者均已提交国际标准化。到目前为止,汽车制造商一直在使用这些软件解决方案。

image.png
figure-cia-members

图x Cia的成员分布全球各地

从理论到实践 DeviceNet & CANopen

将CAN实现到其微控制器中的半导体供应商主要集中在汽车行业。自1990年代中期以来,英飞凌科技公司(以前为西门子半导体公司)和摩托罗拉公司(外包为飞思卡尔,后来被NXP收购)已经向欧洲汽车制造商及其供应商运送了大量CAN控制器。自1990年代末以来,远东半导体供应商也开始提供CAN控制器。NEC在1994年推出了他们传奇的CAN芯片72005。

自1991年以来,奔驰一直在其汽车中使用CAN。一开始,通过CAN连接负责发动机管理的电子控制单元。1995年,宝马在其7系汽车中使用了带有五个ECU(电子控制单元)的树/星拓扑CAN网络。后来,跟随车身电子设备所需的控制单元。实现了两个物理上分离的CAN网络,再通过网关连接。其他汽车制造商也沿用了奔驰的方式,通常在乘用车中实现两个CAN网络。如今,他们都在自己的车辆中实现了多个CAN网络。

在1990年代初期,美国机械工程公司的工程师Cincinnati Milacron与Allen-Bradley和Honeywell Microswitch共同成立了一家合资公司,主要业务就是CAN的控制和通信项目。但是,不久之后,重要的项目成员换了工作,合资企业瓦解了,但是Allen-Bradley和Honeywell各自继续进行开发工作,由此产生了两个非常相似的高层协议“DeviceNet”和“智能分布式系统”(SDS,Smart Distributed System)。1994年初,Allen-Bradley将DeviceNet规范移交给了“开放DeviceNet供应商协会”(ODVA,Open Devicenet Vendor Association),这促进了DeviceNet的普及。Honeywell未能在SDS上采取类似的方式,这使SDS看起来更像是Honeywell微动的内部解决方案。DeviceNet是专为工业自动化而开发的,因此,它本身就是Profibus-DP和Interbus等协议的直接对手。提供现成的即插即用功能,DeviceNet已成为美国这个特定细分市场中领先的总线系统。

在欧洲,几家公司尝试使用CAL。尽管CAL方法在理论上是正确的,并且可以在工业应用中使用它,但是每个用户进行移植和适配,因为CAL是真正的应用程序层软件协议。CAL可以看作是独立于应用程序的CAN解决方案必不可少的理论步骤,但它从未在该领域获得广泛认可。

自1993年以来,在Esprit项目ASPIC的范围内,由博世领导的欧洲财团一直在开发CANopen的原型。它基于CAL的配置文件,用于生产单元的内部网络。在学术界,来自德国罗伊特林根应用科学大学的Gerhard Gruhler教授和来自英国纽卡斯尔大学的Mohammed Farsi博士参加了这项有史以来最成功的Esprit活动。项目完成后,CANopen规范移交给了CiA,以进行进一步的开发和维护。1995年,发布了经过完全修订的CANopen通信配置文件,并在短短五年内成为欧洲最重要的标准化嵌入式网络。

第一个CANopen网络用于机器的内部通信,尤其是驱动器。CANopen提供了很高的灵活性和可配置性。高层协议已用于多个非常不同的应用领域(工业自动化,航海电子,军用车辆等),同时其国际标准为EN 50325-4(2003)。CANopen在欧洲使用广泛,意大利的注塑机,德国的木锯和机器,英国的卷烟机,法国的起重机,奥地利的搬运机以及瑞士的钟表制造机只是工业自动化和机械制造中的几个例子。在美国,CANopen被推荐用于叉车,并实际用于信件分拣机中。

CANopen不仅定义了应用程序层和通信协议,而是定义了一个可编程的系统框架,适用于不同的设备,接口和应用。这也是整个行业(例如印刷机,海事应用,医疗系统)决定在1990年代后期使用CANopen的重要原因。

基于DeviceNet和CANopen,两个标准化的(IEC 62026-3或EN 50325-4 / 5)应用层框架应运而生,定位于不同的工业自动化市场的需求。DeviceNet针对工厂自动化进行了优化,而CANopen特别适合于各种机器控制中的嵌入式网络。这使得专有的应用程序已然过时,使用通用CAN应用层的时代已经到来。

时间触发的通讯 TTCAN & CANopen同步传输

在2000年初,一个ISO特别工作组联合几家公司定义了一个协议,使用时间触发CAN帧的传输。Bernd Mueller博士,Thomas Fuehrer博士和其他博世员工,以及半导体行业和学术研究专家,共同定义了协议“ CAN上的时间触发通信”(TTCAN,Time-triggered communication on CAN)。

这种对CAN的扩展功能可以实现时间等量的帧传输和通过CAN的闭环控制的实现,而且还可以在 x-by-wire 的应用中使用CAN。由于CAN协议未更改,因此可以通过同一物理总线系统传输时间触发的帧和事件触发的帧。但是,汽车行业尚未采用TTCAN。而且,工业用户很少使用时间触发的协议扩展。他们改用CANopen中指定的同步传输功能,可以说是一种软时间触发方法。

当局批准

在90年代后期,几种基于CAN的专有安全协议被开发出来。幸存下来的是德国Pilz的 Safetybus p。在1999年,CiA开始开发CANopen-Safety协议,该协议已获得德国TüV的批准。经过标准化机构的大量参与之后,此CANopen扩展(CiA 304)在EN 50325-5(2009)中进行了国际标准化。

DeviceNet使用CIP安全协议扩展。全球领先的船级社之一的德国劳埃德船级社(Germanischer Lloyd)已批准了适用于海事应用的CANopen框架(CiA 307)。另外,该框架规定了从默认的CANopen网络到冗余总线系统的自动切换。如今,这些功能已在CiA 302系列其他CANopen应用层功能中得到了概括和指定。

CAN FD的出现

2011年初,通用汽车和博世开始着手开发一些有关提高吞吐量的CAN协议。汽车行业中使用了越来越多的电子控制单元(ECU)时,对高速率通信的需求日益增多,高性能通信系统必须缩短耗时的任务。通过引入第二个比特率来提高CAN传输速度的想法并不新鲜。自2000年初以来,已有几位学者发表了研究方法。但没有一个学者能够说服汽车制造商。后来,博世与其他CAN专家合作,预先开发了CAN FD规范,该规范于2012年在德国哈姆巴赫城堡举行的第13届国际CAN会议上正式推出。

在ISO的标准化过程中,一些理论上的检测错误机制的缺陷被发现。这就需要对CAN FD协议进行审查,并引入其他防护措施(例如,填充位计数器)。这就是为什么存在非ISO CAN FD协议的原因,该协议与ISO 11898-1中标准化的ISO CAN FD协议不兼容。

戴姆勒公司的Mark Schreiner博士为设计CAN FD网络提供了很多设计要点和知识。他的许多想法都被收录在CAN FD节点的CiA 601系列以及系统设计建议和规范中。

CAN的未来是光明的

随着CAN FD协议的引入,CAN技术的生命周期得以延长。汽车行业已经开始为下一代车载网络采用CAN FD协议。可以预期,未来所有的应用程序都将使用CAN FD协议,而无论它们是否需要更高的带宽。用户仍然可以将CAN FD作为固定波特率使用,可以配置有效负载长度无论如何都可以在0到64字节。

image.png
figure-can-frame-and-canfd-frame

图x 经典CAN通信帧格式和CAN-FD通信帧格式

对于那些需要更高带宽和混合拓扑的用户,CiA已开发了所谓的SIC(信号改善电路)收发器规范(CiA 601-4)。最初的想法来自日本Tier-1供应商Denso。

CiA还开发了基于CAN FD底层的CANopen FD协议。特别是对于工业运动控制应用,非常适合更高的传输速率和更长的有效载荷(最大64字节)。CiA还参与了使用SAE J1939系列中指定的现有参数组的商用车,基于CAN FD的应用层的开发。

第三代CAN

2018年底,CiA开始开发第三代基于CAN的数据链路层协议CAN XL。它是应大众汽车的要求启动的。Carsten Schanze和Alexander Mueller提供了许多最初的想法。在CAN XL中,数据负载可达2048字节。另外,还有一项新功能,使用专门的优先级字段(11-bit)和地址字段(32-bit)。博世的Arthur Mutter博士和Fraunhofer的Ralf Hildebrand,以及其他专家为之贡献了许多新的思路。

与此同时,CiA的几个技术小组开发了与CAN XL相关的CiA文档系列。这还包括一种新的物理媒介连接方法,使用PWM编码代替传统的NRZ编码。恩智浦的专家,尤其是Matthias Muth,提交了PWM编码的原始提案。

除了包括一致性测试计划在内的CAN XL底层规范外,还包括CAN XL设备和网络设计建议、CAN XL高层协议规范以及层管理规范。此外,CiA成员指定了CAN XL数据链路层安全协议。

2020年,由于疫情,取消了国际CAN会议的执行,该年的国际CAN会议改为线上举行,主题是CAN XL。CAN XL速度提升至10Mbps。

image.png
figure-can-speeds

图x CAN使用越来越高的速率

总结

  • CiA CAN XL规范于2018年12月开始,目标是在2019年底之前拥有OSI第2层规范(称为CAN XL协议),第二步,将开始进行ISO标准化。
  • 经典CAN是1Mbps,CAN FD最高2Mbps,CAN FD-SiC是5-8Mbps,CAN XL是10Mbps。
  • CANopen是一个事实上的应用层协议,目前大部分CAN应用基于CANopen开发。市面上有对CANopen协议进行实现的软件包,例如CANopenNode、CAN Festival等。
  • CAN总线有两个ISO国际标准:ISO11898 和 ISO11519。其中:

    • ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。
    • ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。

参考文献

《History of CAN technology》

作者:安德鲁苏
文章来源:安德鲁的设计笔记本

推荐阅读

更多MM32F5系列资料请关注灵动MM32 MCU专栏。如想进行MM32相关芯片技术交流,请添加极术小姐姐微信(id:aijishu20)加入微信群。
推荐阅读
关注数
6114
内容数
273
灵动MM32 MCU相关技术知识,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息