【DSView逻辑分析抓取波形CAN步骤-硬件连接-数据解析-底层波形认识CAN-工具使用】

news2024/11/18 4:19:48

【DSView逻辑分析抓取波形CAN步骤-硬件连接-数据解析-底层波形认识CAN】

  • 1、概述
  • 2、实验环境
  • 3、写在前面的一个问题
  • 4、实验准备
      • (1)硬件连接
        • 1)CAN卡连接开发板
        • (2)逻辑分析仪连接开发板
      • (2) CAN卡连接软件
      • (3)软件-DSView设置
      • (4)实验代码
  • 5、实验过程
      • (1)调试代码>>对于普通模式和回环模式
      • (2)调试代码>>对于标准帧和扩展帧
  • 6、实验结果对比
      • 第一次实验:1KHz-普通模式-标准帧
      • 第二次实验:1KHz-回环模式-标准帧
      • 第三次实验:1KHz-回环模式-标准帧+标准帧
    • (1)结果对比>>对于普通模式和回环模式
    • (2)结果对比>>对于标准帧和扩展帧
    • (3)本次实验-实验数据
  • 7、本次实验样例代码
  • 8、实验细节
  • 9、设备链接与软件地址
  • 10、参考资料
  • 11、总结

1、概述

最近在一次工作中,和同事谈论想抓下can的波形。因为以前自己也没有使用逻辑分析仪,单独抓过can。所以这次想自己亲自试试,但是尝试的时候,虽然已经查过资料,但是感觉数据就是不对,和can卡出来的数据就是有出入。经过反复实验,才渐渐明白了。

你能得到什么?你可以从本篇大致了解底层can的波形样貌,认识can,并且对于工具使用有初步了解。

2、实验环境

本次涉及的实验设备,相对多一些,如果你做本次实验,可以用其它替代品,并一定非要一模一样。

  1. 开发板:正点原子STM32F407探索者
  2. 开发调试软件:KEIL5
  3. 逻辑分析仪:DSLogic
  4. 逻辑分析仪软件:DSView
  5. can卡:创芯科技 CAN分析仪 CANOpen J1939 DeviceNet USBCAN USB转CAN 高配版(红色)
  6. CAN:随can卡软件适配软件
  7. 下载器:J-Link
  8. 其它辅助材料:电源适配器,杜邦线等

以下是测试环境拍摄
在这里插入图片描述

3、写在前面的一个问题

最开始设计实验的时候,就想用can卡直接连接逻辑分析仪,一个发一个收,这样你知道你发了啥,你收到你直接解析,清晰明了,但是后来如何连接和设置软件,都没成功,后来才发现:
有can卡的时候,逻辑分析仪就会出现数据不对情况。
有can卡的时候,这款逻辑分析仪貌似不能同can开一同使用。
有can卡的时候,CAN不能直接发数据给逻辑分析仪。
如下图,就是开始出现问题时候,一次性将所有东西都接好了,导致逻辑分析仪数据就是不对,所以本次实验,

默认使用can卡时,暂时断开逻辑分析仪。
默认使用逻辑分析仪时,暂时断开can卡。
在这里插入图片描述

4、实验准备

(1)硬件连接

硬件连接部分主要分为CAN卡连接开发板和逻辑分析仪连接开发板。

1)CAN卡连接开发板

如下图所示

开发板CANH----> CAN卡H
开发板CANL----> CAN卡L

在这里插入图片描述

(2)逻辑分析仪连接开发板

逻辑分析仪抓取can,稍微不一样,逻辑分析仪主要是一个GND和通道,按如下方式接。

通道0的通道0--->接开发板CANL
通道0的GND--->接开发板GND

在这里插入图片描述

(2) CAN卡连接软件

如果你和我买的这款can卡一样的话,那么可以想店家要资料,里面有这个软件。
在这里插入图片描述

(3)软件-DSView设置

这块开始查资料,没注意到,导致没成功,主要有两个注意点

  1. 2V电平设置
  2. 波特率和采集频率

2V电平设置
如下图,主要是阈值电平,默认是1V,要设置2.0V
在这里插入图片描述 波特率和采集频率
如下图,波特率主要是从发射端,你需要知道你测试频率是多少,本次实验是1000K,如下图是1000000,也就是6个零,
采集时间是5S,采集频率20MHz,一般采集频率要求是高于采集源头的2倍数以上
在这里插入图片描述

(4)实验代码

本次实验使用的正点原子代码,并没有自己亲自重新写一份代码,稍微做了修改,可以去下边自取。

在这里插入图片描述

5、实验过程

在调试过程中,发现有些参数设置,需要注意,而这些参数的不同,在can卡和逻辑分析仪上,看到结果也不禁相同。

  1. 普通模式和回环模式
  2. 标准帧和扩展帧

(1)调试代码>>对于普通模式和回环模式

因为这两个模式:普通模式和回环模式,只能在初始化时设设置,所有跑了两边代码,才能看出差异,平时使用时,有可能就因为这个模式不同,而设备无法工作。
如下图,在初始化时,这个地方进行设定。
在这里插入图片描述

(2)调试代码>>对于标准帧和扩展帧

这个数据帧,在发送时只要设一下就可以了,可以在一份带来发送不同帧,所有在下边代码,直接复写了函数,分别装载不同数据,用来去区分。

样例数据:

    uint8_t canbuf[8]={0x02,0x00,0x72,0x3C,0x42,0x68,0x00,0x00};
	uint8_t test_canbuf1[8]={0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18};
	uint8_t test_canbuf2[8]={0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28};

复用发送代码:
在这里插入图片描述

实际循环发送:

在这里插入图片描述

6、实验结果对比

说明:中间改过代码,最终结果截图不是和最终代码一致的,但为了说明其问题。

第一次实验:1KHz-普通模式-标准帧

(1)逻辑分析仪抓取数据如下图
在这里插入图片描述

(2)can卡如下图
在这里插入图片描述

第二次实验:1KHz-回环模式-标准帧

(1)逻辑分析仪抓取数据如下图
在这里插入图片描述

(2)can卡如下图
在这里插入图片描述

第三次实验:1KHz-回环模式-标准帧+标准帧

(1)逻辑分析仪抓取数据如下图
在这里插入图片描述
在这里插入图片描述

(2)can卡如下图
在这里插入图片描述

(1)结果对比>>对于普通模式和回环模式

(1)从CAN卡端,接收的数据看不出任何任何差别,会告诉是标准帧和扩展帧,但仅此而已。
(2)从逻辑分析仪,可以看出明显差别
普通模式:像是循环一样,连续发送
回环模式:是按照1S等待时间发送的。
在这里插入图片描述

(2)结果对比>>对于标准帧和扩展帧

(1)从CAN卡端,接收的数据看不出任何任何差别,会告诉是标准帧和扩展帧,但仅此而已。
(2)从逻辑分析仪,可以看出明显差别:主要是位置不一样

在这里插入图片描述

(3)本次实验-实验数据

主要是DSView保存数据,can卡以上边截图为主
实验数据:https://download.csdn.net/download/qq_22146161/87439529

7、本次实验样例代码

本次样例代码:https://download.csdn.net/download/qq_22146161/87439432

8、实验细节

(1)如果CAN卡和逻辑分析仪同时接入问题。
从实验来看,我尝试使用多种连接方式,甚至直接让CAN卡和逻辑分析仪连接,都没有成功,目前还没有查到相关原因,暂时认定不能连接。
(2)普通模式和回环模式,平时使用时,有可能就因为这个模式不同,而设备无法工作
在实际工作中,使用时,有个设备,使用开发板发送数据给它,发现设备就是不响应,但是使用can卡确实可以,数据仔细对过后,没发现却别,后来设置了普通模式立刻响应了,所以我们看着数据一样,对于设备来说,就是不一样的。
(3)can卡软件和逻辑分析仪收不到数据
这个是个人原因,有点蠢了,找了一圈,开发板忘记开电源了,并且每次下代码,要按下复位按键。
(4)下载代码时,keil软件问题
如下图,报找不到设备了,这个时候先将can卡或者逻辑分析仪拔掉,重新插下j-link尝试几次,看样是连接问题。
在这里插入图片描述

9、设备链接与软件地址

关于本次实验使用软件与硬件资料,基本上某宝,某京,只要搜索名字就能查到,我这里提供can的相关软件和一些连接:

  1. 逻辑分析仪软件:DSView>>https://www.dreamsourcelab.com/
  2. can卡:创芯科技 CAN分析仪 CANOpen J1939 DeviceNet USBCAN USB转CAN 高配版(红色)>>https://download.csdn.net/download/qq_22146161/87439313

10、参考资料

使用逻辑分析仪时,参考的网上相关文章,但是开始只有文字描述,没主要设置2V,以及怎么设置,这点笔者认为可以更好优化。
参考文章:https://blog.csdn.net/qq_37956302/article/details/122584368

11、总结

想起了最近《三体》电视剧热播,有个道理是,对于事物的本质了解,才决定人类文明高度,也许,对于我们这些搞电子相关的人来说,对于这种底层的认知,才决定水平高低。

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

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

相关文章

Linux 文件锁 - fcntl

什么是文件锁&#xff1f; 即锁住文件&#xff0c;不让其他程序对文件做修改&#xff01; 为什么要锁住文件&#xff1f; 案例&#xff0c;有两个程序&#xff0c;都对一个文件做写入操作。 #include <unistd.h> #include <stdio.h> #include <stdlib.h> …

【集群】Slurm作业调度系统的使用

最近使用集群进行实验&#xff0c;记录并学习集群系统进行深度学习的实验过程。集群所使用的作业调度系统为Slurm&#xff0c;这里记录下使用的常用命令和一些注意事项。 Slurm简介 Slurm是一个开源&#xff0c;容错&#xff0c;高度可扩展的集群管理和作业调度系统&#xff0…

excel数据处理: 如何用99个空格提取单元格数据

脑洞大开&#xff0c;提取单元格数据用99个空格就成&#xff01;真想扒开那些大神的脑袋看看&#xff0c;是怎么想出这样匪夷所思的方法的。需要从规格型号中提取容值、封装、耐压三组数据&#xff0c;如下&#xff1a;数据源在A列&#xff0c;数据量很大&#xff0c;需要提取的…

微信小程序Springboot短视频分享系统

3.1小程序端 用户注册页面&#xff0c;输入用户的个人信息点击注册即可。 注册完成后会返回到登录页面&#xff0c;用户输入自己注册的账号密码即可登录成功 登录成功后我们可以看到有相关的视频还有视频信息&#xff0c;我的信息等。 视频信息推荐是按照点击次数进行推荐的&am…

Zabbix 构建监控告警平台(四)

Zabbix ActionZabbix Macros1.Zabbix Action 1.1动作Action简介 当某个触发器状态发生改变(如Problem、OK)&#xff0c;可以采取相应的动作&#xff0c;如&#xff1a; 执行远程命令 邮件&#xff0c;短信&#xff0c;微信告警,电话 1.2告警实验简介 1. 创建告警media type&…

9.语义HTMLVScode扩展推荐

语义HTML 定义&#xff1a; 一个元素使用我们并不是只关心他是什么样子的&#xff0c;而是要去关心这个元素名称的实际意义或者代表什么 我们使用标签并不是他仅代表导航栏&#xff0c;只是将导航栏部分归为一个块。现实生活中&#xff0c;多使用之前都是使用div这个元素去构…

删除有序数组中的重复项-力扣26-java

一、题目描述给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度&#xff0c;所以必须将结果放在数组nums…

软件设计(九)

软件设计&#xff08;八&#xff09;https://blog.csdn.net/ke1ying/article/details/128954569?spm1001.2014.3001.5501 81、模块A将学生信息&#xff0c;即学生姓名、学号、手机等放到一个结构体系中&#xff0c;传递给模块B&#xff0c;模块A和B之间的耦合类型为 什么耦合…

【C++设计模式】学习笔记(1):面向对象设计原则

目录 简介面向对象设计原则(1)依赖倒置原则(DIP)(2)开放封闭原则(OCP)(3)单一职责原则(SRP)(4)Liskov替换原则(LSP)(5)接口隔离原则(ISP)(6)优先使用对象组合,而不是类继承(7)封装变化点(8)针对接口编程,而不是针对实现编程结语简介 Hello! 非常感谢您阅读海…

变分自编码器背后的直觉【VAE】

在阅读有关机器学习的内容时&#xff0c;你遇到的大部分材料可能都与分类问题有关。 你有一个特定的输入&#xff0c;ML 模型试图找出该输入的特征。 例如&#xff0c;分类模型可以决定图像中是否包含猫。 当你想创建具有预定义特征的数据时&#xff0c;反过来又如何呢&#x…

再不跳槽,就晚了

从时间节点上来看&#xff0c;3月、4月是每年跳槽的黄金季&#xff01; 以 BAT 为代表的互联网大厂&#xff0c;无论是薪资待遇、还是平台和福利&#xff0c;都一直是求职者眼中的香饽饽&#xff0c;“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&a…

预处理指令详解

预处理指令详解**1.预定义符号****2.#define****2.1 #define 定义标识符****2.2 #define 定义宏****2.3 #define 替换规则****2.4 #和##****#的作用****##的作用****2.5 带副作用的宏参数****2.6 宏和函数的对比****宏和函数对比图****2.7 命名约定****3.#undef**4.条件编译4.1…

Leg转Goh引擎和架设单机+配置登陆器教程

教程准备1、Leg版本一个2、Goh引擎一套3、电脑一台(最好联网)前言&#xff1a;BLUE/LEGS/Gob/Goh/九龍、4K、AspM2第一步&#xff1a;更换引擎1、把版本自带的LEG引擎换成Goh引擎2、删除服务端里面的exe、dll文件(也可以直接更新)3、清理登录和游戏网关里面的配置文件4、更新引…

Sandman:一款基于NTP协议的红队后门研究工具

关于Sandman Sandman是一款基于NTP的强大后门工具&#xff0c;该工具可以帮助广大研究人员在一个安全增强型网络系统中执行红队任务。 Sandman可以充当Stager使用&#xff0c;该工具利用了NTP&#xff08;一个用于计算机时间/日期同步协议&#xff09;从预定义的服务器获取并…

菌子导航系统(持续开发中)

文章目录菌子导航前言项目架构spring-cloud 和 spring-boot 版本选择使用到的组件&#xff08;依赖&#xff09;架构分层项目基本功能1 使用Nacos做配置中心2 logback日志3 mybatis-plus操作数据库4 Caffeine 缓存整合5 LocalDateTime 序列化&反序列化6 参数校验快速失败配…

ubuntu20.04 系统下 .7z 文件解压缩到指定的目录下

问题描述 环境&#xff1a; ubuntu 20.04 ubuntu 下有个 7z 的压缩文件需要解压&#xff0c;需要解压到指定的目录下&#xff0c;而不是压缩包当前目录下 安装 p7zip-full ubuntu 下的 7z 解压软件&#xff1a; p7zip-full 安装命令&#xff1a; sudo apt install p7zip-fu…

04-PS人像磨皮方法

1.高斯模糊磨皮 这种方法的原理就是建立一个将原图高斯模糊后图层, 然后用蒙版加画笔或者历史画笔工具将需要磨皮的地方涂抹出来, 通过图层透明度, 画笔流量等参数来控制磨皮程度 1.新建图层(命名为了高斯模糊磨皮), 混合模式设置为正常, 然后选择高斯模糊, 模糊数值设置到看…

前端也能悄悄对视频截图?js实现对视频按帧缓存

前言 虽然最后没有采用这种方案来实现滚动控制视频进度&#xff0c;但是仍然想自己试试这种方案的实现&#xff0c;毕竟应用范围也挺广的。 核心代码并不多&#xff0c;算是一篇小短文&#xff5e;。 掘金好像不允许放站外演示链接&#xff0c;所以这里就用动图大概展示下最终…

STL——list

一、list介绍及使用 1. list文档介绍 &#xff08;1&#xff09;list是可以在常数范围内&#xff0c;在任意位置进行插入、删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 &#xff08;2&#xff09;list的底层是带头结点的双向循环链表&#xff0c;其中每个元素…

【Java|golang】2335. 装满杯子需要的最短总时长

现有一台饮水机&#xff0c;可以制备冷水、温水和热水。每秒钟&#xff0c;可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount &#xff0c;其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的…