天天看點

與UDS相關的一些時間參數

P2Server和P2*Server_max :

在ECU的軟體中,需要設定P2Server這個timer,而這個timer應該被賦P2Server_max或P2Server_max這兩值。定性地來說,P2Server_max指的是ECU在收到請求和給出響應之間的這個時間間隔,它描述了ECU的反應速度。定量地來說,它指的是T_Data.ind(ECU收到請求)和T_Data.req(ECU給出響應)這兩個函數被調用之間的時間。P2Server_max與P2Server_max的含義類似,差別在于,P2Server_max這個時間參數是在ECU給出NRC 0X78之後生效的,ECU傳回NRC 0X78,說明ECU目前處理能量不足,是以需要更長的反應時間,即P2Server_max。是以P2Server_max通常比P2Server_max大很多。在講0x10這個診斷指令的時候,我提過這個診斷指令的響應格式是類似50 01 xx xx yy yy這種, xx xx就表示P2Server_max,yy yy 就表示P2Server_max。診斷儀收到這兩個參數之後,就對ECU的響應速度有了認知,可以據此來判斷ECU的響應是否及時。

∆P2:

∆P2定義了最惡劣情況下的資訊傳輸延時,比如由網關、總線負載等是以引入的延時等。∆P2和P2Server_max或P2*Server_max加在一起就是診斷儀期望的最晚接收到響應的時間。∆P2 = ∆P2request + ∆P2response,即請求和響應在總線上的傳輸延時之和。

P2Client:

診斷儀在成功送出請求之後,會期望在一定的時間内收到響應,這個時間就是P2Client,這個時間的開始點是T_Data.con,結束點是T_Data.ind。根據前面的描述,容易知道,P2Client = P2Server_max + ∆P2max

P2*Client:

P2Client與P2Client類似,當診斷儀在沒有逾時的情況下收到NRC 0X78後,就會啟動這個時間參數,有一點需要注意的是,P2Client = P2*Server_max + ∆P2response,因為在收到NRC 0X78之後,診斷儀不再發請求,而隻是等待ECU的下一次響應,是以不是加上 ∆P2max,而是加上 ∆P2response。

P3Client_Phys和P3Client_Func:

這兩個參數定義診斷儀在發送完一條UDS指令之後,下次再發送指令的最小時間間隔,分别适用于實體尋址和功能尋址的情況。在ISO24229中,它倆的值與P2Client相同。

S3Server:

在講UDS服務的時候,說過ECU需要收到診斷服務才能維持在某個非default session中,或者收到診斷儀持續發送的3E服務,testerpresent。S3Server定義的是ECU多長時間收不到任何診斷服務會回退到default session中。

S3Client:

S3Client與S3Server相對應,它定義的是診斷儀發送3E服務(testerpresent)的循環周期。

UDS

繼續閱讀