天天看點

車載以太網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