如標題,E2E中的RC(Rolling Counter)和COM的UB(Update Bit)是一回事嗎?有人說,RC的更新和UB功能類似,都能表示信號的更新,那么,兩者就是一回事了嗎?到底應該如何理解RC和UB,兩者功能是否重疊,本文著重聊一聊這個話題。 要討論清楚RC和UB,我們就得先知道什么是RC,什么是UB。(一)UB是什么 RC(Rolling Counter),循環計數器。按照Autosar E2E規范解釋,應該稱為Counter。因為Autosar規范約定,Counter使用4個bit表示,所以,該值從0->15->0循環計數。發送端(Sender)每次對需要保護的數據(eg:信號組)進行E2E保護時,該計數器累加1,表征數據的更新。既然是保護數據,說明E2E和安全相關。工程中,使用E2E,多數是功能安全的要求,而且安全等級需要高于QM(Quality Management)。 所以,了解了兩者的定義和用途,可以對兩者的異/同進行總結,如下所示:

所以,個人理解:不能因為RC和UB均具有表示數據更新的功能,就將兩者混為一談,或者簡單的認為兩者可以替換。UB不屬于功能安全的范疇,而RC屬于功能安全范疇的一部分。 UB功能由COM模塊控制,COM模塊根據需求設置每個I-PDU的發送模式,發送模式包括:DIRECT、MIXED、NONE、PERIODIC。其中,如果一個I-PDU的配置模式是DIRECT(事件觸發類型),則該I-PDU中的信號或者信號組不能配置UB。因為事件觸發具有不確定性,即:Sender發送I-PDU具有不確定性,因此,Receiver不能有效的對接收的I-PDU進行E2E校驗。E2E報文由誰發送呢?按照Autosar的解釋,E2E報文由SW-C請求,最終通過RTE、COM向下發送。具體解釋可以參考(1):
 在Autosar的規范中,已經給出了E2E報文的發送和接收流程,如下所示(2):

上層SW-C根據各自的調度周期更新對應的數據(也就是信號,signal),生產(Produce)需要保護的數據;
SW-C調用配置生成的E2EWRP_Write_<p>_<o>()接口copy要發送的數據;
進一步調用E2E Lib中的E2E_P0x_Protect()接口進行數據的封裝; 通過RTE調用RTE_Write_<p>_<o>()接口將數據發送到RTE中,之后數據可以在同一MCU,不同的OS-Application之間傳輸,或者傳輸給其他MCU。 (1)AUTOSAR_SWS_E2ELibrary.pdf(2)AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
|