车载网络测试 - CANCANFD - 基础篇_04

news2024/11/23 21:59:34

 

9、CAN报文包含帧格式

        1)数据帧
        2)远程帧
        3)错误帧
        4)过载帧
   

SOF:Start Of Frame,帧起始位;一个显性位,表明一帧的开始

RTR:Remote Transmission Request,远程传输请求位;

       RTR = 0:数据帧

       RTR = 1:远程帧

IDE:Identifier Extension,标识符扩展

        IDE = 0:11 bits -> 标准CAN帧

        IDE = 1:29 bits -> 扩展CAN帧

DLC:Data Length Code,数据长度代码;0 - 8 bytes。

ACK:Acknowledgement,应答

        发送节点:1

        接收节点:0

EOF:End Of Frame,帧结束场;连续7个隐性位,无填充位

Identifier:相当于姓名或者职务

Data:最大为8个字节

Checksum:校验和;

        G(x) = x^15 + x^14 + x^10 + x^8 + x^7 + x^4 + x^3 + 1

DEL:一个隐性位

ITM:帧间空间

10、错误帧

        用于标识发生了总线上出现了错误

                > 主动错误和被动错误

                > 无填充位

        错误帧分类

                > CRC错误 (CRC Error)

                > 形式错误 (Form Error)

                > 填充错误(Stuff Error)

                > 应答错误(ACK Error)

                > 位错误Bit Error)

11、过载帧

       >  延缓其它节点发送报文

       > 每个节点最多连续发送两条过载帧

12、总线报文检测

        形式检测:在CRC分隔符、ACK分隔符、帧结束和帧间隔中不允许出现显性位

        位填充检测:检查区间从SOF到CRC分隔符

        应答:只有一个节点的网络无法工作

        回读:所发送的位必须从总线上正确回读,否则就是个位错误;在仲裁场和应答间隙,隐性位可以被显性位重写

 13、CAN控制器的3种状态

        > 主动错误

        > 被动错误

        > BusOFF

        
1、在接收过程中发现一个错误,接收错误计数器加1
        例外:在错误Flag或过载帧Flag发送过程中的位错误不计数

2、当接收节点发现错误帧Flag之后的第一个位为显性位,接收错误计数器加8
3、当一个发送节点发送一个错误帧,发送错误计数器加8
        例外1:如果发送节点为被动错误状态,则当起没有检测到显性应答或发送错误帧时没有检测到显性位
        例外2:如果发送节点发送错误顿是由于在仲裁过程中发生了位填充错误(这个填充位在RTR位之前,应该为隐性。这个填充位的确是被当作隐性发送出去的,但是通过对总线的检测发现是显性)

4、如果发送节点在发送主动错误Flag或过载Flag的过程中发现一个位错误,发送错误计数器加8

5、如果接收节点在接收主动错误Flag或过载Flag的过程中发现一个位错误,接收错误计数器加8

6、任何节点在发送主动错误Flg,被动错误Flag或过载Flag之后,最多能够容忍7个连续的显性位如果出现了第8个显性位,则发送节点的发送错误计数器加8,接收节点的接收错误计数器加8

7、当成功发送一个报文,发送错误计数器减1

8、当成功接收一个报文,接收错误计数器减1(如果接收错误计数器在1到127之间)。如果接收错误计数器大于127,则接收错误计数器被置为119到127之间的一个值。

9、当节点进入Busoff状态时,如果总线上出现128个连续的11位隐性位,发送错误计数器和接收错误,计数器被清零。

14、CAN报文各个阶段解读

 1)位定时组成

        > 一个位时间包含4个时间段,8-25个时间份TimeQuantum(TQ)
        > 为了编程方便,许多CAN模块将传播段和相位缓冲段1合并,称为时间段1;将相位缓冲段2称为时间段2

 2)同步段     

        一个位的输出从同步段开始

        用于同步各个节点,跳变沿产生在此段内

        固定长度,1个TQ

3)传播段

        > 传播段用于补偿信号通过网络和节点传播的物理延迟

        > 传播段长度应大于2倍于信号在总线的延迟

        > 长度可编程 (1...8个时间份额或更长)

4)相位缓冲段1

        > 允许通过重同步对相位缓冲段1加长

        > 相位缓冲段1末端进行总线状态的采样

        > 长度可编程(1···8个时间份额或更长)

5)相位缓冲段2

       > 允许通过重同步对相位缓冲段2缩短

       > 长度可编程(1...8个时间份额或更长)

15、同步跳转宽度

        > SIW(Synchronization Jump Width)
        > 相位缓冲段1可以被延长的时间份额数量
        > 相位缓冲段2可以被缩短的时间份额数量
        > 同步跳转宽度大小
        > 最短为1个时间份额,最长为4个时间份额
        > 小于相位缓冲段2

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

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

相关文章

数字孪生世界建设核心能力:数字孪生高效建模能力

创建高保真的数字孪生体虚拟模型是构建数字孪生应用的重要步骤之一,需要真实的再现物理实体的几何图形、属性、行为和规则等。数字孪生体模型不仅要在几何结构上与物理实体保持一致,更重要的是要能模拟物理实体的时空状态、行为、功能等。 1、三维数字孪…

python爬虫之Scrapy框架--日志信息--数据提取

目录 Scrapy日志信息 了解日志信息 关于日志信息的重要性 利用日志信息进行调试和优化 Scrapy数据的提取 选择器(Selector)的基本使用 Item的定义与使用 数据处理与管道(Pipeline) Scrapy日志信息 在开发和调试过程中&a…

chatgpt赋能python:Python能跨平台吗?一文详解

Python 能跨平台吗?一文详解 Python 是一种高级编程语言,自问世以来就一直备受欢迎。其简洁明了的语法,高效率的开发和优秀的文档支持为 Python 赢得了数量众多的粉丝。与其他编程语言相比,Python 最大的优势之一是其可在多个操作…

基于Java应急资源管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

什么是HuggingFace

一.HuggingFace简介 1.HuggingFace是什么 可以理解为对于AI开发者的GitHub,提供了模型、数据集(文本|图像|音频|视频)、类库(比如transformers|peft|accelerate)、教程等。 2.为什么需要HuggingFace 主要是HuggingFace…

机器学习——决策树算法

一、实验目的 掌握如何实现决策树算法,用并决策树算法完成预测。 二、实验内容 本次实验任务我们使用贷款申请样本数据表,该数据表中每列数据分别代表ID、年龄、高薪、有房、信贷情况、类别,我们根据如下数据生成决策树,使用代…

Python基础 P7 字典和集合

文章目录 Python基础 P7 字典和集合字典字典基础内置函数增操作fromkeys()删操作pop()、popitems()和clear()改操作update()查操作get()和in/not in视图对象keys(),values(),items()拷贝copy()setdefault() 其他函数键值数量len()列表转换list()迭代器转换iter()逆向序列revers…

【初识C语言(1)】变量和常量

文章目录 1. 局部变量和全局变量2. 变量的作用域和生命周期3. 常量 生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)有些值是可变的(比如:年龄,体重&…

GitHub 上数百万个存储库可能容易被劫持

GitHub 上数以百万计的企业软件存储库很容易受到重新劫持,这是一种相对简单的软件供应链攻击,威胁行为者将依赖于特定存储库的项目重定向到恶意攻击。 研究人员在本周的一份报告中表示,这个问题与 GitHub 用户或组织更改项目名称或将其所有权…

chatgpt赋能python:Python自动执行程序:提高效率,降低出错率的利器

Python自动执行程序:提高效率,降低出错率的利器 随着科技的进步和信息技术的发展,人们越来越依赖计算机和自动化技术来完成繁琐的工作。自动化编程技术的应用也越来越广泛,其中Python自动执行程序被广泛使用。 Python自动执行程…

图像处理的两种变换:2D-DWT和Gabor变换

pywt官方API文档: 2D Forward and Inverse Discrete Wavelet Transform 目录 1. 二维离散小波变换2D-DWT 1.1 二维离散小波变换的相关公式 1.2 使用pywt实现2D-DWT 2. 窗口傅里叶变换Gabor 1. 二维离散小波变换2D-DWT DWT(Discrete Wavelet Transformation)代…

c语言通讯录——静态版本(带详细文字解释)

1.定义用于存储一个人信息的结构体 typedef struct PeoInfo {char name[NAME_MAX];int age;char sex[SEX_MAX];char addr[ADDR_MAX];char tele[TELE_MAX]; }PeoInfo;定义了一个名为 “PeoInfo” 的结构体(struct)类型,用于存储有关一个人的信…

MIAOYUN“一云多芯”全栈信创解决方案获认可!

信创,即信息技术产业创新,是数据安全、网络安全的基础,也是新基建的重要组成部分。信创产业发展已经成为经济数字化转型、提升产业链发展的关键,促进信创产业在本地落地生根,带动传统IT信息产业转型,构建区…

使用POI将excel文件导入到数据库

概要 随着时代变化,有的需求也会越来越多,例如:有的文件上千条数据需要导入数据库不可能手动一条条导入吧?太浪费时间了!所以需要编写程序让程序来导入 整体架构流程 我这里使用的是springbootmybatisMVC的项目架构…

接口测试流程、测试点和测试工具

目录 前言: 一、什么情况下开展接口测试? 二、如何进行接口测试 三、接口测试用例设计 四、接口测试工具 前言: 接口测试是一种重要的测试类型,用于验证应用程序接口的功能、性能和可靠性。 一、什么情况下开展接口测试&am…

AtomicInteger源码

介绍 Atomic包是java.util.concurrent下的另一个专门为线程安全设计的Java包,包含多个原子操作类。这个包里面提供了一组原子变量类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,…

大坝渗流监测的目的和意义

​  大坝渗流监测是对坝体内渗流场进行的监测,是确保大坝安全运行的重要手段。通过监测,可以掌握渗流场的变化规律,并根据渗流场的变化趋势预测坝体、坝基可能出现的问题。通常根据渗漏量与渗流量两个指标来进行监测,即渗漏量小…

【ndarry的基本操作】——numpy03

目录索引 基本索引和切片:普通索引:省略索引:多省略索引:间隔索引: 形态变换操作:reshape():resize():transpose():*通过参数进行转置:* flatten()&#xff1…

usb转8路串口模块

开源USB转8路串口PCB设计 文章目录 开源USB转8路串口PCB设计1. 简介2. 说明3. 一种跨电脑跨USB口的端口号自动识别方法4.开源地址 今天给大家介绍一款USB转8路串口的PCB设计,并提供一种跨电脑跨USB口的端口号自动识别方法。 1. 简介 芯片采用沁恒的CH348Q&#xff…

Kotlin Jetpack Compose - 实现Tab布局

Tab布局是一种常见的UI设计,它允许用户在不同的视图或数据集之间切换。我们将使用Jetpack Compose的 TabRow 和 ScrollableTabRow 组件来实现这个布局。 一、基本的Tab布局——TabRow 二、滚动的Tab布局——ScrollableTabRow 组件 三、自定义Tab组件 一、基本的T…