LIN、CAN、FlexRay、MOST,三分钟搞明白四大汽车总线

2016-09-21 13:09

汽车中的电子部件越来越多,光是ECU就有几十个,这么多的电子单元都要进行信息交互。传统的点对点通信已经不能满足需求,因此必须要采用先进的总线技术。

车用总线就是车载网络中底层的车用设备或车用仪表互联的通信网络。目前,有四种主流的车用总线:CAN总线、LIN总线、FlexRay总线和MOST总线。

用一张表格来说明各种总线的区别

LIN总线

LIN(Local Interconnect Network)是面向汽车低端分布式应用的低成本(0.5美元),低速串行通信总线。它的目标是为现有汽车网络提供辅助功能,在不需要CAN总线的带宽和多功能的场合使用,降低成本。

LIN联盟成立于1999年,并发布了LIN01.0版本。最初的成员有奥迪、宝马、克莱斯勒、摩托罗拉、博世、大众和沃尔沃等。

LIN相对于CAN的成本节省主要是由于采用单线传输、硅片中硬件或软件的低实现成本和无需在从属节点中使用石英或陶瓷谐振器。这些优点是以较低的带宽和受局限的单宿主总线访问方法为代价的。

LIN包含一个宿主节点和一个或多个从属节点。所有节点都包含一个被分解为发送和接收任务的从属通讯任务,而宿主节点还包含一个附加的宿主发送任务。在实时LIN中,通讯总是由宿主任务发起的。

图 LIN总线结构

除了宿主节点的命名之外,LIN网络中的节点不使用有关系统设置的任何信息。我们可以在不要求其它从属节点改变硬件和软件的情况下向LIN 中增加节点。

宿主节点发送一个包含同步中断、同步字节和消息识别码的消息报头。从属任务在收到和过滤识别码后被激活并开始消息响应的传输。响应包含两个、四个或八个数据字节和一个检查和(checksum)字节。报头和响应部分组成一个消息帧。

LIN总线上的所有通讯都由主机节点中的主机任务发起,主机任务根据进度表来确定当前的通讯内容,发送相应的帧头,并为报文帧分配帧通道。总线上的从机节点接收帧头之后,通过解读标识符来确定自己是否应该对当前通讯做出响应、做出何种响应。基于这种报文滤波方式,LIN可实现多种数据传输模式,且一个报文帧可以同时被多个节点接收利用。

LIN总线物理层采用单线连接,两个电控单元间的最大传输距离为40m。其总线驱动器和接收器的规范遵从改进的ISO 9141 单线标准。基于SCI/UART( 通用异步收发接口的单总线串行通信)协议;目前几乎所有的微控制器芯片上都有SCI/UART接口。低传输速率、小于20kb/s、采用NRZ编码。

LIN总线在汽车中的应用如下图所示。

CAN总线

CAN(Controller Area Network)即控制器局域网,可以归属于工业现场总线的范畴,通常称为CAN bus,即CAN总线,是目前国际上应用最广泛的开放式现场总线之一。

CAN 最初出现在汽车工业中,80年代由德国Bosch公司最先提出。最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。

CAN总线是一种串行数据通信协议,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。

CAN总线的工作原理可由下面两图来说明。

总结下,当一个节点要向其它节点发送数据时,该节点的CPU 将要发送的数据和自己的标识符传送给本节点的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN 芯片将数据根据协议组织成一定的报文格式发出,这时,网上的其它节点处于接收状态。每个处于接收状态的节点对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

CAN总线的结构是这样的。

CAN总线的优点很多:

·通信速率最高可达1MB/s(此时距离最长40m)。

· 节点数实际可达110个。

· 采用短帧结构,每一帧的有效字节数为8个。

· 每帧信息都有CRC校验及其他检错措施,数据出错率极低。

· 通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。

· 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。

FlexRay总线

FlexRay总线是由宝马、飞利浦、飞思卡尔和博世等公司共同制定的一种新型通信标准,专为车内联网而设计,采用基于时间触发机制,具有高带宽、容错性能好等特点,在实时性、可靠性和灵活性方面具有一定的优势。

FlexRay总线数据收发采取时间触发和事件触发的方式。利用时间触发通信时,网络中的各个节点都预先知道彼此将要进行通信的时间,接收器提前知道报文到达的时间,报文在总线上的时间可以预测出来。即便行车环境恶劣多变,干扰了系统传输,FlexRay协议也可以确保将信息延迟和抖动降至最低,尽可能保持传输的同步与可预测。这对需要持续及高速性能的应用(如线控刹车、线控转向等)来说,是非常重要的。

它采用了周期通信的方式,一个通信周期可以划分为静态部分、动态部分、特征窗和网络空闲时间4个部分。静态部分和动态部分用来传输总线数据,即FlexRay报文。特征窗用来发送唤醒特征符和媒介访问检测特征符。网络空闲时间用来实现分布式的时钟同步和节点参数的初始化。

FlexRay具有高速、可靠及安全的特点. FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s。FlexRay还能够提供很多网络所不具有的可靠性特点。尤其是FlexRay具备的冗余通信能力可实现通过硬件完全复制网络配置,并进行进度监测。FlexRay同时提供灵活的配置,可支持各种拓扑,如总线、星型和混合拓扑。FlexRay本身不能确保系统安全,但它具备大量功能,可以支持以安全为导向的系统(如线控系统)的设计。

宝马公司在07款X5系列车型的电子控制减震器系统中首次应用了FlexRay技术。此款车采用基于飞思卡尔的微控制器和恩智浦的收发器,可以监视有关车辆速度、纵向和横向加速度、方向盘角度、车身和轮胎加速度及行驶高度的数据,实现了更好的乘坐舒适性以及驾驶时的安全性和高速响应性,此外还将施加给轮胎的负荷变动以及底盘的振动均减至最小。

MOST总线

MOST 是一种专门针对车内使用而开发的、服 务于多媒体应用的数据总线技术。 MOST 表示“多媒体传输系统”。

MOST 总 线利用光脉冲传输数据。MOST 总线采用环形 结构。在环形总线内只能朝着一个方向传输数 据。

MOST的传输技术近似于公众交换式电话网络(Public Switched Telephone Network;PSTN),有着数据信道(Data Channel)与控制信道(Control Channel)的设计定义,控制信道即用来设定如何使用与收发数据信道。 一旦设定完成,资料就会持续地从发送处流向接收处,过程中不用再有进一步的封包处理程序,将运作机制如此设计,最适合用于实时性音讯、视讯串流传输。

MOST在制订上完全合乎ISO/OSI的7层数据通讯协议参考模型,而在网线连接上MOST采用环状拓朴,不过在更具严苛要求的传控应用上,MOST也允许改采星状(亦称放射状)或双环状的连接组态,此外每套MOST传控网络允许最多达64个的装置(节点)连接。

图 MOST总线的组成

图 MOST总线的控制单元

MOST也支持随插即用(Plug and Play;PnP)机制。

MOST总线基于环形拓扑,从而允许共享多个发送和接收器的数据。MOST总线主控器(通常位于汽车音响主机处)有助于数据采集,所以该网络可支持多个主拓扑结构,在一个网络上最多高达64个主设备。

MOST的总数据传输率为24.8Mbps,这已是将音视讯的串流资料与封包传控资料一并列计,在24.8 Mbps的频宽中还可区隔成60个传输信道、15个MPEG-1的视讯编码信道,这些可由传控设计者再行组态、规划与调配。

由于这些优点,MOST是汽车电子中应用最多的最佳多媒体传控网络。

总结

CAN总线是中坚,LIN是CAN的副手,FlexRay是未来的希望,MOST则负责文化事业。这四种总线将在未来继续大放异彩。

LIN、CAN、FlexRay、MOST,三分钟搞明白四大汽车总线的更多相关文章

  1. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  2. 3分钟搞明白信用评分卡模型&模型验证

    信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二分类变量的广 ...

  3. 三分钟搞定Python中的装饰器

    python的装饰器是python的特色高级功能之一,言简意赅得说,其作用是在不改变其原有函数和类的定义的基础上,给他们增添新的功能. 装饰器存在的意义是什么呢?我们知道,在python中函数可以调用 ...

  4. SSM框架三分钟搞定分页查询

    使用的国产第三方jar   pagehelper 里面的基本属性值 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 ...

  5. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  6. unity3d 三分钟实现简单的赛车漂移

    提到赛车游戏,大家最关心的应该就是漂移吧?! 从学unity开始,我就一直在断断续续的研究赛车 因为自己技术太烂.悟性太差等原因,我走了不少弯路 也许你会说,网上那么多资料,你不会查啊 是啊!网上一搜 ...

  7. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  8. 一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路

    原文http://www.cnblogs.com/smallSevens/p/7501932.html#3782600 三分钟读懂TT猫分布式.微服务和集群之路   针对新手入门的普及,有过大型网站技 ...

  9. zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》

    本篇文章阅读时间5分钟左右 点击看<每日五分钟搞定大数据>完整思维导图   zookeeper作为一个分布式协调系统,很多组件都会依赖它,那么此时它的可用性就非常重要了,那么保证可用性的同 ...

随机推荐

  1. Python os、sys、pickle、json等模块

    1.os 所有和操作系统相关的内容都在os模块,一般用来操作文件系统 import os os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.removed ...

  2. javascript返回上一页的三种写法

    window.history.go(-1); //返回上一页 window.history.back(); //返回上一页不会造成死循环 //如果要强行刷新的话就是:window.history.ba ...

  3. postman获取全局

    1.获取token接口时,在test里面输入如下语句 postman.clearGlobalVariable("token"); var jsonData = JSON.parse ...

  4. ArcGIS三种方式打断相交线------Feature To Line工具

    有多个layer图层相交线时,选用”Feature To Line“工具,将多个图层相交线打断,然后合并成一个图层. (1)       选择工具栏”Geoprocessing“中的”ArcToolb ...

  5. AIDL安卓接口定义语言

    Android    Interface Definition  Language简称AIDL翻译为 :安卓       接口      定义        语言 AIDL:进程间通信.Android ...

  6. mvp在flutter中的应用

    mvp模式的优点mvp模式将视图.业务逻辑.数据模型隔离,使用mvp模式,能使复杂的业务逻辑变得更加清晰,使代码更具有灵活性和扩展性,正是这些优点,使mvp模式广泛应用于原生开发中. flutter使 ...

  7. Maven的下载与安装(Windows版本)

    前言: 安装Maven 3,需要安装jdk1.7及以上版本 具体步骤如下: 1.进入官网:http://maven.apache.org/download.cgi,如下图红框部分 其中: apache ...

  8. Android学习 -- Activity 以及Activity之间值传递

    项目结构如图 关键代码如下 strings.xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> &l ...

  9. MAC安装了mumu安卓模拟器,但无法检测到该模拟器

    1.adb   devices  看不到模拟器 2.adb connect 127.0.0.1:5555 3.adb kill-server 没有报错,即成功 4. adb start-server ...

  10. ORACLE-SQL微妙之处

    本文总结一下平时经常使用的SQL语句以及一些ORACLE函数的微妙之处.欢迎大家多多补充平时最常用的SQL语句,供大家学习参考. SQL> select * from temp2; NAME S ...