硬件接口协议之“CAN总线规范”

本文主要介绍CAN总线的标准。


CAN总线基本协议层分为物理层、数据链路层、应用层三层协议,相关标准也分为底层标准(物理层和数据链路层)和上层标准(应用层)两大类。CAN底层标准主要是ISO 11898系列的国际标准,不同厂商在CAN总线的物理层和数据链路层定义是基本相同的;而上层标准,涉及到例如流控制、设备寻址和大数据块传输控制等,不同应用领域或制造商会有不同的做法,没有统一的国际标准。




底层标准

CAN底层标准涵盖OSI模型中的物理层和数据链路层,底层标准包括:
  • ISO 11898-1: 2015 定义CAN总线的数据链路层(DLL)和电气信号标准,描述CAN总线的基本架构,定义不同CAN总线设备在数据链路层通信方式,详细说明逻辑链接控制(LLC)和介质访问控制(MAC)子层部分;

  • ISO 11898-2: 2003 定义高速CAN总线(HS-CAN)物理层标准,最高数据传输速率 1Mbps ,应用为两线平衡式信号(CAN_H, CAN_L),HS CAN是汽车动力和工业控制网络中应用最为广泛的物理层协议;

  • ISO 11898-3: 2006 定义低速CAN总线(LSFT CAN)物理层标准,数据传输速率在 40Kbps ~ 125Kbps 。Fault-Tolerant是指总线上一根传输信号失效时,依靠另外的单根信号也可以通信,LS CAN主要应用于汽车车身电控单元之间通信;

  • ISO 11898-4: 2004 定义CAN总线中的时间触发机制(Time-Triggered CAN, TTCAN),定义与ISO 11898-1 配合的帧同步实体,实现汽车ECU之间基于时间触发的通信方式。注意,ISO 11898-1 是基于事件驱动(Event-Driven)的通信,它对于高负荷总线上,尤其是低优先级的消息会造成较大的延迟,而基于时间触发的ISO 11898-4 标准的初衷也正是为解决该问题,确保CAN总线上可靠的消息传输;

  • ISO 11898-5: 2007 对ISO 11898-2高速CAN总线的补充,并参照ISO 8802-2,定义在总线闲置时的节电特性;

  • ISO 11898-6: 2013 对ISO 11898-2 和 ISO 11898-5 的补充,并参照ISO 8802-2,定义使用可配置的帧实现选择性唤醒总线的机制;

  • ISO 16845-1: 2004 定义测试符合ISO 11898-1标准CAN应用的方法和条件;

  • ISO 16845-2: 2014 定义包括特定功能下可以选择性唤醒总线的CAN收发器的测试实例和测试要求,也称为CAN总线的一致性测试


CAN总线底层标准与ISO/OSI模型的对应关系如下图所示。


对于媒体专用接口(Medium Dependent Interface, MDI),没有统一的国际标准。CiA DS-102 (CiA: CAN in Automation )仅定义了使用专用连接器(DB9)的情况,并对PIN定义也进行了规范。

上层标准

虽然底层标准相同,但不同应用领域和组织会制定不同的上层标准。对于汽车行业来说,几乎每家厂商都有自己的CAN上层标准。目前比较流行的几个组织有工业自动化领域 CiA 的CANopen,Rockwell的DeviceNet;嵌入式控制领域Kvaser的CAN Kingdom;智能设备控制Honeywell的SDS;汽车诊断ISO 14229定义的UDS,和中重型汽车CAN总线标准SAE J1939。


下面简单介绍一下CANopen、DeviceNET和J1939这几种协议。

CANopen是由BOSCH公司领导的CAN-BUS协会研究的CAN-BUS通讯、系统、管理方面的细则发展而来,它是CAL协议基础上开发的,使用了CAL通信和服务协议子集,它在保证网络节点互用性的同时允许节点的功能随意扩展,定义了基于CAN的分布式工业自动化系统的应用标准及CAN应用层通信标准。后来由CiA协议管理、维护和发展。
DeviceNET协议最初由美国的Rockwell公司开发应用,目前由ODVA组织管理和推广。DeeviceNET以CIP协议为基础,沿用CAN协议标准的物理层和数据链路层的一部分,补充了不同报文的传送格式、总线访问仲裁规则以及故障诊断和隔离的方法。
J1939是SAE于2000提出的,成为货车和客车中控制器局域网的通用标准,J1939协议实质是将CAN扩展帧格式中未明确定义的11位ID,18位扩展ID进行了明确定义,紧随ID的是8个字节的数据。
  • SAEJ1939-01卡车及客车等路面控制及信息网络

  • SAEJ1939-02农业设备等非路面控制及信息网络

  • SAEJ1939-05发动机故障诊断方面的应用

  • SAE J1939-11物理层(250kbit/s,屏蔽双绞线),物理层基于ISO11898-2,速率为250kbit/s时最多可带30个设备,最大总线长度可达40m

  • SAEJ1939-13物理层,非车载诊断连接器

  • SAEJ1939-15物理层,250K比特/秒,非屏蔽双绞线

  • SAE J1939 21数据链路层,可定义常用的消息,例如请求、确认和传输协议

  • SAE J1939 31网络层,定义了中继器、路由器、网关和网桥

  • SAE J1939 71车辆应用层,卡车和公交车动力传动系统的网络:定义所有参数以及被称为参数组的汇编消息

  • SAE J1939 73诊断应用层,定义诊断消息

  • SAEJ1939/74应用层信息配置

  • SAEJ1939/75应用层设置及工业化

  • SAE J1939 81网络管理,定义初始化的状态图以及对地址使用的限制。其主要功能是定义地址诊断,用以确保源地址在网络上的唯一性

  • SAEJ1939/82相容性-卡车和客车


支持小编,请点在看