can的总结——笑笑

2023-05-16

一.什么是can

can就是车用主线,贯穿整个车的存在

can的分类2

默认是高速can

低速容错can

单线can

用两种can会减少can网络语言的负载率,就是原本一个小屋做核酸,现在是两个速度翻倍。可参考均衡负载原理

can的特征

1.节点间采用多主通信方式

即任意节点都可以发送,可以实现点对点发送和全局网络发送

2.采用短帧结构,报文帧的有效字节数为8个,可达汽车实时响应要求

即字节数越少响应速度越快

3.报文ID值越小,优先级越高。报文ID可分成不同的优先级,进一步满足汽车网络报文的实时性要求

4.非破坏性总线仲裁处理机制

即两个报文进行传输,不会只接收一个会根据id大小依次接收

5.可靠的CRC校验方式,传输数据出错率极低,满足汽车数据传输的可靠性要求

6.报文帧仲裁失败或传输期间被破坏有自动重发(机制)

即会将未发送成功的报文进行重新发送

7.节点在错误严重的情况下,具有自动脱离总线的功能,切断它与总线的联系,不影响总线的正常工作

如果一直发送不成功,会自动停止发送

8.通信距离最远达10km(速度5Kbps以下)

距离越远通信质量越差

9.通信速率最高1MB/s

距离越近速率越快

10.节点数实际可达110个

11.CAN节点设计成本较低,通信介质采用双绞线

can的收发器

can收发器定义:can收发器逻辑信号和物理信号之间的转换采用差分电平方式

1.将逻辑数字信号转化成物理信号

2.将物理信号转换成逻辑数字信号

can的模式

can高can低

即高速can和低速can,高速can系统采用硬线是动力型,速度快,适用于ABS、控制ECU等

低速can是舒适型,速度相对较慢,主要是控制仪表、防盗等

can信号电平

显性即差压过高然后为零 差压大于0.9v显零

隐形即无差压或者差压过低 差压小于0.5v隐1

显性0,隐性1

can编码方式

采用非归零编码

CAN编码采用NRZ非归零编码,相同带宽情况下,NRZ编码信息量比曼彻斯特编码更大

can信号电平之线与原理

多个can节点并接到同一个总线时,只要其中一个节点输出低电平,总线就为低电平;当所有节点输出高电平时,总线才为高电平

can的异步串行通信

can报文同步采用时钟线采样数据

can报文异步采用采样点按照约定的频率区采样数据

异步串行通信省去了时钟信号线,但遇到一个问题是:根据波特率做采样,波特率的误差会产生通信错误

波特率采样点每次出现一点偏差,后面偏差越来越大

can的采样点

一个标称的位时间=1/波特率

为时间分为:同步端、传播段、相位缓冲段1、相位缓冲段2

采样点在相位缓冲段1和2中提取采样
(C:\Users\10345\AppData\Roaming\Typora\typora-user-images\image-20221008212112517.png)]
在这里插入图片描述
1000=1024k 1位相当于一微妙

can的终端电阻与连接器

根据电磁场

和微波理论,高频电路中负载阻抗需与传输线的特性阻抗一致,否则电信号在线束端遭遇阻抗突变,产生反射现象,造成波形震荡

信号反射造成的信号不完整性,是属于直接将数据反射,不管数据反射到哪里
在这里插入图片描述

解决:反射都在首端或者末端进行数据传输,因此在首尾加上120欧姆,加在中间不推荐,有可能反射不到

在这里插入图片描述
协议推荐:

默认协议,但是根据制造商的设定,会有偏差[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ek2aAoEn-1665659904917)(C:%5CUsers%5C10345%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20221009194714109.png#pic_center)]

在这里插入图片描述

can终端电阻和线缆

不符合要求会造成总线波形不好之类的,影响通信
在这里插入图片描述

can节点物理结构

1.can控制器/收发器

分别对应ISO/OSI模型的数据链路层和物理层,完成CAN报文的收发

2.功能电路

完成特定的功能,如信号采集或控制外设等

3.主控制器与应用软件

  • 控制各个硬件部件工作
  • 按照CAN报文使用规则解析CAN报文;
  • 采集并发送数据等
    在这里插入图片描述

二.CAN报文

1.CAN报文帧种类

  • 数据帧 用于发送节点向接收节点传送数据,是使用最多的帧类型
  • 远程帧 用于接收节点向某个发送节点请求数据
  • 错误帧 用于当某节点检测出错误时向其他节点通知错误的帧
  • 过载帧 用于接收节点向发送节点通知自身接收能力的帧
  • 帧间隔 将数据帧或远程帧与前面的帧分离的帧

2.数据帧:标准帧和扩展帧

在这里插入图片描述

标准帧和扩展帧的帧起始,SOF,由一个显性位组成

在总线空闲的时候,发送节点发出帧起始,其他接收节点从这个帧起始位进行同步

在这里插入图片描述
控制段主要是数据长度
在这里插入图片描述
数据段最多八个字节
Data:Byt0-Byte7 传输时首先发送MSB(最高位)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
帧结束如果连续11个隐性位组成,就代表帧空闲
在这里插入图片描述在这里插入图片描述
全部加起来是108位
特殊情况:如果有位填充,那就要在加
在这里插入图片描述

3.CAN总线竞争与仲裁机制

CAN总线有多个节点同时要发送数据,谁先发送那?

CAN总线非破坏性仲裁机制

  • 仲裁发生在仲裁段
  • 采用“线与”机制
  • ID值越小,优先级越高
  • 仲裁失败进入“只听”模式

用相同的轨道,有序就是非破坏性仲裁机制

非破坏仲裁机制的前提在这里插入图片描述

检测到的数据与另一条数据相遇后,被另一条数据覆盖

如果发生在其他六个段,则会报错

仲裁的线与机制

在这里插入图片描述
显性0,隐性1

仲裁段的节点Bid第五位是隐性

节点A、C的为显性,总线电平为显性,节点B退出总线竞争

节点C的ID第三位是隐形

节点A的为显性,总线电平为显性,节点C退出总线竞争

如果有报文正在发送,是无法插入破坏这个帧的

三、CAN节点状态与错误处理机制

CAN错误类型

**1.CRC错误:**接收节点计算的CRC值与发送CRC值不同

**2.位填充错误:**传输信号违反“位填充”规则

**3.应答错误:**发送节点在ACK阶段没有接收到应答信号

**4.位发送错误:**发送节点在发送时总线电平与发送电平不同

5.**格式错误:**传输的数据帧格式与任何一种合法的帧格式不符

错误检测区域

在这里插入图片描述

错误帧

在这里插入图片描述
**主动错误:**六个连续的显性电平位(错误标志)加上八个连续的隐形电平位(错误界定符)就是处于主动错误状态的节点发送

**被动错误:**六个连续的隐性电平位(错误标志)加上八个连续隐性电平位(错误界定符)就是处于被动错误状态的节点发送

CAN节点状态在这里插入图片描述

CAN的错误处理流程在这里插入图片描述

四、CAN分析仪常用功能有那些

数据链路层测试需求

CAN报文检测,报文记录,错误帧记录

DBC解析信号,线图绘制,仪表板功能

报文自动化脚本发送等

CAN物理层测试需求

物理波形测量,CAN波形串行解码,CAN错误位指示等

五、问题

1.为什么要采用两根线(双绞线)的差分电平信号?

原因:双绞线传输差分信号时受到共模信号干扰后,电平差值不变,信号解码正常

2.如何减少波特率的误差带来的通信错误?

can总线规定信号的跳变沿时刻进行同步,将误差累积限制在两个跳变沿。

3.如果发送的数据都是0或者1,同样不跳变造成误差累积应该怎么办那?

发送多个相同位时没有跳变沿用于同步,导致误差不断累计

解决:采用填充位在连续五个相同位后插入一个相反位,产生跳变沿,用于同步。连续五个0,插入一个1,或者连续五个1,插入一个0

经过大量实验为五个

4.CAN节点供电正常,CAN工具就是接收不到CAN报文数据或报错,可能是什么原因?

网络上有多个节点的时候就要注意多加终端电阻的问题,会引发短路

错误类型:为错误、填充错误、格式错误、CRC错误、ACK错误

主动错误和被动错误、关闭总线三个变换条件

5.测试CAN物理变形,发现报文出现严重的振铃和反射现象?

信号传输过程中出现到阻抗的变化,就会发生信号的反射。信号在驱动端和远端负载之间多次反射,其结果就是信号振铃

原则:

  • 尽量缩短引线长度
  • 加粗到线、印制铜箔的宽度 通信品质,质量
  • 减小信号的传输距离 通信品质
  • 采用引线电感小的元器件等
  • 阻抗匹配

6.通信错误会不会是CAN收发器故障引起,如何判断收发器的好坏?

can收发器的常规检测方法:可以在给ECU上电的CAN总线空闲情况下,测量CANH和CANL对地的电压是否在2.5v左右。如果出现0v或者5v质类的,靠考虑收发器故障问题

7.来自相同厂家的两个CAN节点可以通信,为什么两个不同厂家的CAN节点连接通信是好是坏,甚至不能通信?

波特率采样点:不同厂家可能使用不能的采样点,也可能是通信不良

8.所有在测的ECU节点CAN功能单独测试正常,但是装车后发现CAN功能失常,可能仪表紊乱,CAN错误频发,特别是新能源车上?

重点考虑电磁干扰

选择一个性能好的隔离收发器,或者外部隔离器

增加CAN线缆双绞程度,保证差模信号被干扰的程度

步线将动力线缆和CAN线缆远离,抑制周期脉冲干扰

CAN端适当共模滤波器等浪涌效果好的感性防护器件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ki79jrtl-1665659265406)(C:\Users\10345\AppData\Roaming\Typora\typora-user-images\image-20221009203757163.png)]
闲情况下,测量CANH和CANL对地的电压是否在2.5v左右。如果出现0v或者5v质类的,靠考虑收发器故障问题

7.来自相同厂家的两个CAN节点可以通信,为什么两个不同厂家的CAN节点连接通信是好是坏,甚至不能通信?

波特率采样点:不同厂家可能使用不能的采样点,也可能是通信不良

8.所有在测的ECU节点CAN功能单独测试正常,但是装车后发现CAN功能失常,可能仪表紊乱,CAN错误频发,特别是新能源车上?

重点考虑电磁干扰

选择一个性能好的隔离收发器,或者外部隔离器

增加CAN线缆双绞程度,保证差模信号被干扰的程度

步线将动力线缆和CAN线缆远离,抑制周期脉冲干扰

CAN端适当共模滤波器等浪涌效果好的感性防护器件

[外链图片转存中…(img-Ki79jrtl-1665659265406)]

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

can的总结——笑笑 的相关文章

  • STM32通信---CAN

    一 CAN是什么 xff1f CAN xff0c 全称为 Controller Area Network xff0c 即控制器局域网 xff0c 是一种多主方式的串行通讯总线 xff0c 是国际上应用最广泛的现场总线之一 二 CAN的起源
  • 通信接口五种主要的类型是什么?RS-232、485、CAN、USB

    笔者电子信息专业硕士毕业 xff0c 获得过多次电子设计大赛 大学生智能车 数学建模国奖 xff0c 现就职于南京某半导体芯片公司 xff0c 从事硬件研发 xff0c 电路设计研究 对于学电子的小伙伴 xff0c 深知入门的不易 xff0
  • CAN总线的标准帧和扩展帧

    CAN总线的标准帧和扩展帧主要决定帧ID的长度 xff0c 标准帧的帧ID长度是11位 xff0c 帧ID的范围是000 7FF 扩展帧的帧ID长度是29位 xff0c 帧ID的范围是0000 0000 1FFF FFFF CANopen帧
  • CAN通讯的byte序和bit序

    听别人说起CAN通讯协议的时候总说到Intel格式和motorola格式的时候 Intel格式如何 xff0c Motorola格式又如何 xff1f 觉得很有必要搞懂这些知识 xff0c 也看了相关资料 xff0c 可直到今天还没明白 真
  • Linux内核Socket CAN中文文档

    自己在年假中空闲之余翻译的内核中Socket CAN的文档 xff0c 原文地址在 xff1a http lxr linux no linux 43 v2 6 34 Documentation networking can txt 但是这篇
  • CAN通信详解

    本章我们将向大家介绍如何使用STM32自带的CAN控制器来实现两个开发板之间的CAN通讯 xff0c 并将结果显示在TFTLCD模块上 本章分为如下几个部分 xff1a 30 1 CAN简介 30 2 硬件设计 30 3 软件设计 30 4
  • CAN通信讲解——总目录

    本文注意参考了 CAN入门书 xff0c 源于此书图片不再特殊标注 总目录 CAN通信讲解 xff08 1 xff09 基本知识 CAN通信讲解 xff08 2 xff09 数据帧和遥控帧 CAN通信讲解 xff08 3 xff09 错误据
  • 下一代CAN通信技术CAN XL简介

    众所周知 xff0c CAN网络具有易于实现 可扩展 并支持复杂拓扑结构等诸多优点 xff0c 所以目前在各个行业特别是汽车领域 xff0c 得到了非常广泛的应用 但是 xff0c 它也存在着诸多问题 xff0c 其中最大的一点就是总线带宽
  • Nvidia Jetson Xavier 上使用CAN

    为了利于回忆 xff0c 将自己查询到的资料在这里记录一下 资料一 xff1a 20条消息 NVIDIA Xavier CAN weifengdq的专栏 CSDN博客 资料二 xff1a 英文版Enabling CAN on Nvidia
  • ROS-虚拟CAN通讯/实质CAN通信

    xff11 xff0e 源码安装canopen 从官网下载canopen至Ubuntu xff0c 下载地址 xff1a https github com ros industrial ros canopen tree kinetic de
  • CAN总线多帧即连续帧数据发送 拆包与重装

    1939协议支持多帧数据发送即数据超过8个的帧发送 用户可以通过ID来识别当前帧是否为多帧发送 xff08 连续帧 xff09 xff0c 如果是多帧发送ID xff0c 举例 xff1a 1C EC F4 56 其中 F4和56为目标地址
  • CAN总线通信协议详讲

    CAN简介 CAN是Controller Area Network 的缩写 xff08 以下称为CAN xff09 xff0c 是ISO国际标准化的串行通信协议 由德国电气商博世公司在1986 年率先提出 此后 xff0c CAN 通过IS
  • CAN为什么会发送失败

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

    1 CAN通信的基本原理 1 1 基本概念 CAN 是 Controller Area Network 的缩写 xff08 以下称为 CAN xff09 xff0c 是 ISO 国际标准化的串行通信协议 在北美和西欧 xff0c CAN 总
  • 链接mysql数据库 Navicat,2003-can‘t connect to MYSQL server on192.168.1.122 (10060)

    可能的原因如下 xff1a 一 关闭防火墙 xff1b 1 firewalld的基本使用 启动 xff1a systemctl start firewalld 关闭 xff1a systemctl stop firewalld 查看状态 x
  • CAN 帧ID 与J1939 PGN 转换例子

    在saeJ1939中文版中找的三张图如下 例如 0x18 FE DF 00 110 0 0 11111110 11011111 00000000 P R DP PF PS SA 具体参数即为数据段 0 64 优先级为 P 110 2 或6
  • CAN与CANOpen(一)

    CAN与CANOpen 一 基本概念 CAN与CANOpen 二 报文格式 CAN与CANOpen 三 错误处理 CAN与CANOpen 四 CANOpen对象字典 CAN与CANOpen 五 PDO和SDO CAN与CANOpen 六 网
  • CAN/CANFD 总线负载率及计算(源码和工具)

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

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

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

随机推荐

  • 树莓派串口编程c语言

    一 xff1a 初次使用树莓派串口编程 xff0c 需要配置 1 进入 cmdline txt 文档 指令 xff1a cd boot sudo vim cmdline txt 2 删除 之间的部分 dwc otg lpm enable s
  • 数据结构与算法

    为什么要学习数据结构与算法 1 数据结构 43 算法 61 程序 2 代码化繁为简 3 提高代码性能 4 提高面试通过率 栈 栈的概念 栈是一种遵从后进先出原则的有序集合添加新元素的一端称为栈顶 xff0c 另一端称为栈底操作栈的元素时 x
  • python爬虫的常用库

    1 requests 这个库是爬虫最常用的一个库 2 Selenium Selenium 这是一个自动化测试工具 xff0c 利用它我们可以驱动浏览器执行特定的动作 xff0c 如点击 下拉等操作 对于一些用JS做谊染的页面来说 xff0c
  • 【Mecanum wheel】初理解

    文章目录 Mecanum wheel1 定义2 受力分析3 轮子布局布局特点分析 4 底盘设计1 麦克纳姆轮尺寸2 电机连接参考 xff08 较通用 xff09 3 底盘设计参考 xff08 悬挂 避震器 xff09 5 缺点 Refere
  • STM32cubemx教程及STM32入门(一)

    STM32cubemx教程 xff08 一 xff09 2021 10 17 简介 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具 xff0c 目的就是为了方便开发者 xff0c 允许用户使用图
  • 2020-11-05

    私有云的优缺点是什么 xff1f 与公有云的区别 毋庸置疑 xff0c 企业选择私有云的重要原因之一是数据安全性 与传统的 IT 架构相比 xff0c 云算力的高可用性 xff0c 让 IT 解决方案更经济高效地运行 优点 xff1a 可定
  • git 解决每次更新代码都要输入用户名密码的解决方案--1

    使用git pull或者git push每次都需要输入用户名和密码很繁琐 xff0c 耽误时间 xff0c 现在教大家一条命令实现保存用户名和密码不用再输入 git config global credential span class h
  • 浏览器相关知识总结~

    浏览器知识总结 前言一 浏览器的存储CookiesessionstorageindexedDB 二 浏览器的缓存浏览器缓存其它缓存 三 浏览器同源策略和跨域同源策略跨域 四 浏览器的渲染五 进程与线程1 进程与线程概念2 进程和线程之间的关
  • Samba服务

    目录 配置yum源安装samba服务配置samba服务Windows环境使用Samba服务Linux环境使用Samba服务 xff08 1 xff09 方法一使用smbclient命令 xff08 2 xff09 方法二使用挂载的方式 Sa
  • 基于STM32的二轮自平衡小车

    前言 近年来 xff0c 移动机器人是目前科学领域比较活跃的领域之一 xff0c 其应用范围越来越广泛 xff0c 面临的环境也越来越复杂 xff0c 这就要求机器人能够适应一些复杂的环境和任务 二轮自平衡机器人正是在这一背景下提出来的 x
  • 学习STM32单片机之结构体思想

    学习目标 xff1a 掌握 STM32 基础知识 学习STM32单片机之 结构体思想 学习内容 xff1a 1 我们在操作寄存器的时候 xff0c 操作的是寄存器的绝对地址 xff0c 如果每个寄存器都这样操作 xff0c 那将非常麻烦 2
  • Matlab中的mex文件

    文章目录 前言一 MEX的介绍二 MEX的编写总结 前言 MEX文件是一种可在matlab环境中调用的C语言 xff08 或fortran xff09 衍生程序 xff0c mex的编译结果实际上就是一个带输出函数mexFunction 的
  • 【转载】机器视觉-相机标定后,移动相机需要重新标定相机吗?

    毕业论文和机器视觉相关 xff0c 最近又在做标定的相关东西 xff0c 及在笔记本上太麻烦 xff0c 索兴就建个博客写点学习中遇到的问题 相机标定之后 xff0c 移动相机需要重新进行标定吗 xff1f xff08 我主要做的是单目视觉
  • 浅谈逻辑地址和物理地址

    在程序运行时由中央处理单元生成的内容的地址称为逻辑地址 该地址也称为虚拟地址 当我们谈论逻辑地址时 xff0c 我们指的是CPU分配给每个进程的地址 xff0c 一个进程在内存中所处的实际地址与进程认为它所处的地址是不一样的 每当 CPU
  • [CUDA] 快速入门CUDA(2) 以任务为导向的实践-解决最小二乘法问题

    快速入门CUDA 2 以任务为导向的实践 解决最小二乘法问题 文章目录 快速入门CUDA 2 以任务为导向的实践 解决最小二乘法问题1 问题介绍2 MATLAB解法实现3 CUDA解法实现3 1 总览3 2 第一步 xff0c 读取矩阵3
  • 常见的Linux版本

    常见的Linux版本 Linux 系统的吉祥物名为 Tux xff0c 是一只呆萌的小企鹅 相传 Linus Torvalds 在童年时期去澳大利亚的动物园游玩时 xff0c 不幸被一只企鹅咬伤 xff0c 所以为了 报复 就选择了这个物种
  • 【深度学习&NLP】数据预处理的详细说明(含数据清洗、分词、过滤停用词、实体识别、词性标注、向量化、划分数据集等详细的处理步骤以及一些常用的方法)

    目录 一 数据预处理简介 二 进行数据预处理的原因 1 文本中含有不必要的信息和噪声 2 数据可能不一致或者不太规范 3 文本需要标记和分词 4 可能需要词形还原和词干提取 词性标注 5 需要将文本向量化处理 三 数据预处理方法介绍及使用样
  • Linux命令速查手册--超详细Linux命令教程

    一 常用命令速查 lscdpwdcatmorelesstailheadcpscpmvmkdirrmdirtouchrmpskilltopfreecleartreewcstat 以上是常用命令速查表 xff0c 以下是命令详解 二 Linux
  • jQuery 获取与设置 元素属性【一篇文章轻松拿下】

    hello大家好呀 xff01 此篇文章带领大家熟练掌握 jQuery 的属性方面的操作 xff0c 包括固有属性的获取与设置 xff0c 自定义属性的获取与设置等等 xff0c 走进 jQuery 的更深层次阶段 文章目录 xff1a 一
  • can的总结——笑笑

    一 什么是can can就是车用主线 xff0c 贯穿整个车的存在 can的分类2 默认是高速can 低速容错can 单线can 用两种can会减少can网络语言的负载率 xff0c 就是原本一个小屋做核酸 xff0c 现在是两个速度翻倍