硬件知识积累 CAN 总线接口

news2024/11/24 17:25:35

1. CAN 总线协议的介绍

        控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。

参考资料:CAN总线协议_百度百科 (baidu.com)



2. CAN  总线的工作原理

        CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。 [1]  CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。

        当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

参考资料: CAN总线协议_百度百科 (baidu.com)



3. CAN总线特征

1.  CAN线消息发送是  1对多,广播模式的发送,每个节点都可以发送信息。 

2.  CAN信息发送时 有一个标识符, 所有的节点接收这个消息根据标志符来决定是否接收这个消息。 

3.  数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。

4.  优先权 由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。

5.  仲裁(Arbitration) 只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。

6.  总线状态 总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。  (就是一个总线上  两个节点 一个节点发0 , 一个发1, 总线传输的信息总是 0)

7.  故障界定(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。

8.  应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。

9.  CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。

10.  CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。

11.  报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的校验机制,这些都保证了CAN通信的可靠性。

12. CAN总线 需要终端电阻,终端电阻大小由线的长度决定。

参考文章 :CAN总线协议_百度百科 (baidu.com)



4. CAN 总线的引脚

CAN 总线的引脚定义
序号名称
1CAH_H
2CAN_L



5. 国产的 CAN收发器

资料链接: SIT1044T_SIT1044T采购信息-立创电子元器件商城 (szlcsc.com)



6. 推荐阅读的文章

1. CAN总线终端电阻 链接:CAN总线要有两个120Ω终端电阻的原因和工作原理_终端电阻为什么是120欧-CSDN博客

2. CAN 协议发送的数据的解释 链接:一口气从零读懂CAN总线。 - 知乎 (zhihu.com)

3. CAN 总线硬件电路设计 链接:CAN总线入门(硬件部分)-电子工程专辑 (eet-china.com)

4. CAN 总线的设计结构 链接:详解CAN总线:什么是CAN总线? - 知乎 (zhihu.com)

5. 可以看看的文章 :CAN总线(一)——CAN总线是什么,在哪用,怎么用?_口袋里のInit的博客-CSDN博客

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

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

相关文章

微信小程序上传图片和上传视频的组件失效

微信小程序上传图片和上传视频的组件失效 今天公司的小程序展示图片和视频文字的页面上传图片组件突然失效,之前用的好好的,突然所有使用都都发现用不了,以为是代码出现问题,反复查了很久。换了一个openid居然就可以了&#xff0…

学Python,一个月从小白到大神?看你怎么学!

Python是一门超强大而且超受欢迎的编程语言。它被用在各种领域,比如网站开发、数据分析、人工智能和机器学习。学会Python会给你创造很多职业机会,所以绝对是值得一试的。 但你有没有过这样的梦想:一个月时间,从Python小白变成Py…

修改docker 版本的mysql 8.0 本机Navicat 连不上的问题

1.进入容器 docker exec -it xxxx bash 2.使用root账号登录mysql mysql -u root -p 3.查看当前加密方式 use mysql; SELECT Host, User, plugin from user; 我这是改过了,应该都是caching_sha2_password 4. 修改加密方式 ALTER USER root% IDENTIFIED WITH m…

大数据(十):数据可视化(二)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教…

百度百科怎么创建?百科创建需要注意哪些(一文看懂品牌/企业/人物百科创建)

随着互联网的不断发展,许多企业或品牌都选择创建百度百科作为一种很好的展示方式。百度百科可以被视为一张网络名片,拥有它能够提高人物、企业、品牌的知名度和影响力。那么人物百科、企业百科、品牌百科到底怎么创建呢? 大家创建百科前建议先…

numpy中几种随机数生成函数的用法

一、np.random.rand() 该函数括号内的参数指定的是返回结果的形状,如果不指定,那么生成的是一个浮点型的数;如果指定一个数,那么生成的是一个numpy.ndarray类型的数组;如果指定两个数字,那么生成的是一个二…

日常踩坑-[sass]Error: Expected newline

在学习sass的时候,运行时发现报错 经过网上冲浪知道,原来在声明语言的时候 lang 不能声明为 sass ,而是 scss ,这就有点坑了 原因: scss是sass3引入进来的,scss语法有"{}“,”;"而sass没有,所以…

vue3+ts封装图标选择组件

概要 讲解在vue3的项目中封装一个简单好用的图标选择组件。 效果 第一步&#xff0c;准备图标数据 数据太多&#xff0c;大家去项目中看。项目地址https://gitee.com/nideweixiaonuannuande/xt-admin-vue3 第二步&#xff0c;页面与样式编写 <template><div>…

【蓝桥杯选拔赛真题48】python最小矩阵 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python最小矩阵 一、题目要求 1、编程实现 2、输入输出 二、算法分析

电压放大器可用于什么场合

电压放大器是电子器件中常见的一种放大器类型&#xff0c;它可以将输入信号的电压放大到更大的幅度&#xff0c;以满足特定应用的需求。电压放大器广泛应用于多个领域和场合&#xff0c;下面将详细介绍一些使用电压放大器的场景。 音频放大器&#xff1a;音频放大器是电压放大器…

Python 包管理器入门指南

什么是 PIP&#xff1f; PIP 是 Python 包管理器&#xff0c;用于管理 Python 包或模块。注意&#xff1a;如果您的 Python 版本是 3.4 或更高&#xff0c;PIP 已经默认安装了。 什么是包&#xff1f; 一个包包含了一个模块所需的所有文件。模块是您可以包含在项目中的 Pyth…

第四章 串【数据结构与算法】【精致版】

第四章 串【数据结构与算法】【精致版】 前言版权第4章串4.1应用实例4.2串及其运算4.2.1串的基本概念4.2.2 串的基本运算**4-1串的删除操作.c** 4.3串的存储结构及实现4.3.1 定长顺序串**1-定长顺序串.c** 4.3.2 堆串**2-堆串.c** 4.3.3 块链串**3-块链串.c** 4.4串的模式匹配4…

A股市场全景分析系列—“连板打分模型”跟踪图谱已出炉!

前言‍‍ 我们的股票量化系统QTYX内置了“涨停板打分模型”&#xff0c;对每日涨停个股的“连板天数”、“封板时间”、“炸板次数”、“封成比”这四个方面进行综合评分&#xff0c;大于24分以上的个股涨停力度较强&#xff0c;可以评估次日连板的可能。‍‍‍‍‍ 股票量化分…

全国产信创实景三维全流程产品体系亮相首届中国测绘地理信息大会

2023年11月8日至10日&#xff0c;以“科技引领&#xff0c;创新驱动&#xff0c;北斗赋能&#xff0c;产业强国”为主题&#xff0c;由自然资源部指导&#xff0c;中国测绘学会、中国地理信息产业协会和中国卫星导航定位协会共同主办的第一届中国测绘地理信息大会将在浙江德清国…

【算法|二分查找No.1】leetcode 704. 二分查找+二分模板 leetcode 34. 在排序数组中查找元素的第一个和最后一个位置

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

小白如何制作电子画册?看这里,超多画册模板任你挑!

传统纸质版的画册&#xff0c;制作起来即费力又费时&#xff0c;花费还高&#xff0c;想要修改内容还得重新制作&#xff0c;特别麻烦。现在互联网发达&#xff0c;如今已经用上了H5的技术&#xff0c;小白也能快速制作一本翻页电子画册。 只需用FLBOOK&#xff0c;在线就可以制…

线上Kafka集群如何调整消息存储时间

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 Kafka版本 kafka_2.13-3.5.0 背景 Kafka 默认消息存储时间为7天&#xff0c;实际线上的业务使用Kafka更多的是一些数据统计之类的业务&#xff0c;大多是朝生夕…

Screens for Mac 中文版 远程桌面连接控制工具

Screens Mac 版是Mac os平台上的一款Mac VNC 客户终端,能够自由访问远程计算机设备&#xff0c; Screens Mac 版支持各种强大的远程控制辅助工具&#xff0c;例如剪切板共享、快捷方式自定义、安全连接、多屏幕支持、快速扫描连接等。 Screens 4 for mac支持多种远程桌面协议&…

【Orangepi Zero2 全志H616】资料及环境搭建

点击跳转 点击跳转 点击跳转 点击跳转 点击跳转 点击跳转 跳转到此处 跳转到此处 跳转到此处 跳转到此处 跳转到此处 跳转到此处 官网资料下载 GitHub&#xff1a;新版本的 orangepi-build 源码 环境搭建&#xff1a;新手配置教程 打开 MobaXterm &#xff0c;单击左上的图标…

element-ui属性、事件、方法

在使用组件的方法时需要在对应的组件中加入 ref “组件别名” 在调用方法时直接使用 this.$refs.组件别名.方法名() 注意&#xff1a;在element-UI中所有组件 都存在 属性 事件 和方法 属性&#xff1a;直接写在对应的组件标签上&#xff0c;使用方法 :属性名 属性值 方式 事…