圖解AUTOSAR_CP_NetworkManagementInterface

AUTOSAR 網絡管理接口(Nm)詳解

AUTOSAR 網絡管理接口規范與實現指南

目錄

  • 1. 概述
    • 1.1. 網絡管理接口的作用
    • 1.2. 網絡管理接口的特點
  • 2. 網絡管理接口架構
    • 2.1. 架構概覽
    • 2.2. 模塊交互關系
  • 3. 網絡管理狀態機
    • 3.1. 狀態定義
    • 3.2. 狀態轉換
  • 4. 協調算法
    • 4.1. 協調關閉流程
    • 4.2. 同步點機制
    • 4.3. 協調關閉中斷處理
  • 5. 網絡管理交互序列
    • 5.1. 網絡啟動流程
    • 5.2. 網絡關閉流程
    • 5.3. 協調關閉流程
  • 6. 配置模型
    • 6.1. 配置結構
    • 6.2. 配置參數
  • 7. 總結
    • 7.1. 網絡管理接口的優勢
    • 7.2. 應用場景

在這里插入圖片描述

1. 概述

1.1. 網絡管理接口的作用

AUTOSAR網絡管理接口(Nm)是AUTOSAR通信棧中的一個關鍵組件,它為不同總線類型的網絡管理提供了統一的接口。網絡管理接口的主要作用包括:

  • 提供統一的API接口,屏蔽不同總線類型網絡管理的差異
  • 管理網絡的啟動和關閉過程
  • 協調多個網絡的關閉過程,確保系統有序地進入低功耗模式
  • 支持網絡喚醒功能,使系統能夠從低功耗模式恢復

1.2. 網絡管理接口的特點

網絡管理接口具有以下特點:

  • 通用性:支持多種總線類型,包括CAN、FlexRay、以太網等
  • 可配置性:提供豐富的配置選項,滿足不同應用場景的需求
  • 協調功能:支持多網絡協調關閉,確保系統有序進入低功耗模式
  • 狀態管理:提供完整的網絡狀態管理機制
  • 可擴展性:支持通過CDD(Complex Device Driver)擴展支持其他網絡管理協議

2. 網絡管理接口架構

2.1. 架構概覽

AUTOSAR網絡管理接口位于通信管理(ComM)和總線特定網絡管理模塊(如CanNmFrNm等)之間,作為一個通用接口層,提供統一的API。
在這里插入圖片描述

2.2. 模塊交互關系

網絡管理接口與其他模塊的交互關系如下:

  1. 向上接口

    • ComM提供網絡狀態通知和網絡管理服務
    • 接收來自ComM的網絡請求和釋放命令
  2. 向下接口

    • 調用總線特定網絡管理模塊(CanNmFrNmUdpNmJ1939Nm等)的API
    • 接收來自總線特定網絡管理模塊的狀態通知
  3. 橫向接口

    • 支持通過CDD擴展其他網絡管理協議(如OSEK NM)

網絡管理接口通過這種分層架構,實現了對不同總線類型網絡管理的統一抽象,簡化了上層應用的開發。


3. 網絡管理狀態機

3.1. 狀態定義

網絡管理接口定義了一個狀態機來管理網絡狀態。狀態機包含以下狀態:
在這里插入圖片描述
網絡管理狀態機包含以下主要狀態:

  1. NM_STATE_BUS_SLEEP

    • 總線睡眠狀態,網絡處于低功耗模式
    • 此狀態下無通信活動
    • 系統初始化后默認進入此狀態
  2. NM_STATE_PREPARE_BUS_SLEEP

    • 準備總線睡眠狀態
    • 等待進入睡眠模式的超時
    • 可被網絡請求或接收到的NM消息中斷
  3. NM_STATE_READY_SLEEP

    • 準備睡眠狀態
    • 節點已準備好進入睡眠,但等待其他節點也準備好
  4. NM_STATE_NORMAL_OPERATION

    • 正常運行狀態
    • 網絡完全激活,支持正常通信
  5. NM_STATE_REPEAT_MESSAGE

    • 重復消息狀態
    • 節點重復發送NM消息,確保網絡激活
  6. NM_STATE_SYNCHRONIZE

    • 同步狀態
    • 用于網絡同步過程

3.2. 狀態轉換

狀態機的主要轉換包括:

  1. 網絡啟動轉換

    • NM_STATE_BUS_SLEEPNM_STATE_REPEAT_MESSAGE:通過Nm_NetworkRequest或被動喚醒觸發
    • NM_STATE_BUS_SLEEPNM_STATE_NORMAL_OPERATION:通過Nm_PassiveStartUp觸發
  2. 網絡關閉轉換

    • NM_STATE_NORMAL_OPERATIONNM_STATE_READY_SLEEP:通過Nm_NetworkRelease且所有節點準備睡眠觸發
    • NM_STATE_READY_SLEEPNM_STATE_PREPARE_BUS_SLEEP:當所有節點準備睡眠時觸發
    • NM_STATE_PREPARE_BUS_SLEEPNM_STATE_BUS_SLEEP:超時后觸發
  3. 中斷關閉轉換

    • NM_STATE_PREPARE_BUS_SLEEPNM_STATE_REPEAT_MESSAGE:通過Nm_NetworkRequest或接收到NM消息觸發
    • NM_STATE_READY_SLEEPNM_STATE_REPEAT_MESSAGE:通過Nm_NetworkRequest觸發
    • NM_STATE_READY_SLEEPNM_STATE_NORMAL_OPERATION:接收到無睡眠指示的NM消息觸發
  4. 其他轉換

    • NM_STATE_NORMAL_OPERATIONNM_STATE_REPEAT_MESSAGE:通過Nm_RepeatMessageRequest觸發
    • NM_STATE_REPEAT_MESSAGENM_STATE_NORMAL_OPERATION:重復消息完成后觸發
    • NM_STATE_SYNCHRONIZENM_STATE_NORMAL_OPERATION:同步完成后觸發

4. 協調算法

4.1. 協調關閉流程

網絡管理接口提供了協調關閉功能,用于協調多個網絡的關閉過程,確保系統有序地進入低功耗模式。
在這里插入圖片描述

協調關閉流程的主要步驟包括:

  1. 觸發協調關閉

    • ComM請求網絡釋放,調用Nm_NetworkRelease
    • Nm檢查是否為協調網絡
  2. 計算全局協調時間

    • 全局協調時間 = 所有協調網絡中最大的關閉時間
    • 確保所有網絡有足夠的時間完成關閉過程
  3. 同步點處理

    • 如果配置為使用同步點,等待同步網絡的同步點
    • 同步點通過Nm_SynchronizationPoint回調函數通知
    • 如果未配置使用同步點,立即開始協調關閉
  4. 并行關閉處理

    • 啟動協調關閉定時器
    • 并行處理多個網絡的關閉流程
    • 每個網絡等待全局協調時間
    • 所有網絡同時進入準備睡眠狀態
  5. 完成關閉

    • 所有網絡進入總線睡眠狀態
    • 系統進入低功耗模式

4.2. 同步點機制

同步點機制用于確保協調關閉過程的同步性,特別是在處理非確定性總線時。同步點的主要特點包括:

  1. 同步網絡配置

    • 每個協調集群只能配置一個網絡作為同步網絡
    • 同步網絡通過NmSynchronizingNetwork參數配置
  2. 同步點通知

    • 同步網絡在適當的時間點調用Nm_SynchronizationPoint回調
    • 回調函數通知協調器開始協調關閉過程
  3. 同步用例

    • 同步命令:所有網絡同時收到關閉命令
    • 同步啟動:協調關閉過程同時啟動
    • 同步網絡睡眠:所有網絡同時進入睡眠狀態

4.3. 協調關閉中斷處理

協調關閉過程可能會被網絡喚醒中斷。中斷處理的主要步驟包括:

  1. 檢測喚醒

    • 檢查是否發生網絡喚醒事件
    • 喚醒事件可能來自外部喚醒或協調喚醒
  2. 中斷處理

    • 如果發生喚醒,中斷協調關閉流程
    • 重新激活所有協調網絡
    • 恢復正常通信
  3. 繼續關閉

    • 如果未發生喚醒,繼續協調關閉流程
    • 完成網絡關閉過程

5. 網絡管理交互序列

5.1. 網絡啟動流程

在這里插入圖片描述

網絡啟動流程的主要步驟包括:

  1. 啟動請求

    • ComM調用Nm_NetworkRequest請求啟動網絡
    • Nm接收請求并處理
  2. 總線特定處理

    • Nm調用相應的總線特定網絡管理模塊(如CanNm_NetworkRequest)
    • 總線特定模塊發送NM消息激活網絡
  3. 狀態通知

    • 總線特定模塊進入重復消息狀態
    • 通過Nm_NetworkMode回調通知網絡已激活
    • Nm將通知轉發給ComM(ComM_Nm_NetworkMode)

5.2. 網絡關閉流程

網絡關閉流程的主要步驟包括:

  1. 關閉請求

    • ComM調用Nm_NetworkRelease請求關閉網絡
    • Nm接收請求并處理
  2. 總線特定處理

    • Nm調用相應的總線特定網絡管理模塊(如CanNm_NetworkRelease)
    • 總線特定模塊設置睡眠指示位
    • 發送帶睡眠指示的NM消息
  3. 準備睡眠

    • 總線特定模塊等待所有節點準備睡眠
    • 通過Nm_PrepareBusSleepMode回調通知準備進入睡眠模式
    • Nm將通知轉發給ComM(ComM_Nm_PrepareBusSleepMode)
  4. 進入睡眠

    • 總線特定模塊等待超時
    • 通過Nm_BusSleepMode回調通知已進入睡眠模式
    • Nm將通知轉發給ComM(ComM_Nm_BusSleepMode)

5.3. 協調關閉流程

協調關閉流程的主要步驟包括:

  1. 協調關閉請求

    • ComM對多個通道調用Nm_NetworkRelease
    • Nm計算全局協調時間
  2. 并行處理

    • Nm對多個通道調用總線特定的NetworkRelease函數
    • 總線特定模塊等待全局協調時間
  3. 同步通知

    • 所有通道同時通過回調函數通知狀態變化
    • 包括PrepareBusSleepModeBusSleepMode通知
    • Nm將通知轉發給ComM
  4. 完成關閉

    • 所有網絡同時進入總線睡眠狀態
    • 系統進入低功耗模式

6. 配置模型

6.1. 配置結構

網絡管理接口的配置模型定義了如何配置網絡管理功能。
在這里插入圖片描述

配置模型的主要結構包括:

  1. Nm

    • 頂層配置容器
    • 包含NmGeneralNmGlobalConfig和多個NmChannelConfig
  2. NmGeneralType

    • 通用配置參數
    • 包括錯誤檢測、版本信息API和主函數周期
  3. NmGlobalConfigType

    • 全局配置參數
    • 包括主函數周期時間、全局協調時間和協調同步支持
  4. NmChannelConfigType

    • 通道配置參數
    • 每個通道對應一個網絡接口
    • 可配置為不同的總線類型和功能
  5. NmCoordinationSyncSupportType

    • 協調同步支持配置
    • 用于配置網絡協調功能
    • 包括協調集群索引、活動協調器標志和同步網絡標志
  6. NmBusNmType

    • 總線類型枚舉
    • 支持CAN、FlexRay、UDP、J1939和本地NM

6.2. 配置參數

網絡管理接口的主要配置參數包括:

  1. 通用參數

    • NmDevErrorDetect:是否啟用開發錯誤檢測
    • NmVersionInfoApi:是否支持版本信息API
    • NmMainFunctionPeriod:主函數周期時間
  2. 全局參數

    • NmCycletimeMainFunction:主函數調用周期
    • NmGlobalCoordinatorTime:全局協調時間
    • NmCoordinationSynchronizationSupport:是否支持協調同步
  3. 通道參數

    • NmChannelId:通道ID
    • NmBusType:總線類型(CAN、FlexRay、UDP、J1939或本地NM)
    • NmNodeDetectionEnabled:是否啟用節點檢測
    • NmNodeIdEnabled:是否啟用節點ID
    • NmRepeatMessageSupport:是否支持重復消息
    • NmUserDataSupport:是否支持用戶數據
    • NmComUserDataSupport:是否支持COM用戶數據
    • NmPduRxIndicationEnabled:是否啟用PDU接收指示
    • NmRemoteSleepIndEnabled:是否啟用遠程睡眠指示
    • NmBusSynchronizationEnabled:是否啟用總線同步
    • NmCoordinationSupport:是否支持協調
    • NmStateChangeIndEnabled:是否啟用狀態變化指示
    • NmCarWakeUpRxEnabled:是否啟用車輛喚醒接收
  4. 協調同步參數

    • NmCoordClusterIndex:協調集群索引
    • NmActiveCoordinator:是否為活動協調器
    • NmSynchronizingNetwork:是否為同步網絡

7. 總結

7.1. 網絡管理接口的優勢

AUTOSAR網絡管理接口具有以下優勢:

  • 統一接口:提供統一的API,簡化上層應用開發
  • 可配置性:豐富的配置選項,滿足不同應用場景需求
  • 協調功能:支持多網絡協調關閉,確保系統有序進入低功耗模式
  • 可擴展性:支持通過CDD擴展其他網絡管理協議
  • 標準化:符合AUTOSAR標準,確保不同供應商組件的互操作性

7.2. 應用場景

網絡管理接口適用于以下應用場景:

  1. 多網絡ECU

    • 管理多個網絡接口的ECU
    • 協調多個網絡的關閉過程
  2. 低功耗管理

    • 需要精確控制網絡進入和退出低功耗模式的系統
    • 支持部分網絡喚醒功能
  3. 網關應用

    • 連接多個網絡的網關ECU
    • 協調不同網絡的狀態
  4. 分布式系統

    • 多ECU分布式系統
    • 需要協調多個ECU的網絡狀態

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898142.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898142.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898142.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java學習總結(八):Spring boot

一、SpringBoot簡介 傳統Spring開發缺點: 1、導入依賴繁瑣 2、項目配置繁瑣 Spring Boot是全新框架(更像是一個工具, 腳手架),是Spring提供的一個子項目, 用于快速構建Spring應用程序。 隨著Spring 3.0的發布,Spring 團…

vue-router實現

實現一個簡化版的 vue-router 可以幫助我們更好地理解 Vue 路由是如何工作的。Vue Router 主要的功能是基于瀏覽器的 URL 來管理組件的顯示,能夠根據 URL 變化切換不同的視圖。下面是一個簡化版的實現,用于幫助你理解基本的路由機制。 創建一個簡單的 V…

Redis 服務器:核心功能與優化實踐

Redis 服務器:核心功能與優化實踐 引言 Redis(Remote Dictionary Server)是一款高性能的鍵值對存儲系統,廣泛用于緩存、消息隊列、實時排行榜等場景。本文將深入探討Redis服務器的核心功能,并提供一些優化實踐的技巧,以幫助讀者更好地理解和運用Redis。 Redis的核心功…

openEuler24.03 LTS下安裝MySQL8

前提條件 擁有openEuler24.03 LTS環境,可參考:Vmware下安裝openEuler24.03 LTS 步驟 卸載原有mysql及mariadb sudo systemctl stop mysql mysqld 2>/dev/null sudo rpm -qa | grep -i mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps 2>/dev/…

GLOW-TTS

我首先需要理解用戶的指令,用戶希望我翻譯文章的3.1節“Training and Inference Procedures”部分。為了完成這個任務,我需要仔細閱讀文章的3.1節,理解其中的技術細節和概念,然后將這些內容準確地翻譯成中文。 在閱讀3.1節時&…

【算法思想】高精度

引入 首先了解&#xff1a; 1. int 范圍為10^9 2. long long 范圍數量級為10^18 如果超過該數量級&#xff0c;該怎么辦&#xff1f; ——這就是高精度、大數的算法問題 加法 輸入兩個整數a,b,輸出他們的和&#xff08;<10的500次方&#xff09; 核心是加法的核心——》每…

【失敗了】LazyGraphRAG利用本地ollama提供Embedding model服務和火山引擎的deepseek API構建本地知識庫

LazyGraphRAG測試結果如下 數據&#xff1a; curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt -o ./ragtest/input/book.txt 失敗了 氣死我也&#xff01;&#xff01;&#xff01;對deepseek-V3也不是很友好啊&#xff0c;我沒錢prompt 微調啊&#xff0c;暈死…

ccfcsp3402矩陣重塑(其二)

//矩陣重塑&#xff08;其二&#xff09; #include<iostream> using namespace std; int main(){int n,m,t;cin>>n>>m>>t;int c[10000][10000];int s0,sum0;int d[10000],k[100000];for(int i0;i<n;i){for(int j0;j<m;j){cin>>c[i][j];d[s…

算法-除自身以外數組的乘積

力扣題目&#xff1a;238. 除自身以外數組的乘積 - 力扣&#xff08;LeetCode&#xff09; 題目描述&#xff1a; 給你一個整數數組 nums&#xff0c;返回 數組 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums…

Unity Shader - UI Sprite Shader之簡單摳圖效果

Sprite摳圖效果&#xff1a; 前言 在PhotoShop中我們經常會用到摳圖操作&#xff0c;現在就用Shader實現一個簡單的摳圖效果。 實現原理&#xff1a; 使用當前像素顏色與需要摳掉的顏色相減作比較&#xff0c;然后與一個指定的閾值比較以決定是否將其顯示出來&#xff1b; U…

【Mac】安裝 Parallels Desktop、Windows、Rocky Linux

一、安裝PD 理論上&#xff0c;PD只支持試用15天&#xff01;當然&#xff0c;你懂的。 第一步&#xff0c;在 Parallels Desktop for Mac 官網 下載 Install Parallels Desktop.dmg第二步&#xff0c;雙擊 Install Parallels Desktop.dmg 第三步&#xff0c;雙擊安裝Paralle…

學習單片機需要多長時間才能進行簡單的項目開發?

之前有老鐵問我&#xff0c;學單片機到底要多久&#xff0c;才能進行簡單的項目開發&#xff1f;是三個月速成&#xff0c;還是三年磨一劍&#xff1f; 今天咱們就來聊聊這個話題&#xff0c;我不是什么高高在上的專家&#xff0c;就是個踩過無數坑、燒過幾塊板子的“技術老友”…

pyqt 上傳文件或者文件夾打包壓縮文件并添加密碼并將密碼和目標文件信息保存在json文件

一、完整代碼實現 import sys import os import json import pyzipper from datetime import datetime from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,QPushButton, QLineEdit, QLabel, QFileDialog,QMessageBox, QProgressBar) from PyQt5.…

centos操作系統上傳和下載百度網盤內容

探序基因 整理 進入百度網盤官網百度網盤 客戶端下載 下載linux的rpm格式的安裝包 在linux命令行中輸入&#xff1a;rpm -ivh baidunetdisk_4.17.7_x86_64.rpm 出現報錯&#xff1a; 錯誤&#xff1a;依賴檢測失敗&#xff1a; libXScrnSaver 被 baidunetdisk-4.17.7-1.x8…

LeetCode134?加油站

關聯LeetCode題號134 本題特點 貪心局部最優解-部分差值 如果小于0&#xff08;消耗大于油站油量&#xff09; 就從下一個加油站開始&#xff0c;因為如果中間有小于0的情況 當前站就不可能是始發站&#xff0c;整體最優解-整體差值 如果小于0 &#xff0c;那么就是不能有始發…

基于 Verilog 的時序設計:從理論到實踐的深度探索

在數字電路設計領域,時序設計是一個至關重要的環節,它涉及到組合邏輯電路與時序邏輯電路的設計差異、時鐘信號的運用以及觸發器的工作原理等多個方面。本文將圍繞基于 Verilog 的時序設計實驗展開,詳細闡述實驗過程、代碼實現以及結果分析,幫助讀者深入理解時序設計的核心概…

藍牙系統的核心組成解析

一、硬件層&#xff1a;看得見的物理載體 1. 射頻模塊&#xff08;Radio Frequency Module&#xff09; 專業描述&#xff1a;工作在2.4GHz ISM頻段&#xff0c;支持GFSK/π/4 DQPSK/8DPSK調制方式 功能類比&#xff1a;相當于人的"嘴巴"和"耳朵" 發射端…

獵豹移動(Cheetah Mobile)

本文來自騰訊元寶 公司背景與發展歷程 ?成立與早期定位 獵豹移動成立于2010年11月&#xff0c;由金山安全與可牛影像合并而成&#xff0c;初期以移動安全工具和清理軟件為核心業務。其明星產品包括《獵豹清理大師》&#xff08;Clean Master&#xff09;和《獵豹瀏覽器》&…

go的gmp

參考鏈接&#xff1a;https://www.bilibili.com/video/BV19r4y1w7Nx Golang的GMP調度模型(協程調度器)是其并發編程的核心。GMP代表Goroutine、Machine和Processor三個關鍵組成部分。Goroutine是Go語言中的輕量級線程&#xff0c;Machine是操作系統的線程&#xff0c;Processor…

Vue3-高級特性

一、Vue中自定義指令 1.認識自定義指令 在Vue的模板語法中我們學習過各種各樣的指令&#xff1a;v-show、v-for、v-model等等&#xff0c;除了使用這些指令之外&#xff0c;Vue也允許我們來 自定義自己的指令。 注意&#xff1a;在Vue中&#xff0c;代碼的復用和抽象主要還是…