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

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

3天内不再提示

科普系列: CAN/CAN FD采样点及其测试简介

北汇信息POLELINK 2023-01-29 13:56 次阅读


作者 |Andrei小编 | 吃不饱
当ECU之间使用CAN来进行通信时,总线上发生了什么?我们可以借助示波器来观察总线上的电平,而从示波器上我们可以看到一串连续的高低起伏的“线条”——波形。无论是电磁波或者是总线上变化的电平,这些信息的载波在时间和空间上是连续的。而从这段连续的载波中解读出我们所需要的信息就需要借助一定的采集手段——采样。CAN控制器需要从总线的高低电平中获取到逻辑0和1。那么控制器要在哪个位置采样?要怎样才能实现正确采样呢?这就涉及到了采样点这个概念。01采样点的定义采样点是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。在我们了解采样点的测试方法之前,我们需要先了解CAN报文的一个位时间是如何组成的。CAN控制器的最小时间周期称作时间份额(Time quantum,简称Tq),它是通过对芯片晶振周期进行分频而得来的。一个位时间由若干个Tq组成(通常为8到25个),同时根据功能分为4个阶段:同步段、传播段、相位缓冲段1和相位缓冲段2。
390057b8-977b-11ed-ad0d-dac502259ad0.png

4个阶段的功能如下

同步段(Sync_Seg):用于实现时序调整,总线上各个节点的跳变沿产生在同步段内,通常为1个Tq;传播段(Prop_Seg):用于补偿网络上的物理延迟时间。这些延迟时间包含信号在总线上的传输延迟和CAN节点内部的处理延迟。传播段保证了2倍的信号在总线上的延迟时间;相位缓冲段1(Phase_Seg1)和相位缓冲段2(Phase_Seg2):用于补偿跳变沿的相位误差,其长度会在重同步的实现过程中延长或缩短。采样点位于相位缓冲段1的结尾。由于相位缓冲段1和相位缓冲段2能够延长或缩短,采样点也能够随之变化。02为什么需要测试采样点?
合适的采样点位置是CAN控制器正常通信的保证。

对于CAN网络这个整体而言,各个节点应该尽量使用相同的采样点位置,否则容易出现采样错误,进而使整个网络的通信出现故障;

对于单个节点而言,过早的采样使得节点易受位时间初期的电平波动影响,进而导致采样错误;

受限于重同步的要求和相位缓冲段的宽度,CAN控制器无法过晚采样。

03采样点的测试方法
采样点的测试方法:干扰某一位的采样点附近的总线电平,利用CAN错误帧机制,根据ECU是否发送错误帧来判断是否出现采样错误,进而计算ECU的采样点。根据ECU角色的不同,采样点测试的方法可以分为两类:以ECU作为发送节点,干扰它发送的报文;以ECU作为接收节点,干扰它接收的报文。实际测试环境的总线干扰设备采用VH6501,并以待测ECU作为接收节点,使用VH6501构建仿真报文,然后从后往前逐次翻转仿真报文数据场的时间份额的电平极性,直到总线上出现错误帧。39122420-977b-11ed-ad0d-dac502259ad0.png

在开始采样点测试之前,我们需要设置VH6501自身的采样点;

VH6501使用一连串的脉冲电平来构建仿真报文;

从后往前逐次翻转仿真报文数据场的各个脉冲的电平极性,直到干扰到待测ECU的采样点,使得待测ECU发送错误帧。

在执行采样点的测试过程中,我们使用示波器截获CAN总线上的波形。样件使用500 Kbps的传统CAN,即位时间为2 μs。示波器时基设置为8 μs,即一个横格可容纳4个位。

3920c14c-977b-11ed-ad0d-dac502259ad0.png


上图为没有受到干扰的报文的波形图,图中我们可以清晰地看到数据场的每个比特占用均等的1/4横格。而当我们启动干扰(极性翻转),并且成功翻转采样点所在区间的电平极性后,我们将看到示波器上出现了错误帧,并且数据场最后一个字节的最后一个隐性位相较于正常的波形有着明显的缩短。

392e0820-977b-11ed-ad0d-dac502259ad0.png

04采样点测试误差产生的原因
采样点测试误差的来源有测试环境、设备和测试方法等等。

VH6501和待测ECU之间的位时间偏差造成的系统误差:理想情况下500 Kbps的传统CAN的位时间长度为2 μs,但实际环境里,待测ECU和VH6501的位时间与标准的位时间之间存在一定的偏差。如果ECU的位时间大于VH6501的位时间,采样点的测量结果会比实际值偏大;当样件的位时间小于CANoe设定的位时间,采样点的测量结果会比实际值偏小。这样的系统误差无法通过改进测量方法来降低。

测试方法引起的误差:前文介绍采样点测试方法中提到,采样点测试是通过VH6501翻转待测ECU采样点附近的电平极性实现的。但是采样点是一个“时间点”,而VH6501干扰的是时间段。因此每次干扰的时间段的长度将直接影响采样点测试的误差大小。常用的测试方法中,每个位时间由16个Tq组成,每次翻转一个Tq。最终的实际结果相对于正确结果可能存在±6.25%的偏差。但是在介绍采样点测试方法中我们提到,VH6501使用脉冲序列来构建报文,每个位时间由320个脉冲组成。那么通过缩小每次翻转的电平长度,可以将±6.25%的误差缩减至±0.3125%。


05CAN FD采样点测试复杂原因的分析
CAN FD报文的结构更复杂且位速率可变。这使得CAN FD采样点测试相较于传统CAN更复杂。CAN FD在位速率较小的仲裁场和位速率较大的数据场分别采用了两个不同的采样点。

393de93e-977b-11ed-ad0d-dac502259ad0.png


CAN FD数据场的位速率视报文的BRS位(Bit rate switch)而调整-当BRS位检测为隐性时,CAN FD的位速率将从仲裁场的最小位速率切换为数据场的数据位速率,这一位速率将持续至CRC界定符的采样点。因此在测量CAN FD采样点时应避免对BRS和CRC界定符进行干扰。同时由于位时间的差异,使用VH6501构造脉冲序列时应考虑到BRS和CRC界定符采样点前后的位速率的切换以及位时间4个阶段的长度变化。
06CAN FD的第二采样点
不同于采样点,第二采样点在CAN FD控制器接收其他节点发送报文的过程中并不会起到任何作用。第二采样点的作用,是在不改变传输延迟补偿的情况下,实现CAN FD在数据场的位错误检测要求。
位错误的检测要求发送节点对总线状态进行回读。传统CAN总线在设计之初考虑到了信号在总线上的传播时延以及发送节点TXD和RXD之间的处理时延,这两种时延通过位时间的传播段实现补偿,进而保证了发送节点在发送一个比特期间也能从总线上回读到这个比特。ISO 11898-5规定传输时延的上限为255 ns。位速率为8 Mbps的CAN FD节点的位时间为125 ns。以极限状态下1个位时间由8个Tq组成来计算,单位Tq为15.625 ns。即传输时延需要17个Tq来补偿。显然一个位时间完全不够来补偿传输时延。

解决方法有两种。一是增大位时间,增大传播段的Tq组成数量,但是这种方法会降低位速率,因此和CAN FD高速目标相冲突。二是采用传输时延补偿,即在发送节点回读总线状态时引入一段传输时延补偿,进而保证位错误检测的需要。而引入这段传播时延补偿的结果即为第二采样点(secondary sample point,缩写 SSP)。

SSP对于CAN FD控制器的重要性不言而喻,它是保证控制器在数据段实现位错误检测功能的关键。使用SSP的发送节点会忽略它在采样点检测到的位错误。但是如果在SSP检测到位错误,发送节点将会在下一个采样点对检测到的位错误发出错误帧。

07小结
ECU采样点的位置设计是否得当对于通信有着相当大的影响。本文重点介绍了传统CAN采样点的测试方法,并简要分析采样点测试的误差产生原因,同时就CAN FD采样点测试的复杂性和第二采样点进行了介绍。
北汇信息专注于汽车电子测试,后续将会为大家带来更多的科普文章,介绍汽车电子及测试相关的知识。同时,也包括本文中所提到的CAN FD第二采样点SSP的测试实践经验。注:图片源自ISO 11898标准以及VC等。

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

    关注

    450

    文章

    49583

    浏览量

    416884
  • 示波器
    +关注

    关注

    113

    文章

    6086

    浏览量

    183328
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2657

    浏览量

    462385
收藏 人收藏

    评论

    相关推荐

    MCAN(CAN FD)模块入门

    电子发烧友网站提供《MCAN(CAN FD)模块入门.pdf》资料免费下载
    发表于 09-14 10:08 0次下载
    MCAN(<b class='flag-5'>CAN</b> <b class='flag-5'>FD</b>)模块入门

    从替代到创新,国产CAN FD芯片持续突破

    电子发烧友网报道(文/吴子鹏)随着汽车电子、工业自动化设备的发展迭代,CAN总线上的设备、数据量都大大增加,给CAN总线带来了极大的挑战。因此,CAN FD应运而生。
    的头像 发表于 09-02 08:13 5004次阅读

    虹科技术 全新Linux环境PCAN驱动程序发布!CAN/CAN FD通信体验全面升级!

    全新8.17.0版本的PCAN-Linux驱动程序正式发布,专为CANCAN FD接口量身打造。无论是CAN 2.0 a/b还是CAN
    的头像 发表于 08-29 09:36 222次阅读
    虹科技术 全新Linux环境PCAN驱动程序发布!<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN</b> <b class='flag-5'>FD</b>通信体验全面升级!

    CAN/CAN FD/CAN XL三大总线协议解读,是逐步替代关系吗?

    电子发烧友网报道(文/吴子鹏)在软件定义汽车逐渐成为主流的当下,数据传输的速度和效率成为打造智能汽车的瓶颈,在这种大背景下,传统CAN总线应对一些需求已经相当吃力,因此CAN FDCAN
    的头像 发表于 08-12 01:12 3434次阅读

    CAN FD盒基本功能包括哪些

    CAN FD盒基本功能有哪些? CAN FD盒作为CAN FD总线通信的重要设备,其基本功能包括
    的头像 发表于 07-02 16:21 723次阅读

    全新Linux环境PCAN驱动程序发布!CAN/CAN FD通信体验全面升级!

    全新8.17.0版本的PCAN-Linux驱动程序正式发布,专为CANCAN FD接口量身打造。无论是CAN 2.0 a/b还是CAN
    的头像 发表于 04-19 10:38 671次阅读

    汽车CAN FD总线测试原理及应用

    CAN FD总线报文周期一致性测试方法,可自动实现监控测试并快速生成测试报告,主要根据CAPL语言设计建立
    发表于 04-01 12:53 612次阅读
    汽车<b class='flag-5'>CAN</b> <b class='flag-5'>FD</b>总线<b class='flag-5'>测试</b>原理及应用

    CAN和CANFD协议简介(下)

    CAN和CANFD协议简介(下)
    的头像 发表于 02-19 12:08 324次阅读
    <b class='flag-5'>CAN</b>和CANFD协议<b class='flag-5'>简介</b>(下)

    如何使用DSLogic分析CAN/CAN-FD 信号?

    一文档介绍本文将一步步介绍如何使用DSLogic逻辑分析仪采集并分析CAN/CAN-FD信号,因为CAN信号的测量和CAN-FD的大致一样,所以下文以
    的头像 发表于 01-08 14:54 830次阅读
    如何使用DSLogic分析<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN-FD</b> 信号?

    使用MM32F0160 FlexCAN-FD接口实现CAN FD通信

    MM32F0160 系列 MCU 具有一个 FlexCAN 模块,该模块遵循 ISO 11898-1 标准、 CAN FDCAN 2.0B 协议规范,不仅兼容传统
    的头像 发表于 12-14 16:44 1687次阅读
    使用MM32F0160 FlexCAN-<b class='flag-5'>FD</b>接口实现<b class='flag-5'>CAN</b> <b class='flag-5'>FD</b>通信

    CAN FD的降噪措施

    CAN FD的降噪措施
    的头像 发表于 12-07 10:48 473次阅读
    <b class='flag-5'>CAN</b> <b class='flag-5'>FD</b>的降噪措施

    SIT1145AQ CAN FD收发器特点 SIT1145AQ CAN FD收发器工作模式

    SIT1145AQ CAN FD收发器特点 SIT1145AQ CAN FD收发器工作模式 SIT1145AQ是一款高性能的CAN
    的头像 发表于 11-24 14:27 566次阅读

    请问usb can收发器是否能和CAN FD总线搭配使用呢?

    请问usb can收发器是否能和CAN FD总线搭配使用呢? USB-CAN收发器是一种使用USB接口连接计算机和CAN总线之间的硬件设备。
    的头像 发表于 11-22 16:37 640次阅读

    MM32F0160的FlexCAN FD位时间采样如何计算?

    FlexCAN模块是一个通信控制器,扩展了CAN FD功能,遵循ISO 11898-1标准、CAN FDCAN 2.0B协议规范。
    的头像 发表于 11-09 17:43 1424次阅读
    MM32F0160的FlexCAN <b class='flag-5'>FD</b>位时间<b class='flag-5'>采样</b><b class='flag-5'>点</b>如何计算?

    虹科CiA演讲回顾 | CAN(FD)总线协议转换原理及其在汽车行业的应用

    9月14日,虹科首席工程师陈皓受邀在CiA中国技术日发表“CANCAN FD总线协议转换”为主题的演讲,内容包括CANCAN
    的头像 发表于 09-21 09:30 693次阅读
    虹科CiA演讲回顾 | <b class='flag-5'>CAN</b>(<b class='flag-5'>FD</b>)总线协议转换原理<b class='flag-5'>及其</b>在汽车行业的应用