中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 278查看
  • 0回复

[模块网络] 什么情况会导致CAN错误帧?

[复制链接]


该用户从未签到

发表于 19-3-2025 20:21:14 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在我们使用CAN通信的时候,难免会因为各种各样的情况遇到错误帧,那到底什么情况会导致错误帧呢?今天一起来分享一下。首先我们回忆一下哪些情况会导致错误帧。1.CRC校验错误。为了增加通信的准确性, 保证发送节点发出的数据等于接收节点接收到的数据, CAN数据帧中加入了CRC校验功能, 即发送节点对数据帧中起始段、 仲裁段、 控制端和数据段中的数据通过某种算法计算得到一个CRC值, 并将该值填入CRC段中 (CRC段由15个bit位的数值段和1个bit位的界定符组成, CAN控制器计算的CRC值就存在前15个bit位的数值段中), 然后向总线上发送, 接收节点收到数据后, 会对同样数据段的数据以同样的算法进行CRC计算, 并将计算结果与数据帧中的CRC值进行比对, 当接收节点计算得到的CRC值与发送节点发送的CRC值不一致时会发生CRC校验错误,并由接收节点向总线发送CRC校验错误帧, 该功能由CAN控制器自动完成。2.格式错误。如果总线上传输的数据帧格式与协议规定的帧格式不符合, 就会发生格式错误。比如, 在数据帧和远程帧中的CRC段、 ACK段和帧结束段EOF, 存在1个bit位的CRC界定符、 1个bit位的ACK界定符和7个bit位的帧结束符, 它们均被定义为隐性电平, 如图2所示, 若在这些位置上出现显性电平, 则视为一种格式错误, 接收节点和发送节点都可能向总线发送该种类型错误帧。3.应答错误。发送节点向总线发送数据帧时, 会在ACK段发送2个隐性位, 接收节点在收到CRC序列后, 如果接收过程没有出现错误, 接收节点会在ACK段的第1位发出一个显性电平, 该显性电平会覆盖原来发送节点发出的隐性电平, 因此发送节点可以监测总线上该位是否为显性位来判断该数据帧是否传输成功。如果发送节点在ACK段的第1位没有监测到接收节点发出的显性电平,就意味着没有任何节点接收到该帧, 此时将发生应答错误。即一个网络中如果只有单个CAN节点, 单个节点的CAN设备发送数据帧时将会发生该错误 (没有接收节点,不会有节点对数据帧产生应 答) , 并由发送节点向总线发出该错误帧。4.位发送错误。发送节点向总线发送数据时, 同时也会监控发送的数据与总线上实际数据是否一致。如果发送节点在发送数据时发现总线电平与正在发送的信号电平不符, 将发生位发送错误, 位发送错误帧由发送节点向总线发出。5.位填充错误。为了使收发节点保持同步以便接收节点正确接收信号, 接收节点需要在边沿信号处进行重新同步。为了避免总线上长时间不出现边沿信号, 协议规定发送节点的数据链路层能够发送的连续相同位最大个数为5, 若连续相同位个数达到5个, 需要在其后添加一个相反的位, 使总线上信号电平发生翻转, 从而接收节点得以进行重新同步, 即位填充规则 (位填充区域包含帧起始、 仲裁域、 控制域、 数据域和15位CRC, 不包含CRC界定符、 ACK段和EOF)。如果发送节点向总线上传输信号时违反了位填充规则, 接收节点检测到连续6个极性相同的位序列时, 将发生位填充错误, 并向总线发送错误帧。
那有哪些情况会导致错误帧呢?1. CAN总线过长。CAN通信距离与通信速率紧密相关,波特率越高,CAN通信距离越短,反之波特率越低, CAN通信距离越长。当总线支线过长时,线束的阻抗和容抗会增大, 下降沿容易产生弯曲现象,容易导致位宽度失调,从而使接收节点接收数据错误, 同时向总线发出错误帧。为了保证正常通信,需要减小CAN终端电阻,线束越长,电阻值越小,但一般不小于30Ω,否则会使显性位差值过小,不满足ISO 11898要求。
2.总线电容过大。CAN收发器为了实现CAN的仲裁与错误处理, 采用单向驱动结构, 即CAN波形的上升沿有驱动, 而下降沿是通过整条总线与终端电阻放电产生的, 所以终端电阻的第一作用是放电。因此, CAN节点及CAN线束的电容会影响整个网络的电容, 电容越大, 下降边沿越缓, 导致接收节点发生位采样错误, 从而导致错误帧的产生。一般需要保证CAN线电容在40~70pF/m范围内。
3.波特率配置错误。为了使接收方能够正确地解析数据, 通信双方需要提前约定波特率。软 件 中可以直接配置相应的寄存器即可配置波特率, 例如, 当整车波特率为500kB时 ,此时位时间为2us, 那么发送方就可以按照2us的位时间发送数据, 接收方每隔2us对数据进行采样。因此, 如果同一CAN网络中不同节点配置的波特率不一致, 总线会出现错误帧, 收发节点是无法正常通信的。
4.采样点设置错误。采样点是CAN控制器读取总线电平并解释各个比特位逻辑值的时间点。由于CAN报文的一个位时间由若干个Tq组成 (CAN控制器的最小时间周期称作时间份额Tq, 它是通过对芯片晶振周期进行分频而得来的),通常为8~25个,同时根据功能分为4个阶段:同步段、 传播段、 相位缓冲段1和相位缓冲段2。采样点即为在某位时间内读取总线电平的时刻, 如图6所示。采样时刻的设置通过配置寄存器决定, 对于同一CAN整车网络, 各个节点应该尽量使用相同的采样点位置, 否则容易出现采样错误, 进而使整个网络的通信出现故障。
5.收发报文报文ID冲突。ID是数据帧中仲裁段的组成部分, ID的大小决定了总线上节点冲突时各节点发送顺序, 整车上通信的报文数量级在几十甚至上百, 如果这些报文的ID重复, 总线上会出现错误帧。
6.总线干扰过大问题。其新能源电动汽车和发电机组等存在变频器、 逆变器、 电机驱动、继电器、 电磁阀等电流剧烈变化的线缆或设备, CAN整车通信信号受到的电磁干扰尤为显著。为此整车上往往采用提高CAN双绞程度、 加单双屏蔽层、 使用CAN隔离模块、弱电远离强电优化布线等方式以提高整车CAN通信抗干扰能力。此外,使用低阻抗、 低容抗的CAN线也可以提高信号品质, 提高抗干扰能力。


-end-


分享不易,恳请点个【👍】和【在看】

  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 19-3-2025 21:57:01 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生是由多种情况导致的。首先,CRC校验错误是一个常见情况,如果发送节点计算出的CRC值与数据帧中的CRC值不匹配,就会产生错误帧。此外,位场错误也是一个重要原因,例如在数据传输过程中由于电磁干扰或其他原因导致的位场变化,接收节点可能无法正确解析数据帧。还有如应答错误等情况也可能导致错误帧的产生。这些都要求我们在设计和管理CAN系统时,要确保通信环境的稳定和数据的完整性,以减少错误帧的发生。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:01 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生是由多种情况导致的。首先,CRC校验错误是一个常见情况,如果发送节点计算出的CRC值与数据帧中的CRC值不匹配,就会产生错误帧。此外,位场错误也是一个重要原因,例如在数据传输过程中由于电磁干扰或其他因素导致数据位发生变化,接收节点无法正确解析数据帧时,就会形成错误帧。其他可能导致错误帧的情况还包括应答错误、填充错误等。在实际应用中,应确保CAN通信系统的稳定性,以减少错误帧的产生。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生有多种原因。首先,最常见的是CRC校验错误,当发送节点计算出的CRC值与接收节点接收到的数据帧中的CRC值不匹配时,就会产生错误帧。此外,位场错误也是一个重要因素,如果CAN总线上的信号受到干扰导致接收到的数据位场发生变化,也会产生错误帧。同时,如果发送节点在总线上发送的数据超过其波特率允许的最大长度或最小长度,同样会产生错误帧。因此,为确保CAN通信的准确性,我们必须确保网络中的信号稳定可靠,并且保证各节点的硬件配置符合通信要求。除此之外,还有许多其他原因可能导致错误帧的产生,需要进一步深入研究与解决。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:03 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生主要由以下几种情况导致:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段中的值进行比较,若两者不一致则产生错误帧。
    2. 位场错误:数据通信过程中,由于电磁干扰等原因,可能会导致数据传输出现意外的变化,如数据位的跳变,从而产生错误帧。
    3. 填充错误:当数据帧在传输过程中出现延迟,导致后续数据溢出时,CAN控制器会识别为错误帧。
    4. 形式错误:如帧界定符错误、标识符错误等,这些错误的帧格式也会导致接收节点无法正确解析数据帧而产生错误响应。

    为了保障CAN通信的稳定性和可靠性,工程师需要熟悉这些常见错误原因,并采取相应措施进行预防和解决。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:03 | 显示全部楼层
    在汽车行业中使用CAN通信时,导致CAN错误帧的情况有多种。首先,CRC校验错误是常见的情况,发送节点计算数据帧的CRC值并与接收节点接收到的数据进行对比,若两者不匹配则产生错误帧。除此之外,信号干扰、总线负载过高、节点故障、通信协议不匹配等情况也可能导致错误帧的产生。这些情况都可能破坏数据通信的完整性,导致CAN系统无法正确解析数据帧,从而产生错误帧。因此,为了保证CAN通信的可靠性,需要注意避免以上情况的发生。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车行业中使用CAN通信时,错误帧的产生是常见现象,主要由以下几种情况导致:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段中的值进行比较,若不一致则产生错误帧。
    2. 干扰和噪声:电磁干扰或噪声可能影响通信,导致数据位发生变化,进而产生错误帧。
    3. 总线短路或断路:CAN总线物理层的故障也会导致通信错误。
    4. 节点故障:发送或接收节点内部故障也可能导致错误帧的产生。

    为确保CAN通信的可靠性,需对以上情况进行监控和排查。在设计和使用CAN通信系统时,应采取相应措施以减小错误帧产生的可能性。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

     楼主| 发表于 19-3-2025 21:57:03 | 显示全部楼层
    在汽车行业中使用CAN通信时,错误帧的产生是常见现象,主要由以下几种情况导致:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段中预存的参考值对比,若不一致则产生错误帧。
    2. 填充错误:当数据在传输过程中由于干扰等原因导致位流发生变化时,可能触发填充错误。
    3. 位时序错误:如发送和接收节点的时钟偏差过大,会导致数据同步问题进而产生错误帧。
    4. 总线短路或断路:物理层的损坏同样会引发错误帧。

    为减少错误帧的出现,应确保硬件连接稳定、遵循通信协议规定,并考虑电磁兼容性设计。遇到错误帧时,需检查通信节点硬件及连接,并考虑增加错误处理和重发机制。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生是由多种情况导致的。首先,CRC校验错误是一个常见情况,如果发送节点计算出的CRC值与数据帧中的CRC值不匹配,就会产生错误帧。此外,当信号传输过程中受到干扰,导致数据位发生跳变时,也会产生错误帧。同时,如果总线上的节点过多,信号在传输过程中可能会产生碰撞,也会导致错误帧的产生。此外,节点自身的故障,如发送缓存溢出、接收器灵敏度不足等也会导致错误帧的出现。在实际应用中,我们应定期检查和维护CAN系统,避免这些因素导致错误帧的产生,以确保CAN通信的准确性和稳定性。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:01 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生是由多种情况导致的。首先,CRC校验错误是一个常见情况,如果发送节点计算出的CRC值与数据帧中的CRC值不匹配,就会产生错误帧。此外,位场错误也是一个重要原因,例如在数据传输过程中由于电磁干扰或其他因素导致数据位发生变化,接收节点无法正确解析数据帧时,也会发生错误帧。另外,如果发送节点在总线上发送的数据超过其被分配的时间,即超时,也会产生错误帧。此外,还有一些其他因素如硬件故障、线路干扰等也可能导致错误帧的产生。总的来说,CAN通信中错误帧的产生是由多种因素共同影响的。
    回复 支持 反对

    使用道具 举报

    
    该用户已被删除
    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生主要由以下几种情况导致:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段中的值进行比较,若两者不一致则产生错误帧。
    2. 位场错误:在数据通信过程中,由于线路干扰或节点故障,可能会导致数据位场发生变化,从而产生错误帧。
    3. 填充错误:当CAN总线上的节点未能正确接收前一位的数据时,会触发填充错误。
    4. 格式错误:如帧起始位、仲裁段、控制段或数据段格式不符合规定,会导致接收节点无法正确解析数据,从而产生错误帧。

    了解这些可能导致错误帧的情况后,我们可以针对性地进行故障排查与修复,确保CAN通信的可靠性。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:01 | 显示全部楼层
    在汽车行业中使用CAN通信时,导致CAN错误帧的情况有多种。其中包括:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段进行比对,若不一致则产生错误帧。
    2. 填充错误:数据帧在传输过程中,若发送与接收节点的波特率存在偏差导致接收数据的时间超出规定时间窗口,则会触发填充错误并产生错误帧。
    3. 位序错误:数据帧中的位序发生变化时,接收节点无法正确解析数据并会发送错误帧。此外,发送节点发送的帧格式超出其掩码范围也会导致错误帧的产生。

    在实际应用中,应确保硬件连接稳定、网络配置正确,以降低错误帧的出现概率。出现错误帧时,需及时检查并排除故障。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生主要由以下几种情况导致:

    1. CRC校验错误:当发送节点计算出的CRC值在传输过程中发生改变,或者接收节点计算出的CRC值与发送的CRC值不匹配时,会产生CRC校验错误。这可能是由于通信线路受到干扰或者节点内部处理错误造成。

    除此之外,还有其他因素如位时序错误、总线空闲时的错误状态等也可能导致错误帧的产生。这些错误会影响CAN通信的准确性和稳定性,因此在实际应用中需要采取相应的措施来预防和解决这些错误。
    回复 支持 反对

    使用道具 举报

    
  • TA的每日心情

    1435747603
  • 签到天数: 1 天

    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车CAN通信系统中,错误帧的产生主要由以下几种情况导致:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段中的值进行比较,若不匹配则产生错误帧。
    2. 填充错误:当数据在传输过程中由于延迟或中断导致数据位插入不当,产生错误帧。
    3. 位时序错误:在数据传输过程中,接收节点检测到信号时间出现异常导致位时序错误,从而触发错误帧。
    4. 发送缓冲器溢出:发送节点内部存储数据过多,无法及时处理新数据,可能导致数据丢失或错乱从而产生错误帧。

    在实际应用中,这些错误情况都是可能发生的。为了减少错误帧的出现,需要对CAN通信系统进行合理设计和优化,确保系统的稳定性和可靠性。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 19-3-2025 21:57:02 | 显示全部楼层
    在汽车行业中使用CAN通信时,错误帧的产生是常见的情况。导致CAN错误帧的主要原因包括:

    1. CRC校验错误:发送节点计算数据帧的CRC值并与CRC段进行对比,若不匹配则产生错误帧。
    2. 填充错误:数据帧中的位场可能因噪声或其他干扰而翻转,导致数据破坏。
    3. 位时序错误:节点发送或接收数据时,若位时间监控发现异常,会产生错误帧。
    4. 总线负载过重:当CAN总线上的通信过于繁忙时,可能导致通信错误产生错误帧。

    了解这些原因有助于我们在遇到错误帧时迅速定位和解决问题,保证CAN通信的可靠性。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 13-7-2025 08:17 , Processed in 0.368265 second(s), 46 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.