【解惑】非标准的CAN波特率怎么计算

2017-08-12 19:15:21编辑:鲁迪 关键字:CAN波特率  CAN总线

影响CAN总线稳定的因素有很多,其中波特率是一项非常重要的指标,很多工程师在选择波特率时非常头疼。今天我们就来说说该如何快速解决特殊波特率计算的问题。


CAN总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。


CAN总线里我们可以通过对CAN节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的时钟振荡器分频得到。


同步段位于一个位的起始位置,CAN-bus规定跳变沿为同步信号,但是发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟,由于采样点位置在相位缓冲段1跟相位缓冲段2之间,通过设置相位缓冲段1和相位缓冲段2的值,可以调整采样点位置,保证每个位采样点一致。缓冲段的长度调节范围则是由同步跳转宽度(SJW)决定。

 

图1 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可选时间份额与同步跳转带宽


采样点:采样点不能太靠前也不能太靠后,否则如果刚好处于一个位的上升沿或者下降沿区间,会造成识别错误,所以根据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 眼图测试位时间


通过对波特率计算器计算出来的波特率寄存器设置参数进行验证,发现测试结果跟我们的预期结果一致,因此在使用特殊波特率时,我们可以借助波特率计算器来快速计算出位定时寄存器的参数值。下面我们给出一些可参考的特殊波特率的参数:



关键字:CAN波特率  CAN总线

来源: 市场部 ZLG致远电子 引用地址:http://www.eeworld.com.cn/qcdz/article_2017081219426.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:汽车CAN总线
下一篇:恩智浦携手广汽集团共同开发新一代车载网关平台

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

LPC2368 can波特率学习

  以12M设备为例: 5k的波特率,则: 12000/5=2400 = (BRP+1)(1+TSEG1+1+TSEG2+1) = = 150*16 所以:BRP=149  TSEG1=12  TSEG1=1 CAN2BTR = 0X1C0095   6K的波特率: 12000/6=2000 = (BRP+1)(1+TSEG1+1+TSEG2+1) = = 125*16 所以:BRP=124  TSEG1=12  TSEG1=1 CAN2BTR = 0X1C007c   20K的波特率: 12000/20=600 = (BRP+1
发表于 2016-08-23 12:38:58
LPC2368 can波特率学习

STM32的CAN波特率计算

;   ((u32)CAN_InitStruct->CAN_Prescaler - 1);     总结一下     Fpclk=36M 时 can波特率为250k   的配置为      /* CAN cell init */     CAN_InitStructure.CAN_TTCM=DISABLE;     CAN_InitStructure.CAN_ABOM=DISABLE;   
发表于 2016-08-21 13:55:03
STM32的CAN波特率计算

can波特率计算

,取SAM=0,即采样1次。SJA重同步跳宽选取: 与数字锁相环技术有关。n值选得大时,SJA可以选得大,即一次可以修正多个脉冲份额Tscl。n值小或频率低时,选SJA=1。即BTR0.7和BTR0.6都设为0。   STM32($18.3200)的CAN波特率计算   STM32里的CAN 支持2.0A,2.0B, 带有FIFO,中断等, 这里主要提一下内部的时钟应用.   bxCAN挂接在APB1总线上,采用总线时钟,所以我们需要知道APB1的总线时钟是多少. 我们先看看下图,看看APB1总线时钟:        APB1时钟取自AHB的分频, 而AHB又取自系统时钟的分频, 系统时钟可选HSI
发表于 2016-05-31 15:09:34
can波特率计算

总线干扰的原因大科普

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。一、定位干扰原因       当总线有干扰时,有经验的工程师能够迅速定位,但是对于新手来说却很麻烦,造成总线干扰的原因有很多。比如通过电磁辐射耦合到通讯电缆中、屏蔽线接地没处理好、隔离
发表于 2018-07-04 16:33:40
总线干扰的原因大科普

CAN总线错误检测机制

CAN总线是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,CAN总线应运而生,图1为CAN总线在汽车中的应用图。 图1  汽车中CAN总线的应用 CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。图2为CAN总线网路图
发表于 2018-06-28 19:41:01
CAN总线错误检测机制

CAN总线错误检测机制

CAN总线是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,CAN总线应运而生,图1为CAN总线在汽车中的应用图。图1  汽车中CAN总线的应用CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。图2为CAN总线网路图,它的出现
发表于 2018-06-28 10:34:48
CAN总线错误检测机制

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved