汽车CAN总线采样点和采样率详解

写在前面

本篇文章主要讲解在汽车电子中CAN总线采样率的相关知识点,内容涉及CAN波特率、采样点、时间份额、同步跳转宽度以及采样率的计算。

若有相关问题,欢迎评论沟通,共同进步。(*^▽^*)


1、CAN波特率

CAN波特率常规分为250kbps和500kbps,本文章主要以这两个波特率为例进行说明。

2、CAN的标称位时间

CAN的标称位时间(Nominal bit timing)可以分为四个段:同步段、传播时间段、相位缓冲段1和相位缓冲段2。

标称位=同步段+传播时间段+相位缓冲段1+相位缓冲段2

下面将分别进行说明:

同步段(SYNCHRONIZATION SEGMENT,SYNC_SEG—SS):用于实现时序调整,总线上各个节点的跳变沿产生在同步段内,通常为1个Tq(固定值)

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

相位缓冲段1(PHASE BUFFER SEGMENT1,PHASE_SEG1—PBS1)和相位缓冲段2(PHASE BUFFER SEGMENT2,PHASE_SEG2—PBS2):用于补偿跳变沿的相位误差,其长度会在重同步的实现过程中延长或缩短。

其中:

BS1=PTS+PBS1

BS2=PBS2

BS1>BS2≥SJW

通常情况下,采样点位于相位缓冲段1的结尾。由于相位缓冲段1和相位缓冲段2可以根据实际情况进行延长或缩短,所以采样点也会随之变化。

3、采样点(SAMPLE POINT)

采样点是读取总线电平,并将读到的电平作为相应位值的点。

根据CAN协议用户采样模式可以设置为1个采样点或3个采样点。

在1个采样点采样模式下,采样点在PHASE_SEG1的末尾

在3个采样点采样模式下,再多取另外两个的采样点,间隔为一个Tq,最后一个采样点也在PHASE_SEG1的末尾。如下图所示:

1个采样点:

3个采样点:

4、时间份额(Time quantum,Tq)

CAN控制器的最小时间周期称作时间份额(Time quantum,简称Tq),它是通过MCU芯片的晶振周期分频得到。传输一个bit位由若干个Tq组成。

Tq = 1 / f(CAN)

也就是一个tq等于CAN的时钟的倒数。

5、同步跳转宽度(SJW)

同步跳转宽度SJW(Synchronization Jump Width)并不是标称位时间的一部分,主要是用来限定延长PHASE_SEG1或者缩短PHASE_SEG2的最大宽度。其中:

BS1=PTS+PBS1

BS2=PBS2

BS1>BS2≥SJW

6、采样率计算

采样点的理论值计算公式:

sample=(1+BS1)/(1+BS1+BS2)*100%

但是在实际应用过程中,GD32A103xxxx的理论值和实测值有1个Tq的误差,所以实测值计算公式:

sample=(1+BS1-1)/(1+BS1+BS2)*100%= BS1 /(1+BS1+BS2)*100%

7、举例说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零零刷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值