基于ISO11898的CANfd的采样点和特征位宽计算

1采样点的定义

采样点是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。

首先我们需要了解Tq的概念,Tq是CAN控制器的最小时间周期称作时间份额(Time quantum,简称Tq),它是通过芯片晶振周期分频而来。传输的个Bit位由若干个Tq组成,根据功能传输一个Bit位需要分成四个阶段:同步段、传输段、相位缓冲段1和相位缓冲段2。

Bit位的组成概况如图1所示。

图 1 标称bit位的组成

这4个阶段的功能如下:

1.同步段(Sync_Seg):用于实现时序调整,总线上各个节点的跳变沿产生在同步段内,通常为1个Tq;

2.传播段(Prop_Seg):用于补偿网络上的物理延迟时间。这些延迟时间包含信号在总线上的传输延迟和CAN节点内部的处理延迟。传播段保证了2倍的信号在总线上的延迟时间;

3.相位缓冲段1(Phase_Seg1)和相位缓冲段2(Phase_Seg2):用于补偿跳变沿的相位误差,其长度会在重同步的实现过程中延长或缩短。

采样点位于相位缓冲段1的结尾。由于相位缓冲段1和相位缓冲段2能够延长或缩短,采样点也能够随之变化。采样点的计算方法就是:前面3个段的和占总百分比多少,即(同步段+传播时间段+相位缓冲段1) /(同步段+传播时间段+相位缓冲段1+相位缓冲段2)。举个例子:如果一个位是80个Tq,相位缓冲段2是20个Tq,那么Sample Point就是60/80=75%。

2 晶振周期与位时间

晶振时钟周期:是由单片机振荡器的晶振频率决定的,指的是振荡器每震荡一次所消耗的时间长度,也是整个系统中最小的时间单位。晶振周期与CAN位时间的工作机理如图2所示。

图 2 晶振周期与CAN位时间的关系图

3 CAN采样点的计算

采样点的计算如下所示。

Sample =(1+Controller Prop Seg+Controller Seg1)/(1+Controller Prop Seg+Controller Seg1+Controller Seg2)

图3 控制器Nominal Baud波特率配置信息 

图3所示为控制器的CANFD中低波特率配置信息。根据图中所示信息可以计算相关信息。

Sample(Nominal Baud)=(1+23+8)/(1+23+8+8)=80%

图4所示为的CANFD中高波特率配置信息,那么CANFD高波特率相关信息计算如下。

Sample(Data Baud)=(1+1+5)/(1+1+5+3)=70%

 图 4 控制器中Data Baud波特率配置

根据ISO11898-2015的描述,CANFD中低波特率域和高波特率域的位宽采样机理如图5所示。

图 5 CANFD中低速区和高速区的位宽计算原理

Tq的计算原理如下所示。

Tq=1/(2×107)(s)=50(ns)

仲裁场计算采样点:

对于仲裁场波特率500kbps,传输一个bit位的时间1/500000s=2us,所以一共分配2us/50ns=40个Tq,如果采样点设置为80%,则实际分配的Tq数目为Sync_Seg+Prop_Seg+Phase_Seg1=40×80%=32Tq。

数据场计算采样点:

对于数据场波特率2Mkbps,传输一个bit位的时间为1/2000000s=500ns,因此分配500ns/50ns=10个Tq,采样点设置为70%,则Sync_Seg+Prop_Seg+Phase_Seg1=10×70%=7Tq。

4 可变波特率CANFD的位计算

CANFD的帧信息如图5所示。其中可变波特率CANFD的波特率由BRS位与CRC DEL两个位来实现波特率的改变。其中,BRS(Bit Rate Switch)为低波特率域(Nominal Baud field)向高波特率域(Data Baud field)变化的Bit位和CRC DEL(CRC Delimiter)为高波特率向低波特率变化的Bit位。

图 6可变速率 CANFD帧信息架构图

实际ISO-11898-2015法规中给出了可变CANFD的BRS位和CRC DEL位信息,如图7所示。其中示例中所示的信息里低波特率的Prescaler(N)为3,Prop_Seg(N)为5,Phase_Seg1(N)为4,Phase_Seg2(N)为4,高波特率的Prescaler(D)为1,Prop_Seg(D)为1,Phase_Seg1(D)为6,Phase_Seg2(D)为6。

图 7 可变波特率CANFD中的位宽计算

BRS Bit位的低波特率部分长度为12个tq(N)(Prescaler(N),Prop_Seg(N),Phase_Seg1(N)之和的数目),高波特率部分长度为6个tq(D)(Phase_Seg2(D)的数目)。根据前文的采样点计算,可以得出BRS和CRC DEL的位宽计算公式。

BRS位宽= Nominal Baud·Sample(N)+Data Baud·(1-Sample(D))

CRC DEL位宽 = Nominal Baud·(1-Sample(D))+Data Baud·Sample(N)

根据之前查询的信息,若控制器中CANFD高波特率的采样点为70%,低波特率的采样点为80%。所以BRS的位宽理论长度值为2000ns×80%+500ns×(1-70%)=1750ns。

同理,CRC DEL的位宽理论值长度为500ns×70%+2000×(1-80%)=750ns。

参考文献:

  1. ISO 11898-1:2003 Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling
  2. ISO 11898-1:2015 Road vehicles — Controller area network (CAN) —Part 1:Data link layer and physical signalling

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值