can协议介绍

news2024/9/29 22:48:01

目录

1 can协议介绍

1.1can协议

1.2 CAN协议特点

2.CAN FD

2.1 CAN FD协议简介

2.2 CAN FD协议特点

3.LIN

3.1 LIN总线简介

3.2 LIN总线特点

4. FlexRay

4.1 FlexRay简介

4.2 FlexRay特点

5. MOST

6.Ethernet

7 总结:


1 can协议介绍

1.1can协议

CAN,全称为“Controller Area Network”,即控制器局域网,是一种串行数据通信协议。

最初,CAN 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入 CAN 控制装置。

CAN 最初出现在 80 年代末的汽车工业中,由德国 Bosch 公司最先提出。当时,由于消费者对于汽车功能的要求越来越多, 而这些功能的实现大多是基于电子操作的, 这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出 CAN 总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线, 所有的外围器件可以被挂接在该总线上。1993 年,CAN 已成为国际标准 ISO11898(高速应用)和 ISO11519(低速应用)。

1.2 CAN协议特点


可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。
采用非破坏性位仲裁总线机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据。
可以点对点、一点对多点(成组)及全局广播几种传送方式接收数据。
直接通信距离最远可达10km(速率5Kbps以下)。
信速率最高可达1MB/s(此时距离最长40m)。
节点数实际可达110个。
采用短帧结构,每一帧的有效字节数为8byte。
每帧信息都有CRC校验及其他检错措施,数据出错率极低。
通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。
节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。

2.CAN FD


2.1 CAN FD协议简介


随着汽车功能越来越多,数据传输对带宽的要求也越来越高,CAN总线由于带宽的限制,已经无法满足要求了,就推出了CAN FD,全称为CAN with Flexible Data rate。继承了CAN的主要特性,弥补了CAN的数据长度和带宽的限制。可简单认为就是CAN的升级版

2011年,开始CAN FD协议的开发,2015年ISO11898-1进行了修订,将CAN FD加入其中。

2.2 CAN FD协议特点


传输速率不同。CAN FD的速率可变,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps。其他部分与CAN相同。
数据长度不同。CAN FD支持的最大数据长度为64byte。
帧格式不同。CanFD新增了FDF、BRS、ESI位


3.LIN


3.1 LIN总线简介


LIN总线的全称为Local Interconnect Network,是专门为汽车开发的一种低成本的串行通信网络,主要是为CAN总线网络提供辅助功能,应用场合有车门、方向盘、座椅、空调、照明、湿度传感器和交流发电机等。
LIN的一大优点是成本低,但其最大传输速率为20Kbps
建议的通信速率如下,低速2400bps,中速9600bps,高速19200bps。

3.2 LIN总线特点


单主控器/多从设备模式,无需仲裁机制
基于通用UART接口几乎所有微控制器都具备LIN必需的硬件
从机节点不需要石英或陶瓷振荡器就能实现自同步,节省了从设备的硬件成本
信号传播时间可预先计算出来的确定性信号传播
低成本单线实现方式
传输速率最高可达20kb/s
不需要改变LIN从节点的硬件和软件就可以在网络上增加节点
通常一个LIN上节点数目小于12个,共有64个标志符
极少的信号线即可实现国际标准ISO 9141的规定


4. FlexRay


4.1 FlexRay简介


FlexRay是一种用于汽车的高速、可确定性的,具备故障容错能力的总线技术,它将事件触发和时间触发两种方式结合起来,具有高效的网络利用率和系统灵活性的特点。满足传统的CAN方案不能满足汽车线控系统(X-by-Wire)的要求

宝马和戴姆勒克莱斯勒联合飞利浦和摩托罗拉成立了FlexRay联盟,这个联盟 (FlexRay Consortium)推进了FlexRay的标准化,使其成为高级动力总成、底盘、线控系统的标准协议。主要用于线控操作,如,线控操作转向、防抱死制动系统(ABS)包括车辆稳定控制(VSC)和车辆稳定助手(VSA)等。

FlexRay联盟在2013年发布了ISO 17458标准规范。

第一款采用FlexRay的量产车于2006年在BMW X5中推出,应用在电子控制减震系统中。

4.2 FlexRay特点

  1. 高传输速率:FlexRay的每个信道具有10Mbps带宽。它不仅可以像CAN和LIN总线这样的单信道系统运行,而且还可以作为一个双信道系统运行,因此可以达到20Mbps的最大传输速率,是当前CAN最高运行速率的20倍;
  2. 同步时基:FlexRay中使用的访问方法是基于同步时基的。该时基通过协议自动建立和同步,并提供给应用。时基的精确度介于0.5μs和10μs之间(通常为1~2μs);
  3. 确定性:通信是在不断循环的周期中进行的,特定消息在通信周期中拥有固定位置,因此接收器已经提前知道了消息到达的时间。到达时间的临时偏差幅度会非常小,并能得到保证;
  4. 高容错:强大的错误检测性能和容错功能是FlexRay设计时考虑的重要方面。FlexRay总线使用循环冗余校验CRC(Cyclic redundancy cheek)来检验通信中的差错。FlexRay总线通过双通道通信,能够提供冗余功能,并且使用星型拓扑可完全解决容错问题;
  5. 灵活性:在FlexRay协议的开发过程中,主要关注的是灵活性,反映在如下几个方面:

支持多种方式的网络拓扑结构;
消息长度可配置:可根据实际控制应用需求,为其设定相应的数据载荷长度;
使用双通道拓扑时,既可用以增加带宽,也可用于传输冗余的消息;
周期内静态、动态消息传输部分的时间都可随具体应用而定。

6 .可靠性:在汽车要求的工作环境下可靠工作,体现在下面几个方面:

满足汽车使用的温度环境要求 在不使用外部滤波器条件下
每个FlexRay产品满足汽车系统和法规要求的EMC指标
直接与线束相连的总线控制器和通信控制器的输入/输出,满足汽车上电器系统的要求

5. MOST


MOST总线的全称为Media oriented system transport ,媒体导向的串行传输,是一种专门针对车内使用而开发的、主要用于多媒体传输的数据总线技术。例如,可以将导航娱乐系统的地图或者MP3的封面轻松地传给仪表盘。

6.Ethernet


Ethernet以太网,在计算机如此普及的当下,每天都会用到以太网。但这里介绍的以太网是车载以太网。传输速率100Mb/s,具有高带宽、高传输数率、高安全性等特点,未来可能会成为整车总线的主流,主要应用在:中央域控制器、智能座舱域、自动驾驶域、网关等。

7 总结:

 

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

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

相关文章

Linux---Linux是什么

Linux 便成立的核心网站: http://www.kernel.org Linux是什么 Linux 就是一套操作系统 Linux 就是核心与系统呼叫接口那两层 软件移植:如果能够参考硬件的功能函数并据以修改你的操作系统程序代码, 那经过改版后的操作系统就能够在另一个硬…

Spring Boot 整合定时任务完成 从0 到1

Java 定时任务学习 定时任务概述 > 定时任务的应用场景非常广泛, 如果说 我们想要在某时某地去尝试的做某件事 就需要用到定时任务来通知我们 ,大家可以看下面例子 如果需要明天 早起,哪我们一般会去定一个闹钟去通知我们, 而在编程中 有许许多多的…

ssm高校功能教室预约系统java idea maven

本网站所实现的是一个高校功能教室预约系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能…

springboot集成Redis

springboot集成Redis1 windows平台安装Redis2 引入依赖3 修改配置文件4 启动类添加注解5 指定缓存哪个方法6 配置Redis的超时时间小BUG测试对于项目中一些访问量较大的接口,配置上Redis缓存,提升系统运行速度。1 windows平台安装Redis github.com/Micro…

谈一谈API接口开发

做过开发的程序猿,基本都写过接口,写接口不算难事,与接口交互的对象核对好接口的地址、请求参数和响应参数即可,我在作为面试官去面试开发人员的时候,有时候会问这个问题,但相当多的一部分人并没有深入的考…

BERT(NAACL 2019)-NLP预训练大模型论文解读

文章目录摘要算法BERT预训练Masked LMNSPFine-tune BERT实验GLUESQuAD v1.1SQuAD v2.0SWAG消融实验预训练任务影响模型大小影响BERT基于特征的方法结论论文: 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》github&#xff…

QT+OpenGL 摄像机

QTOpenGL 摄像机 本篇完整工程见gitee:QtOpenGL 对应点的tag,由turbolove提供技术支持,您可以关注博主或者私信博主 OpenGL本身没有摄像机的定义,但是我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一…

Linux内核启动(2,0.11版本)内核启动前的苦力活与内核启动

内核启动前的工作 在上一章的内容中,我们跳转到了setup.s的代码部分,这章我们先讲一讲setup做了什么吧 entry start start:! ok, the read went well so we get current cursor position and save it for ! posterity.mov ax,#INITSEG ! this is done …

Flowable进阶学习(十)定时器、ServiceTask服务任务、ScriptTask脚本任务

文章目录一、定时器1. 流程定义定时激活2. 流程实例定时挂起3. 定时任务执行过程ServiceTask 服务任务委托表达式表达式类中字段ScriptTask 脚本任务JS TASK一、定时器 相关知识链接阅读:事件网关——定时器启动事件 1. 流程定义定时激活 可以通过activateProces…

材质笔记 - Simluate Solid Surface

光的行为 当光和物体相遇时,光会有三种行为:被物体反射、穿过物体(物体是透明或半透明的)或者被吸收。 高光反射和漫反射 高光反射(Specular Reflection)会在表面光滑且反光的物体上看到,比如镜…

SMART PLC时间间隔定时器应用(高速脉冲测频/测速)

高速脉冲计数测量频率,专栏有系列文章分析讲解,这里不再赘述(原理都是利用差分代替微分)。具体链接如下: 西门子SMART PLC高速脉冲计数采集编码器速度(RC滤波)_RXXW_Dor的博客-CSDN博客这篇文章主要讲解西门子 SMART PLC高速计数采集编码器脉冲信号计算速度,根据编码器脉…

鸢尾花数据集分类(PyTorch实现)

一、数据集介绍 Data Set Information: This is perhaps the best known database to be found in the pattern recognition literature. Fisher’s paper is a classic in the field and is referenced frequently to this day. (See Duda & Hart, for example.) The data…

[Android Studio]Android 数据存储-文件存储学习笔记-结合保存QQ账户与密码存储到指定文件中的演练

🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…

戴尔游匣G16电脑U盘安装系统操作教程分享

戴尔游匣G16电脑U盘安装系统操作教程分享。有用户在使用戴尔游匣G16电脑的时候遇到了系统问题,比如电脑蓝屏、自动关机重启、驱动不兼容等问题。遇到这些问题如果无法进行彻底解决,我们可以通过U盘重新安装系统的方法来解决,因为这些问题一般…

I.MX6ULL内核开发7:led字符设备驱动实验

目录 一、led字符设备驱动实验 二、驱动模块初始化 三、虚拟地址读写 四、自定义led的file_operation接口 五、拷贝数据 六、register_chrdev函数 七、 __register_chrdev函数 八、编译执行 一、led字符设备驱动实验 驱动模块内核模块(.ko)驱动接口(file_operations) …

Mysql 增删改查(一) —— 查询(条件查询where、分页limits、排序order by)

查询 select 可以认为是四个基本操作中使用最为频繁的操作,然而数据量比较大的时候,我们不可能查询所有内容,我们一般会搭配其他语句进行查询: 假如要查询某一个字段的内容,可以使用 where假如要查询前几条记录&#…

STM32----搭建Arduino开发环境

搭建Arduino开发环境前言一、Arduino软件1.软件下载2.软件安装3.软件操作二、Cortex官方内核三、烧录下载四、其他第三方内核1.Libmaple内核2.Steve改进的LibMaple 内核3.STMicroelectronics(ST)公司编写的内核总结前言 本章介绍搭建STM32搭建Arduino开发环境,包括…

leetcode470 用Rand7()实现Rand10()

力扣470 第一步:根据Rand7()函数制作一个可以随机等概率生成0和1的函数rand_0and1 调用Rand7()函数,随机等概率生成1,2,3,4,5,6,7 这时我们设置:生成1,2&a…

“深度学习”学习日记。卷积神经网络--用CNN的实现MINIST识别任务

2023.2.11 通过已经实现的卷积层和池化层,搭建CNN去实现MNIST数据集的识别任务; 一,简单CNN的网络构成: 代码需要在有网络的情况下运行,因为会下载MINIST数据集,运行后会生成params.pkl保留训练权重&…

【吉先生的Java全栈之路】

吉士先生Java全栈学习路线🧡第一阶段Java基础: 在第一阶段:我们要认真听讲,因为基础很重要!基础很重要!基础很重要!!! 重要的事情说三遍。在这里我们先学JavaSE路线;学完之后我们要去学第一个可视化组件编程《GUI》;然后写个《贪吃蛇》游戏耍…