全面了解CAN总线协议

提及总线,总是让人联想到那些交错在一起的计算机电线。那么这些电线如何发挥功效呢?这还得配合总线协议的管理来使用。那么今天我们介绍的就是CAN总线协议。看看这个协议的含义和应用吧。


CAN总线协议基本概念

1. 报文

总线上的信息以不同格式的报文发送,但长度有限。当总线开放时,任何连接的单元均可开始发送一个新报文。

2. 信息路由

在CAN系统中,一个CAN节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性——节点可以在不要求所有节点及其应用层改变任何软件或硬件的情况下,被接于CAN网络。报文通信——一个报文的内容由其标示符ID命名,ID并不指出报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文滤波决定该数据是否使它们激活。成组——由于采用了报文滤波,所有节点均可接受报文,并同时被相同的报文激活。数据相容性——在CAN网络中,可以确保报文同时被所有的节点或者没有节点接受,因此,系统的数据相容性是借助于成组和出错处理达到的。

3. 位速率

CAN的数据传输率在不同的系统中是不同的,而在一个系统中是固定的速率。

4. 优先权

在总线访问期间,标示符定义了一个报文静态的优先权。

5. 远程数据请求

通过发送一个远程帧,需要数据的节点可以请求另一个节点发送相应的数据帧,该数据帧与对应的远程帧以相同的标示符ID命名。

6. 多主站

当总线开放时,任何单元均可以开始发送报文,发送具有最高优先权报文的单元会赢得总线的访问权。

7. 仲裁

当总线开放时,任何单元均可以开始发送报文,若同时有两个或者更多的单元开始发送,总线访问冲突运用逐位仲裁规则,借助标示符ID解决,这种仲裁规则可以使信息和时间均无损失,若具有相同标示符的一个数据帧和一个远程帧同时发送,数据帧优先于远程帧,仲裁期间,每个发送器都对发送位电平与总线上检测到的电平进行比较,若相同则该单元可以继续发送,当发送一个隐性电平,而在总线上检测为显性电平时,该单元退出仲裁,并不再传送后继位了。

8. 安全性

CAN总线协议为了获得尽可能高的数据传输安全性,在每个CAN节点中均设有错误检测,标定和自检的强有力措施。检测措施包括:发送自检,循环冗余校验,位填充,和报文格式检查。

9. 出错标注和恢复时间

已损坏的报文由检验出错的节点进行标注。这样的报文将失效,并自动进行重发送。如果不存在新的错误,从检出错误到下一个报文开始发送的恢复实践最多为29个位时间。

10. 故障界定

CAN节点又能力识别永久性的故障和暂时扰动,可自动关闭故障节点。

11. 连接

CAN串行通信链路是一条众多单元均可被连接的总线,理论上单元数目是无限的,实际上,单元总数受限于延迟时间和总线的电器负载。

12. 应答

所有接收器均对接收报文的相容性进行检查,回答一个相容的报文,并标注一个不相容的报文。

73c7e84634723487cfb92c359b41dfd3.jpeg


  CAN的特点:属于串行通信网络

  1. 通信方式灵活。多主从方式工作,网络上任何节点均可以在任何时刻主动的向其他节点发送信息,不分主从。无需站地址等节点信息。可以构成多机备份系统。

  2. CAN网络上的节点信息分成不同的优先级,可以满足不同的实时要求。

  3. CAN采取非破坏性的总线仲裁技术,多个节点同时发送信息时,优先级低的节点会主动退出发送。

  4. CAN只需通过报文滤波就可以实现点对点,1点对多点及全局广播等几种方式传送接收,无需调度。

  5. CAN的直接通信距离最远可达10KM(5Kb/s),通信速率最高可达1Mb/s(40M)。

  6. CAN上的节点数目前可达110个;报文标示符可达2032种(CAN2.0A ),而CAN2.0B报文标示符几乎不受限制。

  7. CAN通信采用短帧格式,传输时间短,抗干扰强,极好的验错效果,每帧最多8B足以满足控制要求,不会占用过长总线时间,实时性强。

  8. CAN每帧都有CRC校验及其他验错措施。

  9. 接口中集成了CAN总线协议的物理层和数据链路层。

  10. CAN的通信介质可为双绞线或同轴电缆,光纤。

  11. CAN节点在错误严重情况下具有自动关闭输出功能。

b50338fca8b2703cd5594ab6f4634de3.jpeg


CAN总线协议基本规则

1. 总线访问

采用载波监听多路访问,CAN控制器之恩能够在总线空闲时,就是节点侦听到网络上至少存在3个空闲位(隐性位)时开始发送,采用硬同步,所有的控制器同步都为与帧的起始的前沿。过了一定时间,并在一定条件后,重同步。2. 仲裁各节点向总线发电平时,也对总线上电平进行读取,并于自身发送的电平进行比较,相同则发下一位,直至全部发完。不同则说明网络上有更高优先级的信息帧正在发送,即停止发送,退出竞争。3. 编码/解码帧起始域,仲裁域,控制域,数据域和CRC序列均使用位填充技术进行编码,就是5个连续的同状态电平插入一位与它相补的电平,还原时每5个同状态的电平后的相补电平被删除。4. 出错标注当检测到位错误,填充错误,形式错误或应答错误时,检测出错条件的CAN控制器将发送一个出错标志。5. 超载标注一些控制器会发送一个或多个超载帧以延迟下一个数据帧或远程帧的发送。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业以太网之战:EtherCAT是如何杀出重围的?

前言 EtherCAT 是一种开放的实时工业以太网协议,由德国倍福公司开发并在 2003 年 4 月的汉诺威工业博览会上首次亮相,目前由 EtherCAT 技术协会(ETG)进行维护和推广。经过 21 年的不断发展,EtherCAT 显示出极强的生命…

移动 Web核心笔记(二)

空间转换 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。 空间转换也叫 3D转换 属性:transform 平移 /*单独设置 z轴效果不明显*/ transform: translate3d(x, y, z); transform: translateX(…

PostgreSQL学习笔记:PostgreSQL vs MySQL

PostgreSQL 和 MySQL 都是广泛使用的关系型数据库管理系统,它们有以下一些对比: 一、功能特性 1. 数据类型支持 PostgreSQL:支持丰富的数据类型,包括数组、JSON、JSONB、范围类型、几何类型等。对于复杂数据结构的存储和处理非…

多线程——单例模式

目录 前言 一、设计模式 二、饿汉模式 三、懒汉模式 1.单线程版 2.多线程版 结尾 前言 前面的几篇文章中介绍了多线程编程的基础知识,在本篇文章开始,就会利用前面的多线程编程知识来编写一些代码案例,从而使大家可以更好的理解运用多…

Cypress安装用命令安装

安装node 试一下,安装yarn 用命令安装Cypress 下面找个截图说:会给用给几个用例引导你怎么写测试脚本

阿里云 EMR Serverless Spark 版正式开启商业化

阿里云 EMR Serverless Spark 版已于2024年9月14日正式商业化售卖,本文将简要介绍 EMR Serverless Spark 的产品优势、应用场景、支持地域,及计费模式等。 EMR Serverless Spark 是一款云原生,专为大规模数据处理和分析而设计的全托管 Server…

基于JSP实习管理系统【附源码】

基于SSM的学生管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统功能结构设计 4.3数据库设计 4.3.1数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1管理员功能介绍 5.1.1管理员登录 5.1.2…

数字身份管理建设是传统社会向数字社会演进的核心关键

当前,新一轮科技革命和产业变革突飞猛进。科学技术尤其是以互联网、大数据、云计算、人工智能和区块链等为代表的数字技术正与社会交往、社会服务、社区建设、社会治理等领域不断渗透融合,社会正在由人与环境构成的物理关系总和向“万物数字化”和万物互…

重磅!望繁信科技与德勤中国签署战略合作协议

2022年,望繁信科技与德勤中国签署流程挖掘战略合作协议!双方强强联合,在拓展流程优化市场、推动企业数智融合等领域展开深度合作,持续共建具有全球影响力的流程挖掘新生态。 根据协议内容,双方计划在未来三年内&#x…

软考攻略/超详细/系统集成项目管理工程师/基础知识分享18

6.5数据分析及应用 6.5.1 数据集成(掌握) 数据集成就是将驻留在不同数据源中的数据进行整合,向用户提供统一的数据视图,使得用户能以透明的方式访问数据。 WebServices技术是一个面向访问的分布式计算模型,它的本质是…

RabbitMQ 入门(六)SpringAMQP五种消息类型(Direct Exchange)

一、发布订阅-DirectExchange(路由模式) 在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。 Direct Exchan…

关键链项目管理是什么?它如何优化传统项目管理?

在项目管理的世界里,方法论千千万万,但真正能够提升项目效率和成功率的却并不多见。关键链项目管理(Critical Chain Project Management, CCPM)作为一种独特且高效的管理方式,正在被越来越多的企业所采用。相较于传统的…

NAND 数据恢复:使用 VNR 闪存数据恢复软件提取闪存转储中的块

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。 天津鸿萌科贸发展有限公司是专业 NAND 闪存数据恢复工具 VN…

linux下离线安装jq工具

故障现象: 当前使用的是CentOS7, 使用sudo yum install jq这个命令后,总是报错 Loaded plugins: fastestmirror, langpacks Determining fastest mirrors ... Cannot find a valid baseurl for repo: extras/7/x86_64 使用uname -a查看我当…

Yolov10训练的餐盘菜品目标检测软件(包含源码及数据集)

本文摘要 摘要:本文主要使用YOLOV10深度学习框架自训练了一个“餐盘菜品目标检测模型”,基于此模型使用PYQT5实现了一款界面软件用于功能演示。让您可以更好的了解和学习,该软件支持图片、视频以及摄像头进行目标检测,本系统所涉…

gitlab项目转移群组

1、背景 项目pa不再使用,只需要备份代码就行。将项目pa从A群组转移到B群组。 2、转移 在群组A项目pa中,设置-通用-高级-转移项目

Linux 线程概念及线程控制

1.线程与进程的关系 执行流(Execution Flow)通常指的是程序执行过程中的控制路径,它描述了程序从开始到结束的指令执行顺序。例如我们要有两个执行流来分别进行加法和减法的运算,我们可以通过使用 fork 函数来创建子进程&#xf…

全面了解 NGINX 的负载均衡算法

NGINX 提供多种负载均衡方法,以应对不同的流量分发需求。常用的算法包括:最少连接、最短时间、通用哈希、随机算法和 IP 哈希。这些负载均衡算法都通过独立指令来定义,每种算法都有其独特的应用场景。 以下负载均衡方法(IP 哈希除…

置分辨率设置多显示器的时候提示, 某些设置由系统管理员进行管理

遇到的问题 设置分辨率设置多显示器的时候提示(如下图所示): 某些设置由系统管理员进行管理 解决方法 先试试这个方法: https://answers.microsoft.com/zh-hans/windows/forum/all/%E6%9B%B4%E6%94%B9%E5%88%86%E8%BE%A8%E7%8…

拓森空调计费系统

随着现代建筑技术的不断发展,中央空调系统已经成为许多大型建筑、商场、办公楼等场所的必备设施。为了更有效地管理和控制中央空调的使用,同时实现能源的合理分配和费用的精确计算,空调计费系统应运而生。 空调计费系统是一种用于精确计算每个…