《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 其他 > 教學(xué):汽車嵌入式開發(fā)中的ECU網(wǎng)關(guān)節(jié)點(diǎn)開發(fā)

教學(xué):汽車嵌入式開發(fā)中的ECU網(wǎng)關(guān)節(jié)點(diǎn)開發(fā)

2022-08-31
來源:開心果 Need Car
關(guān)鍵詞: CAN總線 PDU 上位機(jī) VCU

  汽車嵌入式開發(fā)中,開發(fā)ECU網(wǎng)關(guān)節(jié)點(diǎn)(GW:Gateway)時(shí),,難度會(huì)提升不少,,這些難度中就包含對時(shí)間參數(shù)的解讀問題。本文著重給大家聊一下P2Client,、▲P2 = ▲P2Request + ▲P2Response,、N_As時(shí)間參數(shù)。

  1 背景介紹

  假設(shè):Tester發(fā)送功能尋址指令Request01給GW::VCU,,因?yàn)閂CU的GW屬性,,VCU需要將Request01轉(zhuǎn)發(fā),即由Flexray總線路由到Can總線,,進(jìn)而將Request01發(fā)送給Ecu::Xx,,Request01路由示意如如下所示:

pYYBAGMNyGaAMxFIAACcxLYsxPA268.png

  注意:診斷路由,需要通過Xx_Tp層,。

  VCU既然是GW,,相對于ECU::Xx,就是一個(gè)Tester,。

  如果對各層的PDU類型不清楚,,可以參考前文Autosar通信棧:I-PDU、N-PDU,、L-PDU,,要掰扯清楚。

  2 P2Client,、▲P2,、N_As時(shí)間參數(shù)分析

  1、P2Client

  P2Client的時(shí)間定義如下所示:

poYBAGMNyMeAB3ppAABWKn_qzfg457.png

  怎么理解呢,?上位機(jī)(Tester)發(fā)送一個(gè)診斷指令以后,,會(huì)等待Server(可以理解為某個(gè)ECU的節(jié)點(diǎn))響應(yīng)該診斷請求,如果在指定的時(shí)間內(nèi)(P2Client_max/P2Client*_max)沒有響應(yīng),,Tester認(rèn)為超時(shí),,并停止刷寫流程,即:刷寫失敗,。

  P2Client的時(shí)間范圍是多少呢,?如下所示:

pYYBAGMNyNeARRPSAACId3FxSKg978.png

  P2Client時(shí)間范圍的表達(dá)式:P2Client_max>P2Client>P2Server_max + ▲P2max ,。P2Client_max是一個(gè)性能參數(shù),由OEM設(shè)定,。

  這里假設(shè):P2Server_max = 50ms,,單向路由時(shí)間10ms,P2Client_max = 150ms,,則70ms < P2Client < 150ms,。為什么最小時(shí)間是70ms,不是60ms?稍后解釋,。

  2,、▲P2

  ▲P2的時(shí)間定義如下所示:

pYYBAGMNyOuAKoMHAACJz5FSVEA825.png

  怎么理解這個(gè)時(shí)間參數(shù)呢?診斷指令的發(fā)送依賴于ECU各個(gè)模塊的處理,,在診斷指令被ECU接收到發(fā)送到總線需要一定的時(shí)間,,同時(shí)由于總線仲裁等原因,也會(huì)導(dǎo)致診斷指令發(fā)送的延阻,,這些因素所造成的時(shí)間消耗就是▲P2,。

  我們討論路由時(shí)間,要分兩種情況分析:

  發(fā)送路由:

  對應(yīng)第一小節(jié)圖中的Fr->Can路由,,即▲P2request = t1 - t0

  響應(yīng)路由:

  對應(yīng)第一小節(jié)圖中的Can->Fr路由,,即▲P2response = t3 - t2

  所以,需要約束一般會(huì)規(guī)定

  單向路由時(shí)間

  GWTIme_max,,比如:GWTIme_max= 10ms,。所以:▲P2 = P2Server_max + ▲P2request + ▲P2response = P2Server_max + 2*GWTIme_max = 50 + 2*10 = 70ms。這里的GWTIme_max = ▲P2request = ▲P2response,。雖然▲P2request和▲P2response會(huì)有所不同,但實(shí)際工程項(xiàng)目中,,一般設(shè)置▲P2request = ▲P2response,,即:給一個(gè)單向路由的最大時(shí)間參數(shù)GWTime_max,GWTime_max需求如下所示:

pYYBAGMNyLaAfaKNAABAJRZUQEc525.png

  3,、N_As

  以Can總線為例,,N_As的時(shí)間定義如下所示:

poYBAGMNyQCAQl_iAABe_xWbcmE357.png

  意思就是:發(fā)送端(Tester)的Xx_Tp層,從發(fā)送到驅(qū)動(dòng)層應(yīng)答的最大時(shí)間,。該時(shí)間只是約束Xx_Tp層的計(jì)時(shí)行為,,和▲P2 時(shí)間無關(guān)。因此,,開發(fā)必須要先符合▲P2 時(shí)間,。

  3 多路診斷路由

  我們將問題進(jìn)一步拓展,如果GW節(jié)點(diǎn)將診斷指令路由到多個(gè)節(jié)點(diǎn),,如下圖中的ECU::Xx01和ECU::Xx02,。這里提一個(gè)問題:如果Can02不可用(比如:VCU Can02對應(yīng)的Transceiver損壞或者未有連接),,Can01上的刷寫是否應(yīng)該繼續(xù)?

pYYBAGMNyRGADtvcAACOngWiDGA397.png

  我們先看一下Autosar的答案,,如下所示:

pYYBAGMNySKADE4BAABlYJ_xk6A684.png

  答案很明確:如果TPs間的路由,,有一路Fail(調(diào)用發(fā)送接口返回值為E_NOT_OK),不應(yīng)影響其他TPs間的路由,。如果OEM約束了你的開發(fā):要符合Autosar規(guī)范,。那么PduR的路由功能應(yīng)滿足上述規(guī)范。



更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<< 

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。