車載以太網(wǎng)(上)
我們之前已經(jīng)分享了LIN、CAN、CAN FD、FlexRay總線。在開始閱讀之前,如果你對已介紹的總線技術(shù)還不了解的話,可以先閱讀以下文章快速溫習一下,等補完車載以太網(wǎng)和MOST,汽車總線技術(shù)樓主基本分享結(jié)束了。說一說LIN總線CAN總線基礎(一)CAN總線基礎(下)CAN FD 介紹FlexRay?介紹
背景
車載以太網(wǎng)的出現(xiàn)背景樓主就不多做贅述了,其實主要是因汽車E/E架構(gòu)和功能的復雜度提升而帶來的對車輛數(shù)據(jù)傳輸帶寬提高和通訊方式改變(基于服務的通訊-SOA)的需求。就目前汽車總線的應用情況,成本低、可靠性高、應用普遍的有Lin、CAN通訊,CAN FD也是最近幾年才逐漸得到應用,而FlexRay、車載Ethernet等基于成本因素,目前主要在高端車型中使用。其中樓主之前介紹的FlexRay后續(xù)得到普遍應用的可能性樓主認為不是很大,首先成本方面與車載以太網(wǎng)差不多而通訊速率又遠低于它,而伴隨著未來智能化、網(wǎng)聯(lián)化的趨勢,車載Ethernet在未來得到推廣的可能性要比FlexRay高很多。需要注意的是CAN FD在市場推廣實施還沒有幾年,第三代CAN總線-CAN XL也即將登場,CAN XL傳輸速率將達到10Mbit/s,可填補CAN FD和百兆車載以太網(wǎng)(100BASE-T1)之間的鴻溝,從這點也可以看出車載通訊的快速發(fā)展及對通訊帶寬的越來越高的要求,同時也可從另一方面說明FlexRay的尷尬。當然所有總線的應用都是分所在的域和場景的,例如對于安全要求很高的場合,采用了基于時間觸發(fā)機制的FlexRay因?qū)崟r性和確定性更高則更合適。標準
在車載網(wǎng)絡方面,玩家是很多的,也推出了各自的標準,如下:其中OPEN Alliance和電氣與電子工程師協(xié)會(IEEE)制定的標準是車載以太網(wǎng)領域比重最大和應用最廣泛的,例如我們熟知的100BASE-T1和1000BASE-T1。自1980年以來,IEEE一直負責以太網(wǎng)的維護、開發(fā)和標準化。盡管各個公司都可提供專有的以太網(wǎng)解決方案,但大多數(shù)時候公司都會交給IEEE進行標準化以確保更廣泛的應用。802工作組則專門負責以太網(wǎng),因此,所有與以太網(wǎng)相關的標準都以802開頭(例如,IEEE 802.1,IEEE 802.2,IEEE 802.3等)。OPEN Alliance SIG是由汽車制造商和供應商組成的聯(lián)盟,目的是促進以太網(wǎng)在汽車工業(yè)中的進一步發(fā)展。OPEN Alliance SIG與IEEE合作,將汽車以太網(wǎng)轉(zhuǎn)換為通用標準。就目前的車載以太網(wǎng)標準方面,主流標準的是如下幾個,目前主要是第二個100BASE-T1:用單對雙絞線實現(xiàn)100Mbit/s的數(shù)據(jù)傳輸,走的靠前的OEM則使用更快的千兆以太網(wǎng)。
車載以太網(wǎng)的網(wǎng)絡分層和拓撲
OSI七層網(wǎng)絡模型(OSI=Open Systems Interconnection)是互聯(lián)網(wǎng)發(fā)展過程中一個很重要的模型。OSI是一個開放性的通信系統(tǒng)互連參考模型,其含義就是建議所有公司使用這個規(guī)范來控制網(wǎng)絡。只有統(tǒng)一通信規(guī)范時,才能實現(xiàn)真正的互聯(lián)化。OSI 七層模型及通信互聯(lián)的傳輸過程,如下圖所示:OSI 七層網(wǎng)絡模型是一個理想的網(wǎng)絡參考模型,TCP/IP模型是已經(jīng)被實際廣泛應用于因特網(wǎng)的網(wǎng)絡分層模型。TCP/IP 模型沒有對 OSI 的 5~7 層做嚴格區(qū)分,統(tǒng)稱為應用層。車載以太網(wǎng)是基于 TCP/IP 的網(wǎng)絡分層模型,并由 OPEN 和 AUTOSAR 等聯(lián)盟對以太網(wǎng)相關協(xié)議進行了規(guī)范和補充。以太網(wǎng)的網(wǎng)絡拓撲結(jié)構(gòu)有點對點形式、類似于CAN或LIN的總線形式、鏈式和星型等形式:也有由上面幾種形式的組合形式:當然現(xiàn)在多個節(jié)點的車載以太網(wǎng)的互聯(lián)互通需要交換機Switch,Switch的作用如下:
車載以太網(wǎng)的物理連接
從硬件的角度看,以太網(wǎng)接口電路主要由MAC(Media Access Control)控制器和物理層接口PHY(Physical Layer,PHY)兩大部分構(gòu)成,如下圖所示:MAC及PHY工作在OSI七層模型的數(shù)據(jù)鏈路層和物理層,如下PHY和MAC之間是如何傳送數(shù)據(jù)和相互溝通的呢?MAC與PHY之間通過兩個接口連接,分別為SMI接口和MII接口。MII(Media Independent Interface)即媒體獨立接口,MII接口是MAC與PHY連接的標準接口,以太網(wǎng)MAC通過該接口發(fā)出數(shù)據(jù)幀經(jīng)過PHY后傳輸?shù)狡渌W(wǎng)絡節(jié)點上,同時其他網(wǎng)絡節(jié)點的數(shù)據(jù)先經(jīng)過PHY后再由MAC接收。MII是IEEE-802.3定義的以太網(wǎng)行業(yè)標準,MII接口提供了MAC與PHY之間、PHY與STA(Station Management)之間的互聯(lián)技術(shù),該接口支持10Mb/s與100Mb/s的數(shù)據(jù)傳輸速率,數(shù)據(jù)傳輸?shù)奈粚挒?/span>4位。"媒體獨立"表明在不對MAC硬件重新設計或替換的情況下,任何類型的PHY設備都可以正常工作。802.3協(xié)議最多支持32個PHY,但有一定的限制:要符合協(xié)議要求的connector特性。SMI叫串行管理接口,以太網(wǎng)MAC通過該接口可以訪問PHY的寄存器,通過對這些寄存器操作可對PHY進行控制和管理。SMI接口包括MDIO(控制和管理PHY以獲取PHY的狀態(tài))和MDC(為MDIO提供時鐘)。MDC由MAC提供,MDIO是一根雙向的數(shù)據(jù)線。用來傳送MAC層的控制信息和物理層的狀態(tài)信息。MDIO數(shù)據(jù)與MDC時鐘同步,在MDC上升沿有效。由此可見,MAC?和PHY,一個是數(shù)據(jù)鏈路層,一個是物理層;兩者通過MII傳送數(shù)據(jù)。?因此Ethernet的接口實質(zhì)是MAC通過MII總線控制PHY的過程。MII接口后續(xù)又衍生了很多其他版本,如RMII、GMII、SGMII、RGMII等。這里簡要介紹其中的MII和RMII,如下圖所示。MII共使用了16根線。其中CRS與COL只在半雙工模式有效,而車載以太網(wǎng)固定工作在全雙工模式下,故應用在汽車環(huán)境需要14根線。RMII是精簡版的MII,數(shù)據(jù)發(fā)送接收均為兩根,相比MII減少了4根,另外它整合或減去了一些線,最終RMII只有8根線RMII的接口如下:在實際的設計中,以上三部分并不一定獨立分開的。由于,PHY整合了大量模擬硬件,而MAC是典型的全數(shù)字器件??紤]到芯片面積及模擬/數(shù)字混合架構(gòu)的原因,通常,將MAC集成進微控制器而將PHY留在片外。更靈活、密度更高的芯片技術(shù)已經(jīng)可以實現(xiàn)MAC和PHY的單芯片整合,可分為下列幾種類型:CPU集成MAC與PHY,目前來說并不多見:CPU集成MAC,PHY采用獨立芯片,這種在車載以太網(wǎng)上是主流方式,因嵌入式芯片廠商一般都將MAC集成在MCU內(nèi)部,而PHY芯片則由OEM或控制器供應商自己選擇:CPU不集成MAC與PHY,MAC與PHY采用集成芯片。這種在消費用以太網(wǎng)上比較比較常見,如電腦的網(wǎng)卡有這種方式的。在以太網(wǎng)連接線束上,車載以太網(wǎng)與消費用以太網(wǎng)也是不同的,首先消費用以太網(wǎng)的標準主要采用10BASE-2、10/100BASE-TX和1000BASE-T,其中1000BASE-T是使用RJ45接口,需要四對雙絞線共8根線進行數(shù)據(jù)傳輸,而10/100BASE-TX則是只使用四對雙絞線其中的兩對共4根線進行數(shù)據(jù)傳輸,如下是100BASE-TX的示意圖(使用了兩對雙絞線)。在很早之前的10BASE-2則是同軸電纜進行數(shù)據(jù)傳輸,因此消費類以太網(wǎng)采用線束總結(jié)如下:而車載以太網(wǎng)一般都基本采用帶T1的標準,如IEEE 100BASE-T1(以前稱為OABR)、IEEE 1000BASE-T1,這些都使用一對雙絞線共兩根線進行數(shù)據(jù)傳輸:其次在編碼方式上,1000BASE-T主要采用PAM5的編碼方式:而車載以太網(wǎng)100BASE-T1和1000BASE-T1主要采用PAM3的編碼方式。從上面可知,車載以太網(wǎng)主要采用基于一對雙絞線進行數(shù)據(jù)傳輸?shù)?00BASE-T1或1000BASE-T1標準,而我們電腦則使用RJ45接口采用基于4對雙絞線進行數(shù)據(jù)傳輸?shù)?000BASE-TX標準,因此當我們用電腦測量控制器以太網(wǎng)時,有時需要轉(zhuǎn)換器,如下:
車載以太網(wǎng)幀結(jié)構(gòu)
以太網(wǎng)幀的格式如下:以太幀有多種類型,不同類型的幀具有不同的格式和MTU值,但在同種物理媒體上都可同時存在。常見有兩種幀格式,第一種是上世紀80年代初提出的DIX v2格式,即Ethernet II幀格式。Ethernet II后來被IEEE802標準接納,并寫進了IEEE802.3x-1997的3.2.6節(jié)。第二種是1983年提出的IEEE802.3格式。這兩種格式的主要區(qū)別在于,Ethernet II格式中包含一個Type字段,標識以太幀處理完成之后將被發(fā)送到哪個上層協(xié)議進行處理。IEEE802.3格式中,同樣的位置是長度字段。不同的Type字段值可以用來區(qū)別這兩種幀的類型,當Type字段值小于等于1500(或者十六進制的0x05DC)時,幀使用的是IEEE802.3格式。當Type字段值大于等于1536(或者十六進制的0x0600)時,幀使用的是Ethernet II格式。以太網(wǎng)中大多數(shù)的數(shù)據(jù)幀使用的是Ethernet ?II格式。以太幀中還包括源和目的MAC地址,分別代表發(fā)送者的MAC和接收者的MAC,此外還有幀校驗序列字段,用于檢驗傳輸過程中幀的完整性。汽車行業(yè)通常使用Ethernet ?II格式,該格式還可包含VLAN信息作為擴展,因此,又分基本MAC幀(無VLAN)和標記MAC幀(包括VLAN)兩種。MAC addresses: Ethernet II幀通常以接收者目標地址開頭。 作用是指定要接收消息的網(wǎng)絡節(jié)點。 與隨后的發(fā)送者源地址相反,除單播地址外,還可以使用多播或廣播地址。對于以太網(wǎng)幀,只能有一個發(fā)送方,但可以有多個接收方。
Ether type: 基本和標記的MAC幀通過類型字段(以太類型)進行區(qū)分。 這通常標識有效載荷數(shù)據(jù)區(qū)域中包含的分組,并給出有關較高層中使用的協(xié)議(例如,IPv4)的信息。如果以太類型的值為0x8100,則將類型字段向后移四個字節(jié),并在其原始位置插入一個VLAN標簽。VLAN Tag:VLAN標簽由協(xié)議標識符(TPID)和控制信息(TCI)組成。 TPID包含原始類型字段的值,而TCI由優(yōu)先級(PCP),符合丟棄要求或規(guī)范的形式指示符(DEI或CFI)和標識符(VID)組成。標識符和優(yōu)先級主要用于汽車行業(yè)。標識符區(qū)分不同應用區(qū)域的相應虛擬網(wǎng)絡。優(yōu)先級允許通過交換機優(yōu)化運行時間,以便優(yōu)先轉(zhuǎn)發(fā)重要信息。
Payload:在類型字段之后,以太幀包含有效載荷數(shù)據(jù)區(qū)域。 有效負載的最小長度為不帶VLAN標記的46字節(jié)或帶VLAN標記的42字節(jié), 在汽車工業(yè)中,它最多可以包含1500個字節(jié)。CRC校驗:CRC校驗在以太幀的末尾發(fā)送。 校驗中包含的值是使用標準化算法計算的,該算法在發(fā)送方和接收方中以相同的方式實現(xiàn)。該計算是在以太幀的所有字段中進行的,因此可以確保整個消息的完整性。以太網(wǎng)Packet: 對于以太網(wǎng)II幀的傳輸,以太網(wǎng)控制器在開頭插入前同步碼和起始幀定界符(SFD),用于指示傳輸開始。前同步碼,開始幀定界符和以太幀的組合稱為以太網(wǎng)數(shù)據(jù)包。