CAN学习笔记

news2024/11/20 3:25:28

学习链接: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总线通信中确保节点间同步的重要机制之一。

 补充:

未完待续。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…

【JVM-05】Java内存区域(运行时数据区)、对象创建过程、内存布局

【JVM-05】Java内存区域即运行时数据区、对象创建过程、内存布局 1. 介绍下Java内存区域(运行时数据区)1.1 程序计数器(线程私有)1.2 虚拟机栈(线程私有)1.3 本地方法栈(线程私有)1.4 Java堆(线程共享)1.5 方法区(线程共享)1.5.1 方法区和永久代的关系1.5.2 常用参数1.5.3 为什…

2024年上半年典型网络攻击事件汇总

文章目录 前言一、Ivanti VPN 的0 Day攻击(2024年1月)二、微软公司高管账户泄露攻击(2024年1月)三、Change Healthcare网络攻击(2024年2月)四、ConnectWise ScreenConnect漏洞利用攻击(2024年2月)五、XZ Utils软件供应链攻击(2024年3月)六、AT&T数据泄露攻击(20…

软件系统测试的内容和流程大揭秘,如何获取系统测试报告?

软件系统测试是指对软件系统的功能、性能、安全等方面进行验证和确认的过程。它是软件开发过程中至关重要的一环,通过测试可以发现并修复软件中存在的缺陷和问题,确保软件的质量和可靠性。在当前日益竞争激烈的市场环境下,软件系统测试显得尤…

你想活出怎样的人生?

hi~好久不见,距离上次发文隔了有段时间了,这段时间,我是裸辞去感受了一下前端市场的水深火热,那么这次咱们不聊技术,就说一说最近这段时间的经历和一些感触吧。 先说一下自己的个人情况,目前做前端四年&am…

朋友圈运营必备!一键转发和自动转发轻松搞定!

你还在手动发布多个微信号的朋友圈吗? 现在,就教你一招,让你轻松实现一键转发和自动转发朋友圈! 首先,我们需要在个微管理系统上登录自己的微信号,以便进行统一管理。这个系统可以多个微信号同时登录&…

C++初学者指南-3.自定义类型(第一部分)-异常

C初学者指南-3.自定义类型(第一部分)-异常 文章目录 C初学者指南-3.自定义类型(第一部分)-异常简介什么是异常?第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理 问题和保证资源泄露使用 RAII 避免内存泄漏!析构函数:不要让异…

elementui中@click短时间内多次触发,@click重复点击,做不允许重复点击处理

click快速点击&#xff0c;发生多次触发 2.代码示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">确 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按钮 */sub…

【UE5.3】笔记6-创建可自由控制Pawn类

搭建场景 搭建一个场景&#xff1a;包含地板、围墙。可以根据喜好加一些自发光的效果。 增加食物 创建食物蓝图类&#xff0c;在场景里放置一些食物以供我们player去吃掉获取分值。 创建可控制的layer 我们先右键创建一个蓝图继承自pawn类&#xff0c;起名BP_Player&#xf…

linux应用开发基础知识(八)——内存共享(mmap和system V)

mmap内存映射 内存共享定义 内存映射&#xff0c;简而言之就是将用户空间的一段内存区域映射到内核空间&#xff0c;映射成功后&#xff0c;用户对这段内存区域的修改可以直接反映到内核空间&#xff0c;同样&#xff0c;内核空间对这段区域的修改也直接反映用户空间。那么对…

[leetcode hot 150]第四百五十二题,用最少数量的箭引爆气球

题目&#xff1a; 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。…

【leetcode64-69二分查找、70-74栈、75-77堆】

二分查找[64-69] 时间复杂度O(log n)&#xff0c;要想到二分排序 35.搜索插入位置 class Solution:def searchInsert(self, nums: List[int], target: int) -> int:left 0right len(nums)-1while left < right: #左闭右闭mid (leftright)//2if nums[mid] < target…

Unity Animator 运行时修改某个动画状态的播放速度

1.添加动画参数&#xff0c;选择需要动态修改速度的动画状态 2.在属性面板种设置速度倍速参数

MySQL之备份与恢复(二)

备份与恢复 定义恢复需求 如果一切正常&#xff0c;那么永远也不需要考虑恢复。但是&#xff0c;一旦需要恢复&#xff0c;只有世界上最好的备份系统是没用的&#xff0c;还需要一个强大的恢复系统。 不幸的是&#xff0c;让备份系统平滑工作比构造良好的恢复过程和工具更容易…

全网把Kafka概念讲的最透彻的文章,别无二家

消息队列老大哥Kafka在官网的介绍是这么说的&#xff0c;真是霸气&#xff1a;全球财富前100强公司有超过80%信任并使用Kafka。Kafka目前在GitHub目前也已经有star数27.6k、fork数13.6k。 More than 80% of all Fortune 100 companies trust, and use Kafka. 大家好&#xff0c…

开放式耳机怎么选?五大2024年口碑销量爆棚机型力荐!

在选购开放式耳机的时候&#xff0c;我们总会因为有太多的选择而陷入两难&#xff0c;又想要一个颜值比较高的&#xff0c;又想要同时兼顾性能还不错的&#xff0c;所以作为测评博主&#xff0c;今天我们就给大家带来自己的一些选购技巧和自己觉得还不错开放式耳机&#xff0c;…

Git使用[推送大于100M的文件后解救办法]

推送大于100M的文件后解救办法 本文摘录于&#xff1a;https://blog.csdn.net/u012150602/article/details/122687435只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 当有文件大于100M的时候在提交的时候没有问题,但是在push的似乎就不行…

SpringCloud中复制模块然后粘贴,文件图标缺少蓝色方块

再maven中点击&#xff0b;号&#xff0c;把当前pom文件交给maven管理即可

魔行观察-AI数据分析>>勒泰中心购物中心

摘要 本报告基于 魔行观察 搜集整理的数据&#xff0c;对勒泰中心购物中心的营业状态、商户构成、业态分布以及消费者评价进行了详细分析。 商场概览 勒泰中心是一个正常营业的购物中心&#xff0c;自2013年开业以来&#xff0c;已成为当地居民和游客的重要购物和休闲场所。…

2024年港澳台联考考生成绩数据分析来啦

分数线 出炉 2024年的港澳台联考正式出分&#xff01;根据考生成绩&#xff0c;全国联招划档线如下&#xff1a; 一、本科批次 &#xff08;一&#xff09;普通类院校&#xff08;专业&#xff09;&#xff1a;文史类365分、理工类390分&#xff08;部分院校执行高分线&#…