首页 > 其他分享 >[车联网] CAN总线详解 [转]

[车联网] CAN总线详解 [转]

时间:2024-04-05 14:24:41浏览次数:50  
标签:逻辑 总线 电平 联网 详解 信号 节点 显性

0 序

1 CAN总线-概述

1.0 简介

  • CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络。

1.1 优点

  • 传输速度高。传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。近些年来,CAN控制器价格越来越低。
  • 低成本:ECUs通过单个CAN接口进行通信,布线成本低。
  • 高集成:CAN总线系统允许在所有ECUs上进行集中错误诊断和配置。
  • 可靠性:该系统对子系统的故障和电磁干扰具有很强的鲁棒性,是汽车控制系统的理想选择。
  • 高效率:可以通过id对消息进行优先级排序,以便最高优先级的id不被中断。
  • 灵活性:每个ECU包含一个用于CAN总线收发芯片,随意添加CAN总线节点。

1.2 CAN总线网络

  • CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输.
  • 为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。为什么是120Ω?因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线

1.3 CAN收发器

  • CAN收发器的作用是负责逻辑电平信号电平之间的转换。

即:从CAN控制芯片输出逻辑电平CAN收发器;然后,经过CAN收发器【内部转换】将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。
具体的引脚定义如下:

1.4 CAN信号表示

  • CAN总线采用不归零码位填充技术

也就是说,CAN总线上的信号有两种不同的信号状态,分别是: 显性的(Dominant)逻辑0和隐形的(recessive)逻辑1,信号每一次传输完后不需要返回到逻辑0(显性)的电平。

  • 显性电平隐性电平的解释:
  • CAN的数据总线有两条,一条是黄色的CAN_High,一条是绿色的CAN_Low
  • 没有数据发送时,两条线的电平一样都为2.5V,称为静电平,也就是隐性电平
  • 有信号发送时,CAN_High的电平升高1V,即3.5V,CAN_Low的电平降低1V,即1.5V。
  • 按照定义的:
  • CAN_H-CAN_L < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1" - 高电平
  • CAN_H-CAN_L > 0.9V 时候为显性的,逻辑信号表现为"逻辑0" - 低电平

1.5 CAN信号传输

  • 发送过程CAN控制器CPU传来的信号转换为逻辑电平(即: 逻辑0-显性电平 或者 逻辑1-隐性电平)。CAN收发器(发射器)接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。

  • 接收过程CAN发射器(接收器)CAN_HCAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。

1.6 CAN数据传输

  • CAN总线传输的是CAN帧CAN的通信帧分成5种,分别为:数据帧远程帧错误帧过载帧帧间隔
  • 数据帧根据仲裁段长度的不同,而分为:标准帧(2.0A)和扩展帧(2.0B)。

帧起始

  • 由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;

帧结束

  • 由7个隐形位(高电平)组成。

仲裁段

  • 只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能。但是CAN使用了标识符的逐位仲裁方法可以解决这个问题。

  • CAN总线控制器发送数据的同时监控总线电平

  • 如果电平不同,则:停止发送并做其他处理。
  • 如果该位位于仲裁段,则:退出总线竞争;
  • 如果位于其他段,则:产生错误事件。
  • 假设节点A、B和C都发送相同格式、相同类型的帧,如标准格式数据帧,它们竞争总线的过程是:

  • 帧ID越小,优先级越高。

  • 由于数据帧的RTR位为显性电平,远程帧为隐性电平。所以,帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。

数据段

  • 一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高,非常适合汽车和工控应用场合下图所示。

  • 数据量小,发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强。

X 参考文献

标签:逻辑,总线,电平,联网,详解,信号,节点,显性
From: https://www.cnblogs.com/johnnyzen/p/18115702

相关文章

  • 【WPF应用34】WPF基本控件-Menu的详解与示例
    WPF(WindowsPresentationFoundation)是.NET框架的一个部分,用于构建桌面应用程序的用户界面。在WPF中,菜单(Menu)是一种常用的控件,用于提供一组选项或命令,使用户可以根据自己的需要执行特定的操作。本文将详细介绍WPF中的Menu控件,包括其基本用法、属性和事件。同时,我们将通过一......
  • Offer必备算法21_回文串dp_六道力扣题详解(由易到难)
    目录①力扣647.回文子串解析代码②力扣5.最长回文子串解析代码③力扣1745.分割回文串IV解析代码④力扣132.分割回文串II解析代码⑤力扣516.最长回文子序列解析代码⑥力扣1312.让字符串成为回文串的最少插入次数解析代码本篇完。①力扣647.回文子串64......
  • Socket 通信详解
    Socket通信是一种网络通信的基本方式,它允许位于不同主机上的应用程序通过网络进行数据交换。Socket使用IP地址和端口号来标识网络上的应用程序,确保数据准确地从一个程序传送到另一个程序(端到端)。我在多进程实现并发服务器-CSDN博客 处有进行更详细的代码介绍,建议看完这一......
  • opencv-python库 cv2图像二值化详解
    文章目录图像二值化原理cv2.threshold()Qtsu二值化cv2.adaptiveThreshold图像二值化原理图像二值化原理是通过设定一个阈值,将图像中的像素点的灰度值与阈值进行比较,大于阈值的像素点设置为白色,小于阈值的像素点设置为黑色1。图像二值化是将彩色或灰度图像转换为只包......
  • WPF FlowDocument结构详解
    FlowDocument一、介绍FlowDocument是WPF中的流文档,用来承载大段文章。可以用来显示文章。或者在RichTextBox中编辑文章。FlowDocument没有多少方法,但有大量的属性,用来设置文章的字体,字体大小,前景色,背景色之类的。但这些都没什么特别的,最重要的,是FlowDocument的结构。二、FlowDocum......
  • MySQL 索引详解
    为什么要使用索引?通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以大大加快数据的检索速度(大大减少的检索的数据量), 这也是创建索引的最主要的原因。帮助服务器避免排序和临时表。将随机IO变为顺序IO可以加速表和表之间的连接,特别是在实现数据的参考完整......
  • dc-2靶机-超详解
    dc-2内网靶1、信息收集入站信息nmap扫描nmap-A-p--v192.168.27.0/24得到消息:IP:192.168.227.139cms:wordpress4.7.10开放端口及服务:80(http)、7744(ssh)页面信息访问ip发现跳转,猜测可能是域名重定向修改hosts文件重新访问,访问成功发现flag1访问成功发现fl......
  • git版本控制工具详解
    认识版本控制(版本控制)◼什么是版本控制?版本控制的英文是Versioncontrol;是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程;版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步;◼简单来说,版本控制在软......
  • 《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配
     1.简介Java自动化测试开发中,需要将一些易变的配置参数放置再XML配置文件或者properties配置文件中。然而XML配置文件需要通过DOM或SAX方式解析,而读取properties配置文件就比较容易。因此今天宏哥讲解和分享如何读取properties配置文件的内容。2.properties文件......
  • 【云原生篇】k8s之Deployment详解
    Kubernetes的Deployment是一种管理声明式更新的资源对象,它允许你描述应用的期望状态,并由Deployment控制器自动将当前状态改变为期望状态。Deployment主要用于无状态应用的部署和扩展,但也可以用于有状态应用。核心功能自动化部署与回滚:Deployment可以自动更新应用的......