当前位置: 首页 > news >正文

CAN总线通信协议学习1——物理层

首先来看看CAN是怎么产生的:简单理解,CAN就是一种“拥有特别连接方式”的数据传输的总线,其有特定的一些规则。

(注:资料及图片来源于知乎博主TOMOCAT。)

CAN总线的结构

查阅参考文献,OSI标准主要将CAN总线分为物理层、数据链路层、应用层(有客户自己设定),(下图中的表示层、传输层等等在我看来就是在数据处理中设计到的范畴,主要部分还是上述三层),而应用层由客户自己设定,那么有标准的就只能是物理层和数据链层,以下主要讲解这两个部分。

CAN的物理层

CAN总线分为高速CAN和低速CAN,顾名思义,

  • 高速CAN传输速度快但距离短
  • 低速CAN传输速度慢但距离远。

  • 高速CAN闭环
  • 低俗CAN开环

在此我们主要学习高速CAN

高速CAN的拓扑结构(硬件电路)

首先,CAN总线是将信号转换为差分信号进行传输。

高速CAN的硬件电路图如上所示,可以看到:


      设备即传输数据的电子控制单元,其将数据通过TX和RX线传输给CAN收发器

\rightarrow  CAN收发器通过电平转换、输出驱动、输入采样等操作将收到的数据传到CAN_H和CAN_L

\rightarrow  CAN_H和CAN_L将传输数据转为差分信号进行传输


其次,CAN总线其实就是CAN_H和CAN_L组成两根闭环线,且CAN_H和CAN_L两端添加120Ω的终端电阻,终端电阻的作用:

(1)防止回波反射(不太懂)

(2)当无设备工作时,使高速CAN默认为收紧状态,两线电压差为0。与后续CAN总线电平的设置相关(也不太懂哔哩哔哩上说的收紧拉开)

CAN电平标准

看高速CAN,CAN_H和CAN_L所谓“收紧”时,即电压差为0V(或-0.5V到0.05V),表示1;CAN_H和CAN_L所谓“拉开”时,即电压差为2V(或1.5V~3V,有一个误差范围,看设定),表示0。(低速CAN则类似这样看)。

  • 这里要注意,逻辑1被定义为隐形,逻辑0被定义为显性,这与我们的使用习惯不太相同。
  • 当显性和隐性电平同时出现,表示为显性电平,即0和1同时出现,表示0(0强于1)。

CAN收发器(不太懂,留个图,后面来补上)

注:本文将开始进行CAN总线通信协议得学习,以上均是通过学习参考文献、哔哩哔哩网站上江协科技官方号以及网络资源所得的个人经验,如有侵权,请联系我,欢迎指正。

http://www.lryc.cn/news/545669.html

相关文章:

  • Vim 常用快捷键大全:跳转、编辑、查找替换全解析
  • 【Python 数据结构 2.时间复杂度和空间复杂度】
  • 【Qt QML】QML鼠标事件(MouseArea)
  • LeetCode 202. 快乐数 java题解
  • 《认知·策略·跃迁:新能源汽车工程师的深度学习系统构建指南》
  • PHP环境安装达梦数据库驱动实操
  • Electron + Vite + React + TypeScript 跨平台开发实践指南
  • Java---入门基础篇(下)---方法与数组
  • 【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进
  • 【文献阅读】Collective Decision for Open Set Recognition
  • Gorm中的First()、Create()、Update()、Delete()的错误处理
  • 【心得】一文梳理高频面试题 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别并附加记忆方法
  • Navicat连接虚拟机数据库详细教程
  • 委托者模式(掌握设计模式的核心之一)
  • DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力
  • 实现Unity shader扭曲效果
  • 七星棋牌 6 端 200 子游戏全开源修复版源码(乐豆 + 防沉迷 + 比赛场 + 控制)
  • C++STL---<limits>
  • 一键安装Mysql部署脚本之Linux在线安装Mysql,脚本化自动化执行服务器部署(附执行脚本下载)
  • ES、OAS、ERP、电子政务、企业信息化(高软35)
  • 文生图开源模型发展史(2014-2025年)
  • OA办公系统自动渗透测试过程
  • Python标准库【os】5 文件和目录操作2
  • [代码规范]接口设计规范
  • 什么是最终一致性,它对后端系统的意义是什么
  • Unity学习笔记之——ugui的性能优化
  • Python接口自动化中操作Excel文件的技术方法
  • [Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)
  • 游戏引擎学习第131天
  • Visual Studio Code集成MarsCode AI