0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

很多工程师在选择波特率时非常头疼,一文读懂如何快速解决特殊波特率计算的问题

AGk5_ZLG_zhiyua 来源:未知 作者:电子大兵 2017-08-30 11:04 次阅读

影响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总线
    +关注

    关注

    145

    文章

    1936

    浏览量

    130618
  • 波特率
    +关注

    关注

    2

    文章

    294

    浏览量

    34060

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

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    can波特率计算

    can波特率其实并不难计算,这里给出了can波特率的简单计算,并给出了实例STM32的CAN波特率计算
    发表于 12-14 17:02 1.3w次阅读
    can<b class='flag-5'>波特率</b><b class='flag-5'>计算</b>

    什么是串口波特率?串口波特率的分类及应用详解

    什么是串口波特率串口波特率是指串口通信系统中传输数据的速率。UART串口通信中,数据以位(bit)的形式传输,波特率是指每秒钟传输的位数。
    的头像 发表于 08-08 10:09 5752次阅读
    什么是串口<b class='flag-5'>波特率</b>?串口<b class='flag-5'>波特率</b>的分类及应用详解

    非标准CAN波特率计算

    影响CAN总线稳定的因素有很多,其中波特率非常重要的指标,很多工程师
    发表于 07-29 08:00

    51波特率初值计算

    51波特率初值计算
    发表于 04-26 16:36 44次下载

    51波特率计算

    51波特率计算
    发表于 12-17 16:33 1次下载

    51波特率计算

    51波特率计算
    发表于 12-28 11:07 2次下载

    CAN特殊波特率如何计算

    CAN总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常
    发表于 08-17 18:19 7043次阅读
    CAN<b class='flag-5'>特殊</b><b class='flag-5'>波特率</b>如何<b class='flag-5'>计算</b>

    波特率计算公式_波特率和字节的关系

    本文首先阐述了波特率计算公式,另外还介绍了波特率和字节的关系。
    发表于 04-21 14:21 4.7w次阅读

    串口波特率计算详解

    STM32下波特率计算详解波特率计算    STM32下的波特率和串口外设时钟息息相关,USART 1的时钟来源于APB2,USART 2
    发表于 12-05 09:06 22次下载
    串口<b class='flag-5'>波特率</b><b class='flag-5'>计算</b>详解

    STM32下波特率计算详解

    波特率计算 STM32下的波特率和串口外设时钟息息相关,USART 1的时钟来源于APB2,USART 2-5的时钟来源于APB1。STM32中,有个
    发表于 02-11 10:46 20次下载
    STM32下<b class='flag-5'>波特率</b><b class='flag-5'>计算</b>详解

    波特率是什么?波特率设计

    从宏观理解,波特率表征了串口的传输速度。
    的头像 发表于 06-05 15:19 2.6w次阅读
    <b class='flag-5'>波特率</b>是什么?<b class='flag-5'>波特率</b>设计

    什么是波特率?为什么要设置波特率

    欢迎来到东用知识小课堂!、什么是波特率波特率(BaudRate)单位bps是用于衡量串口通信速度的单位,它表示每秒钟发送的比特数。如果个串口的
    的头像 发表于 04-08 00:00 6650次阅读
    什么是<b class='flag-5'>波特率</b>?为什么要设置<b class='flag-5'>波特率</b>?

    什么是波特率波特率是如何影响CAN总线长度的?

    信息通信通道中传输的速率被称为波特率。通俗地说,波特率是数据在网络上传输的速度/速率。这是以比特/秒表示的。因此,秒钟内在通信网络上传输的比特数就是
    的头像 发表于 08-14 15:23 5999次阅读
    什么是<b class='flag-5'>波特率</b>?<b class='flag-5'>波特率</b>是如何影响CAN总线长度的?

    什么是串口波特率?串口通信为什么要设置波特率

    电子设备的世界中,数据是通过各种方式进行传输的。其中,串口通信是种常见的数据传输方式,它以其简单、可靠和广泛的特性,成为了电子设备间通信的重要手段。而在串口通信中,有非常重要的
    的头像 发表于 11-03 08:21 4763次阅读
    什么是串口<b class='flag-5'>波特率</b>?串口通信为什么要设置<b class='flag-5'>波特率</b>?

    什么是串口波特率?串口通信为什么要设置波特率

    什么是串口波特率?串口通信为什么要设置波特率波特率与比特的关系 如何选择串口波特率?  串口
    的头像 发表于 01-22 16:10 1956次阅读