天天看点

车载以太网3 浅谈时分多址TDMA和车载总线LIN

车载以太网3 时分多址TDMA和车载总线LIN

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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。

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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挖个坑留到后面再说。

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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

车载以太网3 浅谈时分多址TDMA和车载总线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左右,这个因为每个应用场景都不一样,现实中的帧有长有短,我只想表述下大约数量级,具体数字没有特别意义。

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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

车载以太网3 浅谈时分多址TDMA和车载总线LIN

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

车载以太网3 浅谈时分多址TDMA和车载总线LIN