CAN 总线包括的任务内容有哪些

首先感谢Vector公司的分享以下是原網址。由于原文图片有版权限制暂只翻译文字。其实Vector制作的图片非常精良大家有时间可以去看下。当然后期我也会贴很多开源的图茬文中,让大家便于理解一定一定。

为什么Vector官网有日文版和韩文版?当然我看了下韩文版翻译的也挺应付的。罢了

注:斜体字是筆者为了大家方便理解添加的话。

(本小节为便于理解有简化)

汽车电子化的大趋势下,ECU之间需要进行协调性的数据传输最初这种数據传输是一对一的,显然这会导致密集的布线工作于是20世纪80年代初,博世开始开发一种串行通信系统它被命名为CAN(控制器局域网络)。

使用CAN总线包括之后所有的ECU可以进行手拉手的连接,大大减少布线长度和难度

即使在今天,CAN仍然运用在动力总成/底盘/舒适区域的ECU联网垺务中最最重要的是,CAN具有数据传输非常可靠的特点可以满足目标使用区域的实时要求。

自从引入CAN总线包括以来汽车中的复杂线束巳经成为过去。CAN不仅简化了项目规划和***还减少了布线重量和空间要求。

CAN技术自1994年以来已经形成标准化并由四个ISO文件加以描述。ISO 11898-1描述了CAN协议

CAN协议ISO 11898-1以硬件实现。这部分我们叫它CAN控制器不同的CAN控制器在处理CAN报文的方式上有所不同。这些差异表现在对象层中带对象存儲的CAN控制器(所谓的Full CAN控制器)和没有对象存储的CAN控制器(所谓的Basic CAN控制器)之间存在区别。

我理解的这个Full CAN控制器应该是集成了CAN控制器的MCUBasic CAN控淛器指SJA1000、MCP2515等外挂式CAN控制器,可用以解决选定芯片CAN口不足的问题

因为低速这个词有歧义,国内通常称呼这种默认电平不为2.5V的low-speed CAN为容错CAN它因為能做到其中一条CAN线短路仍能正常工作而得名。

ISO 11898-3(容错CAN)允许数据速率最高可达125 kbit/s它主要用于汽车的舒适区域。

当然有些车厂会设计多條高速CAN,而完全不使用容错CAN

比如全球通用的SUB-D9引脚中,2都代表CAN_L7都代表CAN_H,3都代表GND

ISO 11898-1定义了事件驱动的通信。如果总线包括负载较高则可能会导致延迟,尤其是对于优先级较低的CAN报文为了确保CAN网络中的确定性通信,可以使用ISO 11898-4协议ISO 11898-4协议是数据链路层的扩展,为基于CAN的网络添加了时间触发通信选项

“Standard and Implementation”图显示了ISO/OSI数据通信参考模型,CAN标准及其实现之间的关系(该图未在此贴出,请前往原网址查看)

CAN总线包括的结构:CAN网络由许多CAN节点组成这些节点通过物理传输介质(我们能看见的CAN总线包括)链接在一起。实际上CAN网络通常基于线性拓扑,線性拓扑上连接了许多ECU(电控单元)这些ECU通过CAN接口连接在一起。无源星形拓扑可以用作替代方案

CAN总线包括的网络各个节点可以排成一字长蛇阵。

CAN的物理层:非屏蔽双绞线(Unshielded Twisted Pair- UTP)是应用中最常用的物理传输介质在其上发生对称信号传输。通常非屏蔽双绞线具有0.34 和0.6 之间的导线橫截面。线路电阻应小于60mΩ。

CAN的边界条件:最大数据速率为1 Mbit / s允许最大网络扩展约40米。在CAN网络的末端总线包括电阻有助于防止瞬态现象(反射)。ISO 11898将CAN节点的最大数量指定为32

随着汽车电子化程度的提高,软件的数量和复杂性也在迅速增长一些豪华车已经拥有超过1000个软件嘚功能。在许多总线包括系统中有超过70个电控单元(ECU)同时工作。在CAN网络中执行其任务的ECU我们称之为CAN节点

在开发ECU组网的初期,CAN接口的唍整实现仅涉及一个简单的CAN驱动程序 —— 它为应用程序提供了一个基本的简单的硬件独立接口 —— 再搭配上CAN控制器和CAN收发器就可以了如紟,CAN接口的实现不可能没有操作系统、网络管理功能和诊断功能同时,日益庞大、复杂的ECU软件使得ECU的基础结构必须实现标准化。

统一嘚、具有一致性的软件减少了开发工作量并简化了维护工作量它还有助于提高不同车辆平台之间以及OEM(代工)和供应商之间软件组件的複用性和互换性。

AUTOSAR(AUTomotive Open System ARchiteture)为ECU软件提供了一个参考架构该参考架构的核心是AUTOSAR Runtime Environment(RTE),它完全将车辆网络与应用程序的软件组件分离运行环境(RTE)以基础软件的形式为软件组件提供统一的服务。从下到上它由三个层次组成:微控制器抽象层(Microcontroller

想要参与CAN通信的电控单元(ECU)需要CAN接ロ。CAN接口包括CAN控制器CAN收发器CAN控制器满足CAN协议规定的通信功能,大大减轻了主机的负担

CAN收发器通过物理传输介质与CAN控制器相连接。通瑺这两个组件通过光耦或者磁耦器件进行隔离,因此尽管CAN总线包括上的过载电压可能会损坏CAN收发器但CAN控制器和底层主机不会损坏。

国內的CAN卡大家拆开的话都会发现这种在硬件上做的隔离这样做即便CAN总线包括接了大电压,大概率只会烧毁CAN收发器主芯片通常没问题。

在CAN網络中CAN节点的每个发送或接收的CAN报文数量不同。发送和接收的频率也有很大差异例如,一个CAN节点可能接收五个不同的CAN报文每个报文嘚接收周期为10毫秒,而另一个CAN节点只需要每100毫秒接收一个CAN报文这些明显的差异导致了两种基本的CAN控制器架构:带或不带对象存储的CAN控制器。

无论CAN控制器的类型如何CAN控制器都可以集成进MCU,或者它们可以用作独立的芯片组件在独立CAN控制器方案中,MCU将CAN控制器视为存储器芯片采用独立CAN控制器的方案更加灵活,但集成到MCU中具有更省PCB空间的优势并且MCU和CAN控制器之间的通信更快,更可靠

但实际上,SJA1000的价格实在太貴了大家还是选择集成有CAN控制器的MCU吧。你选择的MCU只要具有CAN接口不管1个还是2个,它就已经集成了CAN控制器了

以前,CAN控制器经常通过分立電路连接到通信介质(实体的CAN总线包括上)然而,现在都是采用CAN收发器来处理总线包括连接CAN收发器有两个总线包括引脚:一个用于CAN高壓线(CANH),另一个用于CAN低压线(CANL)这是因为CAN网络中的物理信号传输是对称的,这样可以实现电磁兼容性也就是说CAN网络中的物理传输介質是由两条线组成的。

通常高速CAN收发器和低速CAN收发器之间存在区别。高速CAN收发器(如TJA1040)支持高达1 Mbit / s的数据速率低速CAN收发器(容错CAN收发器,如TJA1054)仅支持高达125 kbit / s的数据速率但是,低速CAN收发器可确保总线包括接口的容错布局(例如两条通信线路之一的故障不会导致总通信故障)。

容错CAN能在CAN_H或CAN_L出现短路、断路时保证通信正常大众喜欢用容错CAN。

原文的图中显示了高速CAN收发器的基本布局当两个输出晶体管都阻塞时,两条CAN線都呈现相同的电位(0.5 * Vcc)差分电压为零。一旦两个晶体管导通就会在两条线之间产生差分电压,这是因为负载电阻起了作用根据ISO 11898-2,這个差异应该是2V因此,电流约为35 mA

通常,CAN收发器的特点是电磁辐射非常低并且具有宽共模工作范围,可实现高抗噪性此外,今天的CAN收发器提供高达8 kV的ESD保护尽管在非常关键的使用区域中存在高共模抑制,但在输出附近插入的共模扼流圈(CMC)可以进一步减少辐射

在ISO 11898中,CAN节点的最大数量被规定为32实际上,CAN节点的最大数量在很大程度上取决于所使用的CAN收发器的性能以及它是高速还是低速的CAN网络例如,洳果TJA1050高速CAN收发器应用于高速CAN网络则在每个规范中,可在一个CAN网络中连接的CAN节点可多达110个

差分电压:CAN网络中物理信号的传输基于差分电壓的传输(即差分信号传输)。这有效地消除了由电动机、点火系统和开关触点引起的干扰电压产生的负面影响因此,CAN总线包括的传输介质由两条线组成:CAN高线(CANH)和CAN低线(CANL)

双绞线:两条线的扭曲大大减小了磁场所造成的影响。因此在实践中,双绞线导体经常被用莋物理传输介质

家里的网线剪开之后你会发现其实是4组双绞线。

终端电阻:由于有限的信号传播速度瞬态现象(反射)的影响会随着數据速率和总线包括扩展的增加而增长。使用终端电阻来终止通信信道的末端(模拟传输介质的电气特性)可防止高速CAN网络中的反射

总線包括终端电阻的关键参数是电线的特征阻抗。也就是120欧姆与ISO 11898-2相比,ISO 11898-3(低速CAN/容错CAN)125 kbit/s 的最大数据速率较低因此未指定任何总线包括终端電阻。

CAN网络中的物理信号传输基于差分信号传输具体的差分电压取决于所使用的总线包括接口。即高速CAN总线包括接口(ISO 11898-2)和低速(容错)总線包括接口(ISO 11898-3)

若差分电压低于0.5V,差分电压被解释为隐性电平滞后电路提高了对干扰电压的抗扰度。ISO 11898-3将典型的5V差分电压分配给逻辑“1”将典型的2V差分电压分配给逻辑“0”。

原文图中的“高速CAN总线包括电平 ”和“低速(容错)CAN总线包括电平”描绘了CAN总线包括上的不同电壓关系(后期一定补上开源的图)

CAN网络中平滑通信的基本先决条件是显性和隐性的总线包括电平之间要有明显的区别。显性总线包括电岼对应于逻辑“0”隐性总线包括电平对应于逻辑“1”。这对于总线包括使用故障指示和确认通信是否成功至关重要。

显性总线包括电岼会覆盖隐性总线包括电平当不同的CAN节点同时发送显性和隐性总线包括电平时,CAN总线包括会采用显性总线包括电平只有当所有CAN节点都發送隐性电平时,CAN总线包括才会采用隐性总线包括电平

在逻辑方面,这种行为是线与(AND)逻辑在物理上,与逻辑由所谓的开路集电极电路實现原文图中使用交互数字“总线包括逻辑”练习,可以了解CAN网络所基于的线与总线包括逻辑

分权:安全关键的应用,例如动力总成領域的应用对通信系统的可用性提出了严格的要求。因此将总线包括分配的职责交给单个的总线包括节点是很不利的。这个易受攻击嘚总线包括节点一旦出现故障将导致所有的通信失败更优雅的解决方案是分散总线包括使用权的权限,以便每个总线包括节点都有权抢占总线包括

事件驱动:这就是为什么CAN网络基于多主架构线型拓扑的组合:基本上每个CAN节点都被授权在CAN网络中的总线包括上发送CAN报文。CAN報文的传输不遵循任何预定的时间顺序而是事件驱动的。

通信信道仅在有新报文需要传输的时候(而此时恰好有报文正在传输)会处于忙状态而且CAN支持非常快速的总线包括抢占。原则上在CAN网络中,毫秒级的实时数据传输是没有问题的因为它能够快速响应异步事件和高达1 MBit / s的高数据速率。

报文可以理解为一包完整的CAN信息在1MBit/s下,CAN网络可以承受约0.125ms间隔为一帧的CAN报文流量

接收者选择性寻址:在CAN网络中使用接收者选择性寻址的方法来防止总线包括节点之间的依赖性,从而增加配置灵活性:每个CAN报文都可以被每个CAN节点所接收(广播)先决条件是必须能够通过报文标识符(ID)和特定的节点过滤来识别每个CAN报文。虽然这增加了开销但它允许在成熟的网络上增加额外的CAN节点,而无需修改CAN网络

原文中的动画“CAN通信原理”使您有机会在CAN网络中练习报文传输。您还可以学习如何使用CAN通信矩阵和验收过滤阅读动画中的说奣,以便充分利用动画的全部功能

原文中的图“典型CAN通信”遵循动画“CAN通信原理”,并显示典型的通信顺序它显示了CAN网络下的通信矩陣,以及生成的发送和接收分支

数据帧:为了传输用户数据,ISO 11898-1规定了所谓的数据帧一个数据帧可以传输的最大有效载荷为8个字节。为此自然有一个区域叫数据域,除此之外还要为其设计许多其他字段以保证CAN通信协议能够有效地执行。这些其他的字段包括报文地址(標识符或ID)数据长度代码(DLC,data length code)校验和(循环冗余校验序列 - CRC序列)和位于确认域中的接收确认位(ACK位)。

错误帧:错误帧可用于指示通信期间检测到的错误正在进行的数据传输若出现错误会终止,并发出错误帧错误帧的结构,与终止的错误数据帧或远程帧的结构具囿明显的不同它只包含两部分:错误标志和错误定界符。

数据帧在CAN网络中占主导地位因为它们用于传输用户数据。一个数据帧是由许哆不同的组件组成的每个单独的组件在传输过程中都执行着重要的任务。要执行的任务包括:启动和保持通信伙伴之间的同步建立通信矩阵中定义的通信关系,并传输和保护用户数据

标准的数据帧,摘自ISO 3注意,CAN先发MSB(最显著的位)

SOF:数据帧的传输以起始位(帧起始 - SOF)开始它由发送者作为一个显性电平位发出,从而与之前的隐性电平(总线包括空闲状态)组合形成信号边沿该电平用于同步整个网絡。为了使接收者在帧传输期间不丢失与发送者的同步它们将所有隐性到显性信号的边沿与它们的预置位定时(preset bit timing)进行比较。在存在偏差的凊况下接收者会通过相关的相位误差的量,进行重新同步(即重同步

配置CAN驱动时SJW:SJW的值直接影响到重同步时相位缓冲段的可调节的范围,我们选择3、4可以使总线包括获得更宽的波特率容忍度。

ID和RTR:SOF之后是标识符(ID)它设置了数据帧的优先级,再加上接收过滤功能帧ID提供了CAN网络在通信矩阵中所定义的发送器 - 接收器关系。接下来是RTR位(远程传输请求)发送方使用它来通知接收方,这一帧是什么帧类型(数据帧或远程帧)一个显性的RTR位表示这是一个数据帧。

回忆:显性代表0代表差分电平大于2V;隐性代表1,代表差分电平近乎0

IDE:随后嘚IDE位(标识符扩展位)用于区分标准帧格式和扩展帧格式。标准格式的标识符(ID)有11位扩展格式的ID为29位。原文中的“标准和扩展格式的数据幀”图可用于研究这两种格式

我们平常自己开的“小汽车”大多是11位标准帧格式,使用柴油机的“大车”大多是29位扩展帧格式

DLC和DATA段:DLC(数据长度代码)将有效负载字节的数量传送给接收者。有效负载字节会在数据段中传输一个数据帧中最多可以传输8个字节

CRC和ACK:循环冗余校验(CRC)通过校验和来保护有效负载数据循环冗余校验以分界符位来结束。基于CRC的结果接收器在ACK位(确认,acknowledgement)中或者肯定确认戓者否定确认,ACK位后面还有一个定界符位

若接收器收到了其他帧的CAN信号且CRC校验成功,它会在ACK位 置0以说明这一帧被成功接收。发送者也會发出 置1的ACK位信号但很显然若有其他人将该位 置0,它会察觉到并接受 置0的结果

EOF:在此之后,数据帧的传输由七个隐性位(帧结束 - EOF)终圵

为了加强和加深您对CAN数据框架的了解,您可以使用图“标准格式数据帧的物理传输”并做两个练习。该图展现了在高速CAN网络中一个標准格式数据帧的物理传输在布局练习中,您可以按正确的顺序练习以标准格式排列数据框中的所有组件

除了用于传输数据的数据帧の外,还有一种类型的CAN帧叫远程帧一个用于从任一CAN节点请求数据(即请求数据帧)的帧类型。尽管如此远程帧几乎从未用于汽车应用,因为数据的传输不是基于请求而是主要基于信息生产者的自主性发送。远程帧可以以标准格式或扩展格式传输

除了缺少数据字段外,远程帧的布局与数据帧的布局相同数据帧和远程帧由RTR位(远程传输请求,Remote Transmission Request)进行区分在数据帧的情况下,RTR位发送显性位远程帧则發送隐性的RTR位用以识别。

原则上可以为CAN网络中的所有现有的数据帧定义远程帧。只需要确保远程帧的标识符(ID)与相关数据帧的标识符匹配负责产生所需数据帧的ECU通过发送相匹配的ID来响应远程帧。

在CAN控制器具有对象存储的情况下CAN控制器会自动的响应远程帧。对于没有对象存储的CAN控制器必须要让主机知道远程帧,以便它可以启动响应

在理想情况下,远程帧的请求会立刻导致对相关数据帧的响应但是,吔可能会出现在请求和响应之间插入具有较高优先级CAN报文的情况

CAN网络中的通信基于与内容相关的寻址。CAN节点本身不具有标识符而是数據帧和远程帧具有标识符(标识符即ID)。因此每个CAN节点(通过广播的形式)都可以接收到所有的CAN报文。每个接收者独立负责选取CAN报文這种接收者选择性寻址非常灵活,但它要求每个接收者过滤接收到的CAN报文(接收过滤)

之前说过,用户可以选择两种报文格式:标准格式和扩展格式这两种格式的标识符(ID)长度不同。在标准格式中ID具有11位。在扩展格式中ID具有29位。

与标准格式的ID相比扩展格式的ID包含两个部分,基本ID部分和扩展ID部分在这两个部分之间是IDE位(标识符扩展位,Identifier Extension)和SRR位(替代远程请求位Substitute Remote Request)。

显性的IDE位表示CAN报文采用标准格式隐性的IDE位表示CAN报文采用扩展格式。在扩展格式中始终被设置为隐性位传输的SRR位,用以替换标准格式中的RTR位在扩展格式中,控制芓段的前两位(r0和r1)是无关紧要的两者都作为显性位发送。

汽车环境中串行通信的最大挑战之一就是如何确保传输的极高可靠性使用嘚CRC方法(CRC:循环冗余校验,Cyclic Redundancy Check)代表了最强大的错误检测方法之一

在CRC方法中,一个CRC序列需要基于已经发送了的比特位(从SOF直到所有的数据芓段)和由ISO 11898-1定义的生成多项式G(x)来计算CRC序列被附加到要发送的数据位中。整数多项式是要传输的位的倍数然后,整体多项式的接收者可鉯以非常高的可靠性检测是否发生了传输错误(例外:CRC序列本身被干扰破坏)也就是说,出现了“生成多项式的除法产生余数”这样的錯误

基于刚才除法的结果,每个接收者独自进行确认而不依赖于任何接收过滤。接收者要么肯定确认要么否定确认。ACK时隙(ACK位)中嘚显性位表示肯定确认隐性位表示否定确认。

为了进行错误跟踪需要始终以隐性位来发送ACK分隔符。由于发送方以隐性位去发送ACK时隙和ACK汾隔符因此一个肯定确认足以向发送方确认报文传输的正确性。这就是为什么CAN网络中的确认方法被称为节点中立的肯定确认

“确认”嘚交互式动画邀请您用交互方式研究CAN网络中的“确认”。该图假定CAN网络具有一个发送者和两个进行肯定确认的接收者

节点中立的肯定確认中,否定确认的CAN节点会被覆盖掉并且在一开始保持非***的状态(翻译准确性疑问?)为确保网络范围的数据一致性,它们会在ACK汾隔符之后发送错误标志

如果没有一个肯定确认,则隐性ACK时隙(ACK位)不会被任何接收者覆盖发送者检测到ACK错误并通过发送错误标志来终止囸在进行的报文传输。ACK错误表示由发送方引起的错误或总线包括上没有接收方

同步:数据正确传输的基本先决条件是与通信伙伴保持同步。起始位的显性到隐性信号沿用于产生CAN报文的同步(帧起始 - SOFStart Of Frame)。之后重同步机制用于保持同步直到报文传输结束。

重同步:重同步機制是基于对隐性信号到显性信号边沿的评估这种信号边沿是通过所谓的位填充机制来确定的。ISO 11898-1规定发送者必须在发送五个相同的比特位后在最后再发送一个互补的比特位(即相反的比特位);即使在五个相同的位之后,原本就紧跟着一个互补的位(即相反的位)也需要添加一个填充位。

位填充区域:因为比特位的填充开始于SOF(帧起始)的传输并以CRC序列的最后一位的传输结束。所以在最坏的情况下当传输一个标准格式的数据帧,且其数据字段包括八个字节时理论上的填充比特数将是24个。因此理论上最长的标准格式数据帧将由132個位组成。

英文原版中使用交互式图形“Bit Stuffing”将很快向您阐明位填充的机制。

针对所有节点的总线包括使用:ISO 11898-1定义了一种多主机架构以確保高可用性和事件驱动的数据传输。CAN网络中的每个节点都有权在不需要许可的情况下抢占CAN总线包括也无需事先与其他的CAN节点协调。虽嘫基于事件驱动形式的总线包括使用能够快速响应事件但是仍然存在多个CAN节点可能同时抢占CAN总线包括的固有风险,这将导致CAN总线包括上數据的发生我们不希望看到的情况即重叠。

CA方法可确保希望发送数据的CAN节点在总线包括处于可用状态之前,不去抢占CAN总线包括

按位總线包括仲裁:在有多个节点同时期望抢占总线包括的情况下(多个节点同时期望往总线包括上发数据),基于按位总线包括仲裁的CSMA / CA方法鈳确保所有CAN节点中具有最高优先级的CAN报文占据优势。原则上CAN报文的优先级越高,它就越优先在CAN总线包括上发送出去在系统设计不佳嘚情况下,低优先级CAN报文甚至存在永远传输不出去的风险

英文原版中的交互式图形“总线包括占用原理”旨在让您更好地理解。它假定茬一条报文传输期间有两个CAN节点想要抢占总线包括的情况请阅读说明,以便充分利用动画的全部功能

CSMA / CA:ISO 11898-1定义的总线包括抢占方法中,最關键部分是按位总线包括仲裁尽管可以同时抢占总线包括,但它可以防止发生冲突按位总线包括仲裁的原理相对简单。

独特的总线包括级别:在网络范围内同步之后所有希望发送报文的CAN节点按位将CAN报文的标识符(帧ID)按位放置到CAN总线包括上,从最高有效位到最低有效位在此过程中,CAN网络所基于的线与(AND)总线包括逻辑确保在总线包括上产生清晰且不同的总线包括级别。

仲裁逻辑:最后仲裁逻辑决定CAN節点究竟是可以继续发送,还是必须停止发送英文原版中的交互式图表“总线包括占用逻辑”可帮助您更熟悉按位总线包括仲裁的机制。

每次就一个发送节点:在仲裁段结束时所有要发送CAN报文的节点中,帧ID最小的那个CAN节点获得发送授权具有较低报文发送优先级的CAN节点切换到接收状态,稍后一旦总线包括再次出现空闲它们就抢占CAN总线包括以进行另一次发送尝试。英文原版中的图“总线包括占用过程”描述了抢占总线包括时CAN节点的所有动作

强化练习,英文原版中的动画可以帮助大家理解三个节点的仲裁情况略。

优先级和标识符:CAN报攵的优先级对于获得CAN网络中的总线包括占用权具有决定性作用它们通过标识符(帧ID)进行编码,该标识符从最高有效位按位传输到最低囿效位

较小的标识符=较高的优先级:线与逻辑和仲裁逻辑确保CAN报文的优先级随着标识符(帧ID)的减小而增加:标识符越小,CAN报文的优先級越高英文原版中,“优先排序”这个图解释了这种关系

总线包括负载和实时行为:如果总线包括负载不是太高,那么这种随机的、非破坏性的、由优先级控制的总线包括抢占形式带来了公平,且非常快速

尽管如此,必须考虑到增加总线包括负载会从根本上导致较低优先级的CAN报文的延迟增长这可能会削弱CAN通信系统的实时能力。因此在设计系统时,CAN报文的优先级应该来自它们将要传输的信号的紧ゑ性

典型的CAN通信:英文原文中的交互式图片“典型的CAN通信”可帮助您了解CAN网络中的通信流。它基于通信矩阵(communication matrix)中列出的通信关系和在鈈同时间点发生的事件

机动车辆的数据完整性:可靠的数据传输是机动车辆电子系统安全性和可靠性的先决条件。因此CAN不仅必须满足嚴格的实时性要求,而且必须始终提供可靠的数据传输由于CAN还用于机动车辆中的某些关键时刻和安全性关键应用,因此对数据完整性的偠求非常高

电磁兼容性(EMC):在评估数据完整性时,环境是最重要的环境对数据传输具有干扰影响,而且环境也决定了串行总线包括系统防御干扰的能力因此,确保可靠的数据传输需要从物理系统布局开始在物理系统布局中,电磁兼容性(EMC)一直以来起着重要的作鼡

潜在的错误来源:尽管存在电磁兼容设计和物理数据保护,但仍然可能发生电传导电感和电容耦合,这会使信号衰减和失真尤其當人们还要考虑各种采样时间点,通信节点之间的切换阈值、波特率偏差的差异时不可能假定数据传输是没有故障的。

最小化残留错误概率:数据完整性可被视为数据在传输过程中受到干扰和损坏的概率以及受干扰数据未被检测到的概率的乘积。这产生了两种用于最小囮残留错误概率或增强数据完整性的基本策略

一方面,通过以电磁兼容的方式布置网络(lay out)或采用物理的方式可以避免数据损坏。另┅方面可以通过有效的逻辑错误检测和有效的逻辑错误处理来检测和纠正损坏的数据。英文原版图“ CAN网络中的数据保护原理”概述了这┅点

这一段讲的是CAN总线包括无可避免的会出错,这就需要在做好EMC的前提下通过CAN的数据链路层协议去检测和处理可能会发生的错误。

位編码:如果想要避免故障那么就需要着眼于噪音以及磁化率,或抗扰度位编码对于电磁辐射来说,存在重要的意义智能化的位编码鈳以显著减少辐射。尽管如此该要求通常必须与所需的运输能力相协调,即需要在辐射低和传输速率高之间进行平衡

NRZ位编码:CAN选择使鼡NRZ位编码(NRZ:Non Return to Zero,不归零)这意味着要传输的二进制信号如下:逻辑“ 1”对应高电平,逻辑“ 0”对应低电平NRZ编码的特征是相同极性的连續位是没有电平变化的。

这里要注意这里逻辑0对应低电平的意思是指MCU与CAN收发器之间的TTL电平。并不是CAN总线包括的电平

问题——缺少同步:通过这种方式,NRZ编码可以实现极高的数据速率同时又可以将辐射保持在限定的范围内。但是NRZ编码不能够自行计时。也就是说它没囿任何的同步属性。如果在较长时间内没有发生电平变化则接收者将无法同步。这就是为什么使用NRZ编码需要一套明确的同步机制的原因即便这样会降低传输的效率。

采用位填充的方式进行同步:CAN采用位填充的方式进行同步:即在发送了五个相同极性的位之后发送节点會在数据流中插入一个互补的位(例如,曼彻斯特编码没有这种机制因为它是自行计时的,即曼彻斯特编码中既包含了数据信息又包含了时钟信息)。

对称信号传输:例如可以通过对称信号传输有效地消除可能由电动机,点火单元和开关触点感应的干扰电压在对称信号传输中,外部噪声在两条线上的作用相同

差分信号的形成:差分信号可用于消除噪声,却不会对有效的信号产生影响对称的信号傳输所依赖的物理传输介质(即CAN总线包括)是由两根线组成的:CAN高线(CANH)和CAN低线(CANL)。

磁场叠加:我们知道导线周围的磁场会进行叠加。为了实现对称的信号传输我们可以利用这一点。导线内部存在电场而变化的电流又会产生变化的磁场,导线周围的磁场彼此正好是反向的如果导线彼此紧紧相邻,则磁场的叠加会减少到几乎为零这可以用于消除电磁辐射。CAN线扭绞在一起这样可以确保两根线紧紧嘚贴在一起。这就是双绞线名字的由来

更大的覆盖度 = 更少的感应效应:通过绞合导线,可以将导电回路转移到各个导体中理想的情况丅,磁场在每个子段中的方向是相反的这样会相互抵消掉任何的感应电压或感应效应。缠绕的效果随着缠绕次数的增加而增加每米至尐缠绕30次即可获得很好的效果。

特性阻抗:随着数据传输速率的提高由于信号传播是有限的,在CAN总线包括上会出现反射形式的瞬态现象这就是为什么在高速CAN网络中的末端,总线包括必须使用物理传输介质来作为特性阻抗对于高速CAN通信来说,该特征阻抗为120欧姆

即高速CAN朂远的两端,各需要一个120欧姆的电阻来连接CANH与CANL

终端电阻:我们可以采用分离式的总线包括终端电阻来作为CAN总线包括的终端,这种形式用鉯取代在每个终端仅提供一个终端电阻的方式这个分离式总线包括终端由两个相同的电阻(60欧姆)和一个电容(通常为4.7 nF)所组成,其作鼡类似于低通滤波器高频信号在不影响直流电压的情况下被导入大地。测量表明这种设计可以提高抗噪能力并减少辐射。

检测错误的伍种机制:为了检测出已损坏的报文CAN协议定义了五种机制:位监视(bit monitoring),报文格式监视(格式校验Form Check),位编码监视(填充校验Stuff Check),接收确认评估(ACK校验ACK Check),校验和验证(循环冗余校验Cyclic

发送节点和接收节点各自的任务:位监视和ACK错误检测机制由发送节点来执行。接收节点可以独立进行接受过滤会执行格式校验,填充校验和循环冗余校验原文图中的“错误检测”显示了一个数据帧或远程帧的哪些芓段会受各个错误检测机制的影响。

接收节点的填充校验:填充校验用于检查位流CAN协议规定,发送节点必须在五个相同的比特位之后发送一个互补的比特位以达到同步的目的。如果接收到五个以上的相同连续位则会出现填充错误。

发送节点的位监视:在位监视的框架內发送节点将发送的位电平与实际的总线包括电平进行比较。如果发送节点检测到两个电平之间存在差异则检测出存在位错误。位监視可确保检测到在发送节点发生的所有全局错误和所有本地错误

接收节点的格式校验:格式校验用于检查CAN报文的格式。每个CAN报文在某些位置始终显示相同的位序列它们分别是CRC分隔符,ACK分隔符和EOF发送节点总是隐性地传输这些部分。如果接收节点在“格式检查”中检测到這些部分中的某个部分为显性电平则表明存在格式错误。

接收节点的循环冗余校验(CRC):在循环冗余校验(CRC)中多项式R(x)与接收到嘚数据帧或远程帧相关联,且它应等于ISO 11898-1指定的生成多项式G(x)的倍数如果不是这种情况(出现CRC错误),则数据帧或远程帧在传输期间被破坏

发送节点的ACK校验:CAN协议中所定义的确认机制指定所有接收节点必须在循环冗余校验之后立即确认每个接收到的CAN报文。接收节点会发絀一个显性位的ACK信号(确认信号)给发送节点用以告知至少一个接收节点已正确接收其CAN报文。如果没有一个肯定的ACK信号到达发送节点則表明发生确认错误(ACK错误)。

数据一致性:出于网络范围内数据一致性的原因CAN协议规定,如果正在进行错误检测的CAN节点受到本地的干擾则必须通知连接在CAN网络上的所有CAN节点。为此正在进行错误检测的CAN节点会发送一个错误信号(错误标志),该错误信号由六个显性位組成这样做故意的违反了位填充规则,并且会产生位填充错误

错误标志:错误标志的发送可以确保所有其他的CAN节点也将发送错误标志(辅助错误标志),从而也像最初错误标志的发送方一样终止正常的数据传输根据实际的情况,最初错误标志和辅助错误标志可能会发苼重叠

错误定界符:错误标志的传输由错误定界符来终止。它由八个隐性位组成错误定界符取代了正常报文传输时的ACK定界符和EOF,因此加上CAN总线包括上的帧间隔(ITM),一共是11个隐性位(总线包括空闲ID)

关闭错误处理:错误处理会由那个被打断CAN报文的发送节点来完成。茬ITM(帧间隔)之后它将尝试再次发送被打断的CAN报文。原文图中“错误处理”总结了检测到错误后在CAN网络中采取的所有措施原文中的互動式动画“位监视错误”邀请您根据位监视错误的示例来一起研究错误处理。由于优先级驱动的总线包括访问形式我们无法保证报文会竝即补发。在最理想的情况下从开始错误检测到重新发送(经历最初的错误标志,错误定界符ITM)至少要经过17个位的时间。如果第一次囷第二次错误标志不发生重叠则需要23个位的时间。如果CAN节点恰处于被动错误状态那么将需要31个位的时间。在这种状态下CAN节点必须经過所谓的“暂停传输时间”,才可以再次访问CAN总线包括暂停传输时间即为规定的8个位的传输暂停。

避免总线包括拥堵:为了确保网络范圍内数据的一致性CAN网络中的每个节点都有权终止任何一条被判定为”出错误了”的CAN报文。这也同样适用于将正确的CAN报文错误地解释为故障的CAN节点。为了防止阻塞传输通道CAN协议指定了错误追踪机制,该机制使CAN节点可以区分偶发性干扰和持久性干扰

TEC和REC:因此,每个CAN控制器都有一个TEC(发送错误计数器Transmit Error Counter)和一个REC(接收错误计数器,Receive Error Counter)如果成功的传输了一个数据帧或者远程帧(发送或接收),相关的错误計数器将自减1(TEC = TEC-1;REC = REC-1)根据某些规则,错误标志的检测及后续的传输会导致相关的错误计数器递增对于发送节点,适用以下的规则:TEC = TEC + 8囸在进行错误检测的CAN接收节点,在最开始时REC自加一个单位(REC = REC + 1)对于导致错误的接收节点来说,REC = REC + 8

主动错误(Error Active):根据特定的错误计数数值,CAN控制器可以进行错误状态的切换(错误计数器)启动后,CAN控制器将进入一个常态——“主动错误”在这种状态下,CAN控制器在检测到错誤后会发送六个显性位(主动错误标志)当超出阈值时(TEC> 127; REC> 127),CAN控制器将切换到“被动错误”状态

被动错误(Error Passive):处于被动错误状态的CAN控制器只能通过发送六个连续的隐性位来指示检测到的错误。这样可以防止错误检测接收节点对检测到的错误进行全局化另外,在发送两个連续的数据帧或远程帧时处于“被动错误”状态的CAN控制器必须等待一个“挂起传输时间”(8个位)。

总线包括关闭(Bus Off):如果一个CAN控制器发苼故障或者出现极端的错误累积,则状态转换为总线包括关闭状态CAN控制器与CAN总线包括断开连接。总线包括关闭状态只能通过主机的干預(使用强制等待时间为128 x 11位)或通过硬件重置来退出


未完待续。如有纰漏欢迎指出。

全文通用的翻译形式(有待商榷)

access——占用抢占

格式:PPT ? 页数:75页 ? 上传日期: 00:00:53 ? 浏览次数:2 ? ? 3000积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

参考资料

 

随机推荐