CAN学习笔记

学习链接:CAN学习笔记(1)_can sjw-CSDN博客

内容全部取自链接,非原创。用于自己学习和记录,如有错误请指正。如果侵权了,请联系我删掉。

CAN主要有两种物理层,1.闭环的ISO11898  2.开环的ISO11519-2

闭环的框图:

备注:

1.可以留意总线网络中有CAN控制器和CAN收发器。通常一些带CAN外设的MCU及代表的是带有CAN控制器。 CAN收发器需要单独的IC。

2.120欧电阻用于总线可以快速的回归隐形状态。提高稳定性。

备注:1.2.2K电阻的作用也是可以让总线快速的回归隐性作用。

           2.MCU中的CAN控制器外设给到CAN收发器的是TTL逻辑电平,经过CAN收发器转换成差分信号。

CAN 的隐形和显性介绍:

隐性是逻辑1

显性是逻辑0

CAN一个位的介绍:

CAN的一个位包含了:SS,PTS.PBS1.PBS2

其中SS 占一个tq,tq是时间片。

波特率:一位数据位的主要由SS 段+PTS 段+PBS1 段+PBS2段,进而根据每秒可以传输的数据位的个数来确定通讯中的波特率。

SJW是什么?

---------------------------------------------------------------------------------------------------------------------------------

重要!!!

CAN的同步问题

CAN 同步分为两个部分:

1.硬同步

2.重新同步

硬同步:

硬同步问题1:总线上出现帧起始信号的下降沿,到节点内部原来的同步位置为什么会产生一个比较大的偏移?

这个地方是一个位发生的事情,总线在出现帧起始信号下降沿SOF的时候,假设就是A节点发的,但是B节点在接收这个显性的时候正好在PTS或者PBS段,B节点发现SOF不在SS段,B节点就会同步SS使SOF在SS段。

补充图理解:

重新同步:

针对下图这种相位有点偏移的,需用到重新同步。

充分理解相位超前和相位滞后

为什么会有相位超前和相位滞后这个也要理解一下//这个上面疑问已经解答了,实际就是总线在出现SOF之后,落在某一节点的SS PTS PBS1 PBS2可能的任意一个位置。

为什么有了硬件同步,还需要重新同步?

当硬同步结束后,在后续的数据传输过程中,必须保证每一个由隐性电平到显性电平的跳变沿也必须落在SS段内。否则,产生重新同步。

疑问1:硬同步不是在每个CAN位都会硬同步的吗?

按照另一个博主的阐述好像确实只会硬同步一次。4 CAN同步机制-CSDN博客

还是有一个问题就是,硬同步是在每一帧的第一个帧吗?

是的。

来自文心一言的回答:

CAN硬同步通常是在每一帧的第一个位,即帧起始位(SOF)进行的。这一同步机制是CAN总线通信中的重要组成部分,用于确保所有节点在接收到新的数据帧时能够重新同步其位时序。

CAN硬同步的详细解释:

  1. 同步目的
    • 由于CAN总线属于异步通讯,没有专门的时钟信号线,因此节点间必须约定好波特率以确保通信顺畅。然而,由于每个节点的晶振可能存在微小差异,长时间通信后会产生累计误差。硬同步的目的就是在每一帧开始时,通过帧起始位的同步,消除或减小这些累计误差。
  2. 同步过程
    • 当总线处于空闲状态时,一旦有节点开始发送数据帧,该帧的起始位(SOF)会触发一次硬同步。此时,所有接收节点都会调整自己的同步段(SS)位置,使其与发送节点的帧起始位SS段对齐。
    • 这种对齐操作通常是通过接收节点检测帧起始位的下降沿,并据此调整自己的时序来实现的。无论接收节点之前的位时序如何,一旦检测到帧起始位,都会立即进行硬同步,重新开始计算位时间。
  3. 同步效果
    • 硬同步确保了所有节点在接收新数据帧时都能从同一起点开始计算位时间,从而消除了前一帧可能产生的累计误差。
    • 然而,由于晶振差异和线路延迟等因素的存在,硬同步并不能保证后续位时序的完全同步。因此,在CAN总线通信中,还需要通过重同步机制来进一步调整位时序。

注意事项:

  • 硬同步只在总线空闲且检测到帧起始位时才进行。
  • 在消息帧的随后位中,如果检测到从1到0的跳变(且该跳变落在同步段之外),则会引起重同步操作。
  • CAN总线通信中的位填充机制也有助于提高同步质量,通过增加从1到0的跳变机会来增多重同步的数量。

综上所述,CAN硬同步确实是在每一帧的第一个帧起始位进行的,它是CAN总线通信中确保节点间同步的重要机制之一。

 补充:

未完待续。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/768802.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MSI安装包安装的Mysql8,配置文件my.ini在哪儿?

版本 我安装的版本是8.0.36,server根目录下没有配置文件。 文件位置 首先找到对应的windows服务 右击属性,可以看到启动参数,启动参数中有配置文件的路径 比如我的配置文件在"C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"

XHS xs逆向分析

已经把所有的侵权地方删除,望批准 前言 1.本文单纯学习jsvmp和交流,无任何其他意图 2.学习jsvmp,通过插桩和算法还原。 问:什么是vmp? JSVMP(JavaScript Virtual Machine Protocol)是一种…

严蔚敏数据结构(C语言版)吴伟民宁编著清华大学计算机系列教材+题集+配套题库+笔记+习题PDF电子版

今天分享的是 严蔚敏数据结构(C语言版)题集配套题库笔记习题PDF电子版 注:本资源搜集于网络,仅供学习交流,严禁用于商业用途 内容简介: “数据结构”是计算机程序设计的重要理论技术基础,它…

002 使用kibana操作ElasticSearch7.x

文章目录 4.使用kibana操作es4.1.文档操作1.put方式发送数据2.post方式发送数据3.查看索引文档 GET4.更新文档 POST5.删除文档&索引 DELETE6.批量添加数据_bulk 4.2.Query DLS(查询领域对象语言)1.url 检索数据语法2.查询所有数据3.查询全部数据并排序4.查询全部数据排序并…

蓝蜂网关接入雄安新区物联网统一开放平台应用案例

蓝蜂网关接入雄安新区物联网统一开放平台案例 一、应用背景 为响应国家《河北雄安新区规划纲要》,由中国雄安集团数字城市科技有限公司牵头,以中移物联网有限公司为牵头单位的联合体,构建了雄安新区物联网统一开放平台(简称雄安…

2024英语专业大学排名一览表

英语专业排名前10名的大学是:北京大学、北京外国语大学、上海外国语大学、黑龙江大学、上海交通大学、南京大学、浙江大学、广东外语外贸大学、清华大学、北京航空航天大学,以下是查大学网(www.chadaxue.com)整理的2024英语专业大…

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数(通常在十亿个以上)、超强计算资源的机器学习模型,能够处理海量数据,完成各种复杂任务,如自然语言处理、图像识别等。计算机硬件性能不断提升,深度学习算法快速优化&…

js替换对象里面的对象名称

data为数组,val为修改前的名称,name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) ; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句: 代码可复制 let tenantInf…

安装windows服务,细节

1、选中服务代码,右键添加安装程序。 2、安装程序的权限一定改为local,否则安装时会提示null错误。 3、安装服务 InstallUtil D:\vs2022work\testFW\testFW\bin\Debug\testFW.exe p:InstallUtil 需要新建环境变量才能直接使用(找到InstallUtil 工具所在…

Softing助力工业4.0 | 通过OPC UA和MQTT访问SINUMERIK 840D CNC控制器数据

Softing uaGate 840D是用于采集西门子SINUMERIK 840D SL/PL CNC控制器数据的物联网网关,支持OPC UA服务器和MQTT发布功能。该网关提供对SINUMERIK 840D CNC控制器机床数据的访问,支持读取、处理重要的主轴和从轴数据,例如扭矩和功耗&#xff…

235、二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自…

今天的A股,让人惊愕了,2个耐人寻味的重要信号,有望迎来下一个超级风口!

今天的A股,让人惊愕了,你知道是为什么吗?盘面上出现2个耐人寻味的重要信号,有望迎来下一个超级风口! 1、今天两市低开低走,但大消费劲头十足,连中免这样的大体量都涨停了,另外消费茅…

Rocky Linux 9 系统OpenSSH CVE-2024-6387 漏洞修复

Rocky Linux 9系统 OpenSSH CVE-2024-6387 漏洞修复 1、漏洞修复2、修复思路3、修复方案3.1、方案一3.2、方案二 4、总结5、参考 1、漏洞修复 CVE-2024-6387:regreSSHion:OpenSSH 服务器中的远程代码执行(RCE),至少在…

电脑免费压缩软件app哪个好?Top15压缩软件良心测评,图文详解!

你是否在寻找一款能够帮助你释放电脑存储空间的免费压缩软件app呢?在当今数字化生活中,文件和媒体内容日益增多,而硬盘空间却总是显得不够用。优秀的压缩工具不仅能节省空间,还能提升系统效率,让你的电脑运行更加流畅。…

Linux源码阅读笔记12-RCU案例分析

在之前的文章中我们已经了解了RCU机制的原理和Linux的内核源码,这里我们要根据RCU机制写一个demo来展示他应该如何使用。 RCU机制的原理 RCU(全称为Read-Copy-Update),它记录所有指向共享数据的指针的使用者,当要修改构想数据时&…

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础,在学习DDR3之前,我们先来学习一下SDRAM的相关知识。 1 SDRAM …

公网IP变更自动微信通知与远程执行命令的C++开源软件

基本功能 智能公网IP变更监测与微信通知 一旦检测到公网IP地址发生变更,系统将自动通过预设的QQ邮箱(该邮箱与微信绑定,实现微信通知)发送新IP地址通知。同时,软件会即时更新本地配置文件中的IP地址及变更时间&#…

vscode插件的开发过程记录(一)

前言 本文是关于visual studio code软件上自定义插件的开发记录,将从头记录本人开发的过程,虽然网上也有很多文章,但个人在实践的过程还是会遇到不一样的问题,所以记录下来,以便于后期参考。 前期准备: 1、…

Xilinx FPGA:vivado实现乒乓缓存

一、项目要求 1、用两个伪双端口的RAM实现缓存 2、先写buffer1,再写buffer2 ,在读buffer1的同时写buffer2,在读buffer2的同时写buffer1。 3、写端口50M时钟,写入16个8bit 的数据,读出时钟25M,读出8个16…

William Yang:从区块链先锋到艺术平台创始人

在区块链技术和加密货币市场飞速发展的今天,William Yang无疑是这一领域的佼佼者。他不仅在学术和媒体领域取得了显著成就,更在创业之路上不断探索,成为了业内知名的KOL(关键意见领袖)。今天,我们有幸采访到…