FlexRay總線網(wǎng)絡(luò)管理策略
車載網(wǎng)絡(luò)管理的重要作用是協(xié)調(diào)網(wǎng)絡(luò)中的節(jié)點(diǎn)同步進(jìn)入睡眠狀態(tài)。此外,車載網(wǎng)絡(luò)管理還應(yīng)具備網(wǎng)絡(luò)監(jiān)測(cè)和診斷、網(wǎng)絡(luò)配置管理的作用。
FlexRay總線協(xié)議是FlexRay聯(lián)盟(FlexRay Consortium)制定的適用于汽車高速網(wǎng)絡(luò)的新一代車載總線,具備高傳輸速率、硬實(shí)時(shí)、安全性和靈活性的特點(diǎn)。FlexRay聯(lián)盟目前只規(guī)定了物理層協(xié)議和數(shù)據(jù)鏈路層協(xié)議,沒(méi)有制定網(wǎng)絡(luò)管理方面的標(biāo)準(zhǔn)。
FlexRay總線協(xié)議特性分析
(1)通信機(jī)制確定性
FlexRay總線采用周期通信的方式,一個(gè)通信周期(Communication Cycle)可以劃分為靜態(tài)部分、動(dòng)態(tài)部分、特征窗(SW, Symbol Window)和網(wǎng)絡(luò)空閑時(shí)間(NIT, Network Idle Time)4個(gè)部分(圖1)。靜態(tài)部分和動(dòng)態(tài)部分用來(lái)傳輸總線數(shù)據(jù),即FlexRay報(bào)文。特征窗用來(lái)發(fā)送喚醒特征符(WUS, Wake Up Symbol)和媒介訪問(wèn)檢測(cè)特征符(MTS, Media Access Test Symbol)。網(wǎng)絡(luò)空閑時(shí)間用來(lái)實(shí)現(xiàn)分布式的時(shí)鐘同步和節(jié)點(diǎn)參數(shù)的初始化。FlexRay總線所有節(jié)點(diǎn)的通信周期必須保持同步。
圖1:FlexRay通信周期示例。
FlexRay節(jié)點(diǎn)如果通過(guò)發(fā)送網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(NMPDU,Network Management Protocol Data Unit)進(jìn)行網(wǎng)絡(luò)管理,NMPDU可以在靜態(tài)部分或動(dòng)態(tài)部分周期性傳輸。而NMPDU發(fā)送的允許或禁止由節(jié)點(diǎn)網(wǎng)絡(luò)管理狀態(tài)決定,因此所有FlexRay節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換必須在通信周期的間隔處執(zhí)行。然而,F(xiàn)lexRay總線的通信周期為全局時(shí)間,在總線運(yùn)行過(guò)程中會(huì)根據(jù)部分節(jié)點(diǎn)的時(shí)間進(jìn)行實(shí)時(shí)調(diào)整,所以網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換不能以內(nèi)部定時(shí)器的方式實(shí)現(xiàn),必須使用計(jì)數(shù)器的方式配合總線通信周期實(shí)現(xiàn),才能滿足所有節(jié)點(diǎn)同步轉(zhuǎn)換的要求。
(2)通信調(diào)度靈活性
FlexRay總線在一個(gè)通信周期采用了兩種接入時(shí)序:靜態(tài)部分采用時(shí)分多址(TDMA, Time Division Multiple Access)的接入時(shí)序,動(dòng)態(tài)部分采用柔性時(shí)分多址(FTDMA, Flexible TDMA)的接入時(shí)序。(圖1)靜態(tài)部分將通信時(shí)間劃分為多個(gè)等時(shí)長(zhǎng)的靜態(tài)時(shí)隙(Static Slot),不同幀ID的靜態(tài)幀在相應(yīng)ID的時(shí)隙內(nèi)發(fā)送,實(shí)現(xiàn)了報(bào)文發(fā)送的確定性。動(dòng)態(tài)部分將通信時(shí)間劃分為多個(gè)等時(shí)長(zhǎng)的微時(shí)隙(Mini Slot),不同幀ID的動(dòng)態(tài)幀在相應(yīng)ID的動(dòng)態(tài)時(shí)隙(Dynamic Slot)內(nèi)發(fā)送。一個(gè)動(dòng)態(tài)時(shí)隙可以占用一個(gè)或多個(gè)微時(shí)隙,動(dòng)態(tài)幀的發(fā)送時(shí)間并不確定,根據(jù)動(dòng)態(tài)部分的負(fù)載情況可能延后發(fā)送,甚至延后到下一周期。在雙信道傳輸時(shí),兩個(gè)信道的動(dòng)態(tài)幀的傳輸時(shí)間也可能不同。動(dòng)態(tài)幀的使用有效地提高了總線的實(shí)際帶寬,適用于發(fā)送對(duì)實(shí)時(shí)性要求不高的事件型報(bào)文,例如診斷報(bào)文、標(biāo)定報(bào)文。
FlexRay總線的NMPDU需要根據(jù)靜態(tài)幀和動(dòng)態(tài)幀的特點(diǎn),選擇合適的發(fā)送方式。靜態(tài)幀能夠?qū)崿F(xiàn)嚴(yán)格的周期性發(fā)送,但是靜態(tài)幀的資源受限——出于安全性的考慮,同一ID的靜態(tài)時(shí)隙只能分配給一個(gè)節(jié)點(diǎn)。所以,使用靜態(tài)幀發(fā)送NMPDU需要考慮網(wǎng)絡(luò)的資源情況。而同一ID的動(dòng)態(tài)時(shí)隙可以分配給多個(gè)節(jié)點(diǎn),以提高總線的利用率,但是動(dòng)態(tài)幀要考慮總線實(shí)際負(fù)載情況造成的發(fā)送延時(shí)。
(3)應(yīng)用層硬件支持
FlexRay總線協(xié)議的數(shù)據(jù)幀包含起始段(Header Segment)、凈荷段(Payload Segment)和結(jié)束段(Trailer Segment)(圖2)。起始段中的凈荷段指示位(Payload Preamble Indicator)指出在凈荷段開頭是否包含可選變量。如果是靜態(tài)幀,此位置1時(shí)表示凈荷段首先發(fā)送網(wǎng)絡(luò)管理向量(NM Vector),長(zhǎng)度為0-12字節(jié)(所有節(jié)點(diǎn)NM Vector長(zhǎng)度相同);如果是動(dòng)態(tài)幀,此位置1時(shí)表示凈荷段首先發(fā)送消息標(biāo)識(shí)符(Message ID),長(zhǎng)度為2字節(jié)。
圖2:FlexRay數(shù)據(jù)幀結(jié)構(gòu)。
FlexRay協(xié)議規(guī)定了凈荷段可選變量由數(shù)據(jù)鏈路層實(shí)現(xiàn)自動(dòng)寫入和讀取的服務(wù),由FlexRay通信控制器芯片實(shí)現(xiàn)該功能,以簡(jiǎn)化軟件并提高讀取速率。如果使用靜態(tài)幀的NM Vector發(fā)送NMPDU,接收節(jié)點(diǎn)可以通過(guò)讀取NM Vector寄存器,快速識(shí)別多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)請(qǐng)求,從而有效提高信息的更新速率。
FlexRay總線網(wǎng)絡(luò)管理需求
車載網(wǎng)絡(luò)管理的重要作用是協(xié)調(diào)網(wǎng)絡(luò)中的節(jié)點(diǎn)同步進(jìn)入睡眠狀態(tài),適合FlexRay總線的網(wǎng)絡(luò)管理除了要求實(shí)現(xiàn)網(wǎng)絡(luò)管理的功能外,還需要:
(1)采用分布式網(wǎng)絡(luò)管理方式。
FlexRay總線協(xié)議適用于分布式控制網(wǎng)絡(luò),在通信調(diào)度表的實(shí)現(xiàn)和時(shí)鐘同步方面均采用了分布式的控制方式,即網(wǎng)絡(luò)中不存在Master或Slave節(jié)點(diǎn)。因此FlexRay總線也須采用分布式的網(wǎng)絡(luò)管理機(jī)制,即每個(gè)總線節(jié)點(diǎn)獨(dú)立的執(zhí)行其網(wǎng)絡(luò)管理行為,狀態(tài)轉(zhuǎn)換基于自身的網(wǎng)絡(luò)請(qǐng)求條件和接收的NMPDU。
(2)通過(guò)周期性報(bào)文發(fā)送NMPDU。
由于FlexRay總線采用確定性通信方式,網(wǎng)絡(luò)節(jié)點(diǎn)的所有報(bào)文需要按照通信調(diào)度發(fā)送和接收。任何通信調(diào)度表設(shè)計(jì)之外的報(bào)文均有可能占用分配給其它節(jié)點(diǎn)的總線時(shí)間,從而破壞總線通信。所以,F(xiàn)lexRay總線不支持事件觸發(fā)的非確定性報(bào)文,NMPDU必須通過(guò)周期性報(bào)文在確定的時(shí)間發(fā)送。根據(jù)實(shí)際網(wǎng)絡(luò)要求,網(wǎng)絡(luò)管理周期可以設(shè)為FlexRay通信周期的整數(shù)倍,每個(gè)節(jié)點(diǎn)在一個(gè)網(wǎng)絡(luò)管理周期內(nèi)發(fā)送其NMPDU一次。
(3)節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換和NM-Task必須與FlexRay通信周期配合執(zhí)行。
由于FlexRay總線采用周期通信的方式,F(xiàn)lexRay節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換必須在FlexRay通信周期的間隔處執(zhí)行,NM-Task的執(zhí)行需要在上一周期所有其它節(jié)點(diǎn)的NMPDU接收完成和下一周期發(fā)送本節(jié)點(diǎn)NMPDU之前完成。然而,F(xiàn)lexRay總線的全局時(shí)間每?jī)蓚€(gè)通信周期調(diào)整一次,所以上述二者不能采用定時(shí)器方式執(zhí)行,必須與FlexRay通信周期配合執(zhí)行,以實(shí)現(xiàn)網(wǎng)絡(luò)范圍的同步執(zhí)行。
(4)根據(jù)兩種接入時(shí)序的特點(diǎn),靈活使用靜態(tài)幀與動(dòng)態(tài)幀。
FlexRay靜態(tài)幀嚴(yán)格按照?qǐng)?bào)文周期發(fā)送,但是靜態(tài)幀會(huì)占用一個(gè)靜態(tài)時(shí)隙。如果所有NMPDU均占用一個(gè)靜態(tài)時(shí)隙并且其發(fā)送周期遠(yuǎn)大于通信周期,則造成了帶寬的浪費(fèi)。而一個(gè)動(dòng)態(tài)幀ID可以分配給多個(gè)節(jié)點(diǎn),不同節(jié)點(diǎn)的NMPDU可以通過(guò)設(shè)定相同的幀ID,不同的循環(huán)計(jì)數(shù)值(Cycle Counter)在多個(gè)通信周期的相同動(dòng)態(tài)時(shí)隙發(fā)送,有效的提高了帶寬利用率。實(shí)際上,幀ID最小的動(dòng)態(tài)幀同樣可以滿足嚴(yán)格周期性發(fā)送。所以,靜態(tài)幀和動(dòng)態(tài)幀均可以用來(lái)發(fā)送NMPDU,需考慮網(wǎng)絡(luò)和節(jié)點(diǎn)通信的實(shí)際情況靈活使用。
(5)合理利用靜態(tài)幀的NM Vector。
在FlexRay靜態(tài)幀中使用NM Vector可以顯著的提高網(wǎng)絡(luò)管理信息的更新速率,但是NM Vector的長(zhǎng)度為0-12字節(jié),且要求所有節(jié)點(diǎn)長(zhǎng)度相同。如果NM Vector長(zhǎng)度較短,如1-2字節(jié),則可以同應(yīng)用報(bào)文合并一起發(fā)送,以避免帶寬的浪費(fèi)。所以,可在NM Vector中只發(fā)送關(guān)于節(jié)點(diǎn)地址、網(wǎng)絡(luò)請(qǐng)求狀態(tài)的信息,使用動(dòng)態(tài)幀發(fā)送NMPDU中可選的用戶數(shù)據(jù)(User Data)。
OSEK網(wǎng)絡(luò)管理協(xié)議
OSEK網(wǎng)絡(luò)管理可以監(jiān)控網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的狀態(tài),向上層軟件提供當(dāng)前網(wǎng)絡(luò)的配置,并使網(wǎng)絡(luò)中的節(jié)點(diǎn)能夠協(xié)商進(jìn)入睡眠狀態(tài)。OSEK網(wǎng)絡(luò)管理采用分布式網(wǎng)絡(luò)管理方式,定義了兩種網(wǎng)絡(luò)管理機(jī)制:直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理。
1.直接網(wǎng)絡(luò)管理
直接網(wǎng)絡(luò)管理使用特定的網(wǎng)絡(luò)管理報(bào)文,利用令牌環(huán)機(jī)制監(jiān)控網(wǎng)絡(luò)。網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都有一個(gè)后繼節(jié)點(diǎn),邏輯環(huán)的第一個(gè)節(jié)點(diǎn)是該邏輯環(huán)最后一個(gè)節(jié)點(diǎn)的后繼節(jié)點(diǎn),從而所有節(jié)點(diǎn)組成一個(gè)邏輯環(huán)。直接網(wǎng)絡(luò)管理要求網(wǎng)絡(luò)中所有的節(jié)點(diǎn)參與網(wǎng)絡(luò)管理并分配唯一的靜態(tài)節(jié)點(diǎn)地址。節(jié)點(diǎn)通過(guò)發(fā)送NMPDU進(jìn)行網(wǎng)絡(luò)管理,OSCK NMPDU舉例如圖3所示。
圖3:OSEK NMPDU舉例。
節(jié)點(diǎn)通過(guò)發(fā)送Alive報(bào)文建立令牌環(huán),功能正常的節(jié)點(diǎn)發(fā)送周期性(周期TTYP)的Ring報(bào)文指示該節(jié)點(diǎn)的功能正常,功能不正常的節(jié)點(diǎn)發(fā)送周期性(周期TError)的Limphome報(bào)文指示該節(jié)點(diǎn)的跛行狀態(tài)。請(qǐng)求網(wǎng)絡(luò)睡眠的節(jié)點(diǎn)將NMPDU中的Sleep.Ind置1并發(fā)送請(qǐng)求,邏輯環(huán)中最后一個(gè)節(jié)點(diǎn)同意睡眠后發(fā)送Sleep.Ack置1的NMPDU。所有節(jié)點(diǎn)接收到Sleep.Ack置1的NMPDU后,等待相同時(shí)間(TWaitBussleep)后轉(zhuǎn)至睡眠狀態(tài)。
相應(yīng)的,OSEK直接網(wǎng)絡(luò)管理的網(wǎng)絡(luò)狀態(tài)分為NMAwake狀態(tài)和NMBusSleep狀態(tài)。在NMAwake狀態(tài)下按照網(wǎng)絡(luò)配置區(qū)分為NMNormal子狀態(tài)和NMLimphome子狀態(tài)。網(wǎng)絡(luò)狀態(tài)間的轉(zhuǎn)換基于內(nèi)部定時(shí)器及不同類型NMPDU文的接收。
2.間接網(wǎng)絡(luò)管理
間接網(wǎng)絡(luò)管理不需要NMPDU,而是通過(guò)監(jiān)控節(jié)點(diǎn)的周期性應(yīng)用報(bào)文,實(shí)現(xiàn)網(wǎng)絡(luò)的監(jiān)控。節(jié)點(diǎn)發(fā)送的周期性應(yīng)用報(bào)文被成功接收即被認(rèn)為在線,在預(yù)定時(shí)間內(nèi)沒(méi)有被成功接收即被認(rèn)為離線。間接網(wǎng)絡(luò)管理不需要網(wǎng)絡(luò)中的所有節(jié)點(diǎn)分配網(wǎng)絡(luò)管理報(bào)文ID,較直接網(wǎng)絡(luò)管理簡(jiǎn)單靈活,網(wǎng)絡(luò)開銷小。但是對(duì)于應(yīng)用上只需要接收網(wǎng)絡(luò)報(bào)文或只發(fā)送事件觸發(fā)報(bào)文的節(jié)點(diǎn)需要增加專門的周期性報(bào)文。
OSEK網(wǎng)絡(luò)管理雖然沒(méi)有指定總線類型,但是其特性決定了其只適合于事件觸發(fā)的總線協(xié)議,如CAN總線,而不能用于FlexRay總線協(xié)議,因?yàn)椋汗?jié)點(diǎn)網(wǎng)絡(luò)管理狀態(tài)的轉(zhuǎn)換和NM-Task的執(zhí)行基于定時(shí)器的超時(shí),無(wú)法與FlexRay通信周期同步;直接網(wǎng)絡(luò)管理采用令牌環(huán)機(jī)制,與FlexRay報(bào)文的確定性發(fā)送方式不符。
此外OSEK網(wǎng)絡(luò)管理沒(méi)有考慮FlexRay總線的不同接入時(shí)序、硬件支持和雙通道通信等特點(diǎn)。
AUTOSAR網(wǎng)絡(luò)管理協(xié)議
AUTOSAR組織提出了標(biāo)準(zhǔn)化的軟件平臺(tái)及不同總線協(xié)議的網(wǎng)絡(luò)管理規(guī)范。AUTOSAR網(wǎng)絡(luò)管理使用分布式的直接網(wǎng)絡(luò)管理機(jī)制,網(wǎng)絡(luò)狀態(tài)轉(zhuǎn)換基于節(jié)點(diǎn)請(qǐng)求網(wǎng)絡(luò)的狀態(tài)及周期性NMPDU的接收。節(jié)點(diǎn)接收到一個(gè)廣播發(fā)送的NMPDU表明發(fā)送節(jié)點(diǎn)意圖保持網(wǎng)絡(luò)的喚醒狀態(tài)。如果某節(jié)點(diǎn)準(zhǔn)備進(jìn)入總線睡眠狀態(tài),則停止發(fā)送NMPDU,但只要接收到其它節(jié)點(diǎn)發(fā)送的NMPDU,就推遲總線睡眠模式的轉(zhuǎn)換。最終,如果節(jié)點(diǎn)因?yàn)榻邮詹坏絅MPDU而使預(yù)設(shè)的時(shí)間(FlexRay通信周期計(jì)數(shù)器)溢出,節(jié)點(diǎn)便進(jìn)入總線睡眠狀態(tài)。如果網(wǎng)絡(luò)中的任意節(jié)點(diǎn)需要總線通信,它可以通過(guò)發(fā)送NMPDU將網(wǎng)絡(luò)從總線睡眠狀態(tài)喚醒。
AUTOSAR網(wǎng)絡(luò)管理功能通過(guò)網(wǎng)絡(luò)管理模塊和網(wǎng)絡(luò)管理接口模塊實(shí)現(xiàn)。網(wǎng)絡(luò)管理模塊實(shí)現(xiàn)上述的網(wǎng)絡(luò)管理機(jī)制,根據(jù)不同網(wǎng)絡(luò)類型(CAN、FlexRay)的特點(diǎn)規(guī)定了不同的網(wǎng)絡(luò)狀態(tài)定義、通信調(diào)度和附加功能等。網(wǎng)絡(luò)管理接口模塊實(shí)現(xiàn)了網(wǎng)絡(luò)管理模塊和上層應(yīng)用軟件的隔離及網(wǎng)絡(luò)管理的協(xié)調(diào)功能。協(xié)調(diào)功能在網(wǎng)關(guān)中應(yīng)用,除規(guī)定不同類型網(wǎng)絡(luò)的網(wǎng)絡(luò)管理協(xié)調(diào)外,還規(guī)定了AUTOSAR網(wǎng)絡(luò)管理同OSEK網(wǎng)絡(luò)管理間的協(xié)調(diào)。
AUTOSAR FlexRay網(wǎng)絡(luò)管理充分考慮了FlexRay總線周期性通信的特點(diǎn),創(chuàng)造性地對(duì)NMPDU進(jìn)行了分離,充分發(fā)揮了靜態(tài)幀和動(dòng)態(tài)幀的優(yōu)勢(shì)。同時(shí)在網(wǎng)絡(luò)管理狀態(tài)方面進(jìn)行了簡(jiǎn)化,取消了Limphome狀態(tài),使網(wǎng)絡(luò)狀態(tài)向睡眠的轉(zhuǎn)換更加迅速,也降低了開發(fā)難度。更重要地是,AUTOSAR網(wǎng)絡(luò)管理在架構(gòu)上考慮了網(wǎng)關(guān)節(jié)點(diǎn)的實(shí)現(xiàn)及與OSEK網(wǎng)絡(luò)管理的協(xié)作,迎合了FlexRay總線作為數(shù)據(jù)主干網(wǎng)的發(fā)展趨勢(shì)。
對(duì)比和結(jié)論
根據(jù)上文的論述,可以得出OSEK直接/間接網(wǎng)絡(luò)管理與AUTOSAR FlexRay NM的對(duì)比(圖4)。
圖4:網(wǎng)絡(luò)管理協(xié)議比較。
OSEK網(wǎng)絡(luò)管理中狀態(tài)轉(zhuǎn)換的執(zhí)行基于定時(shí)器,此特點(diǎn)決定了其適用于事件觸發(fā)的總線協(xié)議,而FlexRay總線是確定性通信總線。OSEK網(wǎng)絡(luò)管理無(wú)法滿足網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換和NM-Task與FlexRay通信周期配合執(zhí)行的需求,進(jìn)而無(wú)法實(shí)現(xiàn)分布式控制網(wǎng)絡(luò)的狀態(tài)同步轉(zhuǎn)換,不能用于FlexRay總線。
AUTOSAR FlexRay網(wǎng)絡(luò)管理充分考慮了FlexRay總線的特點(diǎn)及應(yīng)用領(lǐng)域,滿足FlexRay總線高速、確定性通信的需求并體現(xiàn)了FlexRay總線硬件支持、靈活性的優(yōu)勢(shì),是目前唯一適用于FlexRay總線的網(wǎng)絡(luò)管理協(xié)議。
評(píng)論