CAN和CANFD通信协议区别_第1页
CAN和CANFD通信协议区别_第2页
CAN和CANFD通信协议区别_第3页
CAN和CANFD通信协议区别_第4页
CAN和CANFD通信协议区别_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

因为CAN总线速度的优势,再加上CAN的应用非常广泛,所以,做嵌入式开发一定要了解或掌握CAN的一些基础知识。1.概述CAN(ControllerAreaNetwork)和CANFD(ControllerAreaNetworkFlexibleData-rate)是一种常用于汽车和工业领域的通信协议。CAN协议最初是由德国的博世公司(Bosch)在20世纪80年代开发的,旨在解决汽车电子设备之间的通信需求。它是一种高效可靠的串行通信协议,可支持在短距离上的高速数据传输。CAN协议以事件触发的方式进行通信,允许多个设备同时参与通信,并通过优先级机制确保数据传输的实时性和可靠性。ClassicCAN,传统CAN,有时也称为经典CAN或普通CAN。CAN协议的特点包括双线制:CAN总线由CAN_H和CAN_L两根传输线组成,用差分信号传输数据,以提高抗干扰性能。冲突检测与冲突解决:多个设备同时发送数据时,CAN协议能够检测到冲突并通过优先级机制解决。帧格式简单:CAN消息由ID、数据、控制位和CRC校验组成,具有较小的开销和较高的数据传输效率。容错能力强:CAN协议使用位级错误检测和错误恢复机制,能够实现高可靠性的数据传输。随着汽车电子系统的发展和数据通信需求的增加,CANFD协议应运而生。CANFD在保持CAN协议基本特性的同时,增加了一些新的特性,主要是在数据传输速率和数据长度上的增强。相对于传统的CAN协议,CANFD支持更高的数据传输速率(最高可达到8Mbps)和更大的数据长度(最多可传输64字节的数据)。这使得CANFD能够满足对数据带宽要求更高的应用场景,如高级驾驶辅助系统(ADAS)和自动驾驶领域。CANFD协议是由Bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入ISO11898-1:2015。原始的BoschCANFD版本(非ISOCANFD)与ISOCANFD是不兼容。CANFD具有四个主要优点:增加了数据的长度:CANFD每个数据帧最多支持64个数据字节,而传统CAN最多支持8个数据字节。这减少了协议开销,并提高了协议效率。增加传输的速度:CANFD支持双比特率;与传统CAN一样,标称(仲裁)比特率限制为1Mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5Mbit/s的数据比特率(实际应用中可以达到8Mbit/s,但没有标准)。更好的可靠性:CANFD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。这在汽车和工业自动化等安全攸关的应用中至关重要。平滑过渡:在一些特定的情况下CANFD能用在仅使用传统CAN的ECU上,这样就可以逐步引入CANFD节点,从而为OEM简化程序和降低成本。与传统CAN相比,CANFD可以将网络带宽提高3到8倍,效率可从50%提升到90%,从而为数据的增长提供了一种简单的解决方案。2.CAN协议2.1物理层与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。CAN物理层的形式主要有两种:闭环总线网络和开环总线网络。2.1.1闭环总线网络如下所示的图中的CAN通讯网络是一种遵循ISO11898标准的高速、短距离“闭环网络”,它的总线最大长度为40m,通信速度最高为1Mbps,总线的两端各要求有一个“120欧”的电阻。2.1.2开环总线网络如下所示的图中的是遵循ISO11519-2标准的低速、远距离“开环网络”,它的最大传输距离为1km,最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻。2.1.3ISO11898(闭环总线网络)和11519-2(开环总线网络)协议的不同点ISO11898和ISO11519-2标准对于数据链路层的定义相同,但物理层不同。ISO11898是通信速度为125kbps-1Mbps的CAN高速通信标准。ISO11519是通信速度为125kbps以下的CAN低速通信标准。下图描述了ISO11898和11519-2物理层的主要不同点。用户需根据系统需要设定通信速度及总线长度。2.1.4CAN协议中的差分信号差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1。CAN协议中对它使用的CAN_High及CAN_Low表示的差分信号做了规定,CAN协议标准表示的信号逻辑参见下表。

以高速CAN协议为例,当表示逻辑1时(隐性电平),CAN_High和CAN_Low线上的电压均为2.5v,即它们的电压差VH-VL=0V;而表示逻辑0时(显性电平),CAN_High的电平为3.5V,CAN_Low线的电平为1.5V,即它们的电压差为VH-VL=2V。例如,当CAN收发器从CAN_Tx线接收到来自CAN控制器的低电平信号时(逻辑0),它会使CAN_High输出3.5V,同时CAN_Low输出1.5V,从而输出显性电平表示逻辑0。在CAN总线中,必须使它处于隐性电平(逻辑1)或显性电平(逻辑0)中的其中一个状态。假如有两个CAN通讯节点,在同一时间,一个输出隐性电平,另一个输出显性电平,类似I2C总线的“线与”特性将使它处于显性电平状态,显性电平的名字就是这样来的,即可以认为显性具有优先的意味。由于CAN总线协议的物理层只有1对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN通讯是半双工的,收发数据需要分时进行。在CAN的通讯网络中,因为共用总线,在整个网络中同一时刻只能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。2.2协议层前文讲述了CAN的物理层标准,约定了电气特性,以下介绍的协议层则规定了通讯逻辑。2.2.1帧的种类通信是通过以下5种类型的帧进行的。•数据帧•遥控帧•错误帧•过载帧•帧间隔在这些帧当中,数据帧和遥控帧由用户设定,其他的帧由CAN的硬件部分完成。另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11位的ID,扩展格式具有29位ID。各种帧的用途如下表所示。2.2.2数据帧数据帧把消息从发送单元传到接收单元,是用户使用的最基本的帧。数据帧由7个段构成。(1)帧起始:表示数据帧开始。(2)仲裁段:表示该帧优先级的段。(3)控制段:表示数据的字节数及保留位。(4)数据段:数据本身,可传送0~8个字节。(5)CRC段:检查帧的传送错误的段。(6)ACK段:正常接收确认段。(7)帧结束:表示数据帧结束。2.2.3遥控帧接收单元向发送单元请求消息所用的帧。遥控帧由6个段组成,也可以说是没有数据段的数据帧。(1)帧起始(SOF):表示帧的开始。(2)仲裁段:表示该帧优先级的段。请求具有同样ID的数据帧。(3)控制段:表示所请求数据的字节数及保留位。(4)CRC段:检查帧的传送错误的段。(5)ACK段:正常接收确认段。(6)帧结束:表示遥控帧结束。关于遥控帧和数据帧:•数据帧和遥控帧有何不同遥控帧没有数据段,仲裁段的RTR位为隐性电平。没有数据段的数据帧和遥控帧可通过RTR位区别开来。•遥控帧没有数据段,数据长度码该如何表示?遥控帧的数据长度码以所请求数据帧的数据长度码表示。•没有数据段的数据帧有何用途?可用于各单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。2.2.4错误帧在收发信中发现错误时用于通知错误的帧。错误帧由错误标志和错误间隔符构成,错误帧的发送是由CAN的硬件部分来完成的。(1)错误标志:错误标志包括有效错误标志和无效错误标志两种。•有效错误标志:6位显性电平。•无效错误标志:6位隐性电平。(2)错误间隔符:错误间隔符由8位隐性电平构成。注1.有效错误标志:处于错误有效态的单元检出错误时传送的错误标志。2.无效错误标志:处于错误无效态的单元检出错误时传送的错误标志。3.错误标志的重合:由连接到总线上的各单元的错误检出时间不同,错误标志会发生重合,最长可延续到12位。2.2.5过载帧过载帧是用于接收单元通知其尚未完成准备所用的帧。过载帧由过载标志和过载间隔符构成。(1)过载标志:6位显性电平。过载标志的构成与有效错误标志的构成相同。(2)过载间隔符:8个隐性位。过载间隔符的构成与错误间隔符的构成相同。注1.过载帧的重合:与错误标志一样依据发生时序不同过载标志也会发生重合,最长可延迟到12位。2.2.6帧间隔帧间隔用于分隔数据帧或遥控帧。数据帧或遥控帧前插入帧间隔可将本帧与前面发送的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。但是,过载帧和错误帧前不能插入帧间隔。(1)间隔:3位隐性电平。在“间隔”期检测到显性电平时,一定要发送过载帧。然而,在间隔期的第3位出现的显性电平被认为是SOF,此时不发送过载帧。(2)总线空闲:隐性电平,无长度限制(0位亦可)。本状态为总线处于空闲中,要发送的单元可开始发送消息。(3)延迟传送(发送暂时停止):8个隐性电平。处于错误无效态的单元在发送完一个消息后的帧间隔中必须包含的段。2.2.7优先级的仲裁在总线空闲态,最先开始发送消息的单元获得通信权。多个单元同时开始传送时,各发送单元从仲裁段的第一位开始进行仲裁。位电平第一次出现不同而且位电平为显性的单元获得通信权发送。仲裁失败的单元在下一个位开始进入接收状态。仲裁的过程如下图所示:(1)数据帧和遥控帧的优先级具有同样ID的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性电平的数据帧具有优先权,可继续通信。(2)标准格式和扩展格式的优先级具有相同基本ID的标准格式与扩展格式的数据帧或遥控帧在总线上竞争时,由于标准格式的RTR位为显性电平,具有更高的优先权,可进行发送。2.2.8错误的种类错误共有5种。有时数种错误同时发生。•位错误•填充错误•CRC错误•格式错误•ACK错误错误的种类、错误的内容、出错的帧和检出错误的单元如下表所示。2.2.9位时序一个位可分为4段。•同步段(SS:SynchronizationSegment)•传播时间段(PTS:PropagationTimeSegment)•相位缓冲段1(PBS1:PhaseBufferSegment1)•相位缓冲段2(PBS2:PhaseBufferSegment2)这些段由最小时间单位Tq(TimeQuantum)构成。消息中的1位被分为4个段,每个段又由若干个Tq构成,这称为位时序。消息中的1位由多少个Tq构成、每个段又由多少个Tq构成、这些是可以任意设定的。通过设定位时序,总线上数个单元可以以相同的时序对消息采样,可以设定采样点。采样点设置在PBS1的结束处,以此时检测到的总线上的电平值作为该位的电平值。各段的用途和Tq数如下表所示。1位的构成如下图所示。2.2.10取得同步的方法CAN协议的通信方法为非归零NRZ(Non-ReturntoZero)方式。每个位上没有开始或终了的同步信号。发送单元以与位时序同步的方式开始发送数据。接收单元根据总线上电平的变化进行同步接收信号。但是,发送单元和接收单元存在的时钟频率误差及传送路径上的(电缆、驱动器等)相位延迟会引起同步偏差。因此接收单元通过强制同步、再同步的方法调整时序进行接收。2.2.11强制同步接收单元在总线空闲状态检出帧起始时进行的同步调整。检出从隐性电平到显性电平的边沿时被认为是SS段,与SJW无关。2.2.12再同步在接收过程中根据总线上的电平变化进行的同步。检出边沿(总线上的电平跳变)时,对照误差值并且根据SJW值延长PBS1段,或缩短PBS2段,以配合同步。但如果发生了超出SJW值的误差,按照SJW值作修正。2.2.13同步规则强制同步和再同步遵从如下规则。(1)1位中只进行一次同步调整(两次采样点间)。(2)只有当边沿后的总线电平与边沿前一个总线采样值不同时,该沿才能用于同步。(3)一旦检测到隐性电平到显性电平的边沿,如果满足条件(1)、(2)须进行同步。(4)帧间隔(“间隔”的第1位除去)中检测到隐性电平到显性电平的边沿时,须进行强制同步。(5)其他所有的隐性电平到显性电平的边沿,须进行再同步。(6)发送单元观测到自身输出的显性电平有延迟时不进行再同步。2.3CANFD框架CANFD可以理解成CAN协议的升级版,只升级了协议,物理层未改变。CANFD协议引入了经过调整的CAN数据帧,以实现额外的数据字节和灵活的比特率。下面我们比较一个11位的传统CAN帧与一个11位的CANFD帧(同时也支持29位):下面我们一步一步地讨论这些差异:RTR与r1(RRS):传统CAN中使用了远程传输请求RemoteTransmissionRequest(RTR)来识别数据帧和相应的远程帧。但在CANFD中,不支持远程帧,远程请求替换(r1)始终是显性(0)。在CAN-FD帧中,在控制字段中添加了三个新位(FDF、BRS、ESI位):•扩展数据长度ExtendedDataLength

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论