CAN波形解析实例(1)

2023-05-16

这里的CAN数据波形抓取的是两个STM32F103设备通过CAN通信一方发送另一方接收,CAN收发器使用的是TJA1051
(扩展帧发送数据ID=0x18DAF110 Data=0x06 0x08)

测量总线信号的波形如图1所示,这里示波器的探头接的是CAN_H,探头的夹子接的是参考地:
这里只测了CAN_H的波形,实际上CAN_L的波形与CAN_H的波形是反相的,形成差分信号。
在这里插入图片描述
测量接收端CAN_RX的波形如图2所示,这里示波器的探头接的是CAN_RX,探头的夹子接的是参考地,测量的是芯片CAN控制器出来的逻辑波形,还未经过CAN收发器转换:

在这里插入图片描述

CAN_TX和CAN_RX是CAN控制芯片的发送管脚(CAN_TX)和接收管脚(CAN_RX)。
完整的CAN电路是由CAN控制器和CAN收发器组成的,二者之间一般通过TTL电平的收发信号(CAN_RX、CAN_TX)连接,由CAN收发器将CAN_TX的TTL信号转换为CAN规范差分信号输出(CAN_H、CAN_L)、同时接收差分线上的实际信号并转换为TTL信号输出到CAN_RX管脚上。
CAN收发器与CAN控制器的CANTX和CANRX相连,对外引出CANH和CANL引脚,输出标准的CAN信号。

CAN总线上,信号表现为电压形式,通过CAN_H和CAN_L线上的电位差来表示CAN信号,分为显性电平(dominant)和隐性电平(recessive)两种类型。其中显性电平规定为逻辑0隐性电平则为逻辑1。其具体定义可通过下图来理解。
在这里插入图片描述
根据上图的CAN_H信号和我们测量到的CAN_H信号对比,CAN_H的高电平对应显性电平逻辑0,CAN_H的低电平对应隐性电平逻辑1,那么图1对应的波形的逻辑数据为:
0 || 11000110110 || 11 || 101111000100010000 || 0[1]00 || 0010 || 0000[1]0110 || 0000[1]1000 || 101101101001000 || 101
SOF|| ID || SRR IDE|| ID扩展 || RTR r0 r1 || DLC|| data0 || data1 || CRC ||CRC界定符 ACK槽 ACK界定符

注意:当连续输出5个相同的位,则需要插入一个反码位 ,如连续输出5个0则需要插入一个1,但这个1在读数时要去掉,上面[1]就是需要忽略的

数据帧的构成图解如下(标准帧和扩展帧只有中间一部分不同):
在这里插入图片描述
注意我们这里抓的波形是扩展帧

解析信息:
29位ID
1 1000 1101 1010 1111 0001 0001 0000 从右到左每4位一个字段,即为0x18DAF110

DLC
0010
转换成十进制为2 表示这一帧中有两个数据,接下来的16个字节便表示2个数据

D1
0000[1]0110 = 0x06

D2
0000[1]1000 = 0x08

这样便解析出了我们需要的数据,这是和程序发送的数据一致的。

实测SOF的宽度是8us,因此可计算出波特率为125K,与实际程序设置的速率一致。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CAN波形解析实例(1) 的相关文章

  • 四、数据转换、ros-CAN通讯

    1 CAN通讯 1 1驱动安装 1 1 1在我的gitee上下载test功能包 xff0c 将libusbcan so文件复制到 lib 其他位置 计算机 lib 目录下 1 2参考 我另一篇博客一 2 1 3 下载功能包 1 3 1 在我
  • CAN扩展帧详解

    寻址方式
  • CAN通讯的byte序和bit序

    听别人说起CAN通讯协议的时候总说到Intel格式和motorola格式的时候 Intel格式如何 xff0c Motorola格式又如何 xff1f 觉得很有必要搞懂这些知识 xff0c 也看了相关资料 xff0c 可直到今天还没明白 真
  • CAN通信矩阵的理解(CAN报文信号的属性)

    CAN通信矩阵 1 CAN通信矩阵是什么 CAN通信矩阵 xff08 CAN Communication Matrix xff09 通常由整车厂完成定义 xff0c 车辆网络中的各个节点需要遵循该通讯矩阵才能完成信息的交互和共享 我们知道C
  • Linux下CAN总线速率设置,socketCAN。

    背景 xff1a 飞思卡尔Freescale的ARM9处理器i MX25系列 socketCAN对于在Linux下操作CAN总线非常的快捷方便 xff0c 其配置方法和在Linux下对网卡的配置相似 xff0c 方法如下 xff1a 1 i
  • 大疆M3508、M2006必备CAN总线知识与配置方法

    大疆M3508 M2006必备CAN总线知识与配置方法 文章目录 大疆M3508 M2006必备CAN总线知识与配置方法前言 xff1a 0x00 需要 额外的 CAN收发器 xff01 xff01 xff01 0x01 硬件层面分析为什么
  • IMX6ULL与STM32F103的CAN通信实现

    IMX6ULL与STM32F103的CAN通信实现 硬件连接驱动层实现IMX6ULLSTM32F103ZET6 应用层实现IMX6ULLSTM32F103ZET6 结果 在上一篇博文中 xff0c 我们利用USBCAN设备及其上位机软件 x
  • linux-can编程(一)

    建立can的socket int can create socket char name int fd struct sockaddr can addr struct ifreq ifr socklen t len 61 sizeof ad
  • CAN为什么会发送失败

    CAN总线调试过程中出现报文发送失败 xff0c 很多工程师都对此只知其一不知其二 xff0c 这里就CAN报文发送失败的问题我们来做一次探讨 在了解CAN报文为什么会发送失败之前我们先看看一条正确的CAN报文到底应该是怎么样的 xff0c
  • CAN总线详解(转)

    1 简介 CAN是控制器局域网络 Controller Area Network CAN 的简称 xff0c 是一种能够实现分布式实时控制的串行通信网络 优点 xff1a 传输速度最高到1Mbps xff0c 通信距离最远到10km xff
  • 使用STM32F103做CAN的收发通信

    下面也是搭建嵌入式系统所必须的一个部分 参考网站 xff1a https www cnblogs com craigtao p 3645148 html https blog csdn net qq 29413829 article det
  • 一文读懂CAN总线及通信协议

    CAN总线的汽车 CAN概念 CAN是控制器域网 Controller Area Network CAN 的简称 是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的 并最终成为国际标准 ISO11898 是ISO国际标准化的串行通信
  • STM32的CAN总线的接收双FIFO使用方法

    通过下面的框图我们可以看到 STM32F013有两个接收FIFO 但是实际的使用中如何让着两个FIFO都被使用呢 解决办法就在这里 1 STM32F103有0 13共14个过滤器组 每个过滤器组都可以绑定指定的FIFO 2 特别需要注意的一
  • 【汽车电子】浅谈汽车四大总线:LIN、CAN、FlexRay、MOST

    目录 1 前言 2 汽车四大总线 2 1 LIN总线 2 1 1 LIN总线概述 2 1 2 LIN总线工作原理 2 2 CAN总线 2 2 1 CAN总线概述 2 2 2 CAN总线工作原理 2 2 3 CAN总线的优点 2 3 Flex
  • MCP2515独立控制器

    1 简介 MCP2515 是一款独立控制器局域网络 Controller Area Network CAN 协议控制器 完全支持 CAN V2 0B 技术规范 该器件能发送和接收标准和扩展数据帧以及远程帧 MCP2515 自带的两个验收屏蔽
  • CAN/CANFD 总线负载率及计算(源码和工具)

    CAN BUS的总线负载率是CAN总线架构协议设计时的一个重要的指标 一般建议负载率峰值不要高于80 平均负载率不要超过50 当然这只是一般建议 具体根据使用场景和系统设计而定 负载率定义 关于CAN负载率的定义和计算 很多文章写得不求甚解
  • STM32学习心得三十二:CAN通信基础知识、原理、配置及实验

    记录一下 方便以后翻阅 主要内容 1 CAN通信基础知识 2 STM32 CAN控制器简介 3 相关实验代码解读 参考资料 STM32中文参考手册 V10 第22章 控制器局域网 bxCAN 实验功能 CAN实验需要两个开发板 系统启动后
  • STM32 CAN通信的学习笔记总结(从小白开始)

    知识来源于互联网 回馈于互联网 目录 1 总体概述 1 1 基本概念 1 2 通讯方式 1 3 为什么使用CAN 1 4 CAN的协议及组成 2 上帝视角看CAN的通讯过程 2 1 数据传输原理实现 2 2 通信的整个过程 2 2 1 空闲
  • STM32F407 CAN1 CAN2

    注意CAN1可以单独使用 CAN2要开启CAN1时钟才能使用 u8 CAN1 Mode Init u8 mode GPIO InitTypeDef GPIO InitStructure CAN InitTypeDef CAN InitStr
  • pico示波器使用

    文章目录 Pico示波器保存波形 Pico示波器录制数据 Pico示波器解析CAN报文 Pico示波器保存波形 Pico示波器可以通过以下步骤保存波形 在示波器上选择要保存的波形 连接示波器到计算机上 可以使用USB或者Ethernet连接

随机推荐

  • win10系统+3060显卡驱动+cuda11.5+cudnn8.3安装

    显卡驱动和一些cuda库安装教程 目的 本教程为了让大家能更好的了解和能更快的对显卡进行环境配置 需注意 xff0c 本教程的配置仅仅针对显卡NVIDA RTX 3060 其他显卡对应的配置的流程雷同 xff0c 仅仅是环境版本的不同 显卡
  • Redisson_布隆过滤器

    应用场景 去重 诞生背景 Java应用一般通过JDK自身提供的HashSet 去重 xff0c 通过contains 方法判断当前元素是否存在于Set中 该方式要求在调用contains 前 xff0c 已经将数据列表加载到内存中 xff0
  • ORB-SLAM3算法复现及遇到的问题解决 T265

    GitHub zhaozhongch orbslam3 ros https github com UZ SLAMLab ORB SLAM3 安装ORB SLAM3教程 Smile HT的博客 CSDN博客 参考以上作者 环境 xff1a u
  • 51单片机的蜂鸣器写歌的音阶

    直接上代码 xff01 span class token macro property span class token directive keyword include span span class token string lt r
  • 安装ROS版的ORB-SLAM3全过程并跑T265 的bag包

    请确保opencv eigen sophus等包已经安装好了 ORBSLAM3 下载ORBSLAM3 git clone https github com UZ SLAMLab ORB SLAM3 git 由于我们需要的是ROS版的安装 x
  • 2023 ROS版 realsense t265相机驱动安装

    安装librealsence https blog csdn net qq 43412584 article details 108357706 参考这个足够了 安装realsense ros 由于github上面已经更新了 xff0c 不
  • SLAM 轨迹评估方法 evo(包括GPS坐标转换成TUM)

    安装 evo pip span class token function install span evo upgrade no binary evo SLAM轨迹 运行ORBSLAM rosrun ORB SLAM3 Stereo Voc
  • 【SLAM】VINS-fusion,VINS-Mono 编译,使用T265测试

    安装 VINS fusion VINS Mono 将vins mono 下载到ros工作空间catkin ws里面 span class token builtin class name cd span home jiangz catkin
  • 总结使用layui-laydate日历控件遇到的问题

    一 利用layui laydate日历控件选择月份 1 问题 选择月份时不能实现鼠标直接点击选择 xff0c 选择之后需要按 确定 原来的代码 html文件 xff1a span class token operator lt span d
  • 【pytorch】torch1.7.1安装、查看torch版本、GPU是否可用

    在conda 虚拟环境下安装torch 61 61 1 7 1 43 GPU版本 本机环境 CUDA 11 0Python 3 7 安装torch1 7 1 官网搜索确认需要下载的对应本机cuda的torch版本 xff0c 使用在线下载即
  • S.BUS协议

    内容 本篇文章主要是S BUS协议原理介绍 xff0c 并实现了arduino输出S BUS数据 S BUS简介 SBUS是一个接收机串行总线输出 xff0c 通过这根总线 xff0c 可以获得遥控器上所有通道的数据 目前很多模型及无人机电
  • window10+TensorRT-8.2.5.1+yolov5 v6.2 c++部署

    一 准备工具 1 1 visual studio下载安装 参考 xff1a vs2019社区版下载教程 xff08 详细 xff09 Redamancy 06的博客 CSDN博客 vs2019社区版 1 2 显卡驱动 43 cuda 43
  • openstack创造实例报:找不到有效有效主机,没有足够主机,而且点击实例还报500

    第一次接触openstack时候 xff0c 再创建实例时候右上方就弹出创建失败 实例 xxx 执行所请求操作失败 xff0c 实例处于错误状态 请稍后再试 错误 找不到有效主机 xff0c 原因是 没有足够的主机可用 这个问题是因为你的o
  • Kubernetes v1.21 发布,新版本主要特性

    美国时间 4 月 8 日 xff0c Kubernetes v1 21 正式发布 xff0c 这是 Kubernetes 在 2021 年发布的第一个版本 此版本包含 51 项增强功能 xff1a 13 项增强功能已进入稳定阶段 xff0c
  • 基于51单片机的火焰报警器

    基于51单片机的火焰报警器 一 模块描述 1 可以检测火焰或者波长在760纳米心1100纳米范围内的光源 2 探测角度60度左右 xff0c 对火焰光谱特别灵敏3灵敏度可调 图中蓝色数字电位器调节 3 对火焰的探测距离 跟灵敏度和火焰强度有
  • STM32的大小端模式——什么是大小端模式?

    目录 1 什么是大小端模式2 为什么会有大小端模式之分3 什么情况需要考虑大小端模式4 常见的设备的大小端模式5 测试大小端模式例程6 大小端转化例程 1 什么是大小端模式 大端模式Big Endian xff1a 高字节存于内存低地址 x
  • MDK KEIL 烧录STM32下载错误:Flash Timeout.Reset the Target and try it again.解决办法(芯片解锁 解除读报护)

    使用keil开发STM32点下载时出现下面的报错 xff1a 点确定后 xff1a 出现如上情况很可能是该芯片锁死 xff0c 即设置了读写保护 解决方法是想办法解锁芯片 xff0c 可以使用ST Link配合stlink utility软
  • Visual Studio 如何创建C/C++项目

    这里不说Visual Studio安装过程 xff0c 默认已经安装好软件 对Visual Studio安装有疑问的可以参考 xff1a Visual Studio安装教程 1 打开软件Visual Studio xff0c 点击创建新项目
  • Visual Studio安装教程

    本文章主要记录Visual Studio2019的安装过程 xff0c 由于只用于开发C C 43 43 xff0c 因此关于其它语言支持将不安装 xff0c 仅供参考 一 下载 1 下载地址在微软官网 xff1a 微软官网 2 选择菜单栏
  • CAN波形解析实例(1)

    这里的CAN数据波形抓取的是两个STM32F103设备通过CAN通信一方发送另一方接收 xff0c CAN收发器使用的是TJA1051 xff08 扩展帧发送数据ID 61 0x18DAF110 Data 61 0x06 0x08 xff0