硬件设计 之 CAN通信-DSView逻辑分析仪使用-CAN波形测试

news2024/9/21 16:32:10

CAN总线讲解

1.基本概念:

**CAN,Controller Area Network,控制器局域网是用于解决汽车众多控制部件之间的数据交换而开发的一种串行数据通信总线。 **

2.CAN总线电平:

can总线采用差分电压传输数据,分别是CANH和CANL两根总线。总线上的信号电平分为这两条线之间的差分电压。
隐形电平:两条线静态时均为2.5V左右,压差为0,此时状态表示为逻辑1,也被称作隐性。
显形电平:当两条线电压值出现差异时,通常CAN_H=3.5V和CAN_L=1.5V,压差2-3V时,此时状态表示为逻辑0,也称作显性。
CAN总线上的逻辑是“线与”的形式,显性电平可以覆盖隐性电平,因此0可以覆盖1。

3.CAN数据帧:

CAN通信是通过以下5种类型的帧进行的:数据帧(标准格式和扩展格式,两种各式,分为:帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束)、遥控帧(标准格式和扩展格式)、错误帧、过载帧、帧间隔
数据帧——标准格式:
1)起始帧:SOF仅由一个显性位构成,标志数据帧和远程帧的起始,在总线空闲时才允许节点发SOF。
2)标识符:ID网络中识别某一点的信息,标准帧是11位,扩展帧的ID是29位
3)标志符扩展:IDE, IDE位为显性,表示数据帧为标准格式;IDE位为隐性,表示数据帧为扩展帧格式。
4)远程发送请求:RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。 它是区别数据帧和远程帧的标志。
5)数据场:DLC,数据长度位
6)CRC段:该段用于检查帧传输错误,由15个位的CRC顺序和1个位的CRC界定符(用于分隔的位)组成
7)ACK段:此段用来确认是否正常接收,ACK段是由ACK槽(ACK Slot)和ACK界定符2个位组成,发送单元ACK段:发送2个隐性位,接收单元ACK段:接收到正确消息的单元,在ACK槽发送显性位,通知发送单元,正常接收结束, 称之为发送ACK/返回ACK
8)帧结束:End of frame,帧结束段表示该帧报文的结束,当接收到EOF 字段的最后一位且全为隐性位时,该消息被认为是有效的。 若 EOF 字段中出现显性位将会使发送器重复发送信息。
9)标准帧与扩展帧框图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.CAN 的原理图设计:

单片机引出接到CAN收发器,在经过防护器件,连接到端子上,如下图所示:
在这里插入图片描述

5.PCB设计:

can差分走线可以控120阻抗,也可以不控阻抗,丹药加粗走线就可以 ,做好隔地处理。
在这里插入图片描述

6.CAN电路硬件测试波形:

1)通过CAN卡接收到的数据:

在这里插入图片描述

2)通过示波器测量到CAN高、CAN低、CAN差分波形:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.通过DSView逻辑分析仪查看CAN波形:

1)DSView逻辑分析仪逻辑分析接法:

0通道的地接PCB单板上的GND,0通道正接CANL,因为DSView的解码是依据逻辑上的高低电平,CANL对地的高低变化与逻辑"相符"。

2)DSView逻辑分析仪逻辑分析设置:

阈值电压设为2V, 采样时间至少要大于发送周期,采样频率设为默认的500KHz。然后点击开始进行解析,有了波形之后,再进行解码,如下图所示:
在这里插入图片描述

3)CAN波形解码:

按照上诉完成之后,就会出现如下的数据,对应的不同数据帧。从这里看到的是和示波器测量、CAN卡接受的数据是一样的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上资料主要是本人在PCB设计中和网络搜索整理而成
如有雷同或错误,希望各位大神留言指正,感谢!!!
在这里插入图片描述

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

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

相关文章

QCon演讲实录(上):多云环境下应用管理与交付实践

作者:阿里云大数据基础工程技术团队——郭耀星 大家上午好!我是来自阿里云大数据基础工程技术团队的郭耀星,花名雪尧。今天我很高兴能够来到QCon,与大家分享我的经验和心得。在当前的多云环境中,作为运维支撑团队&…

GPDB中的HASH JOIN解析

GPDB中的HASH JOIN机制Hash Join是利用hash函数来实现和加速数据库中JOIN操作的一类算法。主要优势是hash函数可以只通过一次运算就将键值映射到固定大小的hash值,仅用作等值join中。由于HASH JOIN的算法复杂度在平均情况下是O(n),所以通常在大规模数据时…

【K3s】第15篇 使用containerd容器部署k3s集群

目录 1、文件准备 2、安装master节点 3、安装agent节点 4、查看详情信息 5、遇到问题 1、文件准备 安装docker yum install -y dockersystemctl status docker 增加docker国内镜像源 vi /etc/docker/daemon.json 添加内容为: { "registry-mirrors":…

MySQL:为什么说应该优先选择普通索引,尽量避免使用唯一索引

前言 在使用MySQL的过程中,随着表数据的逐渐增多,为了更快的查询我们需要的数据,我们会在表中建立不同类型的索引。 今天我们来聊一聊,普通索引和唯一索引的使用场景, 以及为什么说推荐大家优先使用普通索引&#xf…

面试题(二十四)数据结构与算法

9.1哈希 请谈一谈,hashCode() 和equals() 方法的重要性体现在什么地方? 考察点:JAVA哈希表 参考回答: Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。…

【OJ】本土化

📚Description: 激动人心的时刻到了!我们开发的记账软件即将在欧美地区发布,但我希望能把本土化工作做得更好。所谓的本土化可不仅仅是把软件界面语言翻译成英语,还要根据当地的习俗来调整软件的使用方法。 比如我国在书写数字…

【yolov5】首次尝试目标检测利用prompt

1、打开prompt 2、切换到pytorch所在环境 conda activate freezing我的环境名是freezing,这里根据自己环境名去激活切换 3、进入到yolov5项目所在路径 激活完环境后立即执行指令当然是无效的,首先要进入到你的项目目录 首先看一下自己的项目在那个位…

MongoDB分片集群部署及实践

文章目录MongoDB分片集群部署及实践一、前言二、了解分片集群1.简介2.分片集群组件3.副本集模式三.安装部署1.分片集群环境2.安装1)CPU 检测2)修改机器名称3)配置 hosts 文件4)配置防火墙5)创建目录6)安装 …

PowerBI的使用和基本效果

1. 什么是PowerBI Power BI 是一套商业分析工具,用于在组织中提供见解。可连接数百个数据源、简化数据准备并提供即席分析。生成美观的报表并进行发布,供组织在 Web 和移动设备上使用。每个人都可创建个性化仪表板,获取针对其业务的全方位独…

加一-力扣66-java高效方案

一、题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:di…

PostgreSQL的下载安装教程(macOS、Windows)

postgresql是GIS服务端几乎不可避免要打交道的数据库。因为mysql的空间扩展真是不尽人意。所以想要学会GIS服务端知识,postgresql(下文简称pg)你是必须要会的。 首先要知道,pg是一个空间数据库,和普通数据库不同的是pg支持空间数据的存储与操作。这里所谓的空间数据一般指…

1、为什么要经常对数据做特征归一化

前言: feature scaling 即为特征归一化、标准化,是数据预处理中的重要技术。在实际运用中,使用梯度下降算法的模型都需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对决策树模型并不适用,因为信…

【LeetCode】每日一题(3)

目录 题目:1234. 替换子串得到平衡字符串 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:1234. 替换子串得到平衡…

handler解析(3)-同步消息、异步消息、同步屏障

Message分为3种:普通消息(同步消息)、屏障消息(同步屏障)和异步消息。我们通常使用的都是普通消息,而屏障消息就是在消息队列中插入一个屏障,在屏障之后的所有普通消息都会被挡着,不…

使用继承与派生的6大要点

概述 面向对象编程技术非常看重软件的可重用性,在C中,可重用性是通过继承机制来实现的。继承机制允许程序员在保持原有类的数据和功能的基础上进行扩展,增加新的数据和功能,从而构成一个新的类,也称为派生类。原有类&a…

分销系统逻辑

相关概念 主营商户: 提供分销商品和佣金的商户分销商: 拥有自己的销售渠道,能够帮助推动产品销售的个人或商户消费者: 购买分销商品的人。佣金: 主营商户返还给经销商的比例抽成 分销功能设计 (1)分销商准入规则设计 无规则: 没有分销商的准入门槛限制&#xf…

七大设计原则之依赖倒置原则应用

目录1 依赖倒置原则2 依赖倒置应用1 依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。…

VHDL语言基础-Testbech

目录 VHDL仿真概述: 基本结构: VHDL一般仿真过程: 仿真测试平台文件: 编写测试平台文件的语言: 一个测试平台文件的基本结构如下: 测试平台文件包含的基本语句: 产生激励信号的方式: 时钟信号: 复位信号: 周期信性信号: 使用延迟DELAYD: 一般的激励信号…

算法leetcode|36. 有效的数独(rust重拳出击)

文章目录36. 有效的数独:样例 1:样例 2:提示:分析:题解:rustgoccpythonjava36. 有效的数独: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效…

【C++】类和对象---需掌握的功能

目录1.初始化列表1.1构造函数赋值1.2初始化列表格式:编译器执行的顺序:特性:1.3explicit关键字类型替换过程多参数构造函数类型替换(C11)2.static成员编程题3.匿名对象4.友元4.1友元函数4.2友元类5.内部类6.拷贝对象时…