杰发科技AC7840——CAN通信简介(7)_波形分析

news2024/10/5 17:17:10

 参考:

CAN总线协议_stm32_mustfeng-GitCode 开源社区

0. 简介

隐形和显性波形

整帧数据表示

1. 字节描述

CAN数据帧标准格式
域段域段名位宽:bit描述
帧起始SOF(Start Of Frame)1数据帧起始标志,固定为1bit显性('b0)
仲裁段dentify(ID)11本数据帧的ID信息,ID信息的作用:①如果同
时有多个节点发送数据时,作为优先级依据(仲
裁机制);②目标节点通过ID信息来接受数据
(验收滤波技术)
RTRRemote Transmission Requ
est BIT
1RTR标识是否是远程帧(0,数据帧;1,远程
帧),在数据帧里这一位为显性('b0
IDEdentifier Extension Bit1DE用于区分标准格式与扩展格式,在标准格式中
IDE位为显性(‘b0),在扩展格式里IDE位为隐
性('b1)
R0保留位11bit保留位,固定为1'b0
DLCdata length4由4位组成,MSB先行(高位先行),它的二进
制编码用于表示本报文中的数据段含有多少个字
节,DLC段表示的数字为0到8,若接收方接收到
9~15的时候并不认为是错误
数据段data0~64据帧的核心内容,它由0~8个字节(0~64位)组
成,MSB先行
CRC段CRC15段用于检查帧传输错误,发送方以一定的方法计
算包括:帧起始、仲裁段、控制段、数据段;接
收方以同样的算法计算CRC值并进行比较,如果
不同则会向发送端反馈出错信息,重新发送;计
算和出错处理一般由CAN控制器硬件完成或由软
件控制最大重发数。
CRC界定符1CRC界定符(用于分隔的位),为隐性位(1'b
1),主要作用是把CRC校验码与后面的ACK段
间隔起来
A C K 槽ACK slot1在ACK槽位中,发送端发送的为隐性位,而接收
端则在这一位中发送显性位以示应答;发送ACK/
返回ACK这个过程使用到回读机制,即发送方先
在ACK槽发送隐性位后,回读到的总线上的电平
为显性0,发送方才知道它发送成功了,不用重发
ACK界定符1在ACK槽和帧结束之间由ACK界定符间隔开,
为隐性位
帧结束EOF7由发送端发送7个隐性位表示结束

2. 波形测试

空闲波形

空闲状态下是隐性电平,如图所示2条线都是高电平,大概都在2.5V左右,符合空闲波形解释。

也就是在这个时候,CAN盒子能识别到CAN总线是正常的。

想起来之前跑不起来时候的波形是低电平,说明是硬件问题。

通信波形

在CAN收发器端的整体波形

在CAN收发器端,放大之后看到电压,CAN_H 3V左右,CAN_L 1.6V左右

3. 波形分析

在上位机发送数据MCU仅接收数据的情况下:

因为逻辑分析仪无法完全显示差分信号(两根都是高电平的信号),于是使用MCU端引脚来测量RX/TX信号。可以看到右边解析的CAN数据都是正确的。其中0信号线接的是PE4表示RX,1信号线接的PE5表示TX。

GPIO_DRV_SetMuxModeSel(PORTE, 4U, PORT_MUX_ALT5);           /* CAN0_RX */
GPIO_DRV_SetMuxModeSel(PORTE, 5U, PORT_MUX_ALT5);           /* CAN0_TX */
GPIO_DRV_SetMuxModeSel(PORTE, 10U, PORT_MUX_ALT5);          /* 配置收发器standby功能*/

第一个字节0,因为有连续5个0,在中间插了个1,导致第一帧有10个数据位。

其他数据位都正常,就不都发上来了

CRC15位,中间插了一个1,导致有16位

CRC界定符是1位,ACK+ACK界定符共2位

结束符7位

在SOF和CRC之间才需要填充,因此后面7位1不用加相反电平。

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

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

相关文章

HarmonyOS开发案例:【 自定义弹窗】

介绍 基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗,效果如图所示: 相关概念 [AlertDialog]:警告弹窗,可设置文本内容和响应回…

视频输入c++ 调用 libtorch推理

1、支持GPU情况 libtorch 支持GPU情况比较奇怪,目前2.3 版本需要在链接器里面加上以下命令,否则不会支持gpu -INCLUDE:?ignore_this_library_placeholderYAHXZ 2 探测是否支持 加一个函数看你是否支持torch,不然不清楚,看到…

数据库和表创建练习

一丶要求 1.创建一个数据库db_classes 2 创建一行表db_hero 3. 将四大名著中的常见人物插入这个英雄表 二丶创建db_classes一个数据库, 使用数据库默认的字符集 create database db_classes; 三丶创建一行表db_hero 1.先切换到我们创建的db_classes;数据库中 use db_class…

HTTP的MIME 类型(2024-04-27)

1、简介 MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的标准,用来表示文档、文件或字节流的性质和格式。 MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。 浏览器通常使用 MIME 类型(而不是文件扩展名&…

打包的意义 作用等前端概念集合 webpack基础配置等

基础网页是什么? 在学校最基础的三剑客 原生JS CSS H5就可以开发静态网页了 对于浏览器而言也能识别这些基础的文件和语法,真正的所见即所得,非常直接。 为什么要使用框架库? 对于常用的前端框架而言,无论是Vue Rea…

【面试经典 150 | 回溯】组合

文章目录 写在前面Tag题目来源解题思路方法一:回溯 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾…

企业微信开发

侧边栏开发 企业内应用 创建应用 录入必要信息 配置 网页授权及JS-SDK 需要按照提示,把认证的txt暴露出来,能够访问即可。 下图为认证成功的截图 配置侧边栏工具栏 录入页面名称(tab页展示名)、页面URL 配置授权可信ip 用于…

boa交叉编译(移植到arm)

参考:CentOS7 boa服务器的搭建和配置-CSDN博客 以下操作在宿主机/编译平台操作: 1. 先执行[参考]1到3、 4.2、4.3、4.4、4.5 2. 修改MakeFile # 由以下: CC gcc CPP gcc -E # 改为: CC arm-linux-gnueabihf-gcc CPP arm-l…

019基于JavaWeb的在线音乐系统(含论文)

019基于JavaWeb的在线音乐系统(含论文) 开发环境: Jdk7(8)Tomcat7(8)MysqlIntelliJ IDEA(Eclipse) 数据库: MySQL 技术: JavaServletJqueryJavaScriptAjaxJSPBootstrap 适用于: 课程设计,毕…

Prometheus数据模型与查询语言:构建高效监控系统的关键

🐇明明跟你说过:个人主页 🏅个人专栏:《Prometheus:监控的神》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Prometheus诞生史 二、Prometheus的数据模型与查询语…

零基础HTML教程(31)--HTML5多媒体

文章目录 1. 背景2. audio音频3. video视频4. audio与video常用属性5. 小结 1. 背景 在H5之前,我们要在网页上播放音频、视频,需要借助第三方插件。 这些插件里面最火的就是Flash了,使用它有几个问题: 首先要单独安装Flash&…

物资管理的挑战与机遇:利用技术提升效率与可持续性

引言 物资管理在企业运营中扮演着至关重要的角色。有效的物资管理不仅能够确保企业正常生产和运营所需的物资供应,还能够最大程度地优化资源利用、降低成本、提高效率,从而增强企业的竞争力和可持续发展能力。然而,在当今复杂的全球供应链环境…

WebSocket的原理、作用、API、常见注解和生命周期的简单介绍,附带SpringBoot示例

文章目录 原理作用客户端 API服务端 API生命周期常见注解SpringBoot示例 WebSocket是一种 通信协议 ,它在 客户端和服务器之间建立了一个双向通信的网络连接 。WebSocket是一种基于TCP连接上进行 全双工通信 的 协议 。 WebSocket允许客户端和服务器在 单个TCP连接上…

逆数对(树状数组的方法)

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 5 4 5 1 3 2 输出 7 思路: 根据题意,求逆序对总数。 逆序对含义:如果数组中的两个不同位置,前面的数字比后面的数字严格大&…

websocket爬虫

人群看板需求分析 先找到策略中心具体的数据。对应数据库中的数据 看看接口是否需要被逆向 点开消费者细分,可以找到人群包(人群名称) 点击查看透视 label字段分类: 在这里插入图片描述 预测年龄:tagTitle 苹果id&#x…

【源码】2024最新在线客服系统优化版/客服金额结算+后台翻译+可对接自己平台客户

【源码说明】 测试环境:宝塔、Linux系统、PHP7.2、MySQL5.6,根目录public,伪静态thinkPHP,【不要开启ssl,用http就行】 config/database.php 修改数据库信息 public/index.php 修改域名信息 cgwl_pusher/config.php …

Leetcode662_二叉树最大宽度

1.leetcode原题链接:. - 力扣(LeetCode) 2.题目描述 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即&#xff0…

Angular创建项目

Angular创建项目 文章目录 Angular创建项目1. 创建项目1.1 直接安装1.2 跳过npm i安装 2. 运行程序 1. 创建项目 ng new 项目名称 1.1 直接安装 ng new angulardemo --同时会安装依赖包,执行的命令就是npm i 1.2 跳过npm i安装 ng new angulardemo --skip-inst…

关于权限的设计

首先系统权限,每个账号登录后,都需要知道这个账号允许访问哪些api,哪些数据权限(一般是指其他账号的一些数据) 这里就需要通过角色来关联。 --1.角色绑定菜单,每个菜单设计的时候包含了这个菜单会用到的所…

MySql基础二之【MySql增删改查操作】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言MYSQL数据的插入操作MYSQL数据的修改操作MYSQL数据的删除操作MYSQL数据的…