• 【MCAL_CANDriver】-1.4-Tq与Bit Rate,Sync_Seg,Prop_Seg,Phase_Seg1, Phase_Seg2之间的关系


    点击返回「《Autosar_MCAL高阶配置》总目录」

    第3章节有彩蛋,手把手教您如何配置Bit time比特率/波特率的时间参数Sync_SegProp_SegPhase_Seg1, Phase_Seg2

    目录

    1 Bit Rate比特率与Bit Time位时间的关系

    1.1 nominal bit rate与data bit rate的切换

    1.2 相关关键字说明

    2 Tq(time quantum)与Bit Time位时间的关系

    2.1 Tq:time quantum

    2.2 Sync_Seg:synchronization segment

    2.3 Prop_Seg:propagation time segment

    2.4 Phase_Seg1,Phase_Seg2:phase buffer segment 1/2

    2.5 SJW:Synchronization jump width

    2.6 Sample point采样点

    2.7 IPT :Information processing time信息处理时间

    2.8 Internal delay time内部延迟时间

    3 Bit Rate(比特率/波特率)参数选取规则

    3.1  实战举例

    END


    1 Bit Rate比特率与Bit Time位时间的关系

    Bit Rate表示的一个CAN总线网络的带宽,以500 kbps比特率为例,表示一秒内最大传输500000个Bit,而一个Bit传输时间为(1 / 500000)秒 = 2000纳秒。

    Bit RateBit Time之间的关系是:

    注:

    • Nominal bit time为Nominal bit rate的倒数,适用于Classical CAN,或CANFD的arbitration/data phase
    • Data bit time为Data bit rate,仅适用于CANFD的data phase

    启用FD的实现应支持两个bit rate,即nominal bit ratedata bit rate。未启用FD的实现仅限于Classical CAN所指定的nominal bit rate。第二个bit rate的定义,即data bit ratedata bit time,需要单独的配置register set。data bit time应小于等于nominal bit time

    1.1 nominal bit rate与data bit rate的切换

    data bit time只能在FD帧的data phase内使用。如果检测到该BRS位是隐性的,则data phase应从BRS Bit的sample point开始。当到达CRC Delimiter的第一个sample point时,或者当CAN实现看到导致EF启动的错误条件时,此data phase应结束。data phase之外的段应为arbitration phase。所有Classical Frame,EF,OF,idle time以及具有显性BRS Bit的FD帧的所有部分均应属于arbitration phasenominal bit time应在arbitration phase内使用。

    在隐性BRS bit的sample point,bit rate应从nominal bit rate切换为data bit rate。在CRC Delimiter的第一个sample point或检测到错误条件时,应将bit rate从data bit rate切换到nominal bit rate。当由于检测到错误条件而切换bit rate时,切换时间应在sample point之后偏移小于或等于两个Tq。BRS在Classical Frame经典帧中不存在。

    注意:由于在BRS bitCRC Delimiter bitsample point切换了bit rate,因此这两个bit的长度是中间的。这两位的长度之和等于nominal bit time的一位和data bit time的一位之和,参见图1-1。

     图1-1 nominal bit time段和data bit time段

    1.2 相关关键字说明

    arbitration phase仲裁段:使用nominal bit time标称位时间的段。

    data phase数据段:使用data bit time数据位时间的段。

    nominal bit rate标准比特率:arbitration phase仲裁段,每个time的Bit数量,与Bit encoding/decoding无关。

    data bit rate数据比特率:data phase数据段,每个time的Bit数量,与Bit encoding/decoding无关。

    nominal bit time标准位时间arbitration phase一个Bit的持续时间。

    data bit time数据位时间:data phase一个Bit的持续时间。

    2 Tq(time quantum)与Bit Time位时间的关系

    图2-1是一个Classical CAN Standard Frame的波形(CAN_H和CAN_L共用一个探头):

    图2-1

    将图2-1进行分解得到图2-2,在该图中您可以清楚的看到,一个Bit Time的配置应使用以下time segmentSync_SegProp_SegPhase_Seg1Phase_Seg2。每个time segment由若干个Tq(time quantum时间片)组成,而Tq是由是时钟源(crystal oscillator晶体振荡器的Oscillator ClockPeripheral Clock)经过Prescaler预分频器分频得到的一个时间长度,见图2-3。

     图2-2

     图2-3

    2.1 Tq:time quantum

    Tq(time quantum)应是从node clock period得出的固定时间单位。应至少存在一个可编程的prescaler预分频器,其整数值的范围至少为1到32。Tq的长度应为

    • Tq(N)= m(N)• nominal bit time的最小Tq,以及
    • Tq(D)= m(D)• data bit time的最小Tq,其中m(N)和m(D)是prescaler值。

    应该有两个实现选项,或者

    • 两个单独的prescaler,nominal bit time为m(N),data bit time为m(D),或者
    • 一个共享的prescaler,其中m(N)= m(D)。

    两个单独的prescaler使Tq(N)和Tq(D)具有不同的长度。使用共享的prescaler,Tq(N)与Tq(D)具有相同的长度。bit time的长度取决于Tq的长度以及bitTq的数量如果不同的参数组合达到相同的bit time长度,则应使用Tq较短的组合

    未启用FD的实现方式仅限于基于Tq(N)的nominal bit time。

    使CAN实现的操作与CAN总线上的信号同步应以一个Tqtime step运行。在每个Tq,都应分析总线状态是隐性还是显性。在某个Bitsample point处检测到的总线状态应视为该Bit的值。两个连续Tq之间的总线状态差异是一个边沿。

    2.2 Sync_Seg:synchronization segment

    Bit Time的这一部分,即synchronization segment同步段(长度为固定的1 Tq),将用于同步总线上的各个CAN节点。预计将在此段内检测到边沿。在Sync_Seg之外检测到的边沿可能导致CAN节点将其操作同步到该边沿。

    2.3 Prop_Seg:propagation time segment

    Bit Time的这一部分,即propagation time segment传播时间段,应用于补偿网络内的物理延迟时间。这些延迟时间包括总线上的信号传播时间CAN节点的Internal delay time内部延迟时间,见图2-4。

    2.4 Phase_Seg1,Phase_Seg2:phase buffer segment 1/2

    Bit Time的这一部分,既phase buffer segment相位缓冲段,用于补偿边沿相位误差。这些段可以通过resynchronization重新同步来延长或缩短。Resynchronization重新同步将导致bit time的缩短或延长,

    当相位误差的大小大于SJW的编程值时,

    —如果相位误差e为正,则Phase_Seg1应延长等于SJW的量;

    —如果相位误差e为负,则Phase_Seg2应缩短等于SJW的量。

    如果将Phase_Seg2缩短到小于information processing time的值,则可以在Phase_Seg2结束之后完成后续bit level的计算。

    2.5 SJW:Synchronization jump width

    作为resynchronization重新同步的结果,可能延长Phase_Seg1或者可能缩短Phase_Seg2Phase_Seg的延长和缩短的量由SJW给出上限。

    SJW不大于Phase_Seg 1/2中较小的一个,并且Prop_Seg限制了可用于Phase_Seg的那部分bit time。

    2.6 Sample point采样点

    sample point应为读取总线电平并将其解释为相应位的值的时间点。它的位置应在Phase_Seg1的末尾。

    公式Sync_Seg + Prop_Seg + Phase_Seg1/Sync_Seg + Prop_Seg + Phase_Seg1 + Phase_Seg2

    单位:%。

    SP:Sample Point

    SSP:Secondary Sample Point

    2.7 IPT :Information processing time信息处理时间

    Information processing time为计算后续bit level所需的tq数量。该计算从sample point开始,并且必须小于或等于Phase_Seg2

    2.8 Internal delay time内部延迟时间

    CAN节点的Internal delay time,tnode,应该是沿发送和接收路径发生的所有异步延迟的总和,相对于 CAN 实现的bit timing logic unit。有关更多详细信息,见图2-4。

    结合图2-4,

    • 输出和输入CAN节点延迟的总和对于nominal bit time的配置至关重要。 CAN节点的重要特性参数由公式(1)给出:
    • 或适当的仲裁,应满足以下条件
    • 关于 CAN 同步有关领先的发送bit timing logic,节点 A 应能够知道sampling point第 n 位的正确总线电平。tnode的容许值取决于所需的bit rate和总线的线长(任意两个节点之间的最大距离)以及仲裁条件所示的可能的bit timing。

     图2-4 - 在arbitration phase,CAN节点A和B的delay time与bit time phase之间的时间关系

    3 Bit Rate(比特率/波特率)参数选取规则

    Bit Time的配置应使用以下time segment执行:Sync_SegProp_SegPhase_Seg1Phase_Seg2SJW,它们均表示基于最小Tqprescaler m的整数个Tq。对于启用FD的实现,有两组配置值。

    对于启用了FD的实现和未启用FD的实现,bit time segment的长度的配置范围应不同。

    表- time segment的最小配置范围

    参数

    未启用FD

    启用FD

    单独的prescaler

    共享prescaler

    分开或共享prescaler

    Nominal bit time

    Nominal bit time

    Nominal bit time

    Data bit time

    Prescaler m

    1 to 32

    1 to 32

    1 to 32

    Sync_Seg

    1 Tq(N)

    1 Tq(N)

    1 Tq(N)

    1 Tq(D)

    Prop_Seg

    1 to 8 Tq(N)

    1 to 48 Tq(N)

    1 to 96 Tq(N)

    0 to 8 Tq(D)

    Phase_Seg1

    1 to 8 Tq(N)

    1 to 16 Tq(N)

    1 to 32 Tq(N)

    1 to 8 Tq(D)

    Phase_Seg2

    2 to 8 Tq(N)

    2 to 16 Tq(N)

    2 to 32 Tq(N)

    2 to 8 Tq(D)

    SJW

    1 to 4 Tq(N)

    1 to 16 Tq(N)

    1 to 32 Tq(N)

    1 to 8 Tq(D)

    bit time segment的配置应满足以下限制。

    • information processing time应小于或等于2Tq
    • data bit time内,Phase_Seg2应大于或等于information processing time
    • nominal bit time内,Phase_Seg2应大于或等于以下两项的最大值:SJWinformation processing time
    • nominal bit timedata bit time中,SJW应小于或等于以下两项的最小值:Phase_Seg1Phase_Seg2

    synchronization同步的情况下,Phase_Seg1可能会更长,而Phase_Seg2可能会短于其编程值。在两个bit timing配置中,sample point的位置可能有所不同。在data bit rate的配置中,Prop_Seg的长度可以为零。

    在CAN实施中,Prop_SegPhase_Seg1不需要单独编程。对Prop_SegPhase_Seg1之和进行编程就足够了对于未启用FD的实现,nominal bit time内的Tq总数应至少可设置为825对于启用FD的实现,data bit time中的Tq总数应至少可编程为525nominal bit time中至少为880

    如果在nominal bit timedata bit time中使用相同的Tq长度,并且在网络的所有CAN节点中nominal bit timesample point的位置都相同,则可以实现网络的最佳时钟容限使用FD帧。

    必须对不同CAN节点中的node clock oscillator的频率进行协调,以便为nominal bit time提供全网范围的指定Tq,对于启用FD的实现,则为data bit time提供全网范围的指定Tq。

    3.1  实战举例

    参考图2-3,假设CAN_CTRL1寄存器的CLKSRC选择Oscillator Clock(8MHz)。以Classical CAN为例,下表中列出了常用的Bit Rate比特率/波特率(250kbps,500kbps,1Mbps,采样点都是75%)时间参数的选取。

    注意:

    适用的内容中,Sync_Seg,Prop_Seg,Phase_Seg1,Phase_Seg2存在多种组合,这里仅列出了其中一种组合。

    Bit Rate

    Bit time

    prescaler

    Tq

    Bit timeTq数量

    Sync_Seg

    Prop_Seg

    Phase_Seg1

    Phase_Seg2

    250kbps

    4000纳秒

    1

    125纳秒

    32

    不适用

    2

    250纳秒

    16

    1

    9

    2

    4

    3

    475纳秒

    不适用

    4

    500纳秒

    8

    1

    3

    2

    2

    5

    625纳秒

    不适用

    500kbps

    2000纳秒

    1

    125纳秒

    16

    1

    9

    2

    4

    2

    250纳秒

    8

    1

    3

    2

    2

    3

    475纳秒

    不适用

    1Mbps

    1000纳秒

    1

    125纳秒

    8

    1

    3

    2

    2

    2

    250纳秒

    不适用

    END

    获取更多“汽车电子资讯”和“工具链使用”,

    请关注“汽车电子助手”,做您的好助手。

  • 相关阅读:
    深度学习实战01-卷积神经网络(CNN)实现Mnist手写体识别
    Recluster Table | RFC 解读
    Nginx安装
    IDEA 快捷键记录【个人向】
    Vscode配置已有工程及自动格式化
    2023年中国劳保用镜市场规模现状及行业需求前景分析[图]
    归并排序详解(递归+非递归)
    Python学习笔记--自定义元类
    第五十六周总结——后端接口开发及其生活总结
    【超实用】3 分钟,教你用 Docker 部署一个 Python 应用!
  • 原文地址:https://blog.csdn.net/qfmzhu/article/details/126892968