第一篇浅谈车载以太网聊了从传统以太网到车载以太网的演化和异同,从鲍勃梅特卡夫70年代的草图可以看出最早的传统以太网其实并不像现行的家用商用以太网一样。我们常见的以太网的结构一般是基于路由器的星型或复杂一点的树状拓扑结构,车载的以太网拓扑结构也是一样不过不是基于路由器,而是以单个或者多个交换机为核心的主动星型或树型结构,细分到每个链接都是点对点,扯出那根网线来都是一根线两个头。而从梅特卡夫的草图可以看出,早期的传统以太网其实是总线结构的,用的是CSMA/CD的通信技术,一根藤上七朵花,当然也有可能一个Hub…七朵花。

CSMA/CD 是Carrier Sense Multiple Access / Collision Detection的缩写。

在一个连接多个节点(Multiple Access)的总线(Carrier)上,有发送需求的节点会先检测(Sense)总线是否空闲,如果空闲则开始发送信息,如果总线被其他节点占用(Collision Detection),则等待一个随机时间再尝试。CSMA/CD上不像第二篇所聊的CAN总线有信息优先级,不管你的信息是什么,都有可能一直得不到发送机会,这样到达一定时间后,信息包就会被丢弃。所以说CSMA/CD相对CAN总线模式来讲是一种“不可靠”的传输技术(CAN总线仲裁模式下高优先级的信息总能得到总线的访问权)。但是实话实说,我只是在吊书袋讲课的时候会聊到CSMA/CD模式的以太网总线,现实应用场景下,我还没有接触过这样的应用。让人拭目以待的车载以太网10BaseT1s虽说是以太网总线结构,但是传输技术并不是CDMA/CD,而是时分多址的TDMA,要聊TDMA,先得聊聊汽车上现有的两种耳熟能详的TDMA总线LIN和Flexray。

TDMA的MA和CSMA的MA是一样的,都是Multiple Access的意思,看到这个MA,就知道是多个通信节点共享同一传输介质,TD是Time Division的意思,就是把时间分割成很小的单位slot。TDMA最早是应用在无线电话上的,就是5G技术的二哥2G技术,把一个无线频道按时间切蛋糕分给不同的话机,大家分时周期发送,和多线程系统分享CPU一样,这样就可以达到大家互相不干扰。把无线频段换成线缆,换汤不换药,同样适用。可以把时分多址比作电视节目,每个礼拜的电视节目单都是固定的,以一个礼拜为周期(cycle),每个时间段(slot)上的电视节目是固定的,雷打不动的按计划进行。只不过在通信上,这个周期要短的多,以微秒毫秒为单位,slot也被称为时隙,每个节点按时间都会分到一次白驹过隙的时间,这时节点就可以按计划收发需要的数据,这样就保证了数据传输的确定性。从时分多址的意义上看,LIN总线,Flexray总线和以太网10BaseT1s都是同门师兄弟,只是各自套路不同。第二篇的时候聊了80后CAN总线,下面先说说90后LIN总线,00后Flexray,还有20后10BaseT1s挖个坑留到后面再说。

LIN(Local Interconnect Network)总线起源于1998年德国巴登符腾堡州温泉小镇巴登巴登一次汽车巨头们的会议上,BBA宝马奔驰奥迪,加上VV沃尔沃和大众,还有工具供应商VCT(Volcano Communications Technologies)和半导体供应商摩托诺拉组成了一个Workgroup。这个时间点上,CAN总线和汽车电子都开始蓬勃发展,但是在一些汽车总线终末端的应用场景下,即便是CAN总线的带宽,也超过了需求,而且也不需要CAN总线这样的多功能性。资本驱动下,各大整车厂寻求一种满足上述简单通信场景的低成本,低复杂度的“更小、更简单、更便宜”的总线。虽然CAN总线的成本,其实已经挺低了。大部分情况下,我们这个行业只求sufficient,不求最快,追求的是够用和性价比,蝇头小利量上去了也是一大笔,所以用哪个总线技术有时也像王语嫣和慕容复说的打狗棒法一样,速度越慢整体效果越好。这样的天空下,LIN总线应运而生。

一言以蔽之,LIN总线节点少,速度慢,软硬件要求低,单线制,成本低。在各种总线速度价格图中牢居左下角。虽然少低慢,但是够用又便宜,这个成本低到尘埃里的优点也使得结硬寨打呆仗的LIN总线目前最不可能被以太网取代。

如果把CAN总线想成车载总线的胳膊,那么LIN总线就可以说成是手和手指,手有五指,LIN总线可以最多有15个“指头节点”。这么说是因为LIN总线的节点容量是16,为主从式总线,只能有一台主节点,通常这个主节点ECU就是CAN总线LIN总线的网关,所以最多还可以外接15个从节点。通过这种结构,就可以实现对车灯,雨刷,喇叭,门,窗,锁等功能的传感器执行器进行信号采集和目标控制。

CAN总线的传输速率从62.5K到500K,LIN总线速度更慢从2.4K到19.2K,虽然速度慢,但是LIN总线的数据帧短,数据Payload只有三种选择,2Bytes,4Bytes和8Bytes。500Kbps的CAN总线,传输8bytes Payload的帧率因为Stuffing bits(5位相同数据传输后需要插入一个反向数据来加入信号edge,保持同步)的存在大约是3400帧/s。9.6Kbps的LIN总线假设一直传输8Bytes的负载,帧率大约是100帧/s左右,这个因为每个应用场景都不一样,现实中的帧有长有短,我只想表述下大约数量级,具体数字没有特别意义。

真实情况下,LIN总线的主节点会以Round Robin方式轮流广播命令ID,各个节点按照命令ID采取相应的收发任务。有的ID可以达成主节点广播,从属节点收取信息;有的ID可以达成从某个节点采集信息(某从发主收);有的可以完成某两个从节点之间一收一发。值得注意的是和CAN总线一样每个时刻总线上都只有一个发声者,不管是主是从,所以是一种半双工。说到CAN,LIN,Flexray以及以太网10BaseT1s,都是半双工,不能有两个或两个以上的节点同时发送。而车载以太网100BaseT1和1000BaseT1都是在一根UTP双绞线上实现了全双工,两段节点可以同时发送接收,这样看其实100BaseT1的双绞线的带宽可以看做是200Mbps,而非常言道的100Mbps,如果再流氓一点算上交换机switch,那么同时在车载交换机架构的100BaseT1以太网上的数据更是成倍的增加到几百上千兆,1000BaseT1的以太网数据吞吐量更是可以到达几十Gbps,这也使得目前的车载以太网的测试检测带来了极大的数据量,前几年搭建的以太网测试平台就开始用16T的硬盘了。

比较下来LIN总线的数据就是零头了,不过麻雀虽小五脏俱全,LIN总线的标准不仅规定了收发协议,也同样规范了硬件标准和工具链。LIN总线对硬件的要求非常简单,普通的UART/SCI借口就可以配合简单的软件实现功能。LIN总线的帧结构也非常的简单,50到100个比特就通过Header和Response两部分实现了,同步、标识、收发和校验都可实现,Header就是主节点发号的施令,Response就是上一段说的大家按需收发数据。主节点负责了所有节点的Timing,具体技术细节大家可以去看看知乎上博主心机之花的帖子(https://zhuanlan.zhihu.com/p/38833752),说的很清楚,我就不赘述了。

前面讲到LIN总线的模式是TDMA,也说了主节点以Round Robin的模式“轮询”从节点,在主节点的调配下,所有节点按照固定的周期完成自己的任务,在每个周期总有固定的时间点或者时隙作相应的收发数据,这样就很确定的保证了节点的收发任务,雷打不动,这也是TDMA的内核。LIN总线一切从简,传输甚至不需要双绞线,而是仅需要单根导线,也就是所说的单线制总线,说到这点想起10多年前在一次嵌入式竞赛上,临组的老铁被评委问到LIN总线的节点真的是仅仅靠一根导线完成传输的吗,实在的老铁没有听明白评委的意思,狂点头是呀是呀,伤了评委的心。其实LIN总线是建立在车体共地的基础上的,木有这个共通的车身Ground,电子是无法完成环流,也就无法实现通信的。也就是说LIN总线是靠着脚踏实地这一点实现的单线制12V传输的,老铁被评委挖的坑坑了。

LIN总线并不强大,甚至在技术上可以说乏善可陈,但是它确是汽车通信系统里极为重要的一环或者说是基础,没有它政令下不到基层,它以极小的成本填补了最下部的空白,这也使得大家前瞻未来的时候,认为LIN反而是最不可能被来势汹汹的车载以太网取代的。篇幅有限,Flexray就下篇再聊吧,觉得有点意思的话,欢迎点赞交流,回见:)

本文首发于零束开发者论坛。

https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7729https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7729浅谈车载以太网2-CAN总线和车载以太网_kabadehua的博客-CSDN博客上一篇简单介绍了车载和传统以太网的区别,还有车载以太网物理层的特点。今天书接上回接着往下简单聊聊传统车载通信总线,也顺带补充一点车载以太网的特点,以及为啥要将以太网引入汽车。要说车载通信总线系统,先得说说总线,我们每天聊总线系统,Bus system,那么到底什么是Bus。说起这点想起好多年前一次在武汉的某个学术会议,我做了一个关于统一接口多总线系统的英文报告,讲完到了问题环节,有点冷场,主持会议的朋友(估计不是本行业的)问了我个问题#What is the difference between .https://blog.csdn.net/kabadehua/article/details/121805980?spm=1001.2014.3001.5501

车载以太网3 时分多址TDMA和车载总线LIN相关推荐

  1. 针对车载系统相关的功能分析(车载OS、芯片、导航、DC、总线系统等)

    关于车载显示系统相关的功能分析 前言 1 基本介绍 2 关于车载操作系统 2.1 华为鸿蒙车载OS 2.2 阿里AliOS 2.3 Microsoft WinCE 2.4 BlackBerry QNX ...

  2. 基于AUTOSAR的车载以太网通信技术与实现

    随着处理器运算能力和硬件的高速发展,汽车整车功能越来越多.越来越强.鉴于 ADAS 技术.高品质车载娱乐以及 OTA 远程升级等新增功能的需求,使得 ECU 的网络带宽需求也呈现爆发式增长.这一需求超 ...

  3. 新一代EEA的主干网:车载以太网

    图 来源于Rohde & Schwarz Automotive Ethernet The Future for In-Vehicle Networks 新汽车电子电气架构的变革需求 首先汽车新 ...

  4. 车载以太网 - 初识DoIP - 01

    1.DoIP是什么? 从表达形式上 它就是UDS诊断套上车载以太网的马甲,然后实现UDS诊断的所有内容.通过下图DoIP的报文帧格式,从下面往上看,最尾部的数据我们能够很清晰的看到,User Data ...

  5. 车载以太网第二弹 | 测试之实锤-物理层PMA测试实践

    经过往期白话系列的闲侃,各位对以太网测试应有所了解,也应该了解了咱们北汇信息,这是第一期的目标~ 聊聊车载以太网测试:关于测试 聊聊车载以太网测试:以太网测什么 聊聊车载以太网测试:以太网如何测 聊聊 ...

  6. 车载以太网会是传统总线的末路吗?

    今天我们不聊高深的技术问题,怿星带大家看看车载以太网是怎么走到今天的. 2013年宝马X5的正式量产标志着以太网正式进入到车载领域,粗略计算已有7年的时间,它究竟有什么魔力让我们一个又一个的汽车人前赴 ...

  7. 浅谈车载以太网2-CAN总线和车载以太网

    上一篇简单介绍了车载和传统以太网的区别,还有车载以太网物理层的特点.今天书接上回接着往下简单聊聊传统车载通信总线,也顺带补充一点车载以太网的特点,以及为啥要将以太网引入汽车. 要说车载通信总线系统,先 ...

  8. 以太网迎新增长 专家眼中的车载以太网及AVB技术

    讨论车载以太网之前我们先来看看以太网的发展过程及现状,1963年"The Intergalactic Computer Network"的概念被认为是现代Internet的起源;1 ...

  9. 【自动驾驶】2.车载以太网 - SOME/IP简介

    车载以太网 - SOME/IP简介 SOME/IP (Scalable service-Oriented MiddlewarE over IP) 是车载以太网通信引入的一个概念,位于OSI 7层模型的 ...

最新文章

  1. 未来属于人工智能工程师,但成功转型不容易
  2. OpenCV调整彩色图像的饱和度和亮度
  3. (POST请求中的三种数据请求格式.application/x-www-form-urlencoded和multipart/form-data和application/json)
  4. centos7安装Metricbeat7.6.0采集nginx指标
  5. python图片分析中央气象台降水量预报_php采集自中央气象台范围覆盖全国的天气预报代码实例...
  6. vc6.0垃圾文件清理工具_MacClean360 for Mac(mac系统清理软件)
  7. spark学习:java版JavaRDD与JavaPairRDD的互相转换
  8. 七月时忙碌而充实的_如何减少忙碌而更有效
  9. MySQL创建用户报错 -- ERROR 1396 (HY000): Operation CREATE USER failed for ‘user_name‘@‘localhost‘
  10. Grafana文档(在Centos / Redhat上安装)
  11. C++工作笔记-对|,这些位运算的进一步认识
  12. 目标检测的二十年发展史—从传统方法到深度学
  13. ros下的python代码的编写与回调函数
  14. 根据银行卡号判断银行卡是否正确与归属银行
  15. 邻域均值 (python)
  16. 护肤品买了这么多还是不见好转,钱都去哪里了?
  17. iphone怎么迁移数据_如何将数据从旧iPhone迁移到新iPhone
  18. 今目标自动签退1.1版本
  19. 在java中如何产生随机数
  20. 杂谈:使用SteamCMD搭建七日杀(7 days to die, 7DTD)Linux版本专用服务器

热门文章

  1. Android图片加载框架Glide
  2. 黑科技解读:带你秒懂5G技术!
  3. 苏州大学电子信息学院C语言,电子信息学院
  4. literate program: Count Luck
  5. 【线程池】自行准备linux环境,带你手写线程池,只需仅仅150行代码
  6. R语言:利用rhdf5包分别创建单组学,多组学.h5文件
  7. c# 窗体控件上绘制跟随鼠标的十字线
  8. Java电子辞典笔记代码_Java 示例代码笔记(遗忘点)
  9. Quora推广引流(外贸B2B月均60+优质询盘)
  10. C4DR25版本下载C4DR25版本下载安装教程