关于CAN通信速率设置

article/2025/8/30 0:36:13

一、

CAN时钟周期(Tq)=2*晶振时钟*BRP(波特率预分频值 baudrate prescaler)

一个CAN时间称为一个时间量子 Tq

1)同步段(Synchronization Segment):1个Tq,tSS

2)传播段(Propagation Segment):传播段时长可编程(1~8个时间量子Tq),tPS

3)相位缓冲段1(Phase Buffer Segment1):长度可编程(1~8个时间量子Tq),tPBS1

4)相位缓冲段2(Phase Buffer Segment2):长度可编程(1~8个时间量子Tq),tPBS2

(位时间)tBit=tSS+tPS+tPBS1+tPBS2

二、在CAN通信中,有两种同步机制:硬同步重同步

 三、同步跳转宽度

在重同步时,有个同步跳转宽度(SJW,Synchro Jump Width)的概念,表示的是PBS1和PBS2重同步时允许跳转的最大宽度。 
同步跳转宽度必须满足以下几个条件:

  • SJW必须小于PBS1和PBS2的最小值
  • SJW最大值不能超过4(500kbps通常为3)

(1)位速率:单位为bps、Kbps、Mbps 
1Mbps=1000Kbps=1000000bps
1Mbps=1000Kbps=1000000bps

(2)位时间:tBit,单位一般为纳秒(ns) 
tBit=1/位速率

(3)时间量子Tq: 
Tq=1/NBT(NBT 表示的是一个位时间tBit内包含Tq的个数,500kbps通常为16或20)

(4)传输延迟时间tPTS 
CAN报文在CAN总线上的传输时,物理延迟包含两个部分:

  • 在CAN-BUS上传输造成的延迟
  • 在节点上传输造成延迟 

 

按照CAN通信协议的规定,补偿给传播延迟的时间长度要至少等于实际实际传播延迟时长的2被,即: 

tPTS≥2×tdel=2×(tdel+tBus)

(5)报文发送顺序

字节序:LSB,bit序:MSb

4 例子

以下面的例子来讲述位定时参数的确定方法: 
MCU晶振16MHz,位速率500kbps,总线长度20m,单位总线延迟5ns/m,物理接口的发送接收延迟150ns(一般端口延迟最低300ns

(1)晶振时钟周期:T=1s/16MHz = 62.5ns 
(2)位时间 :tBit = 1/500kbps = 2000ns 

  公式: tBit=NBT*(Tq),也就是tBit=NBT*(2*晶振时钟周期*BPR)


(3)BPR和NBT:考虑到 T = 62.5ns,tBit = 2000ns,所以BPR只能取值为1,才能满足NBT∈[8,25],于是预分频数BPR=1; 
(4)CAN时钟周期Tq = 2 × 62.5 × 1 = 125ns 
(5)NBT = 16 

(6)传输延迟时间 tPTS≥2×tdel=2×(tdel+tBus),也就是tPTS≥2*(20*5+150)=500ns,(总线长度20m,单位总线延迟5ns/m,物理接口的发送接收延迟150ns),对于诊断设备由于总线长度很短,因此该时间可忽略

        tPTS_Tq=500/125=4

此时,同步段为1 Tq,传播段为4 Tq,还剩NBT-5=11个tq,采样点满足75%-80%,因此相位缓冲段1PBS1为6个tq,相位缓冲段2为4个Tq;同步跳转宽度  SJW=min{PBS1,4}=4

参考文章:

CAN总线学习笔记(5)- CAN通信的位定时与同步

 


http://chatgpt.dhexx.cn/article/6FbHeK1U.shtml

相关文章

nano的CAN通信

我买的是微雪的树莓派用的SPI转CAN。现在用在jetson nano上。我看了一下俩模块的芯片用的都是一样的,引脚也都对得上,所以我就打算拿这个模块给nano做can通信。 具备CAN功能,使用SPI接口CAN控制器MCP2515,搭配收发器SN65HVD230。 …

CAN通信基础知识

CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986 年率先提出。此后,CAN 通过ISO11898 及ISO11519 进行了标准化。现在在欧洲已是汽车网络的标准协议。 CAN协议经过…

CAN通信详解

本章我们将向大家介绍如何使用STM32自带的CAN控制器来实现两个开发板之间的CAN通讯,并将结果显示在TFTLCD模块上。本章分为如下几个部分: 30.1 CAN简介 30.2 硬件设计 30.3 软件设计 30.4 下载验证 30.1 CAN简介 CAN 是Controller Area Network 的…

CAN通信总结

CAN通信总结 基本介绍 ​ 1. CAN通过两条通信线(双绞线)产生的电压差传输数据,一个CAN网络里的所有节点都挂在这两条通信线上,使用差分信号半双工通信。 ​ 2. CAN总线是广播类型的总线。所有节点都将始终接收所有通信&#xf…

CAN 通信原理学习

文章目录 CAN通信一:基本概述1.1 can总线是什么1.2 can总线协议的特点1.3 can的网络通信结构1.3.11.3.2 can协议网络层次 二:socket can在通信网络中的应用三 一个程序 CAN通信 一:基本概述 1.1 can总线是什么 CAN 是 Controller Area Net…

CAN通信协议

在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地…

CAN通信讲解(1)——基本知识

本文注意参考了《CAN入门书》,源于此书图片不再特殊标注 目录 1.1 CAN总线背景1.2 CAN总线定义1.3 CAN总线信号特性1.4 CAN总线传输1.5 OSI基本参照模型和CAN总线协议 1.1 CAN总线背景 为减少汽车线束数量,1986年,博世开发出面向汽车的CAN通…

CAN通信

通讯方式 UART:(Universal Asynchronous Receiver Transmitter:通用异步收发器/异步串行通信口),是一种通用的串行数据总线,用于异步通信,支持全双工。它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线…

CAN通信----基本原理

STM32标准库开发 文章链接: STM32F103标准库开发----目录 STM32F103标准库开发----CAN总线通信实验----初始化/波特率 STM32F103标准库开发----CAN总线通信实验----发送和接收 资源链接: 本例程已经调试成功,下载即可使用。 STM32F103标准库…

CAN通信详解(全)

本章我们将向大家介绍如何使用STM32自带的CAN控制器来实现两个开发板之间的CAN通讯,并将结果显示在TFTLCD模块上。本章分为如下几个部分: 30.1 CAN简介 30.2 硬件设计 30.3 软件设计 30.4 下载验证 30.1 CAN简介 CAN 是Controller Area Network 的缩…

Tomcat优化禁用AJP协议

登录tomcat 在服务状态页面中可以看到,默认状态下会启用AJP服务,并且占用8009端口。 什么是AJP呢? AJP(Apache JServer Protocol) AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了…

tomcat启动出现错误:Failed to destroy end point associated with ProtocolHandler[“ajp-nio-8009“](解决非常简单)

tomcat启跑不起来而且报了很多莫名其妙的错误不知道从哪里找起 启动服务器出现这个错误 console提示:Failed to destroy end point associated with ProtocolHandler[“ajp-nio-8009”] 直接看web.xml的url-pattern这个属性是不是哪一个少了‘/’ 或者 如果没有…

Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现

Tomcat AJP 文件包含漏洞(CVE-2020-1938) CVE-2020-1938 又名GhostCat ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat 上所有 webapp 目录下的任意文件 该漏洞是一个单独的文件包含漏洞,依赖…

Aapache Tomcat AJP 文件包含漏洞-(CVE-2020-1938/CNVD-2020-10487)

漏洞编号 CVE-2020-1938 CNVD-2020-10487 靶机环境 Vulhub虚拟靶场 vulhub-master/tomcat/CVE-2020-1938 启动docker: 启动成功: 0x00 漏洞简介 2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏…

Apache-Tomcat-Ajp漏洞测试与修复

说明 Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。此漏洞为文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件&#xf…

解决AJP漏洞操作记录

前言 最近Tomcat爆出AJP漏洞,升级对应版本的Tomcat是比较好的规避方法。本文将记录笔者在升级Tomcat 9.0.31时踩过的一些坑,以便大家能快速升级Tomcat。 本文只针对Tomcat 9.0.31版本的操作记录。 Tomcat受影响版本: Apache Tomcat 9.x &l…

tomcat中ajp及8009端口用处

tomcat常用于提供servlet/jsp容器服务,简单方便、使用高效。但是tomcat处理静态文件资源的性能不足(应该是serviece部分),同时,如果用户直接与tomcat进行http的连接获取静态资源(连接器connector部分&#…

CVE-2020-1938 :Apache Tomcat AJP 漏洞复现和分析

一、漏洞描述 Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器.默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互.但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应…

网络抓包方式复现Tomcat- AJP协议文件读取/命令执行漏洞(CVE-2020-1938 / CNVD-2020-10487)

目录 测试是否安装成功​编辑 基础简介 Tomcat Connector(连接器) ​编辑Servlet(服务程序) Tomcat内部处理请求流程 文件读取漏洞 抓包复现 需要将下图中抓取到的数据包修改一下 ​编辑 替换成二进制数据的形式: 运行结果 ​编辑 创建脚本文件&#xf…

AJP协议

由于tomcat的html和图片解析功能相对其他服务器如apche等较弱,所以,一般都是集成起来使用,只有jsp和servlet服务交由tomcat处理,而tomcat和其他服务器的集成,就是通过ajp协议来完成的。AJP协议AJP13是定向包协议。因为…