• 关于瑞萨R7 的CANFD切换为经典CAN


            首先,R7的CANFD是兼容CAN通讯的,在R7芯片他们公用相同的寄存器,至于发出来的帧是CANFD还是CAN取决于协议的不同。

           CANFD是可变速率数据段为可变长度,扩展到64Byte,仲裁段和数据段的速率不相同。CANFD新增了FDF,BRS,ESI。FDF表示是CAN报文还是CANFD报文,为隐性时速率可变;BRS为位速率转换;ESI表示错误状态,主动错误发送显性位。

      在兼容性方面,CANFD兼容CAN。

            

             如上图所示为CAN的电平图一个位是由多个段的多个Tq组成,Tq多少由寄存器决定(8个Tq到25个Tq),CAN 电平为差分信号,绘制后的位为上述图1所述。

            关于速率和波特率的关系,现在市场上主流汽车的波特率还是500khz。

            正常情况下,大多数的CAN寄存器的波特率和采样点的关系如下

            波特率:波特率 = CAN总线时钟频率 / (1 + Time Segment1 + Time Segment2)

            采样点:采样点 =( 1 + Time Segment1)/ (1 + Time Segment1 + Time Segment2)

    这两个公式同时提到了Time Segment1和Time Segment2,所以说我们同时在寄存器中配置这两个段就可以满足,我们对总线波特率和采样点的要求,同时关于采样点我们一共有,同步段(sync_seg)、传播时间段(prop_seg)、相位缓冲时间段1(Time Segment1)、相位缓冲时间段2(Time Segment2)。同时注意还有一个段SJW(synchronization jump width)同步跳转宽度,是用来限定延长相位缓冲时间段1(Time Segment1),或者缩短相位缓冲时间段2(Time Segment2),所以一般SJW小于相位缓冲时间段2(Time Segment2),同步段(sync_seg)为一个Tq。

            在设置R7的CAN模式必须处于全部复位模式(Global reset mode),然后再发送和接收Buffer寄存器中对 FDF,BRRS位做隐性处理,此处设置寄存器的时候关于RCMC的位设置仍为1

            此时,关于数据段和和仲裁段的设置,当CANFD 的FDF,BRRS的设置取消后,关于数据段的波特率将不再使用,比如此时CAN总线时钟为40M,同步段1设置为59,同步段2设置为20,则波特率为500Khz,采样点在80%,设置经验值20个Tq的同步跳转段。

          

  • 相关阅读:
    stc8H驱动并控制三相无刷电机综合项目技术资料综合篇
    抓包分析 TCP 握手和挥手
    剑指offer专项突击版第39天
    实现艾尔登法环中的大卢恩效果
    WordPress管理员后台登录地址修改教程,WordPress admin登录地址文件修改方法
    Go面试题
    RT-Thread GTC 2022 全球技术大会参与指南
    手机银行体验性测试:如何获取用户真实感受
    前端面试题日常练-day70 【面试题】
    基于GoFrame+Vue+ElementUI企业级 Go 应用开发框架
  • 原文地址:https://blog.csdn.net/weixin_39807914/article/details/127948941