汽车网络技术概述
车辆总线是一个专门的内部通信网络,将车辆(如汽车、公共汽车、火车、工业或农业车辆、船舶或飞机)内的部件相互连接。在电子学中,总线只是一个将多个电气或电子设备连接在一起的设备。车辆控制的特殊要求,如保证信息传递、不冲突的信息、最短的传递时间、低成本、抗电磁场噪音,以及冗余路由和其他特性,都要求使用不太常见的网络协议。协议包括控制器区域网络(CAN)、本地互联网络(LIN)和其他。传统的计算机网络技术(如以太网和TCP/IP)很少使用,除非在飞机上使用ARINC 664的实施方案,如航空电子全双工交换以太网。使用AFDX的飞机包括B787、A400M和A380。火车通常使用以太网共识网络(ECN)。自1996年以来在美国销售的所有汽车都被要求有一个车载诊断连接器,用于访问汽车的电子控制器。
汽车网络概述
车载网络技术发展的主要驱动力是电子行业的普遍进步和政府的规定,特别是在美国,为了使汽车环保而实施的规定。
随着汽车排放标准的严格,如果没有车载计算设备的帮助,就不可能达到要求的控制程度。车载电子设备也对车辆性能、乘员舒适度、制造便利性和成本效益做出了巨大贡献。
曾几何时,汽车收音机可能是汽车中唯一的电子设备,但现在几乎汽车的每个部件都有一些电子功能。今天车辆上的典型电子模块包括发动机控制单元(ECU)、变速器控制单元(TCU)、防抱死制动系统(ABS)和车身控制模块(BCM)。
电子控制模块通常从传感器(速度、温度、压力等)获得输入,用于计算。各种执行器被用来执行模块确定的动作(打开冷却风扇、换挡等)。在车辆的正常运行过程中,各模块之间需要交换数据。例如,发动机需要告诉变速器发动机的速度是多少,而变速器需要告诉其他模块何时发生换挡。这种快速、可靠地交换数据的需要导致了作为数据交换媒介的车辆网络的发展。
汽车工业很快意识到将每个模块与其他每个模块进行布线的复杂性。这样的布线设计不仅复杂,而且必须根据具体车辆所包括的模块而改变。例如,一辆没有防抱死制动模块的汽车将不得不与包括防抱死制动的汽车进行不同的布线。
工业界对这个问题的答案是在汽车中建立一个中央网络。模块可以被 "插入 "网络,并能够与安装在网络上的任何其他模块进行通信。这种设计更容易制造,更容易维护,并提供了增加和删除选项的灵活性,而不影响整个车辆的布线结构。每个模块是车辆网络上的一个节点,控制与其功能相关的特定组件,并在必要时通过车辆网络使用标准协议与其他模块进行通信。
网络并不新鲜,但它们在车辆上的应用却很新鲜。车辆的网络要求:
低成本
免受外部噪音影响
能够在恶劣的环境中运行
整体坚固性和可靠性
尽管车辆网络对数据吞吐量的要求不高,但对更多车载计算的需求正在继续推动这些网络的变化,以提供模块之间更高速的通信。控制区网络包括主机到控制器传输的接收器和发射器以及计算机之间的相互联系。
1.1.1协议、物理介质和连接器
有几种网络类型和协议被不同的制造商用于汽车中。许多公司正在鼓励制定一个标准的通信协议,但还没有确定下来。
协议
常见的车辆总线协议包括:
A²B -(汽车音频总线)由模拟设备公司开发的音频分配协议。
AFDX
ARINC 429
Byteflight
CAN -(控制器区域网络)一种廉价的低速串行总线,用于互连汽车部件
D2B -(国内数字总线)一种高速多媒体接口
FlexRay - 一种具有安全关键特性的通用高速协议
IDB-1394
IEBus
I²C
ISO 9141-1/-2
J1708和J1587
J1850
J1939和ISO 11783--用于商业(J1939)和农业(ISO 11783)车辆的CAN的改编。
关键词协议2000(KWP2000)--用于汽车诊断设备的协议(在串行线上或通过CAN运行)。
LIN -(本地互联网络)一个非常低成本的车内子网络
MOST -(面向媒体的系统传输)一个高速多媒体接口
多功能车辆总线--列车通信网络IEC 61375的一部分。
SMARTwireX
SPI
VAN - (车辆区域网络)
UAVCAN -(非复杂应用级车用通信和网络)大多用于电动飞机、无人机、卫星和机器人。
1.1.2车辆网络中使用的一物理传输媒体
- 单线
- 双绞线
- 光纤
- IEEE 1394
- MIL-STD-1553,为用于军用航空电子设备而开发,现在也被广泛用于航天器。被米格-35采用[2] 。
- MIL-STD-1773,大致为MIL-STD-1553,采用光缆布线
- 电力线通信
连接器
- OBD-2(16针)。
此外,许多主要的汽车制造商使用他们自己专有的车辆总线标准,或在开放协议(如CAN)上叠加专有信息。
- J1939(9针)。
商业类车辆有I型或II型连接器,根据SAE J1939协议支持基于CAN的通信。
1.1.3协议的使用
表 1‑1车辆信息传输协议
协议/版本 | 开始/结束年份 | 制造商 | 车辆类型 |
FlexRay | 2008? | BMW | cars |
FlexRay | 2008? | Volkswagen | cars |
FlexRay | 2008? | Daimler AG | cars |
FlexRay | — | General Motors | cars |
CAN | 1986 | Bosch | many |
MOST | ? | Ford, BMW, Daimler, and GM | cars |
J1850 | — | GM | cars |
J1850 | 2008? | Chrysler | cars |
J1850 | — | Ford | cars |
APC | — | Ford | cars |
ISO-9141-I/-II | 2008? | Ford | cars |
VAN | 2000? | PSA Peugeot Citroën | cars |
VAN | 2008? | Renault | cars |
J1939 | 2005–present | many | heavy trucks (Class 5–8) |
J1708/1587 | 1985–present | Volvo AB, most US truck manufacturers | heavy trucks (Class 5–8) |
1.1.4 SAE分类总线
目前,绝大多数车用总线都被SAE(美国汽车工程师协会)下属的汽车网络委员会按照协议特性分为A、B、C、D四类。
A类总线
面向传感器或执行器管理的低速网络,它的位传输速率通常小于 20Kb/S。
A类总线以LIN(Local Interconnect Network 本地互联网)规范最有前途。其由摩托罗拉(Motorola)与奥迪(Audi)等知名企业联手推出的一种新型低成本的开放式串行通讯协议,主要用于车内分布式电控系统,尤其是面向智能传感器或执行器的数字化通讯场合。
B类总线
面向独立控制模块间信息共享的中速网络,位速一般在10~125 Kb/S之间。
B类总线以CAN(Controller Area Network 控制器局域网络)最为著名。CAN网络最初是BOSCH公司为欧洲汽车市场所开发的,只用于汽车内部测量和执行部件间的数据通讯,逐渐的发展完善技术和功能,1993年ISO正式颁布了道路交通运输工具一数字信息交换一高速通讯控制器局域网(CAN)国际标准(ISO11898-1),近几年低速容错CAN的标准ISO 11519-2 也开始在欧洲的一些车型中得到广泛的应用。B类总线主要应用于车身电子的舒适型模块和显示仪表等设备中。
C类总线
面向闭环实时控制的多路传输高速网络,位速率多在125Kb/S ~ 1Mb/S 之间。
C类总线主要用于车上动力系统中对通讯的实时性要求比较高的场合,主要服务于动力传递系统。在欧洲,汽车厂商大多使用“高速CAN”作为C类总线,它实际上就是ISO 11898-1 中位速率高于125Kb/S的那部分标准。美国则在卡车极其拖车、课程、建筑机械和农业动力设备中大量使用专门的通讯协议 SAEJ1939。
D类总线
面向多媒体设备、高速数据流传输的高性能网络,位速率一般在 2Mb/S 以上,主要用于CD等播放机和液晶显示设备。
D类总线近期才被采纳入SAE对总线的分类范畴之中。其带宽范畴相当大,用到的传输介质也有好几种。其又被分为低速(IDB-C为代表)、高速(IDB-M为代表)和无线(Bluetooth 蓝牙为代表)三大范畴,这里不再详细介绍。
CAN总线工作原理
1.2.1控制器局域网
控制器局域网 (Controller Area Network,简称CAN或者CAN bus) 是一种功能丰富的车用总线标准。被设计用于在不需要主机(Host)的情况下,允许网络上的单片机和仪器相互通信。 它基于消息传递协议,设计之初在车辆上采用复用通信线缆,以降低铜线使用量,后来也被其他行业所使用。
CAN创建在基于信息导向传输协定的广播机制(Broadcast Communication Mechanism)上。其根据信息的内容,利用信息标志符(Message Identifier,每个标志符在整个网络中独一无二)来定义内容和消息的优先顺序进行传递,而并非指派特定站点地址(Station Address)的方式。
因此,CAN拥有了良好的弹性调整能力,可以在现有网络中增加节点而不用在软、硬件上做出调整。除此之外,消息的传递不基于特殊种类的节点,增加了升级网络的便利性。
1.2.2历史
罗伯特·博世公司于1983年开发了控制器局域网(CAN bus)。该协议于1986年美国密歇根州底特律市举行的国际汽车工程师学会(SAE)会议上正式发表。第一个CAN控制芯片,由英特尔和飞利浦生产,并且于1987年发布。 世界上第一台装载了基于CAN的多重线系统的汽车是1991年推出的梅赛德斯-奔驰 W140。
博世公司发表了关于CAN规范的几个版本,最新的CAN 2.0于1991年发布。该规范被分为两部分;A部分适用于使用11位标识符的标准格式,B部分适用于使用29位标志符的拓展格式。使用11位标识符的CAN设备一般被称作CAN 2.0A,而使用29位识别码的CAN设备通常称为CAN 2.0B。博世公司免费提供标准、规范和白皮书。
1993年,国际标准化组织(ISO)公布了CAN标准ISO11898。后来CAN标准被重新编译分成两个部分:ISO11898-1涵盖了数据链路层;ISO11898-2涵盖了高速CAN总线的物理层; ISO11898-3于晚些时候公布并且涵盖了低速CAN总线的物理层和CAN总线容错规范。 物理层标准ISO11898-2和ISO11898-3并不包含在博世CAN2.0规范中,它们可以单独从ISO购买。之后,博世公司仍然积极地拓展CAN标准。2012年,博世公布CAN FD 1.0或称作可变数据速率的CAN。这个规范使用不同的架构,允许在仲裁之后,切换至更快的比特率,传输不同的数据的长度。CAN FD兼容现有的CAN 2.0网络,所以新的CAN FD设备能够与现有CAN设备共存于同一控制网络。
CAN总线是五个使用在车载诊断 (OBD)-II标准的协议的其中一个。1996年以后,所有在美国销售的汽车及轻型卡车被强制要求符合OBD-II标准。在欧盟,自2001年后销售的汽油载具及2004年后销售的柴油载具都强制规定需要符合EOBD标准。
1.2.3 应用:
CAN总线通常应用于如下领域
乘用车、卡车、公共汽车(汽油车及电动车)
航空、航海电子仪器
工业自动化及机械控制
电梯、扶梯
建筑自动化
医疗仪器及设备
汽车
现代的汽车可能为其子系统配备多达70个电子控制器(ECU)。最常见的控制器为发动机控制器。除此以外,变速器、安全气囊、防锁死刹车系统/ABS、定速巡航、动力方向盘、音响系统、动力车窗、车门、后视镜调整、电池和混合动力电动汽车的充电系统等等均使用电子控制器。这其中,有的是独立的子系统,有些需要跟其他子系统进行通信,控制驱动器或接收传感器的反馈信息。为此设计了控制器局域网络,将汽车的不同系统相互连接在一起。传统的“电缆直连”成本高,布线复杂,而控制器局域网络仅需软件就可实现,不仅安全、经济还十分便利。
自动启动/停止:车辆各处的各种传感器(速度传感器、转向角、空调关闭,发动机温度)所发出的各种信号可由CAN总线收集并用于决定是否可以在停车时关闭发动机,进而改善燃油效率和尾气排放。
电子驻车制动:"斜坡驻车"的功能需要车辆的倾斜传感器(同时用于防盗报警器)和道路的速度传感器(同时用于防锁死制动、发动机控制和牵引力控制)通过CAN总线传输采样信号并决定车辆是否停在斜坡上。同样,安全带的传感器(安全气囊的一部分)通过CAN总线传输信号,以确定安全带是否扣上,然后泊车的刹车会自动在移动时关闭。
驻车辅助系统:当司机切换至倒档,变速器控制单元可以通过CAN总线发送信号,激活停车传感器系统和车门控制模块,使副驾驶侧的后视镜向下倾斜显示路涯。 CAN总线也可以从雨水传感器获取信号,在倒车时自动触发后挡风玻璃雨刮。
车道偏离警示/防撞系统:车道偏离警示/驻车传感器的信号也可通过CAN总线用于驾驶辅助系统判断附近物体,比如车道偏离警示。最近,这些信号可以通过CAN总线触发防撞系统中的电子刹车系统。
汽车刹车清扫:雨水传感器(主要用于的自动挡风玻璃雨刷)通过CAN总线将信号送达防抱死制动系统模块中,在行驶中轻微触发一次人体不会察觉的刹车来清除刹车片上的液体。奥迪和宝马的某些高性能型号搭配有这一功能。
近些年又开发出了LIN(区域互联网络)标准,用在非关键系统中的应用,例如空调和信息娱乐系统等数据传输速度和可靠性不是很重要的系统中。
1.2.4其他
CAN总线协议自2009年后被用于禧玛诺DI2的公路自行车电子变速系统上。同样的,Ansmann和BionX在它们的直驱电机中使用CAN协议。
由于CAN控制器和处理器价格低廉,CAN总线同样可应用于普通自动化环境的现场总线中。
包括NISMO在内的开发商致力于使用CAN总线数据在GT赛车6中利用游戏内的GPS数据,重建真实的赛车视觉动态模糊,玩家将获得真实的赛车动态模糊效果。
约翰·霍普金斯大学应用物理学实验室的模块化假肢(MPL)使用局域CAN总线使假肢上的伺服电机和控制器的沟通更容易。
架构
CAN是一个用于连接电子控制单元(ECU)的多主机串行总线标准。电子控制单元有时也被称作节点。CAN网络上需要至少两个节点才可进行通信。节点的复杂程度可以只是简单的输入输出设备,也可以是包含有CAN交互器并搭载了软件的嵌入式组件。节点还可能是一个网关,允许普通计算机通过USB或以太网端口与CAN网络上的设备通信。
所有节点通过两根平行的总线连接在一起。两条电线组成一条双绞线,并且接有120Ω的特性阻抗。
ISO 11898-2,也称为高速度CAN。它在总线的两端均接有120Ω电阻。
图 1‑1 高速CAN网络
高速CAN网络。ISO 11898-2
高速CAN总线在传输显性(0)信号时,会将CAN_H端抬向5V高电平,将CAN_L拉向0V低电平。当传输隐性(1)信号时,并不会驱动CAN_H或者CAN_L端。 显性信号CAN_H和CAN_L两端差分标称电压为2V。 终端电阻在没有驱动时,将差分标称电压降回0V。显性信号(0)的共模电压需要在1.5V到3.5V之间。隐性信号(1)的共模电压需要在+/-12V。
图 1‑2 高速CAN信令
ISO 11898-3,也被称作低速或者容错CAN。它使用线性主线,星形主线或者连接到一个线性主线上的多星结构主线著称。每个节点都有终端电阻作为全局终端电阻的一部分。全局终端电阻不应低于100 Ω。
图 1‑3 低速容错CAN网络
低速/容错CAN信号在传输显性信号(0)时,驱动CANH端抬向5V,将CANL端降向0V。在传输隐性信号(1)时并不驱动CAN 总线的任何一端。在电源电压Vcc为5V时,显性信号差分电压需要大于2.3V,隐性信号的差分电压需要小于0.6V。CAN总线两端未被驱动时,终端电阻使CANL端回归到RTH电压(当电源电压Vcc为5V时,RTH电压至少为Vcc-0.3V=4.7V),同时使CANH端回归至RTL电压(RTL电压最大为0.3V)。两根线需要能够承受-27V至40V的电压而不被损坏。
图 1‑4 低速CAN信令
在高速和低速CAN中,从隐性信号向显性信号过渡的速度更快,因为此时CAN线缆被主动积极地驱动。显性向隐性的过渡速度主要取决于CAN网络的长度和导线的电容。
高速CAN通常被用于汽车和工业应用,在这些应用环境中,总线通常从一端横跨至另一端。容错CAN总线则经常被用在需要连接在一起的一组节点。
ISO规格只要求总线共模电压必须保持在最小和最大范围内,但不定义如何将总线电压保持在这个范围。
CAN总线必须使用终端电阻。终端电阻可以用来抑制信号反射,同时可以使总线电压回到隐性状态或者闲置状态。
高速CAN在总线两端使用120Ω电阻。低速CAN在每个节点均使用电阻。也有其他类型的终端,例如ISO 11783中定义了终端偏压电路。 [8]
终端偏压电路使用由4条导线组成的线缆,除了CAN信号线以外还有电源线和地线。这在每段总线两端提供自动偏压和终端功能。ISO11783网络是专为热拔插总线段和电子控制单元设计的。
CAN总线节点
图 1‑5 CAN总线节点
每个节点需要:
中央处理器、微处理器或主处理器
处理主机决定收到的信息的意思以及想要传输的信息。
传感器、驱动器和控制设备可以与主处理器连接。
CAN控制器;通常是集成单片机的一部分
接收:CAN控制器将从总线上接收的串位字节存储直到整个消息可用,之后主处理器可以获取这个消息(通常由于CAN控制器触发一个中断)。
发送:主处理器发送传递信息到CAN控制器,之后当总线空闲时将串位信息传递至总线。
收发器;由ISO11898-2/3介质访问单元(MAU)标准定义
接收:把数据流从CAN总线层转换成CAN控制器可以使用的标准。 CAN控制器通常配有保护电路。
传输:把来自CAN控制器的数据流转换至CAN总线层。
每个节点能够发送和接收信息,但不是同时进行的。 一个消息或帧主要包括标识符(ID),它表示信息的优先级,最多八个数据字节。CRC、ACK和其他帧部分也是消息的一部分。改进了的CAN FD将每个帧拓展至最多64字节。 消息采用不归零(NRZ)格式串联传送到主线并可被所有节点接收。
被CAN网络连接的设备通常是传感器,驱动器和其他控制设备。 这些设备通过一个中央处理器、一个CAN控制器,和一个CAN接收器连接至总线。
数据传输
CAN数据传输如果出现争执,将会使用无损位仲裁解决办法。该仲裁法要求CAN网络上的所有节点同步,对每一位的采样都在同一时间。这就是为什么有人称之为CAN同步。然而,同步这个术语在此并不精确,因为数据以异步格式传输而不包含时钟信号。
CAN规范中使用术语"显性"位和"隐性"位来表示逻辑高低。显性是逻辑0(由发信器积极驱动通过电压)而隐性是逻辑1(被动地通过电阻返回到一个电压)。 闲置状态代表隐性的水平,也就是逻辑1。如果一个节点发送了显性位而另一个节点发送一个隐性位,那么总线上就有冲突,最终结果是显性位“获胜”。这意味着,更高优先级的信息没有延迟。较低优先级的节点信息自动在显性位传输结束,6个时钟位之后尝试重新传输。这使得CAN适合成为一个实时优先通讯系统。
逻辑0或1的确切电压取决于所使用的物理层,但CAN的基本原则要求每个节点监听CAN网络上的数据,包括发信节点本身。如果所有节点都在同时发送逻辑1,所有节点都会看到这个逻辑1信号,包括发信节点和接受节点。如果所有发信节点同时发送逻辑0信号,那么所有节点都会看到这个逻辑0信号。
当一个或多个发信节点发送逻辑0信号,但是有一个或多个发信节点发送了逻辑1信号,所有节点包括发送逻辑1信号的节点也会看到逻辑0信号。当一个节点发送逻辑1信号但是看到一个逻辑0信号,它会意识到线上有争执并退出发射。通过这个过程,任何传送逻辑1的节点在其他节点传送逻辑0时退出或者失去仲裁。失去仲裁的节点会在稍后把信息重新加入队列,CAN帧的比特流保持没有故障继续进行直到只剩下一个发信节点。这意味着传送第一个逻辑1的节点丧失仲裁。由于所有节点在开始CAN帧时传输11位(或CAN 2.0B中是29位)标识符,拥有最低标识符的发信节点在起始处拥有更多0。那个节点赢得仲裁并且拥有最高优先级。
例如,一个11位标识符的CAN网络,有两个节点,他们的ID分别为15(二进制表示为00000001111)和16(二进制表示为00000010000)。如果这两个节点同时传输,每个都会优先传输它们标识符中的前6个0而不触发仲裁。
表 1‑2 11位标识符的CAN网络
起始位 | ID位 | 帧剩下的部分 | |||||||||||
10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
节点15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
节点16 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 停止传输 | ||||
CAN数据 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
当ID中的第7位传输时,节点16为其ID发送1(隐性),而节点15为其ID发送0(显性)。当这种情况发生时,该节点16知道自己发送了1,但在总线上看到了0,意识到有冲突发生并且自己失去仲裁。节点16停止传送而节点15继续传输自己的ID,没有丢失任何数据。拥有最低ID的节点总是赢得仲裁,因此具有最高优先级。
长度小于40m的网络最高支持的比特率高达1百万比特/秒。降低比特率可以允许使用更长的网络距离(例如,125千比特/秒支持最大500米)。改进的CAN FD标准允许仲裁后升高比特率,可以将数据区块速度增加至仲裁位速率的八倍。
ID分配
信息ID在单条CAN总线上必须是唯一的,否则两个节点将在仲裁位(ID)传送结束后继续传输,造成错误。
1990年代早期,为信息选择标志符(ID)的准则仅仅基于数据的种类和发信节点。但是,当标志符同样代表着信息的优先级时,这会带来不好的实时响应。在这种情况下,通常要求CAN总线只能使用大概30%才能保证信息可以在截止时间之前到达。然而,如果信息的标志符根据信息的优先级决定,更低标志符的信息获得更高优先级,那么在不损失数据的前提下,总线的使用率可以达到70%到80%。
位时序
CAN网络上的所有节点必须运行在相同的标称比特率下,但噪音、相移、振荡频率容差和振荡频率漂移导致实际的比特率可能与标称比特率不同。[9]由于没有使用一个单独的时钟信号,需要一个同步节点方法。同步在仲裁机制中十分重要,因为仲裁中的节点需要能够同时看到它们传输数据的数据和其他节点的传输数据。 同步在确保节点间震荡时间不同时不发生错误上十分重要。
总线闲置一段时间后,在第一个隐性信号向显性信号转换时(起始位) 进行硬同步。再次同步发生在传输帧期间的每次从隐性向显性转换时。CAN控制器期望在标称位时间内发生多次转换。如果并没有在期望的确定时间发生,控制器将根据这调整标称位时间。
调整是通过将每一位划分成多个称为量子的时间段,并分配一定数量的量子到位中的四个阶段完成的。这四个阶段分别为:同步、传播、相位段1和相位段2。
图 1‑6 每位10个量子的CAN位时序的例子
每位10个量子的CAN位时序的例子。
位被分成的量子数量会因控制器的不同而不同,每一个阶段分配的量子数会因比特率和网络状况的不同而改变。
在预期时刻之前或之后发生的过渡会促使控制器计算时间差,并根据计算所得的时间差延长相位段1或者缩短相位段2。这有效地改变接收器到发信器的时序,将它们同步在一起。这个重新同步过程不断地在每次隐性向显性过渡时进行已确保发信器和接收器保持同步。不断地重新同步降低了噪声产生的错误,让同步至已经失去仲裁的节点的接收节点重新同步到赢得仲裁的节点。
层级
CAN协议与很多网络协议相似,可以被分解为下列抽象层:
应用层
对象层
信息过滤
消息和状态处理
传输层
大多数CAN标准应用在传输层。传输层从物理层接收消息并将这些信息传递给对象层。传输层负责特定时序、同步、信息位构架、仲裁、确认、错误检测及发信和故障约束。它的职责为:
故障约束
错误监测
消息验证
信息确认
仲裁
信息帧
传输速率和时间
路由信息
物理层
图 1‑7 CAN总线包含终端电阻的电气连接样例
CAN总线(ISO11898-1:2003)最初指定的链路层协议仅包括对物理层的抽象需求。 物理层关于电气方面的(电压,电流,数量导体)规定来自于ISO11898-2:2003,该协议目前被广泛接受。但是,物理层关于机械方面的(接头种类和数量、颜色、标签、标准输出)尚未被正式指定。因此,汽车的电子控制单元(ECU)通常会有定制的接口和各种线缆组成CAN总线。尽管如此,领域中已经出现若干机械方面的标准,最常见的是使用9个引脚的D-sub型插头,拥有以下引脚分布:
引脚2:CAN-Low (CAN−)
引脚3:GND (地线)
引脚7:CAN-High (CAN+)
引脚9:CAN V+ (供电)
图 1‑8 DB-9连接器(插头)
这个CAN的机械标准可以用于D-sub接口的插头和插座。总线电流从插座流向插头。这遵循了电源在插座处截止的电气工程惯例。采用本标准避免了为将节点连接到同一个D接口而制作定制分离器。非标准(自定义)线束(分离器),在线缆上分离CAN分支,减少总线的可靠性、消除电缆可交换性、减少线束的兼容性并且增加成本。
完整的物理层规范的缺失(电气和机械方面)减少了CAN总线的限制,降低了实现功能时物理层面的复杂度。但它让CAN总线在交互时因为机械原因不兼容。为了提高互用性,许多汽车制造商制定了描述可兼容使用的CAN接收器的一套参数规范。最大寄生电容包括电容本身以及静电保护(ESD)(静电保护在ISO 7637-3中定义)。除了寄生电容、12V和24V系统因为最大电压不同有不同的标准。事实上,在助推启动(jump start)时,轻型车辆的先电压可以达到24V,而卡车系统可以达到36V。新的解决方案,允许同样的组件使用于CAN和CAN FD即将投入市场。
ISO11898-2:2003中的噪声免疫是通过在总线两端使用低电阻值(120欧姆)维持总线两条线间的差分阻抗实现的。然而,当处于休眠状态时,例如CAN总线的低阻值总线会比其他基于电压的信号总线消耗更多电流。在CAN总线系统中,当一条信号线中的电流于另一条反方向电流值一样时,该平衡传输线为接收器提供稳定的0V参考电压。最好的做法是在已经有很嘈杂的射频干扰的汽车内,对CAN总线使用带屏蔽层的双绞线,以尽量减少射频信号的发射,降低干扰的敏感性。
ISO11898-2在发信器和接收器之间提供一定的共模电压免疫。通过一个0V的通路保持节点间的电压关联。此外,在上述的现有机械结构里,包含一个将电力分配到各个节点的收发器的供电轨通道。该设计为所有收发器提供了一个共享的电源。总线上应用的实际电压由使用的收发器决定,并没有统一规范。常见设计是,通过CAN总线为每个与自身节点电气隔离的收发器提供电压驱动5V变压器。这通常提供足够多的冗余度来保证节点间的互用性。 这种网络的典型供电电压在7V到30V之间。但是,通用标准的缺失导致系统的设计者要为供电轨道的兼容性负责。
ISO 11898-2 中描述的电气实施方法构建了一个在总线两端使用终端电阻组成的多站单端平衡线路布局。在这个结构中,显性状态由一个或多个传输器将CAN_L切换至0V,同时将CAN_H切换至5V总线电压来形成通过终端电阻的电流通路。终端电阻在这种信号系统中起到限制高频反射波形的核心作用。
在隐性状态时,信号线和电阻相对于高低轨道保持在高阻抗状态。CAN_H和CAN_L轨道的电压趋向于中立。隐性状态仅在总线上没有任何传输器宣布显性状态时出现。
在显性状态时,信号线和电阻相对于高低轨道变为低阻抗状态,因此电流能够流过电阻。CAN_H电压趋向于5V,同时CAN_L趋向于0V。
不管总线上信号是什么状态,信号线在线缆两端因为电阻的存在,相互之间总是保持低阻抗。
这个信号策略与例如RS-422/3和RS-485等等的其他平衡线路传输技术由显著的不同。RS-422/3和RS-485拥有差分线缆驱动但是差分模式下电压为一正一负。在这样的系统多路通信通常依靠在时域中支持三种状态(高电平有效、低电平有效和不活动三种状态)的介质。在CAN总线上进行多路通信只需要系统的电逻辑支持两个状态,在概念上与“由线缆构成的与门”网络相似。
帧
CAN网络可以配置为使用两种不同的消息(或“帧”)格式:标准或基本帧格式(在CAN 2.0 A和CAN 2.0 B中描述)和扩展帧格式(仅由CAN 2.0 B描述)。两种格式之间的唯一区别是,“CAN基本帧”支持标识符长度为11位,“CAN扩展帧”支持标识符长度为29位,由11位标识符(“基本标识符”)和一个18位扩展(“标识符扩展”)组成。CAN基本帧格式和CAN扩展帧格式之间的是通过使用IDE位进行区分的,该位在传输显性时为11位帧,而在传输隐性时使用29位帧。支持扩展帧格式消息的CAN控制器也能够发送和接收CAN基本帧格式信息。所有的帧都以开始位(SOF)作为信息传输的起始。
CAN有4种帧类型:
数据帧:包含用于传输的节点数据的帧
远程帧:请求传输特定标识符的帧
错误帧:由任何检测到错误的节点发送的帧
过载帧:在数据帧或远程帧之间插入延迟的帧
数据帧
数据帧是唯一用于实际数据传输的帧。它有两种信息结构:
基本帧格式:有11个标识符位
扩展帧格式:有29个标识符位
CAN标准要求必须接受基本帧格式并可能接受扩展帧格式,但必须能承受扩展帧格式。
基本帧格式
图 1‑9 带有电平信息的CAN基础帧格式(不包含填充位)
帧格式如下:位值是用于描述CAN-LO信号的。
表 1‑3 帧格式
字段名 | 字长 (位) | 作用 |
起始位(SOF) | 1 | 表示帧的传输开始 |
识别码(ID\green) | 11 | 唯一识别码,同样代表了优先级 |
远程传输请求(RTR\蓝色) | 1 | 数据帧时一定是显性(0),远程请求帧时一定是隐性(1)(详见远程帧章节) |
标志码拓展位(IDE) | 1 | 对于只有11位标志码的基本帧格式,此段一定为显性(0) |
预留位(R0) | 1 | 预留位一定是显性(0),但是隐性(1)同样是可接受的 |
数据长度代码(DLC\黄色) | 4 | 数据的字节数(0-8字节)[a] |
数据段(Data field\红色) | 0–64 (0-8 字节) | 待传输数据(长度由数据长度码DLC指定) |
循环冗余校验(CRC) | 15 | 循环冗余校验 |
循环冗余校验定界码 | 1 | 一定是隐性(1) |
确认槽(ACK) | 1 | 发信器发送隐性(1)但是任何接收器可以宣示显性(0) |
确认定界码(ACK delimiter) | 1 | 一定是隐性(1) |
结束位(EOF) | 7 | 一定是隐性(1) |
从物理上来说,4位的数据长度代码可以传输9-15的值,但是数据段依旧被限制为8位。部分控制器允许传输或接收大于8的DLC值,但是实际数据长度仍然限制在8位。
帧的格式如下表所示:
表 1‑4 拓展帧格式
字段名 | 字长 (位) | 作用 |
起始位(SOF) | 1 | 表示帧的传输开始 |
标志符A(ID A\green) | 11 | 唯一识别码的第一部分,同样代表了优先级 |
替代远程请求(SRR) | 1 | 数据帧时一定是显性(0),远程请求帧时一定是隐性(1) |
标志符拓展位(IDE) | 1 | 对于有29位标志符的拓展帧格式,此段一定为隐性(1) |
标志符B(ID B\green) | 18 | 唯一识别码的第二部分,同样代表了优先级 |
远程传输请求(RTR\蓝色) | 1 | 数据帧时一定是显性(0),远程请求帧时一定是隐性(1)(详见远程帧章节) |
预留位(r1,r0) | 2 | 预留位一定是显性(0),但是隐性(1)同样是可接受的 |
数据长度代码(DLC\黄色) | 4 | 数据的字节数(0-8字节)[a] |
数据段(Data field\红色) | 0–64 (0-8 字节) | 待传输数据(长度由数据长度码DLC指定) |
循环冗余校验(CRC) | 15 | 循环冗余校验 |
循环冗余校验定界符 | 1 | 一定是隐性(1) |
确认槽(ACK) | 1 | 发送器发送隐性(1),任何接收器都可以发送显性(0) |
确认定界符(ACK delimiter) | 1 | 一定是隐性(1) |
结束位(EOF) | 7 | 一定是隐性(1) |
从物理上来说,4位的数据长度代码可以传输9-15的值,但是数据段依旧被限制为8位。部分控制器允许传输或接收大于8的DLC值,但是实际数据长度仍然限制在8位。
两个定位符区域A和B共同组成29位定位符。
远程帧
通常数据传输是在数据源节点(例如传感器)发出数据帧的情况下自主执行的。但是,目标节点也可以通过发送远程帧来从信息源请求数据。
数据帧和远程帧之间有两个区别。首先,RTR位在数据帧中作为显性位传输,其次在远程帧中没有数据段。DLC字段表示所请求的消息的数据长度,而不是发送的数据长度。
也就是说:
RTR = 0;数据帧中为显性
RTR = 1;远程帧中位隐性
在数据帧和具有相同标识符的远程帧同时发送的情况下,由于数据帧标识符之后的RTR位是显性,它将赢得仲裁。
错误帧
错误帧由两个不同的字段组成:
第一段由不同站点提供的错误标志(6-12个显性位/隐性位)的叠加给出。
接下来的第二段是错误帧定界符(ERROR DELIMITER,8个隐性位)。
错误标志也有两种:
主动错误标志
六个显性位 - 由网络上错误状态为“主动错误”的出错的节点传送。
被动错误标志
表 1‑5 CAN的五种侦测错误机制
循环冗余校验(CRC) | CRC在消息结尾处加上一个FCS(frame check sequence)来确保消息的正确。接收消息端会将其FCS重新演算并与所接收到的FCS比对,如果不相符,表示有CRC错误。 |
Frame check | 检查数据包中几个固定值的字段以验证该数据包是否有被信号干扰导致内容错误。 |
ACK errors | 接收端在收到数据包后会告知发讯端,发讯端若没有收到确认消息,ACK错误便发生。 |
Monitoring | 传输一位到网络上,再从网络读取来检查是否一致。 |
Bit stuffing | 用于消息同步。 |
六个隐性位 - 由网络上错误状态为“被动错误”的出错的节点传送。
CAN有两种错误计数器:
1.传输错误计数器(Transmit error counter,简称TEC)
2.接受错误计数器(Receive error counter,简称REC)
当传输错误计数器TEC或接受错误计数器REC大于127且小于255时,将在总线上传输被动错误帧。
当传输错误计数器TEC或接受错误计数器REC小于128时,将在总线上传输主动错误帧。
当传输错误计数器TEC或接受错误计数器REC大于255时,节点进入主线离线状态,不会传输帧。
过载帧
过载帧包含两个位字段:过载标志(Overload Flag)和过载定界符(Overload Delimiter)。有两种过载条件可导致过载标志的传输:
接收器的内部条件,要求延迟下一个数据帧或远程帧。
中断检测到一个显性位。
由于情况1引起的过载帧只允许在预期中断的第一位时间开始,而由情况2引起的过载帧在检测到显性位后一位开始。过载标志由六个显性位组成,其整体形式与主动错误标志的形式相对应。过载标志的形式破坏了中断区的固定形式。因此,所有其他站点也会检测到过载情况,并在它们自己的部分开始传输过载标志。过载定界符由8个隐性位组成,与错误分隔符的形式相同。
调试机制
CAN提供了五种调试机制,使其错误发生率低于4.7×10-11。当一个以上的上述错误发生时,发送中的传输将会失败中止并且产生错误数据包,发讯端则会试着重新发送消息数据包。各个节点将会重新争取优先权。
表 1‑6 CAN的五种侦测错误机制
循环冗余校验(CRC) | CRC在消息结尾处加上一个FCS(frame check sequence)来确保消息的正确。接收消息端会将其FCS重新演算并与所接收到的FCS比对,如果不相符,表示有CRC错误。 |
Frame check | 检查数据包中几个固定值的字段以验证该数据包是否有被信号干扰导致内容错误。 |
ACK errors | 接收端在收到数据包后会告知发讯端,发讯端若没有收到确认消息,ACK错误便发生。 |
Monitoring | 传输一位到网络上,再从网络读取来检查是否一致。 |
Bit stuffing | 用于消息同步。 |
确认槽(ACK)
确认插槽用于确认收到的CAN帧有效。接收到帧而没有发现错误的每个节点在ACK槽中发送显性水平,来覆盖发射机的隐性水平。如果发射机在ACK时隙中只检测到隐性电平,它就知道没有任何接收器获得有效的帧。接收节点可以发送隐性信号来指示它没有接收到有效帧,但是确实接收到有效帧的其它节点可以用显性信号覆盖它。发送节点无法知道CAN网络上的是否所有节点都收到了该消息。
帧间内容
数据帧和远程帧通过称为帧间空间的区域与前面的帧分开。帧间空间由至少三个连续的隐性(1)位组成。之后,如果检测到一个显性位,它将被视为下一帧的“起始位”。 过载帧和错误帧不比帧间空间重要,并且多个过载帧也不由帧间空间分隔。帧间空间包含了字段中断和总线空闲,并且如果前一消息的发送器是被动错误站点,会将总线暂挂。
位填充
图 1‑10 CAN帧在填充位之前和之后(紫色)
传输器会在相同极性的五个连续位之后插入一个相反的极性的位,以确保足够的转换来保持同步。这种做法被称为位填充,并且对于CAN这样的不归零(NRZ)编码是必要的。填充的数据帧由接收器去掉填充。
除了CRC定界符,ACK字段和结束位这样固定字长的区域之外,帧中其他所有字段都会被填充,这些字段是固定大小且未被填充。在使用位填充的字段中,具有相同极性的六个连续位(111111或000000)被视为错误。 当检测到错误时,节点可以发送主动错误标志。主动错误标志由六个连续的显性位组成,违反了位填充规则。
位填充意味着数据帧可能比上述表中列举的预期的要长。CAN帧(基本格式下)的最大尺寸的情况是
11111000011110000...
被填充为:(填充位用粗体显示)
111110000011111000001...
填充位本身可能成为五个连续相同位中的第一个,所以在最坏的情况下,每四个原始位有一个填充位。
长度由下面公式给出:
其中是填充前帧的长度,在最坏情况下,原数据除了第一个4位后,在每个4位后增加一位(所以分子减去1),同时由于位的结构,固有的47位中只有34位能够被填充。
CAN低层标准
ISO 11898系列规定了用于道路车辆的CAN串行通信技术的物理层和数据链路层(ISO/OSI模型的第一和第二层),支持分布式实时控制和多路复用。
有如下几个CAN物理层及其他层的标准:
ISO 11898-1:2015规定了控制器局域网(CAN)的数据链路层(DLL)和物理信令。[15]该文档根据ISO/IEC 7498-1中创建的开放系统互连(OSI)的ISO参考模型,描述了CAN总线层级通用架构,并提供了在模块之间创建数字信息交换实现CAN数据链路层的特性,和逻辑链路控制(LLC)次层和介质访问控制(MAC)次层的详细参数。
ISO 11898-2:2003规定了高速(传输速率高达1 Mbit / s)介质访问单元(MAU)和一些介质相关接口(MDI)特性(根据ISO 8802-3),共同组成了控制局域网的物理层。ISO 11898-2使用双线平衡传输线信令体系,是车用动力总成应用和工业控制网络中最常用的物理层。
ISO 11898-3:2006规定了在道路车辆电子控制单元之间创建的低速、容错、依赖介质的接口的数字信息交换设置,其传输速率在40kBit/s至125kBit/s之间。
ISO 11898-4:2004规定了在CAN中的时间触发通信(TTCAN)。它适用于在配备CAN的道路车辆的电子控制单元(ECU)之间创建时间触发的数字信息交换,并且根据ISO11898-1规定了与逻辑链路和介质访问控制协调的帧同步,提供了时间触发的通讯时间表。
ISO 11898-5:2007规定了道路车辆内传输速率高达1 Mbit/s的CAN网络物理层。它根据ISO 8802-2描述了介质访问单元的功能以及一些与介质相关的接口功能。它是ISO 11898-2的扩展,应对没有主动主线通讯但是要求低功耗特性的系统。
ISO 11898-6:2013规定了道路车辆内传输速率高达1 Mbit/s的CAN网络物理层。它根据ISO 8802-2描述了介质访问单元的功能以及一些与介质相关的接口功能。它是ISO 11898-2和ISO 11898-5的扩展,描述了一种可选的,利用可配置的CAN网络帧的选择性唤醒机制。
ISO 16845-1:2004提供了用于检查CAN是否符合ISO 11898-1规定所必需的方法和简要测试包。
ISO 16845-2:2014设立测试案例和测试要求,验证具有选择性唤醒功能的CAN收发器是否符合指定的功能。ISO 16845-2:2014中定义的测试类型称为一致性测试。
基于CAN的高层协议
由于CAN标准不包括例如数据流量控制、设备寻址、传输多条消息的数据块和应用数据等应用层协议的工作,许多高层协议被指定出来。 尽管这些协议都能被制造商扩展,但其中只有几个为商用领域标准化。对于乘用车,每个制造商都有自己的标准。 其中包括:
标准化的方法
ARINC 812或ARINC 825(航空工业)
CANopen - EN 50325-4(工业自动化技术)
DeviceNet(工业自动化技术)
EnergyBus - CiA 454(轻型电动汽车)
ISOBUS - ISO 11783(农用机械)
ISO-TP - ISO 15765-2(机动车诊断用传输协议)
SAE J1939(公车和卡车的车用网络)
MilCAN
NMEA 2000 - IEC 61162-3(航海工业)
统一诊断服务(UDS) - ISO 14229 (汽车诊断)
其他方法
CANaerospace - Stock (航空工业)
CAN Kingdom - Kvaser (嵌入式系统)
CCP/XCP(汽车ECU校正校准)
GMLAN - General Motors(通用汽车)
RV-C - RVIA(娱乐用载具)
SafetyBUS p - Pilz(工业自动化技术)
UAVCAN(航空航天及机器人)
安全性
CAN是低级协议,不支持任何内在的安全功能。在标准的CAN中也没有加密,这使得这些网络数据能被截取。在大多数应用中,应用程序需要部署自己的安全机制,例如认证传入命令或网络上某些设备的存在。若不执行适当的安全措施,其他人可能设法在总线上插入消息。 尽管一些安全关键功能(如修改固件,编程键或控制防抱死制动)存在密码,但这些系统并未普遍实施,并且密钥对的数量有限。
开发工具
在开发CAN总线或排除故障时,检查硬件信号非常重要。可以使用逻辑分析仪和总线分析仪来收集、分析、解码并储存高速波形信号。此外,还有CAN总线监视器及其它特殊工具。
CAN总线监视器是一个分析工具,通常是硬件和软件的组合,用于开发使用在CAN总线上的硬件。
通常,CAN总线监视器将监听CAN总线上的通信量,以便将其显示在自身的用户界面中。它通常也能将CAN帧发送到总线来模拟CAN总线活动。 因此,CAN总线监视器可用于验证来自待测设备的预期CAN流量或模拟CAN流量以验证测试设备连接到CAN总线时的反应。
许可
博世公司拥有该技术的专利,生产兼容CAN的微处理器的制造商需要向博世公司支付许可费,这些费用通常加在芯片价格中传递给客户。 生产兼容CAN的定制特殊应用积体电路(ASICs)或现场可编程逻辑门阵列(FPGA)模块的制造商需要为CAN协议许可证支付费用。
LIN总线原理
LIN(Local Interconnect Network的简称,中译是区域互联网络),是应用在汽车内零组件之间通讯的串列网络传输协议。由于汽车上的技术及设备渐渐增加,需要低价的串列网络,而控制器局域网络(CAN)的成本太高,无法在车上的每一个设备中都装设。欧洲汽车制造商开始使用不同的串列通讯技术,因此出现彼此无法相容的问题。
在1990年代末期,由BMW、大众集团、奥迪、富豪汽车及梅赛德斯-奔驰这五家车厂开始了LIN Consortium,也有从Volcano汽车集团及摩托罗拉而来的软件及硬件协助。第一个完全实现的新LIN协定(LIN version 1.3)是在2002年11月发布。在2003年9月发布了2.0版,增加了额外的诊断功能。若是配合特制的LIN over DC power line(DC-LIN)收发器,LIN也可以用在汽车车池的电力线通信。LIN over DC power line(DC-LIN)的相关标准是ISO/AWI 17987-8。ISO技术管理委员会(ISO Technical Management Board,ISO TMB)已指定CAN in Automation为依照ISO 17987的LIN供应商ID的注册机构。
LIN是低成本的串列通讯协定,可以有效支援车内网络的远程应用。LIN特别适用在分散在汽车不同位置的机械式节点,也适用于工业应用。LIN设计时是和CAN网络互补,组成车内的阶层式网络。
LIN Consortium是在1990代末期组成的,组成成员是五家欧洲车厂,以及明导国际(以前的Volcano车辆集团)及飞思卡尔(之前的摩托罗拉,现在已并入恩智浦半导体)。新的LIN规范中,第一个完全实现的版本是在2002年11月发布的LIN 1.3版。在2003年9月提出了2.0版,扩充了组态能力,以及额外的诊断机能以及工具界面。
协定的主要特点如下:
单一主站,最多16个从站(没有总线仲裁的过程)。这是LIN Consortium强调的特点,以达到确定性的时间反应。
从站节点位置侦测(Slave Node Position Detection、SNPD),可以在送电后才指定节点的位址。
单线通讯,在长度40米时,可以到19.2 kbit/s[8][10]。在LIN规范2.2中,速率最高可到20 kbit/s。
可确保的延迟时间。
可变长度的资料页框(2, 4及8字节)。
可变动的组态。
多播接收的时间同步。设备电路的时脉不需非常准确。不需要晶振(crystal)或是陶瓷振荡器。
资料检查码以及错误检测。.
可以检测故障的节点。
以标准UART/SCI(串列通讯界面)为基础的电路,低成本的方案。
可以建立阶层式的网络
工作电压为12 V。
信息是透过可变长度,固定格式的讯息来在网络上传播。主站会送出标头(header)资料,其中包括同步间隔(Synchronization break)信号,之后是同步字段以及识别符(ID)字段。从站回应资料页框(frame),其中包括2个、4个或8个字节的资料,再加上3个字节的控制资讯。
LIN讯息页框,讯息包括以下的字段:
同步间隔(Synchronization break)
同步字节
识别符(ID)字节
资料字节
检查码字节
页框种类
无条件页框(Unconditional frame):会带有讯号,其识别符会在0到59之内。所有无条件页框的收听节点都要接收此页框,若没有错误的话,其应用程序需处理对应的内容。
事件驱动页框(Event-triggered frame):其目的是增加LIN节点的反应能力,不需要为了偶尔出现的讯号而用轮询的方式向各节点确认,消耗网络的带宽。无条件页框的第一个字节需和某个事件驱动页框的保护识别符(PID)相同。从站只有在其数值变化时才需要回应对应的无条件页框。若没有节点回应,该页框的剩余时间没有信号,会忽略该标头资料。若不止一个节点回复,此页框时间会出现资料碰撞,主站需处理碰撞的情形,在下一次提出事件驱动页框前需要先请求所有相关的无条件页框。
偶发页框(Sporadic frame):此页框是在主站有需要时,由主站发出,因此不会有碰撞。只有在主站知道某页框的资料有变化时,才会在对应的页框时间区间内送出偶发页框的标头。偶发页框的发送者需要回应标头的资料。
诊断页框(Diagnostic frame):其中包括诊断或是组态的资讯,长度8字节,识别符是60(主站请求页框)或61(从站回应页框)。主站在产生诊断页框的标头之前,需要先问诊断模组是否应送诊断资料,以及网络上是否应有资讯。从站也会接收这些资料,依照其诊断模组的讯息回应资讯,
自定页框(User-defined frame):可以包括任何资讯。其识别符是62。当处理了指定给该页框的页框时间区间时,会送出指定页框的标头。
保留页框(Reserved frame):LIN 2.0 cluster不会使用,其识别符是63。
LIN硬件
LIN规范就是为了设计在网络中很低价的硬件节点所开发。LIN设备是以ISO 9191为基础的低成本、单线网络。以现今的汽车网架构来看,会使用有UART能力,或是有专门LIN硬件的微控制器。
微控制器会产生通讯协定、同位元等LIN通讯需要的所有资料,透过LIN收发器(可能只是电压转换,再加上一些机能)
LIN的从站节点越便宜越好,因此其时脉可能不是用石英晶体谐振器或陶瓷谐振器,而是用RC振荡器产生时脉。为了确保LIN页框内波特率的稳定性,页框中会有SYNC(同步)的字段。
LIN通讯协定
LIN主站会依照一个或是几个事先定义的排程表,在LIN网络上开始传送或是接收讯息。排程表中至少会包括各讯息开始发送的相对时序。 LIN页面由两部分组成:标头(header)及回应(response)。标头是由LIN主站送出,回应可能由特定的LIN从站送出,或是由LIN主站本身送出。
LIN是用串列的方式传送资料,一个字节中有八个位元,一个启始位元,一个结束位元,无同位元检查(break字段没有启始位元及停止位元)。位元率的范围最慢到1 kbit/s,最快到20 kbit/s。 在网络上的资料可以分为隐性(recessive,逻辑上的高准位)及显性(dominant,逻辑上的低准位) 其时间基础是由LIN主站的稳定时脉来源来决定,最小的单位是1位元时间(52 µs @ 19.2 kbit/s)。
LIN协定上,有列出两种网络上的状态:睡眠状态及活跃状态。在LIN网络上有资料时,所有的LIN节点都进入活跃状态。在一定时间的逾时时间后,节点会进入睡眠状态,若有唤醒页框(WAKEUP frame)时才会回到活跃状态。 唤醒页框可以由网络上任何一个节点发起,可以是LIN主站依照其内部时程发起。也可以是LIN从站由其固件所产生。 在所有节点都活跃之后,主站会继续下一个识别符的排程。
1)标头
2)标头(header)包括五部分:
3)间隔(BREAK)
间隔字段会活化所有的LIN从站,预备接收后续标头的内容。其字段包括一个启始位元以及数个显性位元,长度至少是11个位元时间,目前使用的标准,其长度是13个位元时间,和基本的资料格式不同。间隔字段是在主时脉可以和各LIN节点时脉不同时(但差异在一定范围内时),确保所有接收的LIN节点可以侦测到表示开始通讯的间隔字段,这不是标准的资料格式,其数值均为0。
同步(SYNC)
同步字段是标准的资料格式字节,数值是十六进制的0x55(高位元及低位元轮流变化) 。使用RC振荡器的LIN从站可以用一定数量上升缘及下降缘的时间差,计算网站上的位元时间(主站的time normal),并且重新计算内部的位元率。
字节间隔(INTER BYTE SPACE)
字节间隔是用来调整网络上的jitter,是LIN规范中可选择的项目。若启动的话,所有LIN模组都要支援此一机能。字节间隔出现在间隔字段和同步字段之间、同步字段和识别符字段之间、同步字段和识别符字段之间、酬载(不考虑通讯协定,实际要传输的资料)字段和检查码字段之间。在酬载字段的每一个字节之间也要有字节间隔。
识别符(IDENTIFIER)
识别符定义一个到多个LIN从站节点要进行的动作。网络设计者需在设计阶段实现故障树的机能(在一个页框时间内,只允许一个从站传送资料)。在标题中的识别符会再加上二位元的检查位元,即为受保护的识别符(PID)。若识别符让一个实体的LIN从站传送回应资讯,此识别符称为Rx识别符。若识别符让LIN主站的从站任务送出资讯,此识别符称为Tx识别符。
回应间隔(RESPONSE SPACE)
是识别符字段和LIN回应讯息中第一个字节之间的间隔时间。当特定的LIN页框(标头及回应)由LIN主站传送完毕,LIN主站会用完整的回应间隔间来计算何时要再送出回应资料。若回应是由另外一个LIN从站送出,主站及从站点会在其逾时时间的计算上,各自处理50%的回应间隔。
回应
回应是由LIN从站任务产生(可能是实体从站,也可能是主站的从站任务),分为资料及校验和。
资料
回应的从站可以送零个到八个字节到网络上,资料数量由应用程序设计者决定,对应LIN从站应用程序中相关的资料。
检查码(CHECKSUM)
LIN有二种检查码模式,一种检查码只包括资料字段(V1.3 之前的规范),另一种也包括识别符(V2.0之后的规范)。由应用程序的设计者事先定义要用的检查码模式。
从站节点位置侦测试(SNPD)或自动定址
从站节点位置侦测试(Slave node position detection, SNPD)或自动定址(autoaddressing)的技术可以侦测LIN网络上各从站节点的位置顺序,并给予节点不重复的节点位址(unique node address、NAD),好处是可以让同一类或是类似的设备可以直接连接到网络,不需要另外修改程式
限制:
所有需要自动定址的从站,需要在同一条网络线上(若是不需要自动定址的标准从站,接线就不受限制)。
表 1‑7 从站节点位置侦测试(SNPD)
SNPD方法 | SNPD方法ID | 公司 |
外部接线菊花链(Extra wire daisy chain) | 0x01 | 恩智浦半导体(以前的菲利浦) |
总线分流法(Bus shunt method) | 0x02 | Elmos Semiconductor |
保留 | 0x03 | 还不确定 |
保留 | 0x04 | 还不确定 |
保留 | 0xFF | 还不确定 |
外部接线菊花链
外部接线菊花链(Extra wire daisy chain,XWDC)的方案中,每一个从站设备需要多提供一个输入脚D1,以及一个输出脚D2。
第一个SNPD节点的输入脚D1接到GND,或是接到主站的输出脚。
第一个SNPD节点的输出脚D2,接到第二个SNPD节点的输入脚D1,以及类推。
每一个组态脚Dx(x=1-2)有以下额外的机能来进行位置侦测:
可以切换的上拉电阻,电阻另一端连接Vbat;下拉到GND;有比较器,电压准位是Vbat/2;总线分流法;总线分流法(Bus shunt method,BSM)的从站设备中,有二个LIN节点;bus_in;bus_out;每一个节点需增加以下电路,进行位置侦测的机能。可以切换的上拉电阻。可以切换的,从Vbat提供的2 mA电流源。分流电阻;差动放大器;类比—数位转换器;在EP 1490772 B1及US 7091876的专利中,有提到BSM的自动定址技术。
1.3.1 LIN的优点
方便使用
元件容易取得
比CAN或其他的通讯网络要便宜
减少线束
可以让车辆更可靠
网络延伸很容易
不需通讯协定的权利金
LIN的目的不是为了完全取代CAN网络。不过若价格是主要考量,较没有速度及带宽上的需求时,LIN是很适合的替代方案。一般来说,LIN会用在车辆中对性能或安全性较不要求的子系统,以下是一些例子。
1.3.2 应用
表 1‑8 LIN应用的例子
应用场合 | LIN应用的例子 |
车顶 | 感测器、光感测器、光线控制、天窗 |
方向盘 | 巡航控制、刮水器、方向灯、温湿度控制、收音机,方向盘锁 |
座椅 | 座椅调整马达、乘员感测器、控制面板 |
引擎 | 感测器、小马达、冷却风扇马达 |
温湿度 | 小型马达、控制面板 |
门 | 后视镜、中控ECU、后视镜开关、车窗升降器、座椅控制开关、门锁 |
照明 | 窗台板的RGB LED照明 |
1.3.3位址
LIN网络中的位址是透过NAD(Node ADdress、节点位址)来实现,NAD是PID(protected identifier、受保护识别码)的一部分。NAD的值有7位元,其范围从1到127 (0x7F)
1.3.4开发工具
在开发LIN网络或是除错时,硬件讯号的检查格外的重要。逻辑分析仪及通讯分析仪可以搜集、分析、解码通讯讯号并加以储存,方便开发及除错使用。
MOST 光学总线系统原理
MOST(面向媒体的系统传输)是一项由汽车行业优化的高速多媒体网络技术。它可以用于车内或车外的应用。串行MOST总线使用菊花链拓扑或环形拓扑和同步数据通信,通过塑料光纤(POF)(MOST25、MOST150)或电导体(MOST50、MOST150)物理层传输音频、视频、语音和数据信号。
MOST技术几乎被用于全球所有的汽车品牌,包括奥迪、宝马、通用汽车、本田、现代、捷豹、蓝旗亚、路虎、梅赛德斯-奔驰、保时捷、丰田、大众、萨博、斯柯达、SEAT和沃尔沃。SMSC和MOST是标准微系统公司("SMSC")的注册商标,现在由微芯科技拥有。
1.4.1通信的原则
MOST规范定义了物理层和数据链路层,以及数据通信的ISO/OSI-Model的所有七个层。标准化的接口简化了MOST协议在多媒体设备中的集成。对于系统开发者来说,MOST主要是一个协议定义。它为用户提供了一个标准化的接口(API)来访问设备功能。通信功能由被称为MOST网络服务的驱动软件提供。MOST网络服务包括基本层系统服务(第3、4、5层)和应用插座服务(第6层)。它们处理基于物理层的MOST网络接口控制器(NIC)和API(第7层)之间的MOST协议。
1.4.2 MOST网络
一个MOST网络能够在一个环形配置中管理多达64个MOST设备。即插即用的功能使MOST设备很容易被连接和移除。MOST网络也可以设置为虚拟星形网络或其他拓扑结构。安全关键应用使用冗余的双环配置。集线器或交换机也是可能的,但它们在汽车领域并不完善。
在MOST网络中,一个设备被指定为定时主站。它的作用是为环形网络持续提供MOST帧。在帧传输开始时,会发送一个前奏。其他设备被称为定时跟随者,使用序言进行同步。基于同步传输的编码,允许定时跟随者持续进行后同步。
1.4.3 MOST25
MOST25为光物理层上的流媒体(同步)以及封装(异步)数据传输提供了大约23兆波特的带宽。它被分成60个物理通道。用户可以选择和配置通道,将其分为每组四个字节。MOST25为物理通道的分配(和取消分配)提供许多服务和方法。MOST25支持多达15个具有CD质量的未压缩立体声音频通道或多达15个用于音频/视频传输的MPEG-1通道,每个通道使用四个字节(四个物理通道)。MOST还提供一个用于传输控制信息的通道。44.1 kHz的系统频率允许705.6 kbit/s的带宽,使每秒可以传输2670条控制信息。控制信息用于配置MOST设备和配置同步和异步数据传输。系统频率紧跟CD标准。参考数据也可以通过控制通道传输。
一些限制因素将MOST25的有效数据传输率限制在大约10 kB/s。由于协议的开销,应用程序在分段传输时只能使用32个字节中的11个,一个MOST节点在任何时候都只能使用控制通道带宽的三分之一。
1.4.4 MOST50
MOST50将MOST25系统的带宽增加了一倍,帧长增加到1024比特。MOST25的三个既定通道(控制信息通道、流媒体数据通道、分组数据通道)保持不变,但控制通道的长度以及同步和异步通道之间的分段是灵活的。尽管MOST50被指定为支持光学和电气物理层,但现有的MOST50智能网络接口控制器(INIC)只支持通过三根铜导线配置进行电气数据传输;包括一个非屏蔽双绞线(UTP)组和一条额外的控制线。额外的控制线以平行的 "单一共享总线 "配置连接到每个MOST50网络设备。在这种配置中,每个MOST50设备将包含五个铜线连接。控制线(用于从主站发送的信号)和两套UTP(每套包含D+ D-)。一套用于数据输入(从网络环上的前一个设备输出),另一套用于数据输出到环上的下一个设备。与光纤对应的设备一样,任何和所有的网络操作都需要关闭或完成环路(在始发设备处终止)。
1.4.5 MOST150
MOST150于2007年10月推出,提供了一个物理层来实现汽车上的以太网。它将帧长增加到3072比特,大约是MOST25带宽的6倍。除了MOST其他等级的三个既定通道(控制信息通道、流媒体数据通道、分组数据通道)之外,它还集成了一个带宽可调的以太网通道。MOST150还允许在同步通道上进行等时传输。尽管同步数据的传输需要MOST帧率所规定的频率以外的频率,但用MOST150也可以实现。
MOST150的先进功能和增强的带宽将使多路网络基础设施能够在整个汽车中传输所有形式的信息娱乐数据,包括视频。
物理层
数年来,光传输层已被广泛用于汽车应用中。它使用核心直径为1毫米的塑料光纤(POF)作为传输介质,与红色波长范围内的发光二极管(LED)相结合作为发射器。MOST25只使用一个光学物理层。MOST50和MOST150同时支持光学和电气物理层。
1.4.6 POF的主要优点。
高数据率传输
与屏蔽的电气数据线相比,更轻,更灵活
符合严格的EMC要求
不会造成任何干扰辐射
对电磁干扰辐照不敏感
1.4.7 MOST合作组织
MOST合作组织成立于1998年,是由汽车制造商、设备制造商、系统架构师和关键部件供应商组成的伙伴关系。他们的目标是定义和采用一个共同的多媒体网络协议和应用对象模型。作为他们努力的结果,MOST技术已经成为实现当前和未来汽车多媒体网络要求的全球标准[2] 。
1.4.8基础设施
多年来,MOST合作组织已经发布了MOST总线的规格。然而,这些规范并不包括数据链路层的细节。2008年3月,SMSC(原OASIS SiliconSystems)--第一个MOST网卡的发明者--和Harman/Becker宣布,他们将在收取版税的基础上向其他半导体公司开放并授权其专有的数据链路层知识产权。目前,MOST芯片解决方案可从SMSC、Analog Devices和一些FPGA核心公司获得。开发工具由K2L、Ruetz System Solutions、SMSC、Vector Informatik GmbH和Telemotive AG提供。
1.4.9竞争性标准
BroadR-Reach已经占据了信息娱乐系统的汽车通信总线网络的一大块。首先是100 Mbit/s,然后是1 Gbit/s,现在是10 Gbit/s的域控制器主干链路。
IEEE 1355有一个切片(网络介质和速度的组合)TS-FO-02,用于以200兆比特/秒运行的聚合物光纤。该规范比MOST更快,经过良好的测试,并且是开放的。然而,它缺乏行业倡导者。
以太网更标准,速度更高,同样具有抗噪音能力,是差分的,并通过变压器隔离。然而Cat 5电缆对于汽车应用来说可能太昂贵了。另外,标准的Cat-5插头不能抵抗振动。薄薄的金层很快就会被磨掉,然后腐蚀导致故障。存在坚固的 "标准 "连接器,它能使连接器保持稳定,但价格更贵。[3] 由于CAT5的限制,光纤以太网似乎是一个可能的解决方案,但以太网是异步的,而MOST是同步的。
CAN(控制器区域网络)、LIN(本地互联网络)和其他汽车OBD标准都不适合,因为它们的速度太慢,无法传输视频。
FlexRay,也是一个汽车总线标准,虽然比CAN快,但用于时间关键的应用,如线上驱动而不是媒体。
FlexRay总线原理
FlexRay是一个由FlexRay联盟开发的汽车网络通信协议,用于管理车载计算。它被设计为比CAN和TTP更快、更可靠,但它也更昂贵。FlexRay联盟于2009年解散,但FlexRay标准现在是一套ISO标准,即ISO 17458-1至17458-5。
FlexRay是一种通信总线,旨在确保高数据率、容错、按时间周期运行,分为静态和动态段,用于事件触发和时间触发的通信。
1.5.1特点
FlexRay支持高达10Mbit/s的数据速率,明确支持星形和 "Party Line "总线拓扑结构,并且可以有两个独立的数据通道用于容错(如果一个通道不能工作,通信可以在降低带宽的情况下继续进行)。总线在一个时间周期内运行,分为两部分:静态段和动态段。静态段被预先分配到各个通信类型的片断中,提供比其前身CAN更强的确定性。动态段的操作更像CAN,节点在可用时对总线进行控制,允许事件触发的行为。
1.5.2联合成员
FlexRay联盟是由以下核心成员组成的。
-飞思卡尔半导体公司
-罗伯特-博世公司
-恩智浦半导体
-宝马公司
-大众汽车公司
-戴姆勒公司
-通用汽车公司
FlexRay联盟还有高级准成员和准成员。到2009年9月,共有28个高级准会员和60多个准会员。2009年底,该联盟解散了。
1.5.3 商业部署
第一辆采用FlexRay的量产车是在2006年底在宝马X5(E70)上,[4] 实现了新的快速自适应减震系统。2008年,在新的宝马7系(F01)中全面采用了FlexRay。
车辆
-奥迪A4(B9)(2015-) 。
-奥迪A5(F5)(2016-) 。
-奥迪A6(C7)(2011-2018) 。
-奥迪A7
-奥迪A8(D4)(2010-2017) 。
-奥迪Q7 (2015-)
-奥迪TT Mk3 (2014-)
-奥迪R8(2015-)
-宾利飞驰(2013-2019)
-宾利慕尚(2010-) 。
-宝马X5(E70)(2006-2013) 。
-宝马X6(E71)(2008-2014) 。
-宝马1系
-宝马3系
-宝马5系(2009-2017) 。
-宝马6系(2011-2018) 。
-宝马7系(2008-2015) 。
-兰博基尼Huracán
-梅赛德斯-奔驰S级车(W222)(2013-2020) 。
-梅赛德斯-奔驰S级车(C217)(2014-2020) 。
-梅赛德斯-奔驰E级车(W212)(2013-2016) 。
-梅赛德斯-奔驰C级车(W205)
-劳斯莱斯幽灵(2009-) 。
-路虎
-沃尔沃XC90(2015-) 。
1.5.4时钟
FlexRay系统由一个总线和ECU(电子控制单元)组成。每个ECU都有一个独立的时钟。时钟漂移必须不超过参考时钟的0.15%,因此系统中最慢的时钟和最快的时钟之间的差异不超过0.3%。
这意味着,如果ECU-s是一个发送器,ECU-r是一个接收器,那么发送器的每300个周期就会有299到301个周期的接收器。时钟重新同步的频率足以保证这不会造成任何问题。时钟在静态段中发送[15]。
1.5.5总线上的位
每次,只有一个ECU向总线写入。每个要发送的位在总线上保持8个采样时钟周期。接收器保留最后5个样本的缓冲区,并使用最后5个样本的大部分作为输入信号。
单周期传输错误可能会影响靠近比特边界的结果,但不会影响8周期区域中间的周期。
1.5.6采样位
位的值是在8位区域的中间位置采样的。误差被移到极端周期,时钟同步的频率足以使漂移很小。(漂移小于每300个周期1个周期,在传输过程中,时钟每300个周期同步一次以上)。
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
在没有错误的情况下进行正确的平均化。信号只是被延迟了2个周期。
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
消除了 8 周期区域中间附近的错误。
0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
8 周期区域边界附近的错误可能会影响边界位。
1.5.7帧
所有的通信都以帧的形式发送。信息由字节组成,按以下方式打包。
-传输开始信号(TSS)--位0
-帧开始信号(FSS)--位1
m次.
-字节启动信号0(BSS0)--位1
-字节启动信号1(BSS1)--位0
-第i个字节的第0位
-第i个字节的第1位
-第i个字节的第2位
...
-第i个字节的第7位
-帧结束信号(FES)--第0位
-传输结束信号(TES) - 第1位
如果没有任何通信,总线保持在状态1(高电压),所以每个接收器都知道,当电压下降到0时,通信开始了。
接收者通过检查是否收到BSS0(1)或FES(0)来知道信息何时完成。
请注意,每比特8周期与字节无关。每个字节需要80个周期来传输。16个用于BSS0和BSS1,64个用于其位。还要注意,BSS0的值为1,BSS1的值为0。
1.5.8时钟同步化
如果接收器处于空闲状态或期待BSS1,当投票信号从1变为0时,时钟将重新同步。
由于同步是在投票信号上进行的,在同步过程中影响边界位的小的传输错误可能使同步的偏差不超过1个周期。由于同步之间最多只有88个周期(BSS1,最后一个字节的8位,FES和TES--11位,各8个周期),而时钟漂移不大于每300个周期1次,漂移可能使时钟偏移不超过1个周期。在接收过程中,小的传输错误可能只影响边界位。所以在最坏的情况下,两个中间位是正确的,因此采样值也是正确的。
下面是一个特别糟糕的例子--同步过程中的错误,由于时钟漂移而丢失的周期和传输中的错误。
表 1‑9 同步过程例子
Signal to be sent | 1 | 0 | 1 | 0 | 1 | |||||||||||||||||||||||||||||
Signal sent | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
On the bus | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
Received | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | X | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
5-maj voted | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | X | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
在这个例子中发生的错误。
由于同步过程中的一个单比特错误,同步被推迟了1个周期
接收器时钟比发送器时钟慢,所以接收器错过了一个周期(标记为X)。由于最大允许的时钟漂移的限制,这种情况在下一次同步之前不会再发生。
由于传输过程中出现了一个单比特错误,在结果附近投错了一个比特。
尽管有这么多错误,但通信的接收是正确的。
绿色单元格是采样点。除了第一个之外,其他都是由所示传输片段中的1->0边沿同步的。
1.5.9开发工具
在开发和/或排除FlexRay总线的故障时,对硬件信号的检查可能非常重要。逻辑分析仪和总线分析仪是收集、分析、解码、存储信号的工具,人们可以在闲暇时查看高速波形。
1.5.10 FlexRay的未来
在带宽密集型、非安全关键型应用中,以太网可能会取代FlexRay。
CAN-FD总线原理
CAN FD(Controller Area Network Flexible Data-Rate)是一个数据通信协议,通常用于在电子仪表和控制系统的不同部分之间的两线互连上广播传感器数据和控制信息。该协议被用于现代高性能汽车中。CAN FD是对ISO 11898-1中规定的原始CAN总线协议的扩展。
超频部分框架和超大有效载荷的基本想法可以追溯到1999年。2011年由博世开发并在2012年发布的CAN FD[3] 是为了满足将数据传输率提高到5倍的需要,并在现代汽车电子控制单元(ECU)中使用更大的框架/消息尺寸。与经典的CAN一样,CAN FD协议被设计用来可靠地传输和接收传感器数据、控制命令,并检测电子传感器设备、控制器和微控制器之间的数据错误。尽管CAN FD主要是为高性能汽车ECU设计的,但经典CAN在不同行业的普及将导致这一改进的数据通信协议也被纳入其他各种应用中,例如用于机器人、国防、工业自动化、水下车辆、医疗设备、航空电子设备、井下钻井传感器等的电子系统。
CAN FD与经典CAN的比较
传统的CAN(控制器区域网络)和CAN FD之间的主要区别是灵活数据(FD)。使用CAN FD,电子控制单元(ECU)可以动态地切换到不同的数据速率和更大或更小的信息尺寸。CAN FD的增强功能包括根据需要动态地选择和切换到更快或更慢的数据速率,并在同一CAN帧/消息中打包更多的数据,在更短的时间内通过CAN总线/网络进行传输。与传统的CAN相比,更快的数据速度和更多的数据容量增强导致了一些系统操作的优势。使用CAN FD,传感器和控制数据可以由ECU(电子控制单元)软件更快地发送和接收。由执行中的ECU软件发出的命令能更快地到达输出控制器。CAN FD通常被用于现代汽车的高性能ECU中。一辆现代汽车可能有70多个ECU,当发动机运转或车辆行驶时,它们使用CAN FD在CAN总线上交换信息。
再CAN FD中,可以使用11位标识符(FDBF FD基本框架格式)或29位标识符(FEFF FD扩展框架格式)。在每个CAN帧/消息中,消息的有效载荷大小已经增加到64字节,而在传统的CAN帧中只有8字节。帧是以二进制比特模式的序列传输的信息。再CAN FD中,数据速率(即每秒传输的比特数)比传统的CAN快5到8倍(仅数据有效载荷为5到8Mbit/s,为了兼容,仲裁比特率仍被限制在最大1Mbit/s)。
数据速率取决于总线网络的拓扑结构和使用的收发器。CAN FD协议规范还包括一些其他的增强功能,如更好地检测接收到的CAN报文中的错误,以及在需要时,执行软件可以灵活地动态选择(从一个列表中)并切换到更快或更慢的数据传输速率。再CAN FD总线上,一些传感器可能以较慢的数据速率运行,而另一些则以较快的数据速率运行。
CAN总线是一对共享的电线,电子传感器、控制器单元和ECU被连接在上面。CAN总线用于定期或按要求在操作单元之间交换信息。CAN总线的电气条件和配置,即连接的单元总数、CAN总线导线的长度和其他电磁因素决定了该CAN总线上可能的最快数据传输速率。CAN协议(以及延伸的CAN FD)有一个很好的碰撞解决机制,它取决于信号的传播时间和网络配置(环形、总线或星形),以及在较小的程度上,总线上的单位数量。因此,一个物理上较长的网络可能会限制数据速率低于理论上的最大值。
CAN-FD总线负载是由 "De Andrade's "方程在Tindel方程的基础上发展起来的 。
β = τ/ω (1) (β = 总线负荷), (τ = 慢速比特加快速比特的时间), ω (测量的时间,以秒为单位)。 τ = Ts + Tf (2)
CAN-FD协议定义了五个不同的错误检测机制。其中两个在比特级工作,另外三个在消息级工作。它们是
比特监测。
位填充。
帧检查。
确认检查和
循环冗余检查。CRC有两种选择,应表示为CRC长度为17(数据长度0-16字节)或CRC长度为21位(数据长度17-64)字节。
Ts = ([(SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2)* 1,2]+ACK+DEL+EOF+IFS)/t_x
Tf = ([(D〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,2]+[CRC]_17+5)/t_y
其中SOF(帧开始)+ID(标识符)+r1(保留位1)+IDE+EDL(扩展数据长度)+r0(保留位0)+BRS/2(比特率转换)+CRCdel/2(CRC分隔符)=17比特;1.2是最坏情况下的比特填充系数,这意味着计算量应增加20%。它被认为是BRS和CRCdel除以2,因为它们正好是在比特率转换的位置。ACK(确认)+DEL(分隔符)+EOF(帧末)+IFS(帧间间隔)=12位,没有位塞。CAN-FD的有效载荷大小可以是0、8、12、16、20、24、32、48、64字节。t_X是消息头的传输带宽(最高为1 Mbit/s)。
对于数据<16字节
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,2)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,2]+〖CRC〗_17+5)/t_y)/ω
对于数据>=16字节
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,2)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/2 )*1,2]+〖CRC〗_21+6)/t_y )/ω
CAN FD还通过提高CRC算法的性能减少了未检测到的错误数量。[7] 此外,CAN FD与现有的CAN 2.0网络兼容,允许新协议在与经典CAN相同的网络上运行。[8] 使用合适的CAN SIC(信号改进能力)收发器,CAN FD的比特率可以达到8MBit/s,因此比经典CAN的1MBit/s数据阶段快8倍。
由于更高的通信速度,CAN FD在线路寄生电容方面的限制更加苛刻。因此,与普通CAN总线相比,线路上的所有元件的 "电容 "预算都减少了。这就是为什么半导体供应商已经发布了由汽车制造商批准的新组件的原因。这种批准反映了所有CAN FD系统之间互操作性的需要。事实上,选定的ESD保护元件与所有收发器(CAN或CAN FD)兼容,并能承受ISO7637-3[9] 。
尽管有更高的隔离电压(37V),用于卡车应用的器件也必须符合低电容要求(3.5 pF)。
CAN收发器
CAN FD可以使用经典的CAN和CAN FD的收发器。此外,还有新的CAN SiC(信号改进能力)收发器,其数据速率为5至8MBit/s。
订定CAN FD标准的供应商
订定CAN FD标准的供应商包括有意法半导体、英飞凌科技[4]、恩智浦半导体、德州仪器、Kvaser、戴姆勒及通用汽车等。