国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【AUTOSAR】【Can通信】CanNM

這篇具有很好參考價值的文章主要介紹了【AUTOSAR】【Can通信】CanNM。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、概述

二、說明

三、功能說明

3.1 協(xié)調(diào)算法

3.2 操作模式

3.2.1 網(wǎng)絡(luò)模式

3.2.2 準(zhǔn)備總線睡眠模式

3.2.3 總線睡眠模式

3.3 網(wǎng)絡(luò)狀態(tài)

3.4 初始化

3.5 參數(shù)

3.6 網(wǎng)絡(luò)管理PDU結(jié)構(gòu)

3.7 通信調(diào)度

3.7.1 發(fā)送

3.7.2 接收

3.8 其他功能

3.8.1 遠(yuǎn)程睡眠指示器的檢測

3.8.2 用戶數(shù)據(jù)

3.8.3 被動模式

3.8.4 網(wǎng)絡(luò)管理PDU Rx指示

3.8.5 狀態(tài)更改通知

3.8.6 通信控制

3.8.7 協(xié)調(diào)器對同步功能的支持

3.9 UML狀態(tài)圖

四、API接口

4.1 API定義

4.2 通知函數(shù)

4.3 調(diào)度函數(shù)


一、概述

????????該文檔描述了AUTOSAR CAN網(wǎng)絡(luò)管理(CanNm)的概念、核心功能、可配置特性、接口和配置問題。

????????AUTOSAR CAN網(wǎng)絡(luò)管理是一種獨立于硬件的協(xié)議,只能在CAN上使用。其主要目的是協(xié)調(diào)網(wǎng)絡(luò)在正常運行和總線睡眠模式之間的過渡。除了核心功能之外,還提供了可配置的功能,例如實現(xiàn)檢測所有當(dāng)前節(jié)點或檢測所有其他節(jié)點是否都準(zhǔn)備好睡眠的服務(wù)。

????????CAN網(wǎng)絡(luò)管理(CanNm)功能提供了網(wǎng)絡(luò)管理接口(NmIf)和CAN接口(CanIf)模塊之間的自適應(yīng)。

【AUTOSAR】【Can通信】CanNM,網(wǎng)絡(luò),mcu,系統(tǒng)架構(gòu),單片機(jī),嵌入式硬件

二、說明

(1)CanNm的一個通道僅與一個網(wǎng)絡(luò)中的一個網(wǎng)絡(luò)管理集群關(guān)聯(lián)。一個網(wǎng)絡(luò)管理集群在一個節(jié)點中只能有一個CanNm的通道。

(2)CanNm的一個通道僅與同一ECU內(nèi)的一個網(wǎng)絡(luò)相關(guān)聯(lián)。

(3)CanNm僅適用于CAN系統(tǒng)。

三、功能說明

3.1 協(xié)調(diào)算法

????????AUTOSAR CanNm基于分散的直接網(wǎng)絡(luò)管理策略,這意味著每個網(wǎng)絡(luò)節(jié)點只根據(jù)在通信系統(tǒng)內(nèi)接收或傳輸?shù)木W(wǎng)絡(luò)管理pdu來執(zhí)行自給自足的活動。

????????CanNm算法基于周期網(wǎng)絡(luò)管理pdu,通過廣播傳輸由集群中的所有節(jié)點接收。網(wǎng)絡(luò)管理pdu的接收表示發(fā)送節(jié)點希望保持網(wǎng)絡(luò)管理集群的清醒狀態(tài)。如果任何節(jié)點準(zhǔn)備進(jìn)入總線睡眠模式,它將停止發(fā)送網(wǎng)絡(luò)管理pdu,但只要接收到來自其他節(jié)點的網(wǎng)絡(luò)管理pdu,它就會延遲過渡到總線睡眠模式。最后,如果由于不再接收到網(wǎng)絡(luò)管理pdu而經(jīng)過專用計時器,則每個節(jié)點都會啟動到總線-睡眠模式的轉(zhuǎn)換。

????????如果網(wǎng)絡(luò)管理集群中的任何節(jié)點需要總線通信,它可以通過傳輸網(wǎng)絡(luò)管理pdu,將網(wǎng)絡(luò)管理集群從總線-睡眠模式中喚醒。

【規(guī)范】CanNm集群中的每個網(wǎng)絡(luò)節(jié)點只要需要總線通信,就應(yīng)定期傳輸網(wǎng)絡(luò)管理PDU,否則應(yīng)不傳輸網(wǎng)絡(luò)管理PDU。

【規(guī)范】如果禁用了CanNm狀態(tài),并且在CanNm集群中的總線通信,并且總線上根據(jù)CanNmTimeoutTime + CanNmWaitBusSleepTime 轉(zhuǎn)換到總線睡眠模式。

【規(guī)范】CanNm狀態(tài)機(jī)應(yīng)包含從網(wǎng)絡(luò)管理集群中單個節(jié)點的角度來看的AUTOSAR CanNm算法所需的狀態(tài)、轉(zhuǎn)換和觸發(fā)器。

3.2 操作模式

【規(guī)范】CanNm包含在模塊界面上可見的三種操作模式:

  • Network Mode
  • Prepare Bus-Sleep Mode
  • Bus-Sleep Mode

【規(guī)范】運行模式的變化應(yīng)通過回調(diào)函數(shù)通知上層。

【規(guī)范】當(dāng)調(diào)用CanNm_GetState時,CanNm將返回當(dāng)前的NM狀態(tài)和模式。

3.2.1 網(wǎng)絡(luò)模式

【規(guī)范】網(wǎng)絡(luò)模式應(yīng)包括三種內(nèi)部狀態(tài):

  • Repeat Message State
  • Normal Operation State
  • Ready Sleep State

【規(guī)范】當(dāng)從總線睡眠狀態(tài)進(jìn)入網(wǎng)絡(luò)模式時,默認(rèn)情況下,CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

【規(guī)范】當(dāng)從準(zhǔn)備總線睡眠模式進(jìn)入網(wǎng)絡(luò)模式時,默認(rèn)情況下,CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

【規(guī)范】當(dāng)進(jìn)入網(wǎng)絡(luò)模式后,CanNm模塊應(yīng)啟動NM-Timeout計時器。

【規(guī)范】當(dāng)進(jìn)入網(wǎng)絡(luò)模式時,CanNm應(yīng)通過調(diào)用回調(diào)函數(shù)Nm_NetworkMode來通知上層新的當(dāng)前操作模式。

【規(guī)范】當(dāng)在網(wǎng)絡(luò)模式下成功接收到網(wǎng)絡(luò)管理PDU(調(diào)用CanNm_RxIndication)時,如果啟用了PDU傳輸能力,CanNm模塊應(yīng)重新啟動NM-Timeout定時器。

【規(guī)范】在網(wǎng)絡(luò)模式下成功傳輸網(wǎng)絡(luò)管理PDU(用E_OK調(diào)用CanNm_TxConfirmation)時,CanNm模塊應(yīng)重新啟動NM-Timeout定時器。

備注:如果啟用了CanNmImmediateTxConfEnabled,則假設(shè)每個網(wǎng)絡(luò)管理PDU傳輸請求都會導(dǎo)致網(wǎng)絡(luò)管理PDU傳輸成功。

【規(guī)范】CAN NM模塊應(yīng)在每次啟動或重新啟動時重置NM-Timeout定時器。

【規(guī)范】如果在網(wǎng)絡(luò)模式下調(diào)用CanNm_PassiveStartUp,CanNm模塊不執(zhí)行此服務(wù),并返回E_NOT_OK。

(1)Repeat Message State

對于未處于被動模式的節(jié)點,重復(fù)消息狀態(tài)確保,從總線睡眠或準(zhǔn)備總線睡眠到網(wǎng)絡(luò)模式的任何轉(zhuǎn)換對網(wǎng)絡(luò)上的其他節(jié)點都可見。此外,它還可以確保任何節(jié)點在最短的時間內(nèi)保持活動狀態(tài)。它可以用于現(xiàn)有節(jié)點的檢測。

【規(guī)范】當(dāng)進(jìn)入重復(fù)消息狀態(tài)時,CanNm模塊應(yīng)(重新)啟動網(wǎng)絡(luò)管理pdu的傳輸,除非啟用了被動模式和/或禁用了通信。

【規(guī)范】當(dāng)NM-Timeout 計時器在重復(fù)消息狀態(tài)下超時時,CanNm模塊應(yīng)(重新)啟動NM-Timeout 計時器。

【規(guī)范】當(dāng)NM-Timeout 時間計時器在重復(fù)消息狀態(tài)下到期時,CanNm模塊應(yīng)向DET報告CANNM_E_NETWORK_TIMEOUT。

【規(guī)范】網(wǎng)絡(luò)管理狀態(tài)機(jī)應(yīng)在由CanNmRepeatMessageTime(配置參數(shù))確定的可配置時間內(nèi)保持在重復(fù)消息狀態(tài),之后CanNm模塊應(yīng)離開重復(fù)消息狀態(tài)。

【規(guī)范】當(dāng)重復(fù)消息狀態(tài)離開,如果網(wǎng)絡(luò)已被請求時,CanNm模塊應(yīng)進(jìn)入正常運行狀態(tài)。

【規(guī)范】當(dāng)“重復(fù)消息狀態(tài)”時,如果網(wǎng)絡(luò)已釋放,CanNm模塊應(yīng)進(jìn)入就緒休眠狀態(tài)。

【規(guī)范】如果CanNmNodeDetectionEnabled被設(shè)置為TRUE,CanNm應(yīng)在離開重復(fù)消息狀態(tài)時清除重復(fù)消息位。

【規(guī)范】如果服務(wù)CanNm_RepeatMessageRequest在重復(fù)消息狀態(tài)、準(zhǔn)備總線睡眠模式或總線睡眠模式下被調(diào)用,CanNm模塊不得執(zhí)行服務(wù)并返回E_NOT_OK。

【規(guī)范】

(2)Normal Operation State

“正常運行狀態(tài)”確保,只要請求網(wǎng)絡(luò),任何節(jié)點都可以保持網(wǎng)絡(luò)管理集群的清醒狀態(tài)。

【規(guī)范】當(dāng)從準(zhǔn)備睡眠狀態(tài)進(jìn)入正常運行狀態(tài)時,CanNm模塊應(yīng)啟動網(wǎng)絡(luò)管理pdu的傳輸。

備注:如果啟用了被動模式或禁用了網(wǎng)絡(luò)管理PDU傳輸能力,則不傳輸NMPDU,因此不需要執(zhí)行任何操作。

【規(guī)范】當(dāng)NM-Timeout計時器在正常運行狀態(tài)下超時時,CanNm模塊應(yīng)(重新)啟動NM超時計時器。

【規(guī)范】當(dāng)NM-Timeout在正常運行狀態(tài)下到期時,CanNm模塊應(yīng)向DET報告CANNM_E_NETWORK_TIMEOUT。

【規(guī)范】當(dāng)網(wǎng)絡(luò)被釋放,當(dāng)前狀態(tài)為正常運行狀態(tài)時,CanNm模塊應(yīng)進(jìn)入準(zhǔn)備睡眠狀態(tài)。

【規(guī)范】如果CanNmNodeDetectionEnabled被設(shè)置為TRUE,并且在正常操作狀態(tài)下收到重復(fù)消息請求位,則CanNm模塊應(yīng)輸入重復(fù)消息狀態(tài)。

【規(guī)范】如果CanNm_RepeatMessageRequest檢測已啟用設(shè)置為TRUE,并且在正常操作狀態(tài)下調(diào)用函數(shù)CanNm_RepeatMessageRequest,則CanNm模塊應(yīng)輸入重復(fù)消息狀態(tài)。

【規(guī)范】如果CanNmNodeDetectionEnabled被設(shè)置為TRUE,并且在正常操作狀態(tài)下調(diào)用函數(shù)CanNm_RepeatMessageRequest,則CanNm模塊應(yīng)設(shè)置重復(fù)消息位。

(3)Ready Sleep State

就緒休眠狀態(tài)確保網(wǎng)絡(luò)管理集群中的任何節(jié)點等待過渡到準(zhǔn)備總線休眠模式,只要任何其他節(jié)點保持網(wǎng)絡(luò)管理集群休眠。

【規(guī)范】當(dāng)從重復(fù)消息狀態(tài)或正常運行狀態(tài)進(jìn)入就緒休眠狀態(tài)時,CanNm模塊應(yīng)停止網(wǎng)絡(luò)管理pdu的傳輸。

備注:如果啟用了被動模式,則不傳輸NMpdu,因此不需要執(zhí)行任何操作。

備注:如果在某些情況下禁用被動模式,NMpdu必須在就緒睡眠狀態(tài)下傳輸,以允許在網(wǎng)絡(luò)中同步關(guān)閉,例如重新傳輸PN關(guān)閉消息。

【規(guī)范】當(dāng)NM-Timeout計時器在準(zhǔn)備就緒休眠狀態(tài)下到期時,CanNm模塊應(yīng)進(jìn)入準(zhǔn)備總線休眠模式。

【規(guī)范】當(dāng)請求網(wǎng)絡(luò)且當(dāng)前狀態(tài)為準(zhǔn)備睡眠狀態(tài)時,CanNm模塊應(yīng)進(jìn)入正常運行狀態(tài)。

【規(guī)范】如果已CanNmNodeDetectionEnabled 設(shè)置為TRUE,并且在準(zhǔn)備睡眠狀態(tài)下收到重復(fù)消息請求位,則CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

【規(guī)范】如果CanNm_RepeatMessageRequest檢測已啟用被設(shè)置為TRUE,并且在準(zhǔn)備睡眠狀態(tài)下調(diào)用函數(shù)CanNm_RepeatMessageRequest,則CanNm模塊應(yīng)輸入重復(fù)消息狀態(tài)。

【規(guī)范】如果CanNmNodeDetectionEnabled設(shè)置為TRUE,函數(shù)CanNm_RepeatMessageRequest為就緒睡眠狀態(tài),則CanNm模塊應(yīng)設(shè)置重復(fù)消息位。

3.2.2 準(zhǔn)備總線睡眠模式

準(zhǔn)備總線睡眠模式的目的是確保所有節(jié)點在進(jìn)入總線睡眠模式之前都有時間停止其網(wǎng)絡(luò)活動。在準(zhǔn)備總線睡眠模式中,總線活動平靜下來(即傳輸排隊消息以使所有Tx緩沖區(qū)為空),最后在準(zhǔn)備總線睡眠模式中,總線上沒有活動。

【規(guī)范】當(dāng)進(jìn)入準(zhǔn)備總線-睡眠模式時,CanNm模塊應(yīng)通過調(diào)用Nm_PrepareBusSleepMode通知上層。

【規(guī)范】如果CanNmStayInPbsEnabled失能時,則應(yīng)保持在準(zhǔn)備總線睡眠模式CanNmWaitBusSleepTime(配置參數(shù))之后,并進(jìn)入總線睡眠模式。

【規(guī)范】在準(zhǔn)備總線睡眠模式下成功接收到網(wǎng)絡(luò)管理PDU時,CanNm模塊應(yīng)進(jìn)入網(wǎng)絡(luò)模式;默認(rèn)情況下,CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

【規(guī)范】當(dāng)在準(zhǔn)備總線睡眠模式下請求網(wǎng)絡(luò)時,CanNm模塊應(yīng)進(jìn)入網(wǎng)絡(luò)模式;默認(rèn)情況下,CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

【規(guī)范】當(dāng)網(wǎng)絡(luò)在準(zhǔn)備總線睡眠模式下被請求時,CanNm模塊已進(jìn)入網(wǎng)絡(luò)模式,如果CanNmImmediateRestartEnabled(配置參數(shù))設(shè)置為TRUE,CanNm模塊應(yīng)傳輸網(wǎng)絡(luò)管理PDU。

3.2.3 總線睡眠模式

總線睡眠模式的目的是在不交換消息時減少節(jié)點的功耗。通信控制器被切換到睡眠模式,各自的喚醒機(jī)制被激活,最終在總線-睡眠模式中將功耗降低到足夠的水平。

【規(guī)范】當(dāng)進(jìn)入總線睡眠模式時,除初始化時的默認(rèn)情況外,CanNm模塊應(yīng)通過調(diào)用回調(diào)函數(shù)Nm_BusSleepMode來通知上層。

【規(guī)范】當(dāng)CanNm模塊在總線睡眠模式下成功接收到一個網(wǎng)絡(luò)管理PDU(CanNm_RxIndication的調(diào)用)時,CanNm模塊應(yīng)通過調(diào)用回調(diào)函數(shù)Nm_NetworkStartIndication來通知上層。

【規(guī)范】當(dāng)CanNm模塊在總線睡眠模式下成功接收到網(wǎng)絡(luò)管理PDU(CanNm_RxIndication的調(diào)用)時,CanNm模塊應(yīng)向DET報告錯誤CANNM_E_NET_START_IND。

【規(guī)范】如果在總線睡眠模式或準(zhǔn)備總線睡眠模式中調(diào)用CanNm_PassiveStartUp,CanNm模塊應(yīng)進(jìn)入網(wǎng)絡(luò)模式;默認(rèn)CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

【規(guī)范】當(dāng)在總線睡眠模式下請求網(wǎng)絡(luò)時,CanNm模塊應(yīng)進(jìn)入網(wǎng)絡(luò)模式,默認(rèn)CanNm模塊應(yīng)進(jìn)入重復(fù)消息狀態(tài)。

3.3 網(wǎng)絡(luò)狀態(tài)

【規(guī)范】函數(shù)調(diào)用CanNm_NetworkRequest應(yīng)請求網(wǎng)絡(luò)。即CanNm模塊將將網(wǎng)絡(luò)狀態(tài)更改為“requested”。

【規(guī)范】函數(shù)調(diào)用CanNm_NetworkRelease將釋放網(wǎng)絡(luò)。即CanNm模塊將將網(wǎng)絡(luò)狀態(tài)更改為“released”。

3.4 初始化

【規(guī)范】如果CanNm模塊(CanNm_Init)的初始化成功,則CanNm模塊應(yīng)將網(wǎng)絡(luò)管理狀態(tài)設(shè)置為總線睡眠模式。

【規(guī)范】當(dāng)初始化時,默認(rèn)情況下,CanNm模塊應(yīng)將網(wǎng)絡(luò)狀態(tài)設(shè)置為“已釋放”

【規(guī)范】當(dāng)初始化時,默認(rèn)情況下,CanNm模塊應(yīng)進(jìn)入總線睡眠模式。

【規(guī)范】函數(shù)CanNm_Init應(yīng)通過傳遞一個配置指針參數(shù)來選擇活動配置集。

【規(guī)范】如果CanNmGlobalPnSupport 設(shè)置為TRUE,并且初始化了CanNm(調(diào)用CanNm_Init),則CanNm將停止NM消息Tx超時計時器。

【規(guī)范】在初始化期間,CanNm模塊應(yīng)停用總線負(fù)載降低。

【規(guī)范】初始化后,CanNm模塊應(yīng)通過停止消息周期計時器來停止網(wǎng)絡(luò)管理pdu的傳輸。

【規(guī)范】在初始化期間,CanNm模塊應(yīng)將用戶數(shù)據(jù)的每個字節(jié)設(shè)置為0xFF。

【規(guī)范】在初始化期間,CanNm模塊應(yīng)將控制位向量設(shè)置為0x00。

3.5 參數(shù)

【規(guī)范】AUTOSAR CanNm算法應(yīng)獨立于處理器,這意味著;它不得依賴于任何處理器特定的硬件支持,因此應(yīng)可以在自動存儲器范圍內(nèi)的任何處理器架構(gòu)上實現(xiàn)。

【規(guī)范】配置時間參數(shù)網(wǎng)絡(luò)超時時間NM-Timeout。

【規(guī)范】配置時間參數(shù)重復(fù)消息時間Repeat Message Time。

【規(guī)范】配置時間參數(shù)等待總線睡眠時間Wait Bus-Sleep Time。

【規(guī)范】配置時間參數(shù)遠(yuǎn)程睡眠指示時間Remote Sleep Indication Time。

3.6 網(wǎng)絡(luò)管理PDU結(jié)構(gòu)

網(wǎng)絡(luò)管理PDU的格式,例如8個字節(jié),其中源節(jié)點標(biāo)識符(SNI)位于第一個字節(jié),控制位向量(CBV)位于第二個字節(jié),使用用戶數(shù)據(jù),并啟用部分網(wǎng)絡(luò)。用戶數(shù)據(jù)范圍位于系統(tǒng)字節(jié)和PNC位向量之間:

【AUTOSAR】【Can通信】CanNM,網(wǎng)絡(luò),mcu,系統(tǒng)架構(gòu),單片機(jī),嵌入式硬件

【規(guī)范】源節(jié)點標(biāo)識符的位置應(yīng)通過CanNmPduN位置配置為字節(jié)0、字節(jié)1或關(guān)閉。

【規(guī)范】控制位矢量的位置應(yīng)可通過計算機(jī)定位到字節(jié)0、字節(jié)1或關(guān)閉進(jìn)行配置。

【規(guī)范】未分配給Nm系統(tǒng)字節(jié)或PNC位向量的剩余字節(jié)應(yīng)可用于用戶數(shù)據(jù)。

控制位向量的格式:

【AUTOSAR】【Can通信】CanNM,網(wǎng)絡(luò),mcu,系統(tǒng)架構(gòu),單片機(jī),嵌入式硬件

控制位向量應(yīng)包括:

  • 位0:重復(fù)消息請求位
    • 0:未請求重復(fù)消息狀態(tài)
    • 1:請求重復(fù)消息狀態(tài)
  • 位1:PN關(guān)閉請求位(PNSR)
    • 0:NM消息不包含同步的部分網(wǎng)絡(luò)關(guān)閉請求
    • 1:NM消息不包含至少一個PNC的同步的部分網(wǎng)絡(luò)關(guān)閉請求
  • 位3:NM協(xié)調(diào)器休眠位
    • 0:主協(xié)調(diào)器不請求開始同步關(guān)機(jī)
    • 1:主協(xié)調(diào)器請求開始同步關(guān)機(jī)
  • 位4:主動喚醒位
    • 0:節(jié)點未喚醒網(wǎng)絡(luò)(被動喚醒)
    • 1:節(jié)點已喚醒網(wǎng)絡(luò)(主動喚醒)
  • 位5:部分網(wǎng)絡(luò)學(xué)習(xí)位(PNL)
    • 0:不請求PNC學(xué)習(xí)
    • 1:請求PNC學(xué)習(xí)
  • 位6:部分網(wǎng)絡(luò)信息位(PNI)
    • 0: NM PDU不包含部分網(wǎng)絡(luò)請求信息
    • 1: NM PDU不包含部分網(wǎng)絡(luò)請求信息
  • 位2和位7被保留給未來的擴(kuò)展

【規(guī)范】CanNm模塊應(yīng)設(shè)置具有配置參數(shù)CanNmNodeId的源節(jié)點標(biāo)識符,除非CanNmPduNid位置設(shè)置為關(guān)閉。

【規(guī)范】如果CanNm由于調(diào)用CanNm_NetworkRequest(即由于激活喚醒)而將狀態(tài)從總線睡眠模式或準(zhǔn)備總線睡眠模式更改為網(wǎng)絡(luò)模式,且CanNmActiveWakeupBitEnabled為TRUE,CanNm應(yīng)在CBV中設(shè)置激活駐波位。

【規(guī)范】如果CanNm模塊離開網(wǎng)絡(luò)模式,且CanNmActiveWakeupBitEnabled為TRUE,則CanNm模塊應(yīng)清除CBV中的激活喚醒位。

3.7 通信調(diào)度

3.7.1 發(fā)送

【規(guī)范】網(wǎng)絡(luò)管理pdu傳輸能力應(yīng)通過網(wǎng)絡(luò)CanNmPassiveModeEnabled進(jìn)行配置。

【規(guī)范】CanNm模塊應(yīng)提供定期傳輸模式。在此傳輸模式下,CanNm模塊應(yīng)定期發(fā)送網(wǎng)絡(luò)管理pdu。

【規(guī)范】CanNm模塊應(yīng)可選擇提供具有總線負(fù)載降低功能的定期傳輸模式。在這種傳輸模式下,CanNm模塊應(yīng)根據(jù)特定的算法傳輸網(wǎng)絡(luò)管理pdu。

【規(guī)范】即時傳輸確認(rèn)機(jī)制應(yīng)可通過CanNmImmediateTxConfEnabled進(jìn)行配置。

【規(guī)范】如果未通過CanNm_NetworkRequest或CanNmImmediateNmTransmissions輸入的重復(fù)消息狀態(tài)為零,則在進(jìn)入重復(fù)消息狀態(tài)后,CanNmMsg CanNmImmediateNmTransmissions應(yīng)延遲NM PDU的傳輸。

【規(guī)范】當(dāng)由于CanNm_NetworkRequest()(主動喚醒)而從總線休眠模式或準(zhǔn)備總線休眠模式進(jìn)入重復(fù)消息狀態(tài)時,如果CanNmImmediateNmTransmissions大于零,則應(yīng)使用CanNm_NetworkRequest()立即發(fā)送CanNm_NetworkRequest()作為周期時間。應(yīng)盡快觸發(fā)第一個NM PDU的傳輸。傳輸后,消息周期計時器應(yīng)重新加載。在這種情況下不適用。

【規(guī)范】如果從就緒睡眠狀態(tài)進(jìn)入正常運行狀態(tài),則應(yīng)立即啟動NMPDU的傳輸。

【規(guī)范】如果CanNmPnHandleMultipleNetworkRequests設(shè)置為TRUE,CanNm_NetworkRequest將觸發(fā)從網(wǎng)絡(luò)模式到重復(fù)消息狀態(tài)的狀態(tài)轉(zhuǎn)換。如果PDU傳輸能力被啟用,NMPDU應(yīng)立即使用計算機(jī)網(wǎng)絡(luò)Nm周期時間作為周期時間進(jìn)行傳輸。應(yīng)盡快觸發(fā)第一個NM PDU的傳輸。傳輸后,消息周期計時器應(yīng)重新加載。在這種情況下不適用。

【規(guī)范】如果NMPDU傳輸即時傳輸時間,則應(yīng)確保成功請求此定時的CanNmImmediateNmTransmissions(包括首次即時傳輸)。如果對CanIf的傳輸請求失敗(返回E_NOT_OK),CanNm將在下一個主功能中重試該傳輸請求。然后,CanNm將繼續(xù)使用CanNmMsg循環(huán)時間傳輸NMpdu。

【規(guī)范】如果CanNm消息周期計時器過期,則CanNm模塊將使用CanNm消息周期時間重新啟動。

【規(guī)范】如果網(wǎng)絡(luò)管理pdu的傳輸已經(jīng)停止,CanNm模塊應(yīng)取消消息周期計時器。

3.7.2 接收

如果已成功接收到NM PDU,CanIf模塊將調(diào)用回調(diào)函數(shù)CanNm_RxIndication。

【規(guī)范】在回調(diào)函數(shù)CanNm_RxIndication的調(diào)用時,CanNm模塊應(yīng)將函數(shù)參數(shù)中引用的網(wǎng)絡(luò)管理PDU的數(shù)據(jù)復(fù)制到一個內(nèi)部緩沖區(qū)。

3.8 其他功能

3.8.1 遠(yuǎn)程睡眠指示器的檢測

“遠(yuǎn)程睡眠指示”表示一種情況,即處于正常操作狀態(tài)的節(jié)點發(fā)現(xiàn)集群中的所有其他節(jié)點都準(zhǔn)備好了睡眠(處于讀取狀態(tài))。處于正常運行狀態(tài)的節(jié)點仍將使總線保持清醒。

3.8.2 用戶數(shù)據(jù)

如果配置了用戶數(shù)據(jù),它將被肯定地在重復(fù)消息狀態(tài)下發(fā)送。在正常運行狀態(tài)下,是否發(fā)送用戶數(shù)據(jù)取決于總線負(fù)載減少的配置。在就緒睡眠狀態(tài)中,將不會發(fā)送用戶數(shù)據(jù)。

3.8.3 被動模式

在被動模式下,節(jié)點只接收網(wǎng)絡(luò)管理pdu,而不傳輸任何網(wǎng)絡(luò)管理pdu。

3.8.4 網(wǎng)絡(luò)管理PDU Rx指示

在調(diào)用回調(diào)函數(shù)CanNm_RxIndication時,當(dāng)且僅當(dāng)CanNmPduRxIndicationEnabled(配置參數(shù))設(shè)置為TRUE時,CanNm模塊應(yīng)調(diào)用Nm回調(diào)函數(shù)Nm_PduRxIndication。

3.8.5 狀態(tài)更改通知

如果啟用了回調(diào)Nm_StateChangeNotification(配置參數(shù)CanNmStateChangeIndEnabled為TRUE),則應(yīng)通過調(diào)用Nm_StateChangeNotification將自動存儲器CanNm狀態(tài)的所有更改通知給上層。

3.8.6 通信控制

【規(guī)范】如果服務(wù)CanNm_DisableCommunication,CanNm模塊應(yīng)禁用網(wǎng)絡(luò)管理PDU傳輸能力。

3.8.7 協(xié)調(diào)器對同步功能的支持

當(dāng)有多個協(xié)調(diào)器連接到同一總線的CBV中的一個特殊位時,Nm協(xié)調(diào)器睡眠準(zhǔn)備位用于指示主協(xié)調(diào)器請求啟動關(guān)閉序列。該算法的主要功能在Nm模塊中進(jìn)行描述。

3.9 UML狀態(tài)圖

下圖顯示了與API規(guī)范有關(guān)的UML狀態(tài)圖。與模式變化相關(guān)的轉(zhuǎn)換用綠色表示,與錯誤處理相關(guān)的轉(zhuǎn)換用紅色表示,可選的節(jié)點檢測/動態(tài)pnc到信道映射相關(guān)的轉(zhuǎn)換用藍(lán)色表示。

【AUTOSAR】【Can通信】CanNM,網(wǎng)絡(luò),mcu,系統(tǒng)架構(gòu),單片機(jī),嵌入式硬件文章來源地址http://www.zghlxwxcb.cn/news/detail-755737.html

四、API接口

4.1 API定義

  1. CanNm_Init
  2. CanNm_DeInit
  3. CanNm_PassiveStartUp ——被動喚醒啟動網(wǎng)絡(luò)CAN NM
  4. CanNm_NetworkRequest ——請求網(wǎng)絡(luò),因為ECU需要在總線上進(jìn)行通信。
  5. CanNm_NetworkRelease ——釋放網(wǎng)絡(luò),因為ECU不需要在總線上進(jìn)行通信。
  6. CanNm_DisableCommunication ——禁用NM PDU傳輸能力
  7. CanNm_EnableCommunication ——啟用NM PDU傳輸能力
  8. CanNm_SetUserData ——為在總線上下次傳輸?shù)木W(wǎng)元pdu設(shè)置用戶數(shù)據(jù)
  9. CanNm_GetUserData ——從最近接收的網(wǎng)MPDU中獲取用戶數(shù)據(jù)。
  10. CanNm_Transmit ——請求傳輸一個PDU。
  11. CanNm_GetNodeIdentifier ——從最近接收到的NM PDU中獲取節(jié)點標(biāo)識符。
  12. CanNm_GetLocalNodeIdentifier ——獲取為本地節(jié)點配置的節(jié)點標(biāo)識符。
  13. CanNm_RepeatMessageRequest ——為總線上下次傳輸?shù)腘MPDU設(shè)置重復(fù)消息請求位。
  14. CanNm_GetPduData ——從最近接收到的NM PDU中獲取整個PDU數(shù)據(jù)。
  15. CanNm_GetState ——返回網(wǎng)絡(luò)管理的狀態(tài)和模式。
  16. CanNm_GetVersionInfo
  17. CanNm_RequestBusSynchronization ——請求總線同步。
  18. CanNm_CheckRemoteSleepIndication ——檢查是否發(fā)生了遠(yuǎn)程睡眠指示。
  19. CanNm_SetSleepReadyBit ——在控制位向量中設(shè)置NM協(xié)調(diào)器睡眠準(zhǔn)備就緒位

4.2 通知函數(shù)

  1. CanNm_TxConfirmation ——下層通信接口模塊確認(rèn)PDU的傳輸,或PDU的傳輸失敗。
  2. CanNm_RxIndication ——指示從下層通信接口模塊接收到的PDU。
  3. CanNm_ConfirmPnAvailability ——在指定的網(wǎng)元通道上啟用PN過濾器功能。
  4. CanNm_TriggerTransmit ——上層模塊在此進(jìn)行數(shù)據(jù)填充

4.3 調(diào)度函數(shù)

  1. CanNm_MainFunction ——處理CanNm的狀態(tài)機(jī)。

到了這里,關(guān)于【AUTOSAR】【Can通信】CanNM的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Autosar通信實戰(zhàn)系列02-CAN報文發(fā)送周期測試腳本開發(fā)及周期不準(zhǔn)優(yōu)化

    Autosar通信實戰(zhàn)系列02-CAN報文發(fā)送周期測試腳本開發(fā)及周期不準(zhǔn)優(yōu)化

    在本系列筆者將結(jié)合工作中對通信實戰(zhàn)部分的應(yīng)用經(jīng)驗進(jìn)一步介紹常用,包括但不限于通信各模塊的開發(fā)教程,代碼邏輯分析,調(diào)測試方法及典型問題分析。 項目通信部分開發(fā)中,會接收到客戶這樣一條需求: 對于本節(jié)點發(fā)送報文的周期需要穩(wěn)定發(fā)送,前后兩幀時間差波動

    2024年02月15日
    瀏覽(104)
  • AUTOSAR實戰(zhàn)教程 - 通信協(xié)議棧CAN_CANIF_PDUR_CANTP_COM_XCP_ECUC配置一網(wǎng)打盡

    AUTOSAR實戰(zhàn)教程 - 通信協(xié)議棧CAN_CANIF_PDUR_CANTP_COM_XCP_ECUC配置一網(wǎng)打盡

    通訊協(xié)議棧幾乎是CP AUTOSAR中最龐雜的一塊。由于其涉及的模塊比較多(僅實現(xiàn)CAN信號的收發(fā)就需要ECUC/CAN/CANIF/CANTP/PDUR/COM/XCP這么多模塊的協(xié)作!),且名詞概念眾多,入門很難。網(wǎng)絡(luò)上關(guān)于各個模塊的詳細(xì)介紹浩如煙海,其深度也讓人嘆為觀止。但沒有一篇文章把這些模塊串起

    2024年02月03日
    瀏覽(20)
  • 【AUTOSAR】軟件架構(gòu)中的接口設(shè)計與跨核通信解析

    目錄 前言 一、什么是接口? 二、什么是CS接口?什么是SR接口?區(qū)別是什么?

    2024年02月03日
    瀏覽(17)
  • 艾瑞澤5汽車電子控制單元CAN通信數(shù)據(jù)讀寫車輛網(wǎng)絡(luò)系統(tǒng)交互接口

    艾瑞澤5汽車電子控制單元CAN通信數(shù)據(jù)讀寫車輛網(wǎng)絡(luò)系統(tǒng)交互接口

    艾瑞澤5的網(wǎng)關(guān)接口數(shù)據(jù)交換通常涉及車輛內(nèi)部電子設(shè)備之間的信息傳輸,包括車身系統(tǒng)、娛樂系統(tǒng)、遠(yuǎn)程控制、車輛狀態(tài)監(jiān)控、CAN數(shù)據(jù)采集分析、整車DBC控制策略等信息。 艾瑞澤5作為一款采用CAN協(xié)議的汽車,其CAN通信的開發(fā)可以提高車輛的安全性、可靠性和實時性。CAN協(xié)議

    2024年04月24日
    瀏覽(17)
  • AUTOSAR從入門到精通-網(wǎng)絡(luò)通信(UDPNm)(一)

    目錄 ?前言 幾個相關(guān)概念 原理 什么是UdpNm 約束和假設(shè) ?限制

    2024年02月03日
    瀏覽(18)
  • AUTOSAR從入門到精通-網(wǎng)絡(luò)通信(UDPNm)(三)

    目錄 前言 原理 網(wǎng)絡(luò)狀態(tài) 初始化 執(zhí)行 處理器架構(gòu) 時間參數(shù)

    2024年02月21日
    瀏覽(20)
  • AUTOSAR汽車電子系統(tǒng)架構(gòu)標(biāo)準(zhǔn)

    目錄 AUTOSAR RTE SWC和BSW SWC訪問代碼實現(xiàn) ARXML(AUTOSAR XML) Interface Client-Server接口代碼實現(xiàn) AutoSAR OS Application AUTOSAR(Automotive Open System Architecture)正式發(fā)布日期是2003年,是一種開放的汽車電子系統(tǒng)架構(gòu)標(biāo)準(zhǔn),旨在提供汽車電子系統(tǒng)的 標(biāo)準(zhǔn)化和模塊化 解決方案。它由一系列的 規(guī)

    2024年02月11日
    瀏覽(22)
  • 技術(shù)科普:汽車開放系統(tǒng)架構(gòu)AUTOSAR

    技術(shù)科普:汽車開放系統(tǒng)架構(gòu)AUTOSAR

    汽車是現(xiàn)代人類實現(xiàn)“千里江陵一日還”的交通工具,而計算機(jī)則是使人脫離繁雜重復(fù)腦力勞動的生產(chǎn)技術(shù),兩者的結(jié)合催生了汽車電子產(chǎn)業(yè)的蓬勃發(fā)展。 21世紀(jì)初,隨著汽車電子應(yīng)用需求的不斷增多與硬件資源不斷豐富,軟件系統(tǒng)也隨之變得日趨復(fù)雜。汽車電子的主要任務(wù)

    2024年02月10日
    瀏覽(24)
  • 嵌入式系統(tǒng)基礎(chǔ) 單片機(jī)MCU 樹莓派 飛控 cpu

    一些有趣的軟硬件設(shè)計 嵌入式與linux shell 單片機(jī) 電機(jī)控制 基于樹莓派和Arduino制作的多種移動機(jī)器人 Altium Designer 導(dǎo)出pcb制作文件 cpu 浮點峰值 先來談一下ARM的發(fā)展史:1978年12月5日,物理學(xué)家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry,在英國劍橋創(chuàng)辦了CPU公司(Cambridg

    2024年02月11日
    瀏覽(25)
  • 軟考高級之系統(tǒng)架構(gòu)師之?dāng)?shù)據(jù)通信與計算機(jī)網(wǎng)絡(luò)

    軟考高級之系統(tǒng)架構(gòu)師之?dāng)?shù)據(jù)通信與計算機(jī)網(wǎng)絡(luò)

    80/20規(guī)則是指總流量的80%是網(wǎng)段內(nèi)部的流量,而總流量的20%是網(wǎng)段外部的流量。 在劃分區(qū)域之后,OSPF網(wǎng)絡(luò)中的非主干區(qū)域中的路由器對于到外部網(wǎng)絡(luò)的路由,一定要通過ABR(區(qū)域邊界路由器)來轉(zhuǎn)發(fā),既然如此,對于區(qū)域內(nèi)的路由器來說,就沒有必要知道通往外部網(wǎng)絡(luò)的詳細(xì)路

    2024年02月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包