STM32F1之CAN介绍

news2024/11/23 20:57:28

目录

​编辑

1. CAN 是什么?

2.  总线拓扑图

3. CAN 的特点

4. CAN 协议的基本概念


1. CAN 是什么?

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。

        在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后,CAN 通过 ISO11898 及 ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。

        现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。

        图 1 是车载网络的构想示意图。CAN 等通信协议的开发,使多种 LAN 通过网关进行数据交换得以实现。

图 1  车载网络构想

2.  总线拓扑图

        CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

图 2 是 CAN 的连接示意图

图 2  CAN 连接图

3. CAN 的特点

CAN 协议具有以下特点。

(1) 多主控制

        在总线空闲时,所有的单元都可开始发送消息(多主控制)。

        最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。

        多个单元同时开始发送时,发送高优先级 ID 消息的单元可获得发送权。

(2) 消息的发送

        在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

(3) 系统的柔软性

        与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。

(4) 通信速度

        根据整个网络的规模,可设定适合的通信速度。

        在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。

(5) 远程数据请求

        可通过发送“遥控帧” 请求其他单元发送数据。

(6) 错误检测功能·错误通知功能·错误恢复功能

        所有的单元都可以检测错误(错误检测功能)。

        检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。

        正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。

(7) 故障封闭

        CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

(8) 连接

        CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

4. CAN 协议的基本概念

        CAN 协议如图3 所示涵盖了 ISO 规定的 OSI*1 基本参照模型中的传输层、数据链路层及物理层。

        CAN 协议中关于 ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图 4 所示。

图3  ISO/OSI 基本参照模型

5  ISO/OSI 基本参照模型和 CAN 协议

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

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

相关文章

FPGA时序分析与约束(0)——目录与传送门

一、简介 关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以这个系列我们会详细介…

vertica主键列能插入重复值的处理办法

问题描述 开发同事反馈在vertica中创建含主键列的表中插入重复数据时没有进行校验,插入重复值成功。经过测试着实可以插入重复值,这个坑有些不一样。 创建表和插入语句如下: --创建表 CREATE TABLE dhhtest(ID VARCHAR(64) PRIMARY KEY );…

2024年度AI投资策略报告:AI三要素共振,AIGC云到端加速推进

今天分享的AI系列深度研究报告:《2024年度AI投资策略报告:AI三要素共振,AIGC云到端加速推进》。 (报告出品方:中国银河证券研究院) 报告共计:103页 核心观点:行业热度将持续,积极把…

Git版本控制---入门学习

1.简介 是一个免费的开源分布式版本控制系统工具,旨在快速高效地处理从小型到大型的所有项目。 它是由 Linus Torvalds 在2005年创建的,用于开发 Linux 内核。 Git具有大多数团队和开发人员所需的功能、性能、安全性和灵活性。 它还用作重要的分布式版本…

深度学习——第3章 Python程序设计语言(3.8 深度学习框架PyTorch)

3.8 深度学习框架PyTorch 目录 1. PyTorch简介 2. PyTorch的安装 3. PyTorch相关资源 4. 张量 5. 自动求导 6. 并行计算简介 7. AI硬件加速设备 PyTorch简介 PyTorch是由Meta AI(Facebook)人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库&…

Gemini 能够拯救的谷歌吗?

没有人会记住第二个登上月球的人,除了他自己。 谷歌现在处于尴尬的地位,在 2022 年之前,他以 Chrome Google 搜索确立搜索领域绝对霸主之位,全球市场份额高达 90% 之多,FireFox、Opera 等等浏览器都难以匹敌。而随着 …

枚举 LeetCode2048. 下一个更大的数值平衡数

如果整数 x 满足:对于每个数位 d ,这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n ,请你返回 严格大于 n 的 最小数值平衡数 。 如果n的位数是k,n它的下一个大的平衡数一定不会超过 k1个k1…

JS中的模糊查询功能

什么是模糊查询 模糊查询是指可以在不明确指定查询条件的情况下,自动查找与指定字符串相似的内容。例如,我们在搜索引擎中输入关键字时,就会出现相关的搜索结果,这就是利用了模糊查询功能。 在JS中,我们可以利用一些…

Python:核心知识点整理大全9-笔记

目录 ​编辑 5.2.4 比较数字 5.2.5 检查多个条件 1. 使用and检查多个条件 2. 使用or检查多个条件 5.2.6 检查特定值是否包含在列表中 5.2.7 检查特定值是否不包含在列表中 banned_users.py 5.2.8 布尔表达式 5.3 if 语句 5.3.1 简单的 if 语句 5.3.2 if-else 语句 …

中间件系列 - Redis入门到实战(基础篇)

前言 1.学习视频: 黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 2. 本内容仅用于个人学习笔记,如有侵扰,联系删除 3. 本章学习目标: 初始Redis 认识NoSQL认识Redi…

SpringCloud Gateway

目录 一、gateway简介二、gateway快速入门2.1 引入依赖2.2 编写启动类2.3 编写基础配置和路由规则 三、断言工厂四、过滤器工厂4.1 路由过滤器的种类4.2 请求头过滤器4.3 默认过滤器 五、全局过滤器5.1 全局过滤器作用5.2 自定义全局过滤器5.3 过滤器执行顺序 六、跨域问题6.1 …

超越极限!如何进行高效分布式性能测试,让Jmeter揭示并发下系统的真正实力

一、为什么要进行分布式性能测试 当进行高并发性能测试的时候,受限于Jmeter工具本身和电脑硬件的原因,无法满足我们对大并发性能测试的要求。 基于这种场景下,我们就需要采用分布式的方式来实现我们高并发的性能测试要求。 二、分布式性能测…

短视频ai剪辑分发矩阵系统源码3年技术团队开发搭建打磨

如果您需要搭建这样的系统,建议您寻求专业的技术支持,以确保系统的稳定性和安全性。 在搭建短视频AI剪辑分发矩阵系统时,您需要考虑以下几个方面: 1. 技术实现:您需要选择适合您的需求和预算的技术栈,例如使…

调用win32 api获取电脑名字和系统目录

学习一下几个函数的功能,和调用方式; void CBasenameView::OnDraw(CDC* pDC) {CBasenameDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;TCHAR myname1[50], myname2[50], mydirname1[50], myd…

大学生有担当,乡村振兴新亮点“艺术点亮乡村,创意引领未来”

12月7日上午,由花都区文化馆(区非物质文化遗产保护中心)指导,广州工商学院主办,广州工商学院国际教育学院承办,花都区文化馆炭步分馆、广州盛美文化传播有限公司协办的广州工商学院国际教育学院视觉传达设计…

更改 Mac 所使用网络服务的顺序

如果以多种不同的方式(例如使用 Wi-Fi 或以太网)接入互联网或网络,你可以更改连接时电脑所尝试的网络连接顺序。 如果有多个活跃的连接,电脑会首先尝试列表顶部的连接,然后按降序尝试其他连接。 你不能更改虚拟专用网…

学习记录---kubernetes动态卷使用---storageClass及驱动安装(nfs驱动)

一、简介 kubernetes中,在存储层面,我们常用到的两个资源是pv和pvc,其中pv是实际创建出来的一致性卷,我们可以通过pv将容器中的数据进行持久化保存,而pvc则可以理解为pod使用pv的中间控制器,通过pvc将pv绑…

电商平台商品销量API接口,30天销量API接口接口超详细接入方案说明

电商平台商品销量API接口的作用主要是帮助开发者获取电商平台上的商品销量信息。通过这个接口,开发者可以在自己的应用或网站中实时获取商品的销量数据,以便进行销售分析、库存管理、市场预测等操作。 具体来说,电商平台商品销量API接口的使…

二百一十一、Flume——Flume实时采集Linux中的Hive日志写入到HDFS中(亲测、附截图)

一、目的 为了实现用Flume实时采集Hive的操作日志到HDFS中,于是进行了一场实验 二、前期准备 (一)安装好Hadoop、Hive、Flume等工具 (二)查看Hive的日志在Linux系统中的文件路径 [roothurys23 conf]# find / -name…