综合技术
登录
直播中
李新美
7年用户
197经验值
私信
关注
[问答]
非标准CAN波特率的计算
开启该帖子的消息推送
CAN
波特率
影响CAN总线稳定的因素有很多,其中波特率是一项非常重要的指标,很多工程师在选择波特率时非常头疼。今天我们就来说说该如何快速解决特殊波特率计算的问题。
CAN总线采用的是异步串行
通信
,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。
回帖
(3)
郭霞
2019-7-29 16:32:32
CAN总线里我们可以通过对CAN节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的时钟振荡器分频得到。
同步段位于一个位的起始位置,CAN-bus规定跳变沿为同步信号,但是发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟,由于采样点位置在相位缓冲段1跟相位缓冲段2之间,通过设置相位缓冲段1和相位缓冲段2的值,可以调整采样点位置,保证每个位采样点一致。缓冲段的长度调节范围则是由同步跳转宽度(SJW)决定。
图1 CAN位时间结构图
CAN总线里我们可以通过对CAN节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的时钟振荡器分频得到。
同步段位于一个位的起始位置,CAN-bus规定跳变沿为同步信号,但是发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟,由于采样点位置在相位缓冲段1跟相位缓冲段2之间,通过设置相位缓冲段1和相位缓冲段2的值,可以调整采样点位置,保证每个位采样点一致。缓冲段的长度调节范围则是由同步跳转宽度(SJW)决定。
图1 CAN位时间结构图
举报
崔业萍
2019-7-29 16:32:44
简单的了解了CAN总线位时间的分段后,我们来看看一个节点的波特率到底要如何设置。如图2是某ARM内核的CAN位时间特性寄存器 (CAN_BTR)。
图2 某ARM内核位时间特性寄存器结构图
SILM(静默模式)跟LBKM(回环模式)用于调试;
SJW:
同步跳转宽度;
TS2/TS1:
位时间里两个时间段的分配;
BRP:
波特率分频器,该区域定义了基本时间单元的长度;
例如某著名车厂CAN通信标准里规定,通信速率为125 kbps时,应该采用单次采样,采样点位置设置在70%~77%之间。其位定时参数取值可见表1与表2。
表1 LS_CAN通信速率与采样点参数
表2 LS_CAN可选时间份额与同步跳转带宽
简单的了解了CAN总线位时间的分段后,我们来看看一个节点的波特率到底要如何设置。如图2是某ARM内核的CAN位时间特性寄存器 (CAN_BTR)。
图2 某ARM内核位时间特性寄存器结构图
SILM(静默模式)跟LBKM(回环模式)用于调试;
SJW:
同步跳转宽度;
TS2/TS1:
位时间里两个时间段的分配;
BRP:
波特率分频器,该区域定义了基本时间单元的长度;
例如某著名车厂CAN通信标准里规定,通信速率为125 kbps时,应该采用单次采样,采样点位置设置在70%~77%之间。其位定时参数取值可见表1与表2。
表1 LS_CAN通信速率与采样点参数
表2 LS_CAN可选时间份额与同步跳转带宽
举报
付雯瑶
2019-7-29 16:32:50
采样点:
采样点不能太靠前也不能太靠后,否则如果刚好处于一个位的上升沿或者下降沿区间,会造成识别错误,所以根据CIA105的规范,采样点在87.5%左右比较合适。但是一般我们可根据实际情况选取75%~85%之间;
同步跳转宽度(SJW):
SJW的值直接影响到重同步时相位缓冲段的可调节的范围,SJW的值可以在1~4之间选择,我们选择3、4可以使总线获得更宽的波特率容忍度;
采样次数:
分为单次采样跟三次采样,三次采样在设计之初虽然是为了过滤掉总线上毛刺,但是采用三次采样经常会影响SJW的跳转,所以实际应用中我们一般都会采用单次采样。
了解设置波特率的原则后,我们采用ZLG致远电子的波特率计算软件,对25kbps波特率的设置参数进行计算,计算结果如图3。
图3 25kbps波特率计算参数
根据上面提到的原则,我们选取采样点为75%,SJW为4,时间份额为14的一组参数,采用ZLG的CAN卡做验证。
● 自动波特率识别:
采用CANScope自动侦测波特率的功能,对CAN卡的波特率进行识别,识别结果为25kbps;
图4 自动侦测波特率
● 采样点测试:
采用CANScope对当前波特率下CAN卡的采样点进行测试,测试结果为75%;
图5 采样点测试
● 位宽容忍度测试:
采用CANScope对当前波特率下CAN卡进行位宽容忍度测试,测试其对波特率的容忍度情况,测试结果为24kbps~26kbps,容忍度情况较好;
图6 位宽容忍度测试
● 位时间测试:
用CANScope的眼图功能对当前波特率下CAN卡进行位时间测试,位时间为40us,与25kbps波特率的位时间相符。
图7 眼图测试位时间
通过对波特率计算器计算出来的波特率寄存器设置参数进行验证,发现测试结果跟我们的预期结果一致,因此在使用特殊波特率时,我们可以借助波特率计算器来快速计算出位定时寄存器的参数值。下面我们给出一些可参考的特殊波特率的参数:
采样点:
采样点不能太靠前也不能太靠后,否则如果刚好处于一个位的上升沿或者下降沿区间,会造成识别错误,所以根据CIA105的规范,采样点在87.5%左右比较合适。但是一般我们可根据实际情况选取75%~85%之间;
同步跳转宽度(SJW):
SJW的值直接影响到重同步时相位缓冲段的可调节的范围,SJW的值可以在1~4之间选择,我们选择3、4可以使总线获得更宽的波特率容忍度;
采样次数:
分为单次采样跟三次采样,三次采样在设计之初虽然是为了过滤掉总线上毛刺,但是采用三次采样经常会影响SJW的跳转,所以实际应用中我们一般都会采用单次采样。
了解设置波特率的原则后,我们采用ZLG致远电子的波特率计算软件,对25kbps波特率的设置参数进行计算,计算结果如图3。
图3 25kbps波特率计算参数
根据上面提到的原则,我们选取采样点为75%,SJW为4,时间份额为14的一组参数,采用ZLG的CAN卡做验证。
● 自动波特率识别:
采用CANScope自动侦测波特率的功能,对CAN卡的波特率进行识别,识别结果为25kbps;
图4 自动侦测波特率
● 采样点测试:
采用CANScope对当前波特率下CAN卡的采样点进行测试,测试结果为75%;
图5 采样点测试
● 位宽容忍度测试:
采用CANScope对当前波特率下CAN卡进行位宽容忍度测试,测试其对波特率的容忍度情况,测试结果为24kbps~26kbps,容忍度情况较好;
图6 位宽容忍度测试
● 位时间测试:
用CANScope的眼图功能对当前波特率下CAN卡进行位时间测试,位时间为40us,与25kbps波特率的位时间相符。
图7 眼图测试位时间
通过对波特率计算器计算出来的波特率寄存器设置参数进行验证,发现测试结果跟我们的预期结果一致,因此在使用特殊波特率时,我们可以借助波特率计算器来快速计算出位定时寄存器的参数值。下面我们给出一些可参考的特殊波特率的参数:
举报
更多回帖
rotate(-90deg);
回复
相关问答
CAN
波特率
请问ch340是否支持
非标准
波特率
?
2022-07-12
689
stm32mp157串口如何使用
非标准
波特率
?
2023-08-07
136
CH348是否支持
非标
波特率
,支持的话,如何设置?
2022-06-30
570
OV5640可以设置
非标准
的分辨
率
吗?
2023-10-13
212
请问STM32的
CAN
波特率
怎么
计算
?
2019-05-17
2657
如何在LPC1768中将
CAN
波特率
设置为666.666 kbps?
2023-04-10
226
ADV7611输入是否支持1024*1024这样的
非标准分辨率
?
2023-11-29
5722
在STM32中如何对
CAN
波特率
进行
计算
?
2023-11-03
208
请问AM335x处理器运行linux系统时串口是如何支持
非标
波特率
通信的?
2018-06-04
4159
如何利用印刷威廉希尔官方网站 板工艺制作的
非标准
化温度传感器?
2021-04-25
909
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分