【车载开发系列】CAN通信总线再理解(中篇)

news2024/10/23 2:44:46

【车载开发系列】CAN通信总线再理解(中篇)

    • 九. CAN总线标准
    • 十. CAN物理层
    • 十一. CAN数据链路层
      • 1)CAN的通信帧类型
      • 2)CAN的标准帧格式
        • 1. CAN ID
        • 2. 数据场
      • 3)CAN总线仲裁
    • 十二. CAN应用层
      • 1)CANopen
      • 2)J1939
      • 3)DeviceNet

九. CAN总线标准

  • CAN总线标准有两个,即ISO11898和ISO11519,两者差分电平特性不同。
  1. ISO11898高低电平幅度低(高电压3.5V,低电压1.5V),对应的传输速度快,所以适用于高速CAN;
  2. ISO11519高低电平幅度大(高电压4.0V,低电压1.0V),对应的传输速度慢些,所以适用于低速CAN;

十. CAN物理层

  1. 多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。所谓"线与"。
  2. CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步。从而消除累积误差。
  3. CAN的传输速度与距离成反比。
  4. CAN总线上的终端电阻是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线

十一. CAN数据链路层

1)CAN的通信帧类型

  • CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。
帧类型英文帧作用
数据帧Data Frame用于发送单元向接收单元传送数据的帧,使用最多的帧类型
遥控帧Remote Frame用于接收单元向具有相同ID的发送单元请求数据的帧
错误帧Error Frame用于当检测出错时向其他单元通知用的错误的帧
过载帧Overload Frame用于接收单元告诉发送单元,通知其尚未做好接收准备的帧
间隔帧Inter Frame Space用于将数据帧及遥控帧与前面的帧分离开来的帧

2)CAN的标准帧格式

位名位名位数说明
SOF起始位1位是一个显性电平逻辑0
Identifier(ID)仲裁段(识别码)11/29位用来确定数据信息发送给那个设备,每一个设备都有一个属于自己的识别码,11 位标识符的帧称为标准格式,而具有29位标识符的帧为扩展格式
RTR仲裁段(RTR位)1位用来区分数据帧(0)或者远程请求帧(1)
SRR※仲裁段(SRR位)1位只用在扩展格式,替代RTR;不是扩展模式不需要这个
IDE控制段(IDE位)1位用来区分标准帧(0)还是拓展帧(1)
R0控制段(空闲位)1位保留位
DLC控制段(DLC)4位用来控制数据长度
Data Field数据段8-64位数据的内容。DLC为1时数据码8位(标准CAN),为8时数据码64位(CAN FD)
CRC15CRC码15位15位CRC位+1位CRC界定符,循环冗余校验码,检测到错误时会自动重传
DELCRC界定位1位1位CRC界定符,为了把后面信息隔开
ACK应答位(ACK码)1位接收站使用应答位来表示是否已正确接收报文
DEL应答位(ACK界定位)1位一个隐性的位,为了把后面信息隔开
EOF结束位7位表示数据帧传输结束,7个隐形信号

在这里插入图片描述

1. CAN ID

CAN帧中包含ID,在数据链路层只起到优先级判断的作用。ID的数值越小,CAN帧的优先级越高,会获得总线控制权。多节点同时开始发送数据时,按照电路设计,ID按每一bit传输时,ID小的数据会覆盖ID大的值,即0&1=0,此时只要判断到自己发出的bit1实际是收到bit0,就停止发送后续的bit,稍后重试。
CAN ID值的业务意义由应用层决定。一种典型用法是,部分bit代表消息类型,部分bit代表发送者设备,即ID和设备绑定。只要ID的前几bit代表设备号,后几bit代表业务值,就能兼顾优先级判断的规范。

2. 数据场

数据场是放高层业务数据的地方。
数据链路层协议只规定了一帧的格式,数据跨越多帧的情况由应用层协议实现拆包和重组。
经典CAN,数据场最多8bytes;CAN FD最多64bytes;CAN XL最多2048bytes,即一帧可以有更多业务数据。当一帧的业务数据量>8且
003C64时,用CAN FD就不需要在业务层把数据拆成多帧和重组了,这也提升了性能。

3)CAN总线仲裁

  1. CAN总线仲裁是通过优先级决定的。
  2. CAN总线处于空闲状态时,最先发送消息的单元获得发送权。
  3. 多个单元同时开始发送时,从仲裁段(报文ID)的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送,即首先出现隐形电平的单元失去对总线的占有权变为接收。
  4. 仲裁段(识别码Identifier)值越小,说明显性电平(逻辑0)越多,那么优先级越高。
  5. 仲裁失败的单元,会自动检测总线空闲,在第一时间再次尝试发送。
    在这里插入图片描述
  • 该仲裁机制是利用“如果总线上同时出现显性电平和隐形电平,总线的状态会被置为显性电平”这个特性进行仲裁。

十二. CAN应用层

狭义的CAN,指的是物理层和数据链路层。简单地以“CAN”作为关键字去搜索,都是这两层的知识,而广义的CAN,包括应用层协议,主流有以下3种。

1)CANopen

基于CAN2.0A定义的标准帧,由CiA提出和维护。最初是为工业自动化设计的,但很快应用在了其它领域

2)J1939

基于CAN2.0B定义的扩展帧,由SAE提出。多用于重型机械,如大巴、挖掘机、拖拉机、坦克、消防车等。

3)DeviceNet

基于CAN2.0A定义的标准帧,由美国的Allen-Bradley公司所开发。主要应用包括资讯交换、安全设备及大型控制系统,在美国的市场占有率较高。比起CANopen,对物理层的要求更严格,从而使得不同厂商的设备更通用。

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

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

相关文章

蚓链数字化营销系统,开启企业无限可能!

蚓链数字化营销系统带给企业的不仅仅是卖货方案,其重要的是让企业具备拥有融合资源的能力、实现在更多业态跨界赚钱的能力、及打造品牌价值的能力。 在当今数字化时代,蚓链数字化营销系统正为企业带来新的变革与机遇。它所赋予企业的,绝非仅仅…

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-enginnering

信息收集 Server IP AddressPorts Opening192.168.8.100TCP:21,8009,9001 $ nmap -sV -sC 192.168.8.100 -p- --min-rate 1000 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 05:06 EDT Nmap scan report for 192.168.8.100 (192.168.8.100) Host is up (0.00…

Python学习打卡:day11

day11 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day1183、自定义 Python 包创建包导入包方式1方式2方式3方式4 84、安装第三方包安装第三方包——pippip的网络优化 安装第三方包——PyCharm 85、…

【DKN: Deep Knowledge-Aware Network for News Recommendation】

DKN: Deep Knowledge-Aware Network for News Recommendation 摘要 在线新闻推荐系统旨在解决新闻信息爆炸的问题,为用户进行个性化推荐。 总体而言,新闻语言高度凝练,充满知识实体和常识。 然而,现有的方法并没有意识到这些外部…

Cesium源码解析六(3dtiles属性获取、建筑物距离计算、建筑物着色及其原理分析)

快速导航 Cesium源码解析一(搭建开发环境) Cesium源码解析二(terrain文件的加载、解析与渲染全过程梳理) Cesium源码解析三(metadataAvailability的含义) Cesium源码解析四(metadata元数据拓展…

【因果推断python】46_估计量2

目录 连续型干预变量案例 非线性处理效果 关键思想 连续型干预变量案例 目标转换方法的另一个明显缺点是它仅适用于离散或二元处理。这是你在因果推理文献中经常看到的东西。大多数研究都是针对二元干预案例进行的,但您找不到很多关于连续干预的研究。这让我很困…

Javase.String 类

String 类 【本节目标】1. String类的重要性2. 常用方法2.1 字符串构造2.2 String对象的比较2.3 字符串查找2.4 转化2.5 字符串替换2.7 字符串截取2.8 其他操作方法2.9 字符串的不可变性2.10 字符串修改 3. StringBuilder和StringBuffer3.2 面试题: 4. String类oj4.…

使用虚拟滚动条优化通过el-collapse展示多条数据的性能问题

我们将一个10000条的数据通过el-collapse展示出来,同时在点开每一个item时,要内置一个编辑器,对文本内容进行编辑。其实,如果仅10000条数据的文本的单独展示,可能性能不会太差,但由于每一条都需要带有一个文…

web中间件漏洞-jboss部署war包

web中间件漏洞-jboss部署war包 攻击机服务器准备好的ma.war

FreeBSD在zfs挂接第二块ssd 硬盘

为FreeBSD机器新增加了一块ssd硬盘:骑尘 256G 先格式化分区硬盘 进入bsdconfig 选Disk Management 选择ada1 ,也就是新增加的硬盘 选择auto 然后选择Entire Disk 提示信息 The existing partition scheme on this disk (MBR) │ …

Python数据科学 | 是时候跟Conda说再见了

本文来源公众号“Python数据科学”,仅用于学术分享,侵权删,干货满满。 原文链接:是时候跟Conda说再见了 1 简介 conda作为Python数据科学领域的常用软件,是对Python环境及相关依赖进行管理的经典工具,通…

容声神助攻!欧洲杯最刺激一战诞生,神来之笔背后有高人

2-2,当比分最终被定格在这个数字时,克罗地亚的老将们即使职业生涯已经经历了太多太多惨烈的比赛,此刻依然难掩心中的复杂情绪。 欧洲杯开赛至今最刺激的一战,从0-1落后的长时间焦虑,到下半场3分钟扳平反超的狂喜&…

【嵌入式Linux】<总览> 文件IO(更新中)

文章目录 前言 一、常用函数 1. open函数 2. close函数 3. write函数 4. read函数 5. dup函数 6. dup2函数 二、文件读写细节 1. 换行符 2. 文件描述符 3. errno和perror 前言 在Linux系统中,一切皆文件。因此,掌握Linux下文件IO常用的函数…

为什么美业门店要用专业的美业系统?博弈美业SaaS管理系统Java源码分享

美容、医美等美业门店需要使用专业的美业系统,而不是普通的管理系统,美业专用系统的优势在哪? 专业的美业系统与普通系统相比,更加贴合美业门店的经营需求,提供了更全面、便捷、高效的管理功能,有助于提升…

端到端自动驾驶的基础概念

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.端到端自动驾驶的定义 1.1特斯拉FSD 1.2端到端架构演进 1.3大模型 1.4世界模型 1.5纯视觉传感器 2.落地的挑战 1.端到端自动驾驶的定…

RSA学习

[MRCTF2020]Easy_RSA 先来分析一下这个RSA代码的特殊性,这个不是传统的RSA,随机生成N,并保证为N%8的余数是5 zlib 用于数据压缩,但是并似乎没有用到 gen_p(): 生成随机的1024位质数p。计算np*q,并没有直接用于加密。计算F_n…

返回给前端数据的封装

返回格式如下: { "code": 200/400, "msg": "成功"/"失败", "total": n, "data": [ {},{}]} 1.在common中新增Result 类,代码如下 package com.xxx0523.common; import lombo…

【OpenVINO™】使用 OpenVINO™ C# 异步推理接口部署YOLOv8 ——在Intel IGPU 上速度依旧飞起!!

OpenVINO Runtime支持同步或异步模式下的推理。Async API的主要优点是,当设备忙于推理时,应用程序可以并行执行其他任务(例如,填充输入或调度其他请求),而不是等待当前推理首先完成。 当我们使用异步API时&…

【React】使用Token做路由权限控制

在components/AuthRoute/index.js中 import { getToken } from /utils import { Navigate } from react-router-domconst AuthRoute ({ children }) > {const isToken getToken()if (isToken) {return <>{children}</>} else {return <Navigate to"/…

算法设计与分析 实验4 动态规划法求扔鸡蛋问题

目录 一、实验目的 二、问题描述 三、实验要求 四、实验内容 动态规划法 算法描述 算法伪代码描述 算法复杂度分析 数据测试 二分优化的动态规划法 算法描述 二分优化&#xff1a; 算法伪代码 算法复杂度分析 数据测试 单调决策优化的动态规划法 算法描述 算…