zoukankan      html  css  js  c++  java
  • STM32之CAN---配置波特率

    总体配置保持tBS1>=tBS2 tBS2>=1个CAN时钟周期 tBS2>=2tSJW

    位时间特性逻辑通过采样来监视串行的CAN总线,并且通过跟帧起始位的边沿进行同步,及通过跟后面的边沿进行重新同步,来调整其采样点。
    它的操作可以简单解释为,如下所述把名义上的每位的时间分为3段:

    • 同步段(SYNC_SEG):通常期望位的变化发生在该时间段内。其值固定为1个时间单元(1 x tCAN)。

    • 时间段1(BS1):定义采样点的位置。它包含CAN标准里的PROP_SEG和PHASE_SEG1。其值可以编程为1到16个时间单元,但也可以被自动延长,以补偿因为网络中不同节点的频率差异所造成的相位的正向漂移。

    • 时间段2(BS2):定义发送点的位置。它代表CAN标准里的PHASE_SEG2。其值可以编程为1到8个时间单元,但也可以被自动缩短以补偿相位的负向漂移。

    • 重新同步跳跃宽度(SJW):定义了在每位中可以延长或缩短多少个时间单元的上限。其值可以编程为1到4个时间单元。

    • 有效跳变:被定义为,当bxCAN自己没有发送隐性位时,从显性位到隐性位的第1次转变。

    如果在时间段1(BS1)而不是在同步段(SYNC_SEG)检测到有效跳变,那么BS1的时间就被延长最多SJW那么长,从而采样点被延迟了。相反如果在时间段2(BS2)而不是在SYNC_SEG检测到有效跳变,那么BS2的时间就被缩短最多SJW那么长,从而采样点被提前了。为了避免软件的编程错误,对位时间特性寄存器(CAN_BTR)的设置,只能在bxCAN处于初始化状态下进行。
    注: 关于CAN位时间特性和重同步机制的详细信息,请参考ISO11898标准。


    图1

    特别注意上图下方的几个公式.可以得出的结论是:
    CAN波特率=APB总线频率/BRP分频器/(1+tBS1+tBS2)

    总体配置保持tBS1>=tBS2 tBS2>=1个CAN时钟周期 tBS2>=2tSJW

  • 相关阅读:
    Unique Binary Search Trees(dp)
    Binary Tree Inorder Traversal
    Reverse Linked List II
    O​r​a​c​l​e​1​1​g​自​带​的​S​Q​L​ ​d​e​v​e​l​o​p​e​r​无​法​打​开​解​决​
    英语飙升的好方法
    MyEclipse加入jquery.js文件missing semicolon的错误
    js,jq获取手机屏幕分辨率的宽高
    给标签元素设固定宽高,内部添加滚动条显示
    解决手机端点击input的时候,页面会放大
    支付宝异步回调验证签名
  • 原文地址:https://www.cnblogs.com/mengydz/p/13748742.html
Copyright © 2011-2022 走看看