0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN总线波形中为什么ACK电平偏高?

ZLG致远电子 2024-03-28 08:23 次阅读

在观察CAN通信波形时,我们会发现差分电平在ACK段突然增高,这是什么原因导致的呢?本文结合测试实例对ACK电平偏高的原因做简单分析。

74700860-ec99-11ee-9118-92fbcf53809c.jpg  ACK简介

ACK的作用:确认一帧报文是否正常接收。
以标准数椐帧为例,从结构上看分成7段,分别为起始段、仲裁段、控制段、数椐段、CRC校验段、ACK应答段、帧结束段,如图1所示:

7476c2c2-ec99-11ee-9118-92fbcf53809c.jpg

图1 标准数椐帧结构ACK段长度为2个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送ACK信号)向发送器发送一“显性”的位以示应答。如图2(CANScope测试的ACK段波形图)所示:

747bce5c-ec99-11ee-9118-92fbcf53809c.png

图2 ACK应答位结构

应答间隙:所有接收到匹配CRC序列(CRC SEQUENCE)的节点会在应答间隙(ACK SLOT)期间用一“显性”的位写入发送器的“隐性”位来作出回答,由于CAN总线线与的原理,只要总线上有一个节点正确接收到数据,则ACK SLOT就会被填入显性电平。

ACK界定符:ACK界定符是ACK场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙(ACK SLOT)被两个“隐性”的位所包围,也就是CRC界定符(CRC DELIMITER)和ACK界定符(ACK DELIMITER)。

当一个接收节点接收的帧起始到CRC段之间的内容没发生错误时,它将在ACK段发送一个显性电平。如图3所示:

74945756-ec99-11ee-9118-92fbcf53809c.png

图3 ACK应答过程分析

7499dcd0-ec99-11ee-9118-92fbcf53809c.jpg  CAN总线ACK电平偏高原因分析

以使用ZLG致远电子ZPS-CANFD测试某电车CAN网络为例,20多个CAN节点采用手牵手方式组网,线两端各接120欧电阻,通讯能够正常,但差分信号波形应答位电平偏高较多,如图4所示,从CANScope的波形图中可以清楚的看到ACK电平突增。

74a45be2-ec99-11ee-9118-92fbcf53809c.jpg

图4 CAN数椐帧波形分析

CAN总线通信存在异常?ACK应答有问题?——NO.

分析如下:

首先,我们看一款CAN收发器的典型内部结构图,CANH、CANL连接总线。

74a8407c-ec99-11ee-9118-92fbcf53809c.jpg

图5 CAN收发器的典型内部结构图总线显性时(逻辑为0),收发器内部Q1、Q2导通,CANH、CANL之间产生压差;隐性时(逻辑为1),Q1、Q2截止,CANH、CANL处于无源状态,压差为0。

按照标准,在总线输出为显性时,CANH=3.5V,CANL=1.5V,差分分电平:CANH-CANL=2V,总线网络电阻为60欧,流经终端电阻的电流约为33mA(2V/60欧);

然而,CAN收发器在输出显性时,CANH电平并不是标准的3.5V,而是5V(VCC)通过一个二极管降压得到的,二极管的压降由负载电流决定。图6所示的VDH为CANH对应的二极管压降,VDL为CANL对于的二极管压降,流过的电流越大,二极管的压降就越大。可知:

CANH的电压=5V-VDHCANL的电压=0V+VDL74af8224-ec99-11ee-9118-92fbcf53809c.png
图6 AN收发器等效结构

在CAN总线网络中,当一帧报文被各个节点接收时,在ACK阶段,多个CAN节点同时响应(都发显性),流过终端电阻的电流被各个CAN节点均分,那么平均到每个节点的电流就减小了,如下图所示,VDH、VDL的压降也减小,相应CANH-CANL的差分电压就增大了,即ACK应答电平偏高。

74bd6510-ec99-11ee-9118-92fbcf53809c.png

图7 CAN网络等效结构

7499dcd0-ec99-11ee-9118-92fbcf53809c.jpg  ACK的意义

当CAN总线上只有一个节点可收发数据时,总线上因无接收节点在ACK SLOT时间内发送“显性”位填充,而始终保持隐性,发送者会检测到这个隐性位而知道发送失败,此条报文需要重发。因此这个节点会一直重发数据直到发送成功或发送被取消。当总线上有多个CAN节点组网通信时,由于总线电平线与的原理,只要总线上有一个节点正确接收到数据,则ACK SLOT就会被填入显性电平(此时认为数据帧发送成功),那么,接收错误的节点如何来告知发送者此次发送不成功呢?这就要用到CAN的错误帧,当一个接收节点收到错误数据时,它立即广播发送一个错误帧,其它的节点和发送者也都会收到这个错误帧而丢掉此次报文,发送节点重新发送,这才是ACK 的意义。

7499dcd0-ec99-11ee-9118-92fbcf53809c.jpg  总结

作为国内CAN总线系统解决方案供应商,同时也是CIA协会在中国最主要的CAN总线技术传播的窗口,目前广州致远电子的产品覆盖了从分析诊断设备、接口转换设备、到协议组网设备等全面系统的CAN总线产品家族,可为用户提供完整的CAN总线解决方案。74d8d93a-ec99-11ee-9118-92fbcf53809c.png 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN总线
    +关注

    关注

    145

    文章

    1940

    浏览量

    130661
  • 接收器
    +关注

    关注

    14

    文章

    2460

    浏览量

    71825
  • ACK
    ACK
    +关注

    关注

    0

    文章

    28

    浏览量

    11139
收藏 人收藏

    评论

    相关推荐

    什么是CAN总线通信?CAN总线工作原理

    这意味着变送器通过CAN收发器改变总线电平,并将其信息传输到CAN总线。接收器通过监测总线
    发表于 02-19 14:53 6216次阅读
    什么是<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信?<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>工作原理

    CAN总线几种正常的“异常”波形

    CAN波形一定都是标标准准的方波吗?其实并非如此,今天就把CAN总线上的幅值“异常”归归类。CAN-bus信号产生原理众所周知,一个标准
    的头像 发表于 06-26 08:25 2432次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>几种正常的“异常”<b class='flag-5'>波形</b>

    ADM3053在CAN总线上显示错误的信号电平如何解决?

    的检测,因为“丢失的”ACK将导致出现此错误帧。我们无法通过ADM3053触发数据流的丢失位,但根据我的观点,如果ACK位丢失,所有其他位也可能丢失。丢失意味着逻辑低电平(必须是
    发表于 01-03 09:00

    CAN总线测试,示波器测量差分信号波形发现应答位电平偏高很多,这个是怎么回事,有何影响,如何处理?

    应答位电平偏高很多,模块少一点相对会低一点,仅当只有两个模块时应答位电平才和正常数据显性电平一制,不知道这个是怎么产生的,会不会影响到通讯或芯片寿命。下图附示波器
    发表于 10-27 11:39

    CAN报文中ACK应答错误的检测原理

    的含义。 下面我们通过一个实例来看看CAN节点是如何进行ACK SLOT的动作的。我们抓取一个总线上面的信号波形,此波形已经是通过82C25
    发表于 07-02 05:22

    ADM3053在CAN总线上显示错误的信号电平

    ADM3053偶尔出现问题。症状是ADM3053没有通过ACK正确确认CAN消息。ADM3053后的CAN控制器尝试发送主动电平,但ADM3053在
    发表于 12-05 09:17

    CAN总线波形为什么ACK电平偏高

    CAN总线一直以实时性强、传输距离远、抗干扰能力强、数据保证到达等特点而广泛应用于高可靠性的场合。但常常在观察CAN通信波形时,我们会发现差分电平
    发表于 07-05 15:08 9446次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>波形</b><b class='flag-5'>中</b>为什么<b class='flag-5'>ACK</b><b class='flag-5'>电平</b><b class='flag-5'>偏高</b>?

    CAN总线波形为什么ACK电平偏高

    CAN总线一直以实时性强、传输距离远、抗干扰能力强、数据保证到达等特点而广泛应用于高可靠性的场合。
    发表于 07-11 15:45 19次下载

    CAN总线是什么?CAN总线数据链路层又是什么?

    CAN 总线的物理连接只需要两根线,常称为 CAN_H 和 CAN_L,通过差分信号进行数据的传输。CAN
    发表于 07-11 16:31 1.3w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>是什么?<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>数据链路层又是什么?

    CAN总线定义与CAN协议的基本概念

    CAN-H和CAN-L)的电位差来确定总线电平,在任一时刻,总线上有2种电平:显性
    发表于 12-27 13:40 3.2w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>定义与<b class='flag-5'>CAN</b>协议的基本概念

    CAN总线波形ACK电平为什么会偏高

    摘要:如果CAN总线中有多个节点,在某一点测试CAN总线波形(CANH和CANL之间)时,会发现在一帧数据的末尾
    发表于 06-14 13:44 4571次阅读

    CAN总线的显性电平与隐性电平

    CAN总线的书时,都会涉及到总线电平的问题,CAN总线
    发表于 04-19 16:58 21次下载

    高速CAN总线和低速CAN总线区别分析

    高速CAN总线上为显性电平(逻辑0)时,CAN_H为3.5V、CAN_L为1.5V,此时电压差是2V,显性状态的
    发表于 09-13 16:57 4638次阅读

    CAN总线电平逻辑介绍

    分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。 每一个设备既可做主设备也可做从设备。CAN总线的通信距离可达10千米(速率低于5Kbps
    的头像 发表于 11-09 18:11 1635次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>和<b class='flag-5'>电平</b>逻辑介绍

    can总线的故障波形有哪些

    详细介绍CAN总线的故障波形及其原因和解决方法。 故障波形概述 故障波形是指在CAN
    的头像 发表于 06-16 10:04 1695次阅读