CAN波特率解析

合集下载

can总线的常用波特率

can总线的常用波特率

can总线的常用波特率CAN总线是一种常用的通信协议,广泛应用于汽车、工业控制、航空航天等领域。

在CAN总线中,波特率是一个重要参数,它决定了数据传输的速率和可靠性。

本文将介绍CAN总线的常用波特率及其应用。

一、CAN总线简介CAN(Controller Area Network)总线是一种串行通信协议,最初由德国Bosch公司开发,用于车载网络系统。

CAN总线采用差分信号线传输数据,具有抗干扰能力强、可靠性高的特点,被广泛应用于汽车和工业控制领域。

二、CAN总线的波特率波特率是指在单位时间内传输的数据位数,通常用bps(bit per second)表示。

在CAN总线中,常用的波特率有以下几种:1. 10kbps(千位每秒):这是最低的波特率,适用于数据传输要求不高的应用场景,如汽车中的低速通信。

2. 100kbps:这是较低的波特率,适用于大部分汽车和工控系统中的通信需求。

3. 250kbps:这是一种中等波特率,适用于一些对实时性要求较高的应用,如发动机控制、传感器数据传输等。

4. 500kbps:这是一种较高的波特率,适用于一些对实时性要求更高的应用,如车身控制系统等。

5. 1Mbps(兆位每秒):这是最高的波特率,适用于一些对数据传输速率要求非常高的应用,如高速数据采集系统。

三、CAN总线波特率的选择选择合适的波特率对于CAN总线的正常工作非常重要。

波特率过低会导致数据传输速率慢,影响实时性;波特率过高则会增加通信的复杂性和成本。

在选择波特率时,需要考虑以下几个因素:1. 数据传输速率要求:根据具体应用的实时性需求和数据量大小,选择合适的波特率。

2. 网络拓扑结构:CAN总线可以采用多主机或者多从机的网络拓扑结构,不同的拓扑结构对波特率的要求也不同。

3. 电缆长度和传输距离:长距离传输需要较低的波特率,而短距离传输可以选择较高的波特率。

4. 抗干扰能力:较高的波特率对干扰更为敏感,如果环境中存在较强的电磁干扰,应选择较低的波特率。

can通讯波特率计算

can通讯波特率计算

can通讯波特率计算
在CAN总线通信中,波特率决定了数据传输的速度和可靠性。

CAN 总线的标准波特率为1Mbps,但实际应用中通常使用较低的波特率(如250kbps或500kbps)以提高抗干扰性能。

计算CAN通信中的波特率需要考虑以下几个因素:
1. 时钟源频率:CAN控制器的时钟源频率通常为16MHz或20MHz。

2. 分频系数:波特率发生器通过分频来产生所需的波特率。


频系数为时钟源频率除以所需的波特率。

3. 采样点数:CAN总线通信中采用了采样点技术来确保数据传
输的可靠性。

采样点数为每个位的采样次数。

在CAN2.0B协议中,采用了三种采样点数:75%、87.5%和100%。

根据以上计算公式可知,波特率=时钟源频率/(分频系数*采样
点数)。

例如,如果时钟源频率为16MHz,分频系数为8,采样点数为87.5%,则所得到的波特率为125kbps。

在实际应用中,为了提高通信的可靠性,我们可以通过修改采样点数来调整波特率。

同时,由于CAN总线是一种多主机共享的总线结构,不同的节点之间需要使用相同的波特率才能保证正常通信。

因此,在设计CAN总线系统时,需要仔细考虑波特率的选择和设置。

- 1 -。

CAN波特率设置时的参数计算

CAN波特率设置时的参数计算

CAN波特率设置时的参数计算CAN(Controller Area Network)总线最早由德国 BOSCH公司提出,主要用于汽车内部测量与控制中心之间的数据通信。

由于其良好的性能,在世界范围内广泛应用于其他领域当中,如工业自动化、汽车电子、楼宇建筑、电梯网络、电力通讯和安防消防等诸多领域,并取逐渐成为这些行业的主要通讯手段。

Can控制器器只需要进行少量的设置就可以进行通信,其中较难设置的部分就是通信波特率的计算。

CAN总线能够在一定的范围内容忍总线上CAN节点的通信波特率的偏差,这种机能使得CAN总线有很强的容错性,同时也降低了对每个节点的振荡器精度。

实际上,CAN总线的波特率是一个范围。

假设定义的波特率是250KB/S,但是实际上根据对寄存器的设置,实际的波特率可能为200~300KB/S(具体值取决于寄存器的设置)。

CAN波特率设置时需要计算几个参数,这些参数共同决定波特率大小,由于计算比较复杂,希望有一个简易步骤,本人经过研究,找到一个简易办法,现贴出来分享,不对的地方请留言指正。

需要说明的是,本人使用的can控制器是AT89C51CC03单片机中的can首先,确定一下各项参数的取值范围:参数范围编程值说明BRP [1..64] 0-63 定义时间量子(时间份额)的长度tqSync_Seg 1 tq 固定长度,总线输入与系统时钟同步Prog_Seg [1..8]tq 0-7 补偿物理延时时间Phase_Seg1 [1..8]tq 0-7 可通过同步暂时延长Phase_Seg2 [1..8]tq 0-7 可通过同步暂时缩短TSJW [1..4]tq 0-3 不能比任何一相位缓冲段长以上是参数的取值范围,编程值是实际往寄存器里写的值,为实际取值减1。

下面说一下步骤:1、首先计算CAN时钟和波特率的比值;2、根据比值确定预分频器的分频值BRP,计算时间量子的数目,这个数值范围是8-25;3、将时间量子数减1(去掉Sync_Seg)后在Prog_Seg Phase_Seg1 Phase_Seg2三个参数中分配;4、Prog_Seg和整个线路的时延有关,一般不太好确定,可以按下面的原则进行分配:Prog_Seg<=Phase_Seg1<=Phase_Seg2 ;Phase_Seg1=Phase_Seg2 或者 Phase_Seg1+1=Phase_Seg2;5、SJW取Phase_Seg1和4中小的那个。

STM32_CAN波特率计算

STM32_CAN波特率计算

STM32_CAN波特率计算在STM32中,可以使用以下公式来计算CAN总线的波特率:波特率 = APB1_CLK / (prescaler * (sjw + bs1 + bs2 + 1))其中,APB1_CLK 是STM32的外设时钟频率,可以通过RCC_ClocksTypeDef 结构体获取。

prescaler 是一个16位的数,取值范围是1-1024、sjw (同步跳转宽度)、bs1 (位段1长度) 和 bs2 (位段2长度) 取值范围为0-15通常,CAN总线的波特率设置取决于硬件限制和所需的通信速度。

下面是一些常见的波特率计算示例:1. 125 kbps:APB1_CLK = 72 MHz,prescaler = 6,sjw = 1,bs1 = 11,bs2 = 42. 250 kbps:APB1_CLK = 72 MHz,prescaler = 3,sjw = 1,bs1 = 11,bs2 = 43. 500 kbps:APB1_CLK = 72 MHz,prescaler = 3,sjw = 1,bs1 = 7,bs2 = 4 4. 1 Mbps:APB1_CLK = 72 MHz,prescaler = 3,sjw = 1,bs1 = 3,bs2 = 4需要注意的是,上述示例中的波特率计算公式假设CAN_BS2=1,可以根据实际需要进行调整。

在实际应用中,还需要根据硬件布线、传输距离和抗干扰能力等因素对波特率进行调整和优化。

同时,还应考虑位定时误差和失败重传等问题,以确保可靠的通信。

因此,在使用STM32_CAN时,建议参考ST提供的相关文档和应用注释,根据实际需求进行波特率计算和配置。

can通讯波特率计算

can通讯波特率计算

can通讯波特率计算can通讯是一种常用的工业领域通讯协议,而波特率则是can通讯中的一个重要参数。

波特率是指单位时间内传输的数据量,通常以比特/秒为单位表示。

在can通讯中,波特率的计算方法如下:1. 首先确定can总线的工作频率,通常为16MHz。

2. 根据需要传输的数据量和通讯距离等因素,选择合适的波特率。

can通讯支持多种波特率,例如125kbps、250kbps、500kbps、1Mbps等。

3. 根据所选波特率,计算出一个时间量化周期Tq。

以125kbps 为例,Tq=1/125000=8us。

4. 确定传输的数据位数,通常为8位。

则一个can数据帧由一个起始位、一个ID、一个控制位、8个数据位、一个CRC、一个ACK 和一个结束位组成,共计33位。

5. 根据所选波特率和数据位数,计算出一个can数据帧的传输时间,即:Tframe = 33 * Tq = 33 * 8us = 264us6. 根据传输时间计算出可以在一个时间段内传输的数据量。

以125kbps为例,一个时间段为1秒,则可以传输的数据量为:N = 1 / Tframe = 1 / 264us = 3787帧/秒7. 根据需要传输的数据量和所选波特率,计算出每个数据帧的传输时间。

以125kbps为例,每个数据帧的传输时间为:Tcan = 8 + 1 + 1 + 8 + 15 + 1 + 8 = 42Tq = 336us8. 根据每个数据帧的传输时间和可以传输的数据量,计算出所选波特率下的最大数据传输速率。

以125kbps为例,最大数据传输速率为:R = N * 8 / Tcan = 3787 * 8 / 336us = 90.01kbps 以上即为can通讯波特率的计算方法,对于can通讯的实际应用具有重要的指导意义。

CAN波特率计算

CAN波特率计算

CAN波特率计算
CAN总线的波特率一般不超过1Mbit/s,但少数场合可以更高,比如汽车电子控制系统(ECU)和汽车仪表集成系统(IMS)中的高速CAN。

CAN总线上的波特率通常以BRP(波特率参数)和波特率系数K来表示,其计算公式为:
BRP = fOSC/(NBTR*FBit)
其中,fOSC为CAN控制器的时钟频率,NBTR为波特率比特率(比特/秒),FBit为波特率系数K, 以下是一些常用的CAN波特率:10Kbit/s:BRP=4,K=8;
20Kbit/s:BRP=2,K=8;
125Kbit/s:BRP=2,K=8;
250Kbit/s:BRP=1,K=8;
500Kbit/s:BRP=0,K=8;
800Kbit/s:BRP=0,K=8;
1Mbit/s:BRP=0,K=8
一般来说,CAN总线上使用的波特率越高,总线上的数据传输速率就越快,但抗干扰能力越差。

所以,在选择CAN总线上的波特率时应当根据实际情况来选择,以满足实际应用场合的需求。

can总线波特率计算方法

can总线波特率计算方法

can总线波特率计算方法CAN(Controller Area Network)总线是一种常用于汽车、工业和通信领域的网络通信协议,它的波特率是指数据传输速率,是衡量总线性能的重要指标。

CAN总线的波特率计算方法可以通过以下步骤进行。

一、了解CAN总线基本概念和术语在深入探讨CAN总线波特率计算方法之前,首先需要了解一些基本概念和术语。

1. 总线速率(bit rate):CAN总线传输数据的速率,通常用波特率(bps)表示。

2. 采样点数量(number of time quanta):一个CAN总线位周期内的时间划分数,通常是8个。

3. 位周期时间(bit time):一个CAN总线位周期的持续时间,通常由采样点数量和每个时间划分的时间(时间划分数)决定。

4. 传输速率误差(transmission rate error):实际波特率与预期波特率之间的差别,通常以百分比表示。

二、计算CAN总线的理论波特率根据CAN总线的基本概念和术语,可以计算CAN总线的理论波特率。

以下是计算波特率的步骤。

1. 确定采样点数量:根据CAN总线的需求和要求,确定一个合适的采样点数量。

常用的采样点数量为8个。

2. 计算位周期时间:位周期时间等于一个时间划分的时间乘以采样点数量。

假设每个时间划分的时间为T,位周期时间为Tbit。

例如,如果每个时间划分的时间为1微秒,采样点数量为8个,则位周期时间为8微秒。

3. 计算总线速率:总线速率等于位周期时间的倒数。

假设位周期时间为Tbit,总线速率为BR。

推导公式为:BR = 1 / Tbit。

在上述例子中,总线速率为125 kbps。

三、考虑采样点数量和传输速率误差的影响除了基本的波特率计算方法外,还需要考虑采样点数量和传输速率误差对CAN总线性能的影响。

1. 采样点数量:较多的采样点数量可以提高系统的抗噪性能,但也会增加总线负载和传输延迟。

因此,在选择采样点数量时需要综合考虑各方面因素。

CAN波特率计算

CAN波特率计算

CAN波特率计算CAN(Controller Area Network)是一种常用于实时通信的串行总线系统。

CAN总线的波特率(即数据传输速率)是非常重要的参数,它决定了CAN总线传输数据的速度和可靠性。

计算CAN总线的波特率需要考虑以下几个因素:1. 位时间(Bit Time):CAN总线被划分为若干个位时间,每个位时间由若干个时间段组成。

其中最重要的三个时间段是同步时间段(Synchronization Segment, Sync_Seg)、传播时间段(Propagation Segment, Prop_Seg)和相位段(Phase Segment, Phase_Seg)。

2. 位时间的总数:位时间的总数由同步时间段、传播时间段和相位段的时长之和决定。

位时间的总数记为N,通常有一个最小值(N_min)和一个最大值(N_max)。

3.位时间的时间分配:每个时间段的时长可以根据实际需求进行分配。

一般来说,同步时间段的时长很短,传播时间段的时长取决于总线长度和传播速度,相位段的时长取决于网络拓扑结构和所需的抗干扰能力。

4. 采样点(Sampling Point):CAN总线数据帧中每个位的采样点位置是固定的,并且通常位于相位段的中心。

5. 采样点的位置:采样点的位置可以通过同步时间段的时长(t_sync)、传播时间段的时长(t_prop)和位时间的总数(N)来计算。

采样点的位置可以用相位段的时长(t_phase)相对于整个位时间的长度(t_bit)来表示。

现在,我们来具体计算CAN总线的波特率的步骤:1.确定CAN总线的特性:首先需要确定CAN总线的物理特性,包括总线长度、传播速度等参数。

2. 确定位时间的总数(N):根据CAN总线的要求或规范,可以确定位时间的总数的最小值(N_min)和最大值(N_max)。

一般来说,N的取值范围在8到25之间。

3. 计算同步时间段的时长(t_sync):同步时间段的时长一般为1至3个时间单元(CAN位时间的最小单位)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CAN波特率与负载率
1、背景说明:
1.1为了讲清这个问题,需要先就两个概念进行说明:波特率和比特率。

波特率:单位时间内,通信通道传输码元的速率。

1个波特指每秒传输1个码元的符号。

(单位时间内调制状态改变的次数,单位为波特)
比特率:单位时间内,通信通道传送的二进制位数。

1.2波特率和比特率的关系:
比特率=波特率*单个调制状态对应的二进制位数(比特率=波特率*log2n)由于CAN通信中的信号是二进制的,所以对CAN来说波特率和比特率相等,只是业界习惯用bps表示CAN的波特率。

2、CAN总线的通信负载率
2.1说明
负载率:CAN总线实际数据传输速率与理论上能达到的数据传输速率的比值。

根据实验表明,负载率在30%的情况下,优先级高节点的平均报文传输时间和理论传输时间相差无几;而优先级低的存在20%左右的延时;当负载率达到60%的情况下,优先级最高的节点都有至少25%的延时,优先级最低的延时达到了4倍,根本无法满足实时性;当总线的平均利用率达到70%以上时,总线的通信将用可能出现拥堵的现象,极端的情况下将有可能造成错误帧的出现。

因此,负载率当然是越低越好,越能保证实时性,但是负载率太低就无法传输足够的数据,这是CAN的一个问题,在数据量大的时候无法保证实时性。

一般的说法是30%左右的负载率是最好的。

2.2需要控制通信负载率的原因:
引入CAN理论中另外几个重要的概念:ID仲裁、闲时发送和最大反应时间。

CAN总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不同的信号。

因为各节点共用总线介质,对总线的使用权界定就至关重要。

只有在总线空闲时,发送节点才能向总线上发送帧起始及后续帧ID,只有在帧ID赢得仲裁时,发送节点拥有总线控制权进而向总线发送报文剩余部分,在仲裁中失败的节点让出总线控制权等待下次总线空闲时继续尝试发送。

即如果某一个节点需要发送一帧报文,它需要同时满足两个条件:
1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到11个连续的隐性位;
2、所需发送的报文赢得ID仲裁,即报文优先级较高。

一个报文在试图发送时,必须满足上述两个条件才能完成发送。

这里的问题就是:如果一个优先级相对较低的节点向外发报文时,会因为不断地在仲裁中失败而导致发送延迟。

如果延迟过大会引起通讯失败。

负载率越高,代表需要发送的数据越多,相对来说低优先级节点发生通讯延迟的概率越大。

实际上30%的数据也只是一个经验数值,历史很悠久的一个经验数值。

从本质上来看,限制负载率最终是要保证相对低优先级节点的通讯实时性,如果能通过网络及节点优化等手段满足每个节点的最大响应时间满足要求,负载率只是一个无关紧要的参数。

3、相关计算:
CAN发送8字节的数据扩展帧,实际总线上传输数据还包括4个字节的帧ID,以及约6个节的帧头尾和校验。

即一条CAN数据至少有18个字节,因此
针对1Mbps波特率,1S传输的帧数:
1M/8(位/字节)/18=7K
考虑到30%的负载率,1S传输的帧数为:2.1K
针对125Kbps波特率,1S传输的帧数:
125K/8(位/字节)/18=868考虑到30%的负载率,1S传输的帧数为:260。

相关文档
最新文档