汽车网络架构与常用总线汇总

汽车CAN总线简述

CAN 是控制器局域网Controller Area Network 的缩写,1986年,由德国Bosch公司为汽车开发的网络技术,主要用于汽车的监测与控制,目的为适应汽车“减少线束的数量”“通过多个网络进行大量数据的高速传输”的需求。

在这里插入图片描述

CAN发展时间线

  • 1983年,Bosch开始研究汽车网络技术
  • 1986年,Bosch在SAE大会正式公布CAN协议
  • 1987年,Intel和Philips先后推出CAN控制器芯片
  • 1991年,Bosch颁布CAN 2.0技术规范,CAN总线最先在Benz S系列轿车上实现
  • 1993年,ISO颁布CAN国际标准ISO-11898
  • 1994年,由CiA组织举办第一届国际CAN大会(iCC)
  • 2005年,CiA在中国的第一场CAN研讨会
  • 2013年,虹科与CiA正式深入合作致力CAN推广
  • 2015年,CAN FD的 ISO标准化
  • 2020年,CAN XL即将登场第十七届iCC大会

汽车网络是将汽车上所有电子传感器、执行器和电子控制单元(ECU)连接组网的通信形式。根据通信速率,汽车工程师协会(SAE)定义了如下类别的汽车网络。

在这里插入图片描述

当前的车用总线:

  • CAN(CANFD)
  • LIN
  • MOST
  • FlexRay
  • 车载以太网

在这里插入图片描述

通常汽车CAN网络细分

  • 动力CAN网络
  • 车身CAN网络
  • 组合仪表CAN网络
  • 诊断CAN网络

在这里插入图片描述

汽车网络典型应用

GLOF整车CAN网络拓扑

在这里插入图片描述

在这里插入图片描述


CAN总线在汽车网络中脱颖而出的“秘密”

曾经的车用总线

  • SAE J1850(Class2)
  • SAE J1708
  • K-Line
  • BEAN
  • Byte flight
  • D2B…

CAN通信特性的“公开秘密”

  1. 节点间采用多主通信方式
  2. 采用短帧结构,报文帧的有效字节数为8个,可达汽车实时响应要求
  3. 报文ID值越小,优先级越高。报文ID可分成不同的优先级,进一步满足汽车网络报文的实时性要求。
  4. 非破坏性总线仲裁处理机制。
  5. 可靠的CRC校验方式,传输数据出错率极低,满足汽车数据传输的可靠性要求。
  6. 报文帧仲裁失败或传输期间被破坏有自动重发(机制)。
  7. 节点在错误严重的情况下,具有自动脱离总线的功能,切断它与总线的联系,不影响总线的正常工作。
  8. 通信距离最远达10km(速率5Kbps以下)
  9. 通信速率最高1MB/s(此时距离最长40m)
  10. 节点数实际可达110个
  11. CAN节点设计成本较低,通信介质采用双绞线

OSI模型与CAN的关系

在这里插入图片描述


CAN收发器

定义:CAN收发器逻辑信号和物理信号之间的转换采用差分电平方式

  1. 将逻辑数字信号转换成物理信号
  2. 将物理信号转换成逻辑数字信号
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

CAN信号电平

CAN总线有ISO11898和ISO11519(低速容错CAN)两个标准

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


CAN编码方式 -> NRZ(非归零)

CAN编码采用NRZ非归零编码,相同带宽情况下,NRZ编码方式的信息量更大

在这里插入图片描述

CAN信号电平 -> 双绞线

问题:为什么要采用两根线(双绞线)的差分电平信号?

原因:双绞线传输差分信号时受到共模信号干扰后,电平差值不变,信号解码正常。

在这里插入图片描述

在这里插入图片描述

CAN信号电平 -> 线与原理

多个CAN节点并接到同一总线时,只要其中一个节点输出低电平,总线就为低电平;当所有节点输出高电平时,总线才为高电平。

在这里插入图片描述


CAN -> 异步串行通信

同步串行通信

在这里插入图片描述

异步串行通信

在这里插入图片描述
异步串行通信省去了时钟信号线,但遇到一个问题是:根据波特率做采样,波特率的误差会产生通信错误!


CAN -> 波特率误差带来的错误

在这里插入图片描述

问题:如何减少波特率的误差带来的通信错误?

解决:CAN总线规定信号的跳变沿时刻进行同步,将误差累计限制在两个跳变沿。

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

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

相关文章

TypeScript教程(一)在vscode中的配置TypeScript环境

TypeScript教程(一)在vscode中的配置TypeScript环境 文章目录 TypeScript教程(一)在vscode中的配置TypeScript环境一、前言二、具体步骤1、Node.js安装2、TypeScript安装3、helloworld 一、前言 未来的开发者们请上座&#xff0c…

kubeadm 安装k8s集群后,master节点notready问题解决方案

使用kubeadm 安装k8s集群后,加载calico cni 网络组件后,master节点notready问题 表现为: 使用命令查看日志:journalctl -f -u kubelet 报错如下: Failed to start ContainerManager failed to initialize top level…

[Linux]HTTP状态响应码和示例

1xx:信息响应类,表示接收到请求并且继续处理 2xx:处理成功响应类,表示动作被成功接收、理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 4xx:客户端错误&#x…

webpack如何把dist.js中某个模块js打包成一个全局变量,使得在html引入dist.js后可以直接访问

webpack可以通过使用expose-loader来将模块中的一个js文件暴露为全局可以访问的变量。下面是一个示例代码: 1、安装expose-loader npm install expose-loader --save-dev 2、webpack.config.js配置文件 值得注意的是:我在本地使用16.14.2版本的node打包…

QT下载、安装详细教程[Qt5.15及Qt6在线安装,附带下载链接]

QT5.15及QT6的下载和安装 1.下载1.1官网下载1.2国内镜像网站下载 2.安装3.软件启动及测试程序运行3.1Qt Creator(Community) 1.下载 QT自Qt5.15版本后不在支持离线安装包下载(非商业版本,开源),故Qt5.15及Qt6需要使用在线安装程序…

Python tkinter (2) —— Button标签

Python的标准Tk GUI工具包的接口 目录 Button 简单示例 设置按钮宽高 设置响应事件 匿名函数调用事件 退出按钮 总结 tkinter系列文章 python tkinter窗口简单实现 Python tkinter (1) —— Label标签 Button Button标签在窗口中显示按钮的控件。 简单示例 实现一个…

Offer必备算法_滑动窗口_八道力扣OJ题详解(由浅到深)

目录 滑动窗口算法介绍 ①力扣209. 长度最小的子数组 解析及代码 ②力扣3. 无重复字符的最长子串 解析及代码 ③力扣1004. 最大连续1的个数 III 解析及代码 ④力扣1658. 将x减到0的最小操作数 解析及代码 ⑤力扣904. 水果成篮 解析及代码1(使用容器&…

node 第二十二天 mongoDB最新版7.x安装教程

学习服务端其实就是学习数据库, 就web这一条线而言, 客户端的学习就是学习浏览器, 而服务端的学习就是学习数据库(当然还有服务器) 为什么学习mongoDB mongoDB是非关系型数据库(not only sql) 基本上补全了mysql的缺陷, 当然也缺失了部分mysql的优势. 当然, 非大型应用的业务场…

2023年第十六届中国系统架构师大会(SACC2023):核心内容与学习收获(附大会核心PPT下载)

大会以“数字转型 架构演进”为主题,聚焦系统架构在数字化转型中的演进和应用。 与往届相比,本届大会最大的变化是从原来的大会演讲模式变革为专题研讨会模式。专题研讨会主题内容紧扣行业落地实践痛点与难点,多角度聚焦行业的架构演进之路。…

vue3+ts+element-plus集成bpmn.js

Bpmn.js集成文档 说明: 本文档主要是作为集成,不是原创(主要是填写转载他又让我写原文链接,但是我又没有原文链接哈哈哈),感谢以下参考博文。 本项目页面模板使用Geeker-Admin作为前端模板Geeker-Admin&a…

大数据学习之Flink算子、了解(Transformation)转换算子(基础篇三)

Transformation转换算子(基础篇三) 目录 Transformation转换算子(基础篇三) 三、转换算子(Transformation) 1.基本转换算子 1.1 映射(Map) 1.2 过滤(filter&#xf…

教学改进措施及方法

在教育的世界里,每一位教师都是一位探险家,探索着如何更好地点燃学生的求知欲望,帮助他们展翅飞翔。我,作为一位拥有多年教学经验的教师,也在这条路上不断摸索。今天,我想分享一些我在教学实践中的改进措施…

数字与数学高频问题(算法村第十三关白银挑战)

数组实现加法专题 数组实现整数加法 66. 加一 - 力扣(LeetCode) 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数…

如何在 Ubuntu 20.04 上安装 Nginx

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 如何在 Ubuntu 20.04 上安装 Nginx 介绍 Nginx是世界上最受欢迎的 Web 服务器之一,负责托管互联网…

Mac Idea安装后无法启动

1、起因 想安装一个新版的idea2023.3.2,结果安装完之后直接无法启动 以为是卸载不干净,下载了一个腾讯柠檬,结果将2018版也一并卸载了 好家伙,彻底没得用 2、找原因 1)查看idea报错信息 网上找了一圈,其…

C++笔试强训选择题1

选择题 1.选择表达式 11|10 的结果(本题数值均为十进制)() A.11 B.10 C.8 D.2 11的二进制为1011,10的二进制为1010 1011 |(或)1010 1011 | 按位或 有1为1,& 按位…

归并排序详解

基本思想: 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列&#xff1…

MySQL也开始支持JavaScript了

2023 年 12 月 16 日,Oracle 公司在一篇名为 《Introducing JavaScript support in MySQL》的文章中宣布 MySQL 数据库服务器将开始支持 JavaScript 语言。 这个举措标志着继PostgreSQL之后, MySQL 也支持使用 JavaScript 编写函数和存储过程了。作为最…

逻辑分析仪软件PulseView 下载链接及使用,zadig更改USB端口名称

1、打开zadig,List All Devices 2、选择Cypress FX2LP No EEPROM Device,点击Edit,重新命名成fx2lafw 3、打开PulseView。 PulseView 64位版本的(pulseview-0.4.1-64bit-static-release-installer.exe) 下载链接&…

OpenKruiseGame × KubeSphere 联合发布游戏服运维控制台,推动云原生游戏落地

作者:云原生游戏社区 近日,云原生游戏开源社区旗下 OpenKruiseGame(以下简称:OKG)基于 KubeSphere 4.0 LuBan 架构开发的游戏服运维控制台 OKG Dashboard 正式发布!现已上架 KubeSphere Marketplace 云原生…