CAN - 基础
CAN 基础
- 概念
- 分类
- 特点
- 物理层
- 收发器
- 线与
- 编码方式
- 通信方式
- 采样点/位
- 常见故障
- 数据链路层
- CAN控制器
- 数据帧
- 分类
- 数据帧格式
- 数据帧DBC解析
- CRC校验
- 远程帧
- 总线竞争与仲裁
- 非破坏性仲裁机制
- 节点状态与错误处理机制
- 节点状态
- 错误处理机制
- 错误帧
概念
分类
- CAN
- CAN FD
- 高速CAN
- 低俗容错CAN
特点
- 多主通讯 (节点之间 一对一、一对多、多对一、广播等)
- 短帧结构:报文帧的有效字节有8个
- 报文ID值越小,优先级越高
- 非破坏性总线仲裁处理机制
- 可靠的CRC校验方式,传输数据出错率极低
- 在报文帧仲裁失败或传输期间被破坏有自动重发机制
- 节点在错误严重的情况下,具有自动脱离总线的功能,切断它与总线的联系,不影响总线的正常工作
物理层
收发器
数字信号 <–> 物理信号(CAN_H/CAN_L)两者之间的转换采用差分电平信号
属于OSI模型中的物理层
线与
多个CAN节点并介到同一总线时,只要其中一个节点输出低电平,总线就为低电平
当所有节点输出高电平,总线才为高电平
编码方式
通信方式
异步串行通信:采样点按约定的频率采样数据,根据波特率采样
为减少波特率的误差带来的通信错误
解决:CAN总线规定信号的跳变沿时刻进行同步,将误差累积限制在两个跳变沿
问题:发送多个相同位时没有跳变沿用于同步,会导致误差不断累计
解决:使用位填充的方法进行同步:采用填充位在连续5个相同位后插入一个相反位,产生跳变沿,用于同步(这里时CAN控制器自己去填充)
采样点/位
一个位时间=1/波特率
位时间:同步段、传播段、相位缓冲段1、相位缓冲段2
1位时间=10时间份额
- 同步段:1时间份额
- 传播段:1时间份额
- 相位缓冲段1:4时间份额
- 相位缓冲段2:4时间份额
一个时间份额:Tq
采样点:规定在第x个时间份额后进行采样
常见故障
数据链路层
CAN控制器
属于OSI模型中的数据链路层
数据帧
分类
- 数据帧
发送节点向接收节点传送数据,使用最多
- 远程帧
接收节点向某个发送节点请求数据(发送节点让另外一个节点反馈数据的时候)
- 错误帧
当总线、某节点检测出错误时向其他节点通知错误的帧
- 过载帧
接收节点向发送节点通知自身接收能力的帧
- 间隔帧
数据帧或远程帧与前面的帧分离的帧
数据帧格式

格式
- 帧起始(1位):显性位SOF,标识一个数据帧的开始,用于同步;只有在总线空闲期间,节点才能发送SOF(在总线空闲的时候,发送节点发出帧起始;其他接收节点从这个帧起始位进行同步(用于减少累计误差))

- ID(11位):标识符,唯一确定一条报文,表明报文的含义,可以包括报文的源地址、目标地址;用于确定报文的仲裁优先级(ID数值越小,优先级越高)
- SRR(1位):无实际意义,SRR永远置1
- IDE(1位):用于区分标准帧和扩展帧:标准帧IDE=0(11位ID);扩展帧IDE=1(29位ID)
- extended ID(18位):如果IDE=1
- RTR位(1位):区分数据帧和远程帧(没有数据场???很少用):数据帧RTR=0; 远程帧RTR=1

-
r1(1位):保留位,显性电平0填充
-
r0(1位):保留位,显性电平0填充
-
DLC(4位):数据场包含数据的字节数

-
数据场(0-8个字节):实际CAN数据发送的内容

-
CRC(15位):进行CRC校验,CRC位之前的所有数据位根据一定规则进行校验
-
DEL(1位):CRC界定符,在CRC界定符之前 从SOF开始,到DEL之前进行位填充,显性位电平0

-
ACK(1位): 确定报文被至少一个节点正确接收(发送节点ACK置1(隐性电平),接受方正确接收报文,则将ACK位置0(显性电平)),发送节点查看ACK位从以隐性变显性,知道有节点接收数据,如果没有节点接收,则报相应的错误帧
-
DEL(1位):界定符,隐性位电平1

- EOF(7位):连续7个隐性位
- ITM(3位):连续3个隐性位
- ITM之后,总线会进入空闲状态,此时其他节点可以发送报文,如果节点检测到11个连续的隐性位,就认为总线进入空闲阶段(1+7+3)
数据帧DBC解析
CRC校验

远程帧
- 标准帧
- 扩展帧


总线竞争与仲裁
竞争:多个节点同时要发送数据
非破坏性仲裁机制
仲裁发生在仲裁段
采用“线与”机制
ID值越小,优先级越高
仲裁失败进入“只听”模式

节点状态与错误处理机制
节点状态
- 主动错误状态
设备正常参与总线通信,检测到错误时发送主动错误标识
- 被动错误状态
设备正常参与总线通信,检测到错误时发送主动错误标识
- 总线关闭
数据帧的收发被禁止,脱离总线


错误处理机制
- CRC 错误
- 位填充错误
- 应答错误
- 位发送错误
- 格式错误


错误帧

相关文章:
CAN - 基础
CAN 基础 概念分类特点物理层收发器线与编码方式通信方式采样点/位 常见故障 数据链路层CAN控制器数据帧分类数据帧格式数据帧DBC解析CRC校验远程帧 总线竞争与仲裁非破坏性仲裁机制 节点状态与错误处理机制节点状态错误处理机制错误帧 概念 分类 CANCAN FD高速CAN低俗容错CA…...
【Hash表】找出出现一次的数字-力扣 136
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
Resize和centerCrop的区别
首先要记住,transforms只能对PIL读入的图片进行操作,而且PIL和opencv只能读取H * W * C形式的图片。 resize(size):将图片的短边缩放成size的比例,然后长边也跟着缩放,使得缩放后的图片相对于原图的长宽比不变。如果想要resize成自己想要的图…...
无涯教程-JavaScript - SUM函数
描述 SUM函数可添加值。 语法 SUM (number1, [number2]...)争论 Argument描述Required/Optionalnumber1The first number you want to add. The number can be a value, a cell reference, or a cell range.Requirednumber2, …You can specify up to 255 additional numbe…...
ChatGLM P-Tuningv2微调定制AI大模型
前言 什么是模型微调 想象一下,你正在学习如何弹奏一首钢琴曲目。你已经学会了一些基本的钢琴技巧,但你想要更进一步,尝试演奏一首特定的曲目。这时,你会选择一首你感兴趣的曲目,并开始深度练习。 Fine-tuning(微调)在机器学习中也是类似的概念。当我们使用预先训练好…...
关于RISC-V安全性的全面综述
目录 摘要引言RISC-V安全综述通用平台的安全要求信任的根源与硬件安全模块OTP管理模块安全内存对称加密(如AES)引擎不对称加密[131](例如,公钥RSA)引擎HASH/HAMC引擎随机数/位生成(例如TRNG[136]࿰…...
Python基础语法规则和Java不同的地方
Java是现在最流行的语言,也是广大程序员最熟悉的语言。然而,随着人工智能领域的快速发展,Python作为新星崭露头角。通过对比Java语言来学习Python语言,可以事半功倍。 首先,我们来看Python和Java在注释上的区别。在Jav…...
振弦采集仪安全监测路基边坡的解决方案
振弦采集仪安全监测路基边坡的解决方案 随着人们对交通安全的重视和公路工程的发展,路基边坡安全监测成为了重要的课题之一。路基边坡作为公路的基础,其稳定性直接关系到公路的使用寿命和行车安全。而振弦采集仪作为一种新型的安全监测设备,可…...
如何与QVC 建立EDI连接?
QVC,全称为Quality, Value, Convenience(品质、价值、便利),成立于1986年,是一家全球领先的零售电视和在线零售商。作为一家多渠道零售商,QVC致力于为客户提供高品质、独特的商品,通过电视、互联…...
脑网络图谱
前言 研究人脑面临的一个挑战是其多尺度组织和系统复杂性。我们对大脑组织的认识主要来源于离体组织学检查,如细胞结构映射。通过研究全脑微观结构特征的变化,可以划分为不同的脑区。然而,这种研究大脑组织的“局部”方法非常耗时、耗资源&a…...
无涯教程-JavaScript - SQRTPI函数
描述 SQRTPI函数返回(number * pi)的平方根。 语法 SQRTPI (number)争论 Argument描述Required/OptionalNumberThe number by which pi is multiplied.Required Notes If the specified number < 0, SQRTPI returns the #NUM! error value.如果指定的数字为非数字,则S…...
Nacos使用教程(四)——命名空间(Namespace)、配置分组(Group)和配置集ID(Data ID)
文章目录 Nacos命名空间(Namespace)一、什么是命名空间二、命名空间的作用1. 隔离环境2. 分类管理3. 权限控制 三、命名空间的使用四、总结 Nacos配置分组(Group)一、什么是配置分组二、配置分组的作用1. 分类管理2. 隔离控制3. 动…...
三、双指针(two-point)
文章目录 一、算法核心思想二、算法模型(一)对撞指针1.[704.二分查找](https://leetcode.cn/problems/binary-search/)(1)思路(2)代码(3)复杂度分析 2.[15.三数之和](https://leetco…...
Redis 是什么和使用场景概述(技术选型)
一、Redis 是什么 Redis是一款开源的高性能键值存储系统。它支持多种数据结构,如字符串、列表、集合、哈希表、有序集合等,并提供了丰富的操作命令和功能。Redis的主要特点包括: 内存存储:Redis将数据存储在内存中,因此…...
【数据结构】七大排序
文章目录 💐1. 插入排序🌼1.1 直接插入排序🌼1.2 希尔排序 💐2. 选择排序🌼2.1 直接选择排序🌼2.2 堆排序 💐3. 交换排序🌼3.1 冒泡排序🌼3.2 快速排序🌼3.2.…...
区块链实验室(24) - FISCO网络重构
若干次实验以后,FISCO网络中100个节点堆积了不少交易记录,消耗不少磁盘空间,见下图所示,100个节点累计消耗了10G空间。 观察每个节点的磁盘消耗,以node88为例,消耗了107MB,见下图所示。在该节点…...
AI智能写作工具有哪些?永久免费的AI智能写作工具你使用过吗?
AI智能写作是指借助人工智能技术,计算机程序可以自动生成各种文本内容,包括新闻报道、广告文案、科技文章、小说等等。这些AI写作工具通过大数据和深度学习模型,能够分析和模仿人类的写作风格,生成高质量的文本,甚至有…...
23.8.15 杭电暑期多校9部分题解
1002 - Shortest path 题目大意 对于一个数 x x x,可以进行以下三种操作: 1.将 x x x 变成 2 ∗ x 2*x 2∗x 2.将 x x x 变成 3 ∗ x 3*x 3∗x 3.将 x x x 变成 x 1 x1 x1 给定一个数 n n n,问最少操作几次才能将 1 1 1 变成…...
四个BY的区别 HIVE中
在Hive中,有四个BY比较:Order By、Sort By、Distribute By和Cluster By。 Order By是全局排序,只有一个Reducer。它可以按照升序(ASC)或降序(DESC)对结果进行排序。Order By子句通常用在SELECT语…...
计时函数与float32 float16 int8 数据转换
个人整理常用 部分来自 ncnn 计时函数 // window 平台 #include <windows.h>double get_current_time() {LARGE_INTEGER freq; // 频率LARGE_INTEGER pc; // 计数QueryPerformanceFrequency(&freq);QueryPerformanceCounter(&pc);return pc.QuadPart * 1000…...
大数据领域规范性分析:助力企业决策优化
大数据领域规范性分析:助力企业决策优化 关键词:规范性分析、大数据决策、描述性分析、预测性分析、优化算法、企业决策、数据驱动 摘要:在数据爆炸的时代,企业不再满足于“数据记录”或“未来预测”,而是渴望知道“如何行动才能最优”。本文将从大数据分析的三大支柱(描…...
职场生存暗规则 DAY5:同事抢你功劳?用这 1 招让他偷鸡不成蚀把米|乐想屋
“本文来自「乐想屋」公众号,系列更新[职场反PUA30天觉醒计][职场生存暗规则],读完你未必能立即升职加薪,但一定能避开那些让99%的人莫名出局的深坑。职场这场游戏,活下去,才能赢下去。”——————————————…...
刚刚!美团开源LongCat-Next,全模态模型保姆级教程(非常详细),从入门到精通,建议收藏!
昨天下午刷到了美团龙猫团队又开源了一个新模型-LongCat-Next。 这次有所不同,是一个原生全模态模型,可以接受文本、语音、图像的输入,生成文本、语音、图像,激活参数3B。 在训练上,通过分词器-反分词器对࿰…...
零配置部署!VoxCPM-1.5-WEBUI让语音合成变得像上网一样简单
零配置部署!VoxCPM-1.5-WEBUI让语音合成变得像上网一样简单 你是否曾为视频配音找不到合适的声音而烦恼?是否想过制作有声读物却苦于录音设备和时间成本?或者,你只是想体验一下,让AI用你喜欢的音色为你朗读一段文字&a…...
当游戏语言成为障碍:如何用XUnity.AutoTranslator打破语言壁垒
当游戏语言成为障碍:如何用XUnity.AutoTranslator打破语言壁垒 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 想象一下,你终于等到了期待已久的日式角色扮演游戏,但打…...
SenseVoice-small-onnx语音识别效果:不同信噪比下识别鲁棒性测试
SenseVoice-small-onnx语音识别效果:不同信噪比下识别鲁棒性测试 1. 测试背景与意义 语音识别技术在日常生活中的应用越来越广泛,从智能助手到会议转录,从客服系统到语音输入,无处不在。但在真实环境中,音频质量往往…...
从会议录音到字幕生成:基于FunASR和SpringBoot搭建一个轻量级语音处理中台
从会议录音到字幕生成:基于FunASR和SpringBoot搭建轻量级语音处理中台 每周例会后,行政小张总要花两小时反复听录音整理纪要。市场部的跨国会议录音,技术团队的头脑风暴存档,管理层战略讨论的逐字记录——这些音频文件堆积在共享…...
从电网到实验室——10kW大功率电源的Psim仿真实战
基于Psim的Boost型 PFC移相全桥AC-DC电源设计仿真 1、前级电网输入220AC,50Hz,中间级母线电压为600V,后级600V输入,547V输出,电压可调,功率10kW 2、前级基于Boost电路PFC,平均电流控制ÿ…...
【AI工具篇】10款免费AI聊天与绘画神器:从GPT到Stable Diffusion的全方位体验
1. GPT机器人:全能型AI助手 这款工具可以说是AI领域的瑞士军刀,既能陪你聊天又能帮你画画。我实测下来最惊艳的是它直接集成了GPT-4模型,要知道很多收费工具都还在用3.5版本。打开应用就像有个学霸朋友随时待命——上周我写项目方案卡壳时&am…...
终极指南:如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价
终极指南:如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价 【免费下载链接】tf-quant-finance High-performance TensorFlow library for quantitative finance. 项目地址: https://gitcode.com/gh_mirrors/tf/tf-quant-finance 在量化金…...
