网站设计的硬件/优化模型

网站设计的硬件,优化模型,山西省旅游网站建设分析,阿里云建wordpress站AUTOSAR 网络管理接口(Nm)详解 AUTOSAR 网络管理接口规范与实现指南 目录 1. 概述 1.1. 网络管理接口的作用1.2. 网络管理接口的特点 2. 网络管理接口架构 2.1. 架构概览2.2. 模块交互关系 3. 网络管理状态机 3.1. 状态定义3.2. 状态转换 4. 协调算法 4.1. 协调关闭流程4.2. 同…

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.mzph.cn/news/898142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习总结(八):Spring boot

一、SpringBoot简介 传统Spring开发缺点: 1、导入依赖繁琐 2、项目配置繁琐 Spring Boot是全新框架(更像是一个工具, 脚手架),是Spring提供的一个子项目, 用于快速构建Spring应用程序。 随着Spring 3.0的发布,Spring 团…

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/…

【失败了】LazyGraphRAG利用本地ollama提供Embedding model服务和火山引擎的deepseek API构建本地知识库

LazyGraphRAG测试结果如下 数据: curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt -o ./ragtest/input/book.txt 失败了 气死我也!!!对deepseek-V3也不是很友好啊,我没钱prompt 微调啊,晕死…

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…

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;就是个踩过无数坑、烧过几块板子的“技术老友”…

centos操作系统上传和下载百度网盘内容

探序基因 整理 进入百度网盘官网百度网盘 客户端下载 下载linux的rpm格式的安装包 在linux命令行中输入&#xff1a;rpm -ivh baidunetdisk_4.17.7_x86_64.rpm 出现报错&#xff1a; 错误&#xff1a;依赖检测失败&#xff1a; libXScrnSaver 被 baidunetdisk-4.17.7-1.x8…

蓝牙系统的核心组成解析

一、硬件层&#xff1a;看得见的物理载体 1. 射频模块&#xff08;Radio Frequency Module&#xff09; 专业描述&#xff1a;工作在2.4GHz ISM频段&#xff0c;支持GFSK/π/4 DQPSK/8DPSK调制方式 功能类比&#xff1a;相当于人的"嘴巴"和"耳朵" 发射端…

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;代码的复用和抽象主要还是…

基于CPLD电力/轨道交通3U机箱开关量输出板(DO)

板卡简介&#xff1a; 本板为开关量输出板&#xff08;DO&#xff09;&#xff0c;采用固态继电器用于电平输出或负载驱动&#xff0c;典型输出高电平为DC110V&#xff0c;低电平为0V。 性能规格&#xff1a; 电源&#xff1a;DC5V&#xff0c;DC3.3V&#xff0c;DC15V&#…

【C++经典例题】反转字符串中单词的字符顺序:两种实现方法详解

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;C经典例题 期待您的关注 目录 问题描述 基于快慢指针的解法 基于索引的解法 两种方法的比较 问题描述 在处理字符串相关的问题…

Java基础语法练习45(网络编程)

目录 一、网络的相关概念 1.网络通信 2.网络 3.ip 地址 4.ipv4 地址分类 5.域名 6.网络通信协议 7.TCP 和 UDP 二、InetAddress类 1.相关方法 2.代码示例如下&#xff1a; 三、Socket 1.基本介绍 四、TCP 网络通信编程 1.基本介绍 2.应用示例&#xff1a; 2.1…

【Json—RPC框架】:宏定义不受命名空间限制,续行符的错误使用造成的bug

为什么不受命名空间的限制&#xff1f; 宏处理在预处理阶段&#xff0c; 预处理在编译之前&#xff0c;编译才进行语法分析&#xff0c;语义分析。命名空间也只能限制这部分。 在Json-RPC框架的实现中&#xff0c;遇到如下问题。一开始以为是在实现日志宏的时候&#xff0c;有…

四川省包含哪些水系

背景&#xff1a; 想知道四川省包含哪些水系&#xff0c;以及各个水系的分布&#xff0c;起点、流经省市、终点等 {label: "嘉陵江",value: "嘉陵江",},{label: "渠江",value: "渠江",},{label: "涪江",value: "涪江&q…

子序列问题写法

子序列问题可以按照动态规划的思想去写。 子序列问题类型 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。 例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 写法思路 创建两层for循环…

C++ primer plus 使用类下

目录 前言 一 转换函数 总结 前言 接着上一章的内容 一 转换函数 接着我们上一章节的内容&#xff0c;我们知道我们类里面有一个自动转换利用这个运算符&#xff0c;这样就可以使得对象可以接受这个值 那么有没有可以使一个普通类型去接收一个对象呢&#xff1f; 答案是…

详解布隆过滤器及其模拟实现

目录 布隆过滤器 引入 概念 工作原理 模拟实现布隆过滤器 哈希函数集 布隆过滤器基本框架 add函数&#xff08;添加到布隆过滤器中&#xff09; contains函数&#xff08;判断是否存在该值&#xff09; 完整代码 布隆过滤器的删除 布隆过滤器的误判率 布隆过滤器的…

巧用 VSCode 与 AI 编码提升 Vue 前端开发效率

在当今快节奏的软件开发领域&#xff0c;提升开发效率是每个开发者都追求的目标。对于 Vue 前端开发而言&#xff0c;Visual Studio Code&#xff08;VSCode&#xff09;已经成为了众多开发者的首选编辑器。而随着人工智能技术的发展&#xff0c;各类 AI 编码扩展工具如雨后春笋…