目录
相关缩写
名词 | 描述 | |
---|---|---|
CAN(Controller Area Network ) | 控制器局域网络 | 一种高可靠性的网络协议,广泛应用于汽车及工业自动化领域,用于不同设备间的数据通信 |
CAN FD(CAN with Flexible Data-rate) | 可变速率的CAN | CAN协议的一种扩展,允许在数据传输阶段使用更高的数据速率,同时支持更大的数据负载 |
CAN XL(Controller Area Network Extra Long) | 第三代CAN | CAN协议的一种扩展,专为满足现代汽车和工业应用中对于更高数据传输速率和更大数据包的需求而设计 |
Data Frame | 数据帧 | CAN网络中传输的基本数据单位,包含用于通信的实际数据 |
Remote Frame | 远程帧 | 一种特殊类型的CAN帧,用于请求数据而不是发送数据 |
Error Frame | 错误帧 | 一种特殊类型的CAN帧,用于请求数据而不是发送数据 |
Arbitration | 仲裁 | CAN总线上多个设备同时尝试发送数据时用于解决冲突的过程 |
Bit Stuffing | 位填充 | CAN协议中的一种错误检测机制,如果连续发送了五个相同的位,就会插入一个相反的位 |
Identifier | 标识符 | 在数据帧和远程帧中用于标识消息的唯一代码 |
Extended Identifier | 扩展标识符 | 用于提供额外的地址空间,在标准的11位标识符之外,还可以使用18位,从而允许更多的设备通信 |
Bit Timing | 位时间 | CAN通信中每个位持续时间的配置,影响数据传输速率 |
Sample Point | 采样点 | 采样点 |
End of Frame (EOF) | 帧结束符 | 帧结束符 |
Node | 网络节点 | 网络节点 |
Priority | 优先级 | 优先级 |
Bit Rate Switching (BRS) | 数据速率开关 | 数据速率开关 |
Extended Data Length (EDL) | 扩展数据长度 | 扩展数据长度 |
Fast Data Transmission | 快速数据传输 | 快速数据传输 |
Frame Format | 帧格式 | 帧格式 |
Error State Indicator (ESI) | 错误状态指示器 | 错误状态指示器 |
1.概述
CAN (Controller Area Network)控制器局域网总线,是 ISO国际标准化的串行通信协议。CAN 最初出现在80年代末的汽车工业中,由德国 Bosch 公司最先提出。提出 CAN 总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。
1.1CAN版本发展历程
- 1986年:首个CAN总线标准CAN 2.0由德国公司Bosch发布,定义了基本的数据帧格式、错误处理机制和通信速率等内容。
- 1991年:CAN 2.0A和CAN 2.0B两个变种相继出现。CAN 2.0A允许使用11位标识符(ID),而CAN 2.0B支持29位扩展标识符。
- 2012年:CAN FD(Flexible Data-Rate)作为CAN总线的下一代标准被引入,支持更高的数据传输速率和灵活性
- 2019年:CAN FD SIC(SignalImprovement Capability)信号增强版标准CiA(CAN in Automation)601-4发布,
- 2021年:CAN FD的轻量级版本CAN FD Light 标准CiA 604-1发布
- 2021年12月:第三代CAN总线CAN XL(Extra Long)标准CiA 610-1发布。
1.2CAN标准
OSI参考模型是ISO组织在1985年研究的网络互联模型,该体系结构标准定义了网络互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),CAN诊断协议就是基于OSI模式建立的。
CAN标准分为底层标准和上层标准,CAN底层标准定义了物理层和数据链路层,有ISO国际标准;上层协议定义了网络层到应用层的规则,包括消息的地址和格式、设备识别、错误处理策略以及应用数据的组织方式,没有统一的国际标准,针对不同的应用场景,有一些针对CAN总线的特定行业标准和协议。例如,在汽车行业,有一些针对CAN总线的特定应用层协议和标准。
(1)底层标准
- ISO 11898-1:2015: 描述了CAN通信的数据链路层和物理编码的要求,包括了对传统CAN和CAN FD的支持。CAN FD提供了更高的数据传输速率和更大的数据载荷(高达64字节),相比于传统CAN的8字节数据载荷。
ISO 11898-2:2016:规定了高速CAN通信的物理层要求,包含了对CAN FD的支持。这部分标准对高速CAN网络的实现和性能有着重要影响。
ISO 11898-3:2006:专注于低速、容错的CAN网络(低速容错CAN,LSFT CAN),适用于需要更高可靠性和容错能力的应用场景。
ISO 11898-4:2004:提供了时间触发通信的规范,用于支持需要严格时间控制和同步的CAN通信网络。
ISO 11898-5:2007:定义了支持低功耗模式操作的CAN网络的物理层要求,有助于减少设备的能耗。
ISO 11898-6:2013:描述了具有选择性唤醒功能的CAN网络的规范,这项功能使得网络中的节点可以在低功耗模式下根据需要被唤醒。 - ISO 16845-1:2004:定义测试符合ISO 11898-1标准CAN应用的方法和条件。
ISO 16845-1:2016:详细规定了ISO 11898-1中标准化的CAN数据链路层和物理信令的一致性测试计划。它涵盖了经典CAN协议以及CAN FD协议的测试规范,为最新的CAN FD一致性测试规范,代替了之前的ISO 16845:2004标准。
ISO 16845-2:2014:这一部分专注于带选择性唤醒功能的高速介质访问单元,为道路汽车中控制器局域网的一致性测试提供了具体的方案。
(2)上层标准
- ISO 15765-1:涵盖了网络层服务的定义,这是该系列标准的基础部分,提供了通用的定义和结构。
ISO 15765-2:这是最为广泛应用的部分,专注于网络层服务和协议的实现,它定义了使用CAN作为传输层的车辆诊断通信的规范。ISO 15765-2的不同版本反映了标准的演进,以适应技术的发展和行业需求的变化。
ISO 15765-3:提供了诊断通信的实现指南,虽然不是所有项目都严格要求这部分内容,但它为理解和实施标准提供了实用的指导。
ISO 15765-4:定义了诊断系统的要求,特别是针对符合OBD-II规定的车辆。
J1939:主要用于重型车辆(如卡车、公共汽车)的网络通信,定义了一系列消息ID、数据封装和交换机制。
1.3优势和特点
- 可靠性:CAN总线采用非破坏性仲裁技术,当节点发送竞争失败时,计划发送的CAN报文不会被破坏,节点会等待下一次同步以重新发送。CAN协议还具备错误检测(如循环冗余检查CRC)、错误标记、错误传输和自动重传等机制。
- 实时性:CAN总线上的节点根据优先级进行通信,优先级高的数据可以在最多134μs内得到传输,保证了系统对实时性要求的满足,适用于需要快速响应的控制系统。
- 传输:CAN总线支持长距离通讯,最远通讯距离可达10km,同时通信速率可达1Mbps,使其适用于对传输速率和通讯距离要求较高的场景。
- 多主体通信:CAN总线具有灵活的网络拓扑结构,可以连接多个节点,支持多主机通信。任一节点均可在任意时刻主动向网络中的其他节点发送信息,而不分主从,为系统提供了良好的灵活性和可扩展性。
- 节点数量:CAN总线的节点数主要取决于总线驱动电路,目前可支持的节点数量可达110个,满足了大多数应用场景的需求
1.4CANFD和CAN区别
特性 | CAN | CAN FD |
---|---|---|
数据传输速率 | 最高可达1Mbps | 理论上可达8Mbps或更高 |
数据帧长度 | 最多8个字节的数据 | 最多64个字节的数据 |
数据帧结构 | 标准结构 | 引入额外字段,如BRS和ESI |
远程帧 | 使用 | 不使用 |
复杂性和成本 | 相对较低 | 相对较高,因为技术更先进 |
向后兼容性 | 不适用 | 设计时考虑与现有的CAN网络的兼容性 |
应用场景 | 适合数据量不大的应用 | 适合数据量大和对传输速率要求高的应用场景 |
1.5CAN XL
CAN XL(Controller Area Network Extra Long),第三代CAN,专为10+Mbit/s的通信速率场景设计。第三代CAN数据链路层支持所有三种协议类型(CAN、CAN FD和CAN XL),通信速率高达20 Mbit/s,有效负载大小增至2048字节,并将CAN-ID字段分成11位优先级字段和32位接收字段,以提供更高的数据处理能力和更灵活的数据管理。
CAN XL正在被纳入ISO 11898-1和ISO 11898-2标准,同时发布CiA610-1、CiA610-3规范和AUTOSAR的支持,这对汽车制造商极为重要。博世等Tier 1厂商和戴姆勒卡车等汽车制造商正在推进CAN XL技术。英飞凌、恩智浦、意法半导体、瑞萨等半导体厂商已推出基于CAN XL的MCU产品,目前大多为SAMPLE阶段;是德科技推出了首款CAN XL协议示波器。汽车网络未来将通过以太网支持高比特率应用,而中低速率应用将依赖于CAN FD、FD Light和XL等技术。
2.工作原理
2.1物理连接方式
(1)传输介质
- 高速CAN总线(HS-CAN):高速CAN总线通常使用两根屏蔽双绞线,分别称为CAN_H(高)和CAN_L(低)。这种双绞线能够提供较高的数据传输速率,最高可达8 Mbps。高速CAN总线主要用于需要高带宽和短传输距离的应用,如汽车动力总线和工业控制系统。
- 低速CAN总线(LS-CAN,Fault-Tolerant CAN):低速CAN总线通常使用单根非屏蔽双绞线,适用于传输速率较低的场景,速率通常在40 Kbps至125 Kbps之间。与高速CAN总线不同,低速CAN总线具有容错特性,即使一根传输线路失效,也能确保通信的可靠性。低速CAN总线常用于车身电控单元之间的通信。
(2)传输距离限制
- 经典CAN总线(Classic CAN):在经典CAN总线中,传输距离的标准限制为每个节点最大不超过40米,总线长度不超过1000米。这是由于CAN总线采用差分信号传输,对信号质量和传输延迟有一定要求。
- 高速CAN总线(HS-CAN):对于高速CAN总线,其传输距离一般会更短,通常在每个节点最大不超过30米,总线长度不超过300米。这是因为高速CAN总线的传输速率较高,对信号的稳定性和传输延迟要求更高。
- CAN FD:对于CAN FD(Flexible Data-Rate),由于支持更高的数据传输速率,传输距离可能会更短,一般在每个节点最大不超过20米,总线长度不超过200米
(3)电气特性
- 差分信号传输:CAN总线利用差分信号传输数据,即通过两条相互对偶的信号线来传输数据。这种传输方式可以有效地抵抗外部干扰,提高抗干扰能力,同时也有助于减小信号传输时的电磁辐射。
- 低电压差分信号:CAN总线使用低电压差分信号进行通信,典型的差分电压为2V,这有利于降低功耗和提高抗干扰能力。
-
- 终端电阻:CAN总线在两端需要设置120欧姆的终端电阻,以匹配总线阻抗,减少信号反射和提高信号质量。
-
- 数据编码:CAN总线采用非归零编码(Non-Return-to-Zero,NRZ)的数据编码方式,即逻辑“0”由低电平表示,逻辑“1”由高电平表示。这种编码方式简单直观,易于实现。
-
-
总线电压:CAN总线标准规定了在总线上的工作电压范围,典型的工作电压为5V或3.3V,不同的应用可能会有所不同。
2.2CAN帧的结构
CAN帧主要分为5种类型:
帧类型 | 帧描述 |
数据帧(Data frame) | 节点发送的包含ID和数据的帧,用于发送单元向接收单元传送数据的帧 |
远程帧(Remote frame) | 节点向网络上的其他节点发出的某个ID的数据请求,发送节点收到遥控帧后就可以发送相应ID的数据帧 |
错误帧(Error frame) | 节点检测出错误时,向其他节点发送的通知错误的帧 |
过载帧(Overload frame) | 接收单元未做好接收数据的准备时发送的帧,发送节点收到过载帧后可以暂缓发送数据帧 |
帧间空间(Inter-frame space) | 用于将数据帧、遥控帧与前后的帧分隔开的帧 |
(1)数据帧
数据帧用于在设备之间传输数据。数据帧可以分为标准帧和扩展帧,它们的主要区别在于标识符(ID)的长度。标准帧使用11位标识符,而扩展帧使用29位标识符,使得扩展帧能够提供更多的ID选项。无论是标准帧还是扩展帧,它们都由七个主要部分组成:
- 起始位(Start of frame - SOF):这是一个单一的位,用于标示帧的开始。
- 仲裁字段(Arbitration field):表示该帧优先级的段
- 对于标准帧,仲裁字段包括11位的标识符(ID)和一个远程传送请求位(RTR,Remote Transmission Request)(0:数据帧、 1:远程帧)。
- 对于扩展帧,仲裁字段包含一个11位的基本标识符、一个SRR(Substitute Remote Request)位(用来替代标准帧中RTR位的位置,以保持帧格式的一致性。在扩展帧中,SRR位始终设为1,这是为了确保标准帧和扩展帧在仲裁过程中的兼容性。)、一个IDE(Identifier Extension)位(这一位用于区分标准帧和扩展帧。对于扩展帧,IDE位设为‘1’),以及18位的扩展标识符和一个RTR位。 - 控制字段(Control field):这一部分包括数据长度代码(DLC,Data Length Code),它指定了数据字段中的数据字节数。
- 数据字段(Data field):这是实际传输的数据,可以是0到8字节长。
- CRC字段(CRC field):包含一个15位的循环冗余检验码和一个CRC分隔符,CRC 的计算范围包括帧起始、仲裁段、控制段、数据段。
- 确认字段(ACK field):包含一个ACK槽和一个ACK分隔符,用于接收方确认接收(每当一个CAN节点发送完一个帧之后,其他节点如果正确接收到了这个帧,会在确认字段中发送一个确认位(ACK),如果发送节点没有接收到ACK,它会认为数据传输失败,并会尝试重新发送。)。
- 结束位字段(End of frame - EOF):由7个连续的重复位组成,标志着帧的结束
(2)远程帧
远程帧可分为标准远程帧和扩展远程帧。(远程帧又称为遥控帧)通常ECU会通过数据帧主动发送相关数据,但某些情况也可能用到远程帧。使用远程帧可以从其他任何CAN节点请求用户数据(即数据帧)。除了缺少数据段以外,远程帧与数据帧结构相同。数据传输并不基于请求,而是主要基于信息生产者的自我主动性,因此应用程序中几乎不使用远程帧。
远程帧的结构与数据帧类似,但有两个主要区别:
- RTR位(Remote Transmission Request):在远程帧中,RTR位被设置为1(相对于数据帧的0),以标识该帧为远程帧。
- 数据字段为空:远程帧不包含数据字段。其目的是请求数据,而不是发送数据。
(3)错误帧
错误帧(Error Frame)是一种特殊类型的帧,用于指示检测到错误。这是CAN协议强大的错误检测与处理机制的一部分,确保数据的可靠传输。错误帧的设计目的是为了维护网络的完整性,通过即时通知所有节点关于发生的错误,从而防止错误数据的传播。
错误帧可以由任何网络上的节点发起,可以检测到以下几种类型的错误:
- 位错误:当节点发送的位与总线上实际监测到的位不同时,即发生位错误。
- 格式错误:当帧的格式不符合预期的规定时,例如结束字段不正确。
- 填充错误:当数据字段或CRC字段之后未遵循规定的填充规则时。
- 循环冗余检查(CRC)错误:在CRC字段中检测到错误时。
- ACK错误:在接收到的帧中,如果没有节点发送确认位或发送了错误的确认位。
错误帧由两个不同的字段组成:错误标志(Error Flag)和错误分隔符(Error Delimiter)。
- 错误标志:这是由六个连续的相同位组成的字段,根据错误类型的不同,这些位可以是全为主动错误标志(即逻辑0,称为“主动错误”)或被动错误标志(即逻辑1,称为“被动错误”)。主动错误标志意味着节点以正常模式工作,并且能够主动影响总线;而被动错误标志意味着节点处于错误被动模式,尽管它仍能通信,但不会主动影响总线。错误标志之后还有0~6位的错误标志重叠,这一段最低有0个位,最多有6个位。
- 错误分隔符:紧随错误标志之后的是8位重传分隔符,全部为逻辑1。这个字段提供了一个恢复期,让总线返回到稳定的空闲状态。
(4)过载帧
主要功能是控制数据的传输速度,以便节点有足够的时间来处理接收到的帧。当一个节点因为内部原因(例如,缓冲区满)而暂时无法接收更多的帧时,它会发送过载帧。过载帧告诉网络上的其他节点暂时停止发送帧,直到它准备好接收新的帧。
过载帧本身不包含数据字段,它的结构主要包括:
- 过载标志:由六个相同的位组成,用于标识这是一个过载帧。
- 过载分隔符:由八个固定为“1”的位组成,用于分隔连续的过载帧。
过载机制有两种情况下会被触发:
- 过载条件:当节点检测到需要延迟接收或发送时,会触发过载帧的发送。
- 过载标志:当节点接收到过载标志时,也会发送过载帧作为响应。
(5)CANFD数据帧
2.3标准CAN帧和扩展CAN帧
(1)结构和区别
(2)数据通信中的应用
标准CAN帧(Controller Area Network)和扩展CAN帧是两种在CAN总线网络上用于数据通信的帧格式。它们在不同的应用场景和需求下具有各自的优势和用途。
标准CAN帧使用11位的标识符,这意味着它可以支持2^11(即2048)个不同的消息标识符。标准CAN帧主要用于以下场景:
- 小型网络和简单应用:对于小型的CAN网络,或者数据传输需求不是特别复杂的应用,标准CAN帧已经足够使用。
- 实时性要求高的应用:标准CAN帧由于其结构较简单,可以实现更快的数据处理和传输速率,适用于对实时性要求较高的应用场景。
- 成本敏感型项目:在一些对成本控制有严格要求的项目中,使用标准CAN可以减少系统复杂度,从而降低成本。
扩展CAN帧在标准CAN帧的基础上增加了一个18位的扩展标识符,因此总的标识符位数为29位,它可以支持2^29(即约5.37亿)个不同的消息标识符。扩展CAN帧主要用于以下场景:
- 大型网络和复杂应用:对于需要处理大量不同类型数据或消息的复杂系统,如汽车控制系统,扩展CAN帧因其更大的标识符空间,可以更好地管理和组织数据通信。
- 高级功能和多任务处理:在一些高级功能的实现和多任务并行处理的应用中,扩展CAN帧可以提供更灵活的数据管理和优先级控制。
- 向后兼容性和扩展性:对于需要与已有系统兼容或预留未来扩展空间的项目,扩展CAN帧提供了更广泛的标识符,有助于系统的长期发展和维护。
2.4CAN网络的拓扑结构
CAN网络的拓扑结构通常是以下几种形式:
(1)总线型
所有的节点通过单一的通信线(总线)相连。这是最常见的CAN网络结构。
优点:
- 简单易行:布线简单,易于实施和维护。
- 成本效益:由于线路少,成本较低。
- 灵活性:添加或移除节点相对容易,不会对网络的其他部分产生影响。
缺点:
- 可靠性问题:如果总线发生故障,整个网络可能会受到影响。
- -终端阻抗匹配:为了防止反射波干扰,两端需要正确的终端电阻。
使用场景:
- 大多数车辆内部网络、工业自动化控制系统。
(2)星型
所有的网络节点(比如传感器、控制单元等)都通过独立的物理连接线路直接连接到一个中心节点,这个中心节点通常是一个集线器或者是一个特殊的CAN网络设备,中心节点位于中心位置,所有的分支节点(Node1、Node2、Node3和Node4)都通过独立的连接线与中心节点相连。这样的布局允许每个节点都能够独立地与中心节点通信,而中心节点则负责管理整个网络的通信。
优点:
- 故障隔离性好:在星型拓扑中,每个节点都通过独立的连接线路与中心节点(通常是中心集线器或交换机)相连。这意味着单个节点的故障不会直接影响到网络的其他部分,从而提高了网络的稳定性和可靠性。
- 简化故障诊断:由于每个节点都有一条独立的连接到中心节点,故障点可以更容易地被定位和诊断,不必像在总线拓扑中那样检查整个网络线路。
- 灵活性和可扩展性:星型拓扑允许容易地添加、移除或更改节点,而不会干扰网络的其他部分。这使得网络的扩展和维护变得更加方便。
缺点:
- 成本较高:每个节点都需要一条单独的连接线到中心节点,这可能会导致更高的布线成本和中心设备(如集线器)的成本。
- 中心节点的依赖性:星型拓扑的一个主要缺点是整个网络依赖于中心节点的正常工作。如果中心节点出现故障,整个网络将受到影响。
- 布线复杂性:尽管星型拓扑方便了故障诊断和节点管理,但在物理布线上可能更为复杂,特别是在节点数量较多的情况下。
使用场景:
- 高可靠性要求的应用:在对网络可靠性有较高要求的场景(如医疗设备、工业控制系统)中,星型拓扑的故障隔离性和易于故障诊断的特点非常有用。
- 需要频繁扩展或修改的系统:对于那些需要频繁添加或更换节点的系统,星型拓扑提供了更好的灵活性和可扩展性。
- 集中式管理与监控:在需要集中管理和监控的场合,星型拓扑使得所有通信都通过中心节点,便于实现集中式的数据处理和分析。
2.5节点之间的通信方式和数据冲突处理机制
(1)通信方式
- 多主体通信:CAN网络上的所有节点都可以成为通信的发起者,而不需要一个中央控制单元。这意味着任何节点都可以在任何时候尝试发送消息,前提是总线是空闲的。
- 消息优先级:CAN总线使用基于消息标识符(ID)的优先级系统。ID不仅用于标识消息,还决定了消息的优先级——ID值较低的消息具有较高的优先级。
- 非破坏性仲裁:当两个或多个节点同时尝试发送数据时,CAN总线使用非破坏性仲裁机制来解决冲突。这意味着所有尝试发送的节点同时开始发送其ID,但是一旦在任何比特位置上检测到冲突,具有较低优先级(即ID值较高)的节点会自动停止发送,而较高优先级的消息可以继续传输,没有被中断或损坏。
(2)数据冲突处理机制
CAN总线的数据冲突处理是通过上述的非破坏性仲裁机制实现的。这个机制基于两种比特类型的使用:
- 显性比特(Dominant):电压较低的信号状态,如果总线上的任何节点发送显性比特,总线上的信号就会被视为显性。
- 隐性比特(Recessive):电压较高的信号状态,只有当总线上的所有节点都发送隐性比特时,总线上的信号才会被视为隐性。
在ID传输阶段,如果一个节点发送了隐性比特,而另一个节点发送了显性比特,那么显性比特会“获胜”,因为它对应于较低的电压水平。发送隐性比特的节点会检测到这种差异,并且认识到存在一个更高优先级的消息正在传输,于是停止其传输。这样,确保了总线上最高优先级的消息可以无干扰地发送,而不会发生数据损坏。
2.6错误检测和错误处理机制
(1)错误检测机制
CAN协议包括多个用于错误检测的机制:
- 位监控:每个发送节点在发送数据时也会读取总线上的数据。如果检测到已发送的位与读取的位不匹配,则会认为发生了错误。
- 帧检查:CAN协议定义了特定的帧格式(包括数据帧、远程帧等),每种帧都有特定的字段顺序和大小。如果检测到帧结构不正确,比如帧结束符不匹配,则会被判定为错误。
- 循环冗余检查(CRC):每个CAN消息包含一个CRC校验字段,用于检测消息内容的任何更改。接收节点会计算接收到的消息的CRC,并与消息中的CRC字段进行比较。如果不一致,则认为发生了传输错误。
- 确认错误:在CAN协议中,每条消息在发送完毕后都需要被至少一个节点确认。如果发送节点没有检测到任何节点的确认,则会认为发生了错误。
- 格式错误:如果检测到违反了数据帧或远程帧格式的规定(比如帧中的字段长度不正确),则会认为是格式错误。
(2)错误处理机制
CAN协议中的错误处理机制旨在快速识别并隔离问题节点,以防止其干扰网络上的其他节点。主要包括:
错误标志:
当节点检测到错误时,会发送一个错误标志,以通知网络上的其他节点发生了错误。
错误计数器:
每个节点都有两个错误计数器,即发送错误计数器和接收错误计数器。当检测到错误时,相应的计数器会增加;当成功传输或接收消息时,计数器会减少。
错误状态:
根据错误计数器的值,节点可以处于三种状态之一:错误活动(Error Active)、错误被动(Error Passive)和总线关闭(Bus Off)。
- 错误活动:默认状态,节点可以正常发送和接收消息,包括发送错误标志。
- 错误被动:当任一错误计数器超过127时,节点进入错误被动状态。在此状态下,节点在检测到错误时不能发送主动错误标志,只能发送被动错误标志,减少对网络的干扰。
- 总线关闭:当任一错误计数器超过255时,节点将自动进入总线关闭状态。在此状态下,节点不再参与总线通信,必须经过复位或重新初始化才能恢复通信。
2.7速率和定时特性
(1)数据传输速率
(2)定时特性
- 位定时:CAN总线的通信是基于时间的,每个位都有明确的时序要求。CAN总线标准规定了位定时参数,包括位时间(bit time)、位同步时间(bit synchronization time)等。位定时的准确性对于CAN总线的正常通信至关重要。
- 帧定时:CAN帧的传输是基于一组连续的位,每个CAN帧都有自己的传输时间。CAN总线标准规定了帧定时参数,包括帧时间(frame time)、帧间隔时间(interframe spacing time)等。帧定时的准确性决定了CAN帧的传输效率和稳定性。
- 重传定时:当CAN节点发送的帧未能被正确接收时,会触发重传机制。重传定时规定了重传帧的发送时间,通常会在一定的时间范围内进行重传,直到帧被正确接收为止。
- 错误恢复定时:当CAN总线发生错误时,如位错误、帧错误等,会触发错误恢复机制。错误恢复定时规定了节点在检测到错误后的等待时间,以便重新尝试发送或接收数据。
(3)通信机制
CAN依赖于事件驱动的方式进行通信,在CAN网络中,通信是基于消息的,当一个节点有数据要发送时,它会在总线上发送一个CAN消息。其他节点在总线上接收到这个消息后,根据消息的标识符和数据来确定是否需要进行响应。
3.应用领域
CAN & CAN FD应用领域介绍:
声明:文章部分内容参考自互联网相关资料、文件等,不作为任何商业用途,如有侵权请联系删除。