嵌入式Linux学习(2)——经典CAN介绍(上)

news2024/11/25 20:16:19

目录

一. CAN与ISO-OSI Model

二. CAN通信

2.1 接线方式

2.1.1 闭环网络

2.1.2 开环网络

2.2 收发流程

2.2.1 发送

2.2.2 接收 

三. CAN BUS访问与仲裁

3.1 “线与”机制​

3.2 仲裁机制

REF


CAN(Controller Area Network)总线协议是由 BOSCH 发明的串行通信总线,它起初用于实现汽车内ECU之间可靠的通信,后因其简单实用可靠等特点,而广泛应用于工业自动化、船舶、医疗等其它领域。 

与 I2C、SPI 等具有时钟信号的同步通讯方式不同,CAN 通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有 CAN_High 和 CAN_Low 两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。由于 CAN 总线协议的物理层只有 1 对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN 通讯是半双工的,收发数据需要分时进行。在 CAN 的通讯网络中,因为共用总线,在整个网络中同一时刻只能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。

CAN帧抓取:Ubuntu安装PCAN-View-CSDN博客

一. CAN与ISO-OSI Model

在 ISO-OSI 模型中 CAN 属于 L2 层的协议。 


 

二. CAN通信

CAN总线是一种多主控(Multi-Master)的总线系统。CAN网络的消息是广播式的,即在同一时刻网络上所有节点侦测的数据是一致的,它是一种基于消息广播模式的串行通信总线。采用CAN总线网络结构,可以达到信息共享、减少布线、降低成本以及提高总体可靠性的目标。

2.1 接线方式

2.1.1 闭环网络

上图是遵循 ISO11898 标准的高速、短距离“闭环网络”,也称之为“高速CAN”的接线方式。它的总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各要求有一个“120 欧”的电阻。两端的R电阻是为了避免信号的反射和干扰。

2.1.2 开环网络

上图是遵循 ISO11519-2 标准的低速、远距离“开环网络”,也称之为“低速CAN”的接线方式。它的最大传输距离为 1km,最高通讯速率为 125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻。

2.2 收发流程

2.2.1 发送

发送数据时CPU将信号发给CAN Controller,CAN Controller再将信号转为逻辑电平(逻辑0表示低电平,逻辑1表示高电平)发给CAN Transceiver,CAN Transceiver再将逻辑电平转为差分信号发到CAN总线上。 

差分情况如下:静态情况下CAN-High和CAN-Low两条信号线的电压都处于2.5V;逻辑0表示显性电平,即CAN-High拉高到3.5V,CAN-Low拉低到1.5V;逻辑1表示隐性电平,即CAN-High和CAN-Low都是2.5V。

2.2.2 接收 

差分信号的0/1表示不变,只是把上述过程逆向而已。

三. CAN BUS访问与仲裁

3.1 “线与”机制

1. “0”表示显性,“1”表示隐性,在&操作中,但凡有0则CAN-Bus即为0,也称之为“显性”位可以覆盖“隐性”位;

2. 只有所有节点都发送“隐性”位, 总线才处于“隐性” 状态。

上述1,2即为“线与”机制的特点,这些特点使CAN总线呈现显性优先的特性。显性优先的特点奠定了后面所提到的“ID越小,优先级越高”。例如ID为0x75(1110101)就比0x100(1111000)的优先级更高,因为从左往右比较,0为显性。

3.2 仲裁机制

CAN总线的仲裁是一种“非破坏性仲裁机制”。非破坏性仲裁机制是一种既不会造成已发送数据的延迟,也不会破坏已经发送的数据的仲裁机制。

CAN总线的仲裁的原则:

1. 在总线空闲状态下,任意节点都可以向总线上发送信息。最先向总线发送信息的节点获得总线的发送权。

2. 当多个节点同时向总线发送消息时,优先级高的节点仲裁成功,从而获得总线的发送权;仲裁失败的节点,会在下次总线空闲时自动重发ID越小,优先级越高

3. 高优先级的节点不能中断低优先级节点的发送。例如ID-75的节点正在向总线发送报文,这时候ID-25的节点也想向总线发送报文,即使ID为25的优先级更高,但是也不能中断ID为75的报文的发送。

在 t1 时刻节点 A、B、C 同时向 CAN 总线上发数据触发总线仲裁,节点 A 的 ID 为75,优先级最高,所以节点 A 发送数据;等到 t2 时刻总线空闲了,再来仲裁节点 B 和节点 C ,节点 B 优先级更高,获得发送权...依次类推。

ID为20和ID为80的报文不能中断ID为100的报文发送 ,只能等到总线空闲后再来仲裁ID-20和ID-80的报文发送。

通过上图进一步来说明发送节点是如何获取到发送权的。节点在发送数据的同时还会回读总线的状态,在第10-6位比对中,A/B/C都是相同的电平信号;当到第5位的时候,通过“线与”机制可知,此时总线也是0,这时候 A 发现读出来的总线电平状态和自己的不一样,因此 A 就变为监听状态,丧失总线发送权;同理, B 和 C 继续比对到 RTR 位,节点 B 这时候读到的总线状态和自己不一样,因此节点 B 这时候也变为监听状态。最终节点 C 获取到总线的发送权。

REF

https://www.eet-china.com/mp/a211601.html

CAN_C: CAN学习模块 | Vector E-Learning

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

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

相关文章

2024年湖北建筑企业申报助理工程师初级职称评审纸质版证书

2024年湖北建筑企业申报助理工程师初级职称评审纸质版证书 湖北省在2022年就发布了一个相关职称实行电子版文件,很多人就理所当然认为工程行业纸质版初级职称/助理工程师、中级职称有些局限。申报评审成功是否可以使用,怎么查询之类的一系列问题&#x…

C++算法入门练习——数据流第K大元素

现有一个初始为空的序列S,对其执行n个操作,每个操作是以下两种操作之一: 往序列S中加入一个正整数x;输出当前序列S​中第k​大的数。 其中,第k大是指将序列从大到小排序后的第k个数。 利用stl里的priority_queue自动…

【工具使用】Keil常用的调试操作整理介绍

目录 一、软件调试使用 1.1 基本调试操作 1.2 调试窗口 二、注意事项 一、软件调试使用 1.1 基本调试操作 上文已经说过在线调试和模拟调试的配置过程,但无论是在线还是模拟调试,调试技巧工具的使用都是一样的。 点击红色d,进入调试 可…

实时天气(预报)API接口

实时天气预报API接口 一、实时天气(预报)API接口二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、实时天气(预报)API接口 一款帮助你获取实时天气和天气预报的API接口 二、使用步…

量子计算:探索未来的计算技术

量子计算:探索未来的计算技术 引言 在过去的几十年里,我们见证了计算机技术从简单的计算和存储发展到复杂的数据处理和人工智能的飞速进步。然而,随着我们进一步探索科技的前沿,传统的计算方法开始显示出其局限性。在这种情况下,量子计算——一种基于量子力学原理的新型计…

Redis 基础、字符串、哈希、有序集合、集合、列表以及与 Jedis 操作 Redis 和与 Spring 集成。

目录 1. 数据类型 1.1 字符串 1.2 hash 1.3 List 1.4 Set 1.5 sorted set 2. jedis操作redis 3. 与spring集成 1. 数据类型 1.1 字符串 String是最常用的数据格式,普通的kay-value都归结为此类, value值不仅可以是string,可以是数字…

数据库中生成列的对比

简介 生成列(虚拟列):在实际开发中,相对一个历史数据的表增加一个字段,增加下游报表,数据分析的可用性。常见的方法就是删表重建,或者使用ADD column 语法。如果是一个历史表,删…

[问题解决] no CUDA-capable device is detected

先说环境,在docker下的gpu环境ffmpeg,然后今天突然无法使用,使用时出现如下图所示: 看着报错大致内容是找不到设备,网上寻找一番没有有用的东西,于是决定自己解决,仔细察看一番后,猜…

使用netconf配置华为设备

实验目的: 公司有一台CE12800的设备,管理地址位172.16.1.2,现在需要编写自动化脚本,通过SSH登陆到设备上配置netconf协议的用户名,密码以及netconf服务,并且通过netconf协议将设备的loopback0接口IP地址配…

unity程序中的根目录

在unity程序中如果要解析或保存文件时,其根目录为工程名的下一级目录,也就是Assets同级的目标

【数据结构】- 详解线索二叉树(C 语言实现)

目录 一、线索二叉树的基本概念 二、构造线索二叉树 三、遍历线索二叉树 一、线索二叉树的基本概念 遍历二叉树是以一定规则将二叉树中的结点排列成一个线性序列,得到二叉树中结点的先序序列、中序序列或后序序列。这实质上是对一个非线性结构进行线性化操作&am…

【同一局域网下】两台电脑之间互ping

两台电脑互ping 首先需要连接同一网咯关闭需要ping的电脑的防火墙 关闭防火墙步骤(以win11系统为例): 设置 --> 隐私和安全性 --> Windows 安全中心 打开Windows安全中心 防火墙和网络保护 --> 选择正在使用的网络 关闭 ping其他…

Unity 轨道展示系统(DollyMotion)

DollyMotion 🍱功能展示🥙使用💡设置路径点💡触发点位切换💡动态更新路径点💡事件触发💡设置路径💡设置移动方案固定速度方向最近路径方向 💡设置移动速度曲线 传送门 &a…

厦门城市内涝积水预防方案

随着城市化进程的加速,城市内涝问题日益凸显,给人们的生命财产安全带来了严重威胁。为了解决这一问题,城市内涝积水监测系统的应用逐渐受到广泛关注。本文将探讨城市内涝积水监测系统的优点及作用,为保障城市生命线的安全提供有力…

无电机光电测径仪稳定性好

目前市面上的在线测径仪主要是有电机的激光扫描式测径仪与无电机的光电平行光测径仪。均能完成外径尺寸的高精度尺寸检测,本文来简单介绍一下无电机光电测径仪的优势。 光电测径仪检测原理 发射镜头内置一个点光源,点光源发出的光通过透镜系统&#xf…

YashanDB入选2023年世界互联网大会领先科技奖成果集《科技之魅》

近日,由深圳计算科学研究院自主研发的“崖山数据库系统YashanDB”入编2023年世界互联网大会领先科技奖成果集《科技之魅》。此次入选,充分彰显了YashanDB在数据库技术领域的突破性创新成果。 《科技之魅》是世界互联网大会领先科技奖的重要成果&#xff…

智慧环保:视频监控平台EasyCVR与AI智能分析在环保领域的应用

人工智能(AI)视频分析技术在环保领域有着广泛的应用,通过智能识别和跟踪技术,AI视频分析可以实时监测空气质量、水质和噪音等环境指标,帮助环保部门及时发现污染源并进行有效治理,提高监测、管理和保护环境…

蓝桥杯第一天-----时间显示

文章目录 前言一、题目描述二、测试用例三、题目分析四、具体代码实现总结 前言 本章中将相信介绍蓝桥杯中关于时间显示的题目。 链接:https://www.lanqiao.cn/problems/1452/learning/ 一、题目描述 二、测试用例 三、题目分析 1.输入的时间为毫秒,毫…

结构体数组和结构体指针

在按键中断中&#xff0c;使用了结构体数组的语法&#xff1a; struct irq_dev imx6uirq; /* key设备 *///提取出GPIO对应的编号for (i 0; i < KEY_NUM; i) {imx6uirq.irqkeydesc[i].gpio of_get_named_gpio(imx6uirq.nd,"key-gpios", i);if (imx6uirq.irq…

十大排序算法及其特性最全总结,以408考察特性为基准

文章目录 一、冒泡排序&#xff08;Bubble Sort&#xff09;1.基本思想2.动图演示3.算法描述4.代码实现 二、快速排序&#xff08;Quick Sort&#xff09;☆1.基本思想2.动图演示3.算法描述4.代码实现 三、选择排序&#xff08;Selection Sort&#xff09;1.基本思想2.动图演示…