• 523查看
  • 0回复

[网络开发] CAN通讯系列8- 揭开波特率的神秘面纱

[复制链接]


该用户从未签到

发表于 7-1-2024 16:34:03 | 显示全部楼层 |阅读模式

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


通过前面两篇文章:


CAN通讯系列6- 波特率是什么?CAN通讯系列7- 如何准确接收数据?已经详细介绍了波特率,CAN位时间,同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2),采样点等概念。
[img=553.739990234375,174.80001831054688]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhkSB2RX0p3vLyFRpxvCvpVTQZqKetmJvsFibEYd4U9aN4IfR4TRgTOiafQ/640?wx_fmt=png[/img]

了解了这些基础内容后,本文打算通过一个实例,揭开波特率的神秘面纱。
[img=424.04998779296875,293.760009765625]https://mmbiz.qpic.cn/sz_mmbiz_jpg/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhk7fVQ1tJK8iavwPQV00VNZnIXD9fEKIkHEp7sk4uicviad3fXzFnjKChdw/640?wx_fmt=jpeg[/img]

Source: 怎样进行CANoe 仿真工程配置
为何这么说?因为对于汽车研发人员,大多数人只需要关注波特率是否设置正确,只有底层软件开发人员需要去计算和配置波特率相关的参数。下面结合Infineon芯片手册来进行CAN波特率相关参数的计算和配置。    1 计算波特率相关参数  

根据Infineon Aurix系列芯片手册提供了CAN位时间的标准格式定义,有:
    Tsync表示同步段(SS)的时间Tseg1表示传播时间段(PTS)和相位缓冲段1(PBS1)的时间Tseg2表示相位缓冲段2(PBS2)的时间

[img=486.80999755859375,196.3399658203125]https://mmbiz.qpic.cn/sz_mmbiz_jpg/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhky3I7m2kJMpib9nm9pxKwGoycqRCeA41ibRmYoeBmafIl8867gvs1ibPJQ/640?wx_fmt=jpeg[/img]

Source: Infineon TC27x系列用户手册
根据Infineon系列芯片手册提供的求解方法,这些时间相关量的关系如下所示:
[img=480.0099792480469,209.8699951171875]https://mmbiz.qpic.cn/sz_mmbiz_jpg/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhk8AvEMhKwJgGWKrSPMn9b4TtDY23u9j2uoZcA6IarsXF3niam6iaUlyicg/640?wx_fmt=jpeg[/img]
假设需求是:需要设置某路CAN的波特率为500Kbps,采样率为87.5%。微控制器的晶振时钟周期频率为20MHz。    首先,将晶振时钟周期频率转换为时间,即有:1/fCAN=1/20MHz=50ns然后,要设置的波特率为500Kbps,换算时间表示则为1/500 Kbps =2000ns其次,采样率要设置为87.5,那意味着(Tsync+Tseg1)/ (Tsync+Tseg1+Tseg2)= 7/8,因为CAN位时间长度范围应满足8~25个tq,则CAN位时间可能为8或16或24,此时:
    如果CAN位时间为8个tq,那么tq=250ns;根据计算公式:
    [img=318.1400451660156,49.20001220703125]https://mmbiz.qpic.cn/sz_mmbiz_jpg/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhkbv8fefAPVMu6TUBmaw38TWBEUEMRjHterUFdJg6KicKPoXObdsxQreA/640?wx_fmt=jpeg[/img]
    250ns/50ns=5,因为BRP只能为整数,这时取DIV8=0, BRP=4。如果CAN位时间为16个tq,那么tq=125ns; 此时125ns/50ns=2.5,不为整数,不成立!如果CAN位时间为24个tq,那么tq=83.33ns,tq不为整数,也不成立!
综上,就可以确定CAN位时间应为8个tq,tq=250ns,取DIV8=0, BRP=4。根据采样点取在87.5%处,根据已有的计算公式,
[img=455.27996826171875,132.47998046875]https://mmbiz.qpic.cn/sz_mmbiz_jpg/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhklmiaYx3gQqGCSiaAuQpKI1kbiaVtThJ2sAcUvicskLTP5FYOG5TRft6r5w/640?wx_fmt=jpeg[/img]
先算TSEG2,即有:1-87.5%=Tseg2/NBT=[(TSEG2+1)*tq]/8*tq=(TSEG2+1)/8即有:TSEG2=0,注意也就是相位缓冲段2(PBS2)为1个tq那么Tseg1= NBT-Tseg2-Tsync=6tq,所以TSEG1=5。再根据下式计算SJW,     
[img=247.91998291015625,100.30000305175781]https://mmbiz.qpic.cn/sz_mmbiz_jpg/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhkmcx4JZ4m5qlzgZNTZbnzEvnkF9TEZsBl0dDx6PzxHZcJTZkgqG1G0Q/640?wx_fmt=jpeg[/img]
因为Tseg2=1Tq,所以SJW只能取0。综上有:DIV8=0, BRP=4,TSEG1=5,TSEG2=0,SJW=0。2 配置波特率相关参数  

有了上面的计算结果,接下来底层软件工程师要做的就是对寄存器做配置,比如Infineon的这款芯片是要去配置节点位时间寄存器,如下所示:
[img=553.739990234375,329.26995849609375]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhk5B9QKxQWrdvoZHPO2gXZzVRAY1QgJfoaP39vfzgC4azz3HQ5r5NODw/640?wx_fmt=png[/img]

Source: Infineon TC27x系列用户手册
配置结果如下:
[img=553.47998046875,82.92999267578125]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhkRhchXmgic2sILxWDhZAEBt5oOJBR5vGOjXX6ibpEzFzbZ2KibEEdth2eg/640?wx_fmt=png[/img]

代码实现形式如下:
[img=300.83001708984375,28.79998779296875]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhkpBq28w2OlMJrFo3pDWU3DtNZlWsp4YjspkIRJCTvw5DXodDRLiawRTg/640?wx_fmt=png[/img]
   
而汽车行业都在用AutoSAR工具链进行底层软件开发,比如EB Tresos是常用的MCAL配置工具,利用其进行波特率配置的话,将在下面界面进行配置。
[img=553.739990234375,364.6700134277344]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyA6Djiau3v3ibB5nPIICS2ibhkQnB42gm63ib8UR7fxhaLSPzDMuAb8ziao1e7ibLRhq57cM6wEBS6FCkzQ/640?wx_fmt=png[/img]

Source: EB tresos实战记录:配置通信-Can_eb配置can-CSDN博客      
3 小结


通过上述针对波特率进行的计算和配置过程,就让非底层软件开发人员终于有机会了解到软件层面是如何实现的,揭开了这层神秘的面纱。就这么一个小小功能的解析,其实已经包含了从基本原理到软件实现,再到实际应用,后续继续以这种思路,解析更多CAN通讯内容,欢迎持续关注。


该用户从未签到

发表于 16-3-2025 01:23:00 | 显示全部楼层
在理解CAN通讯中的波特率、同步段、传播时间段及相位缓冲段等基本概念后,本文将深入探讨如何通过实际操作揭开波特率的神秘面纱。本文将详细介绍如何在实际应用中设置和调整波特率,确保数据的准确传输与接收。通过深入分析采样点的选择对通讯质量的影响,使读者在实际操作中能够根据不同的应用场景和环境因素,灵活调整相关参数,实现CAN通讯的稳定性和高效性。敬请期待本文的发布,相信对您的日常工作与学习将大有裨益。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:23:00 | 显示全部楼层
好的,针对您提供的帖子内容,我作为汽车工程师的回复如下:

在掌握了波特率、CAN位时间、同步段等基本概念后,本文将深入探讨如何通过实际运用揭开波特率的神秘面纱。本文将结合实例详细解析如何在实际CAN通讯系统中设置和调整波特率,以确保数据的准确传输和接收。通过深入分析不同波特率对CAN通讯系统性能的影响,我们将进一步理解波特率在CAN通讯中的核心地位。请继续关注本系列文章,以便更全面地掌握CAN通讯技术。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:23:00 | 显示全部楼层
基于先前对CAN通讯中波特率、CAN位时间、同步段等概念的学习,本文将深入探讨波特率在实际应用中的细节及其重要性。本文将详细阐述波特率如何影响CAN通讯的实时性和数据传输的准确性,并进一步揭示在CAN网络配置中如何选择合适的波特率以满足系统需求。同时,本文还将介绍在实际操作过程中关于波特率设置的注意事项,以及波特率设置不当可能导致的后果。通过阅读本文,您将更深入地理解波特率在CAN通讯中的核心地位,并能够在实际应用中更加熟练地掌握其应用技巧。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:23:00 | 显示全部楼层
过具体实例进一步解析波特率的应用,并探讨不同波特率设置对CAN通讯性能的影响。本文将详细阐述如何根据实际需求和硬件环境选择合适的波特率,以及在设置波特率时需要注意的关键点。同时,本文将结合前面两篇文章的内容,全面解析同步段、传播时间段、相位缓冲段等概念在实际应用中的运用,帮助读者更深入地理解CAN通讯中的这些重要参数。通过本文的学习,读者将能够更准确地掌握CAN通讯的精髓,为后续的工程应用打下坚实基础。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:23:00 | 显示全部楼层
好的,针对您提供的帖子内容,我作为汽车工程师的回复如下:

在深入了解CAN通讯的波特率及其相关概念后,本文将深入探讨其在实践中的应用。本文将围绕具体案例展开分析,介绍如何在不同环境和场景下选择和调整波特率,确保CAN通讯的稳定性和实时性。通过实际案例和操作指南,我们将揭开波特率的神秘面纱,让读者更好地理解和应用这一关键技术。本文将涉及具体的实际操作和注意事项,以确保读者在实践中能够准确掌握和应用相关知识。通过本文的学习,将有助于读者更好地理解和应用CAN通讯技术,提高汽车系统的性能和稳定性。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:23:00 | 显示全部楼层
基于先前对CAN通讯中波特率、CAN位时间、同步段等概念的学习,本文将深入探讨实际应用中的细节和要点。我们将结合图示和案例分析,详细阐述如何在实际操作中设置和调整波特率,以及如何通过优化同步段和传播时间段等来确保数据的准确接收和通信的稳定性。本文还将涉及一些高级应用技巧和常见问题解决方案,帮助读者在实际工作中更好地运用CAN通讯技术。确保深入了解并正确应用这些专业知识,将有助于提高CAN通讯系统的性能和可靠性。期待通过本文,帮助读者揭开波特率的神秘面纱,并能在实际项目中灵活应用。
回复 支持 反对

使用道具 举报


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

    [LV.1]初来乍到

    发表于 16-3-2025 01:23:00 | 显示全部楼层
    好的,针对您提供的帖子内容,我作为汽车工程师的回复如下:

    在掌握了波特率、CAN位时间、同步段等基础概念后,本文将深入探讨CAN通讯中的更高级内容。本文将详细解析波特率的实际应用,以及如何通过精确调整参数来确保数据的可靠传输。本文将结合实例,详细阐述同步段和传播时间段的设置原则,以及相位缓冲段的作用与调整方法。通过本文的学习,您将能更深入地理解CAN通讯的工作原理,为后续的CAN系统设计和优化工作打下坚实的基础。敬请期待本文的发布,相信会为您在CAN通讯领域的研究带来新的启示。
    回复 支持 反对

    使用道具 举报

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

    [LV.1]初来乍到

    发表于 16-3-2025 01:23:00 | 显示全部楼层
    基于前文对CAN通讯中波特率及相关概念的基础理解,本文旨在深入探讨实际应用中涉及的具体细节与技术要点。我们将深入解析如何通过调整同步段、传播时间段及相位缓冲段的参数来优化CAN通讯系统的性能。结合理论分析和实际操作经验,本文将阐述在复杂的汽车电控系统中如何合理设置波特率,以保证数据的准确传输与实时性。同时,针对采样点的选择对通讯质量的影响,我们将给出专业指导与建议。本文还将结合实际案例,对波特率设置过程中可能遇到的问题进行分析与解答。通过阅读本文,读者将更深入地理解并掌握CAN通讯中波特率设置的技巧与要点。
    回复 支持 反对

    使用道具 举报

    快速发帖

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

    本版积分规则

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

    GMT+8, 19-8-2025 05:47 , Processed in 0.440764 second(s), 41 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.