【AUTOSAR】【以太网】UdpNM

news2024/11/28 0:33:47

目录

一、概述

二、限制与约束

三、功能说明

3.1 协调算法

3.2 操作模式

3.2.1 Network Mode

3.2.2 准备总线睡眠模式

3.2.3 准备总线睡眠模式

3.3 网络状态

3.4 初始化

3.5 通信调度

3.5.1 NM消息发送

3.5.2 NM消息接收

3.6 其他功能

3.7 帧结构

四、API接口

4.1 API定义

4.2 回调通知

4.3 调度函数


一、概述

        该文档描述了AUTOSAR UDP网络管理(UdpNm)的概念、核心功能、可选特性、接口和配置问题。UdpNm原本是一个可选的特性。它打算与一个TCP/IP堆栈一起工作,独立于所使用的通信系统的物理层。自动存储器UDP网络管理是一种独立于硬件的协议,可用于基于TCP/IP的系统。其主要目的是协调网络在正常运行和总线睡眠模式之间的过渡。

        除了核心功能之外,还提供了可选特性,例如实现检测所有当前节点或检测所有其他节点是否都准备好睡觉的服务。UDP网络管理(UdpNm)功能提供了网络管理接口(Nm)和TCP/IP堆栈(TCP/IP)之间的自适应。

二、限制与约束

  1. UdpNm的一个实例只与一个网络中的一个nm集群相关联。一个nm集群在一个节点中只能有一个UdpNm实例。
  2. UdpNm的一个实例只与同一ECU中的一个网络相关联。
  3. UdpNm仅适用于基于TCP/IP的系统。

【规范】默认情况下,AUTOSAR UdpNm算法应支持每个nm集群最多250个节点。注意:AUTOSAR UdpNm算法可以支持任意数量的节点每个nm集群(甚至超过默认的250个节点每个集群,如果必要)——这只是一个配置问题,因为上限不是固定的,取决于响应时间,容错和自动配置的总线负载协调算法。这可能取决于所使用的物理层。

三、功能说明

3.1 协调算法

        AUTOSAR UdpNm基于分散的直接网络管理策略,这意味着每个网络节点只根据在通信系统内接收和/或传输的UDP数据包来执行自给自足的活动。

        AUTOSAR UdpNm协调算法是基于周期性的NM数据包,由集群中的所有节点通过广播传输接收。NM数据包的接收表明发送节点希望保持NM集群的清醒状态。如果任何节点准备进入总线睡眠模式,它将停止发送NM数据包,但只要接收到来自其他节点的NM数据包,它就会延迟转换到总线睡眠模式。最后,如果专用定时器因为不再接收NM数据包而经过,每个节点都启动到总线睡眠模式的转换。如果NM集群中的任何节点需要总线通信,它可以通过传输NM数据包使NM集群保持清醒状态。

【规范】每个网络节点只要需要总线通信,就应定期传输NMPDU,否则不得传输NMPDU。

【规范】如果禁用 UdpNmStayInPbsEnabled 并释放UdpNm集群中的总线通信,并且总线上没有可配置的时间配置时间+总线睡眠时间(两个配置参数)转换到总线休眠模式。

【规范】从NM集群中的单个节点的角度来看,AUTOSAR UdpNm状态机应包含AUTOSAR UdpNm协调算法所需的状态、转换和触发器。

3.2 操作模式

【规范】UdpNm应包含在模块界面上可见的三种操作模式:

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

【规范】UdpNm运行模式的变化应通过回调功能向上层发出信号。

3.2.1 Network Mode

【规范】网络模式应包括三种内部状态:

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

【规范】当从总线睡眠模式或准备总线睡眠模式输入网络模式时,默认情况下,应输入重复消息状态。

【规范】当进入网络模式后,应启动NM-Timeout 定时器。

【规范】当进入网络模式时,UdpNm应通过调用Nm_NetworkMode通知上层。

【规范】在网络模式下成功接收到NMPDU(调用UdpNm_SoAdIfRxIndication)后,应重新启动NM-超时定时器。

【规范】在网络模式下传输NMPDU(UdpNm_SoAdIfTxConfirmation与E_OK的调用)时,应重新启动NM超时计时器。

【规范】每次启动或重新启动时,nm-超时计时器都应被重置。

(1)重复消息状态

对于未处于被动模式的节点,重复消息状态确保,从总线-睡眠或准备总线-睡眠到网络模式的任何转换对网络上的其他节点都可见。此外,它还可以确保任何节点在最短的时间内保持活动状态(UdpNm重复消息时间)。它可以选择用于检测当前的节点。

【规范】当从总线睡眠模式输入重复消息状态时,准备总线睡眠模式、正常运行状态或准备睡眠状态传输应(重新)启动,除非启用被动模式。

【规范】当NM超时定时器在重复消息状态下过期时,应重新启动NM超时定时器。

【规范】应在一个可配置的时间量内保持在重复消息状态,由UdpNmRepeatMessageTime确定。

【规范】当离开重复消息状态时,如果网络已被请求,则应输入正常运行状态。

【规范】当离开重复消息状态时,如果网络已被释放,则应进入就绪休眠状态。

【规范】如果UdpNm节点检测设置为TRUE UdpNm应在离开重复消息状态时清除重复消息位。

(2)正常运行状态

正常操作状态确保,只要需要网络功能,任何节点都可以保持nm集群的清醒状态。

【规范】当从准备睡眠状态进入正常运行状态时,应启动NMpdu的传输,除非启用被动模式或禁用NM消息传输能力。

【规范】当nm-超时定时器在正常运行状态下到期时,应重新启动网元超时定时器。

【规范】当网络被释放,当前状态为正常运行状态时,应保持正常运行状态,并进入就绪休眠状态

【规范】如果UdpNmNodeDetectionEnabled被设置为TRUE,并且在正常操作状态下收到重复消息请求位,则UdpNm应进入重复消息状态。

【规范】如果UdpNmNodeDetectionEnabled 被设置为TRUE,并且在正常操作状态下调用函数UdpNm_RepeatMessageRequest,则UdpNm应进入重复消息状态。

【规范】如果UdpNmNodeDetectionEnabled 被设置为TRUE,并且在正常操作状态下调用函数UdpNm_RepeatMessageRequest,则UdpNm应设置重复消息位。

(3)准备睡眠状态

就绪休眠状态确保NM集群中的任何节点在过渡到准备总线休眠模式的同时等待,只要任何其他节点保持母线休眠状态。

【规范】当从重复消息状态或正常运行状态进入就绪休眠状态时,应停止NMPDU的传输。

【规范】当NM-超时定时器在就绪睡眠状态到期时,应保持就绪睡眠状态,并进入准备总线睡眠模式。⌋

【规范】当请求网络,当前状态为就绪睡眠状态时,应保持就绪睡眠状态,并进入正常运行状态

【规范】如果 UdpNmNodeDetectionEnabled 被设置为TRUE,并且在准备睡眠状态下收到重复消息请求位,则UdpNm应进入重复消息状态。

【规范】如果UdpNmNodeDetectionEnabled被设置为TRUE,并且在准备睡眠状态下调用函数UdpNm_RepeatMessageRequest,则UdpNm应进入重复消息状态。

【规范】如果UdpNmNodeDetectionEnabled被设置为TRUE,并且在准备睡眠状态下调用函数UdpNm_RepeatMessageRequest,则UdpNm应设置重复消息位。

3.2.2 准备总线睡眠模式

“准备总线睡眠”状态的目的是确保在输入“总线睡眠”状态之前,所有节点都有时间停止其网络活动。使总线活动平静(即传输排队的消息以清空所有Tx缓冲区),最后在准备总线睡眠模式中总线上没有活动。

【规范】当进入准备总线-睡眠模式时,UdpNm应通过调用Nm_PrepareBusSleepMode通知上层。

【规范】如果禁用UdpNmStayInPbsEnabled,UdpNm应保持可配置时间UdpNmWaitBusSleepTime 准备总线睡眠模式之后,并进入总线睡眠模式。

【规范】在准备总线睡眠模式下成功接收NM PDU后,应离开准备总线睡眠模式并输入网络模式;默认情况下输入重复消息状态。

【规范】当在准备总线睡眠模式中请求网络时,应离开准备总线睡眠模式,并输入网络模式;默认情况下,输入重复消息状。

【规范】当网络在准备总线睡眠模式下被请求时,UdpNm模块已进入网络模式,如果UdpNmImmediateRestartEnabled(配置参数)为TRUE,UdpNm模块应传输网络管理PDU。

3.2.3 准备总线睡眠模式

总线睡眠状态的目的是在不交换消息时减少节点的功耗。

【规范】进入总线睡眠模式时,UdpNm应通过调用Nm_BusSleepMode通知上层;如果初始化时默认输入总线睡眠模式,则不出现这种情况。

【规范】当UdpNm模块在总线-睡眠模式下(UdpNm_SoAdIfRxIndication调用)成功接收到网络管理PDU时,UdpNm模块应通过调用回调函数Nm_NetworkStartIndication来通知上层。

【规范】如果在总线-睡眠模式或准备总线睡眠模式中调用UdpNm_PassiveStartUp,则UdpNm模块应进入网络模式;默认情况下,将输入重复消息状态

【规范】当以总线-睡眠模式请求网络时,UdpNm模块进入网络模式;默认情况下,UdpNm模块进入重复消息状态

3.3 网络状态

【规范】函数调用UdpNm_NetworkRequest应请求网络。即,UdpNm模块应将网络状态更改为“requested”。

【规范】函数调用UdpNm_NetworkRelease将释放网络。即,UdpNm模块应将网络状态更改为“released”。

3.4 初始化

【规范】初始化成功后,网络管理状态应设置为总线睡眠模式。

【规范】当初始化时,默认情况下,UdpNm模块应将网络状态设置为“已释放”

【规范】当初始化时,默认情况下,UdpNm模块应进入总线-睡眠模式。

【规范】如果UdpNm没有初始化,则不得禁止通信。

【规范】函数UdpNm_Init应通过传递一个配置指针参数来选择活动配置集

【规范】初始化后,应停止网络管理消息的传输。

【规范】初始化后,用户数据字节的每个字节应设置为0xFF。

【规范】初始化后,控制位向量应设置为0x00

【规范】一个NM集群中不同ECUs上的所有UDP NM实例都应使用相同的UDP接收端口。

3.5 通信调度

3.5.1 NM消息发送

【规范】网络管理消息的传输应通过UdpNmPassiveModeEnabled进行配置。

【规范】UdpNm模块应提供定期传输模式。在这种传输模式下,UdpNm模块应定期发送网络管理pdu。

【规范】如果未通过UdpNm_NetworkRequest或UdpNmImmediateNmTransmissions输入的重复消息状态为零,则在进入重复消息状态后,UdpNMMsg UdpNmImmediateNmTransmissions应延迟NM PDU的传输。

【规范】当由于UdpNm_NetworkRequest()(主动唤醒)而从总线睡眠模式或准备总线睡眠模式进入重复消息状态时,如果UdpNmImmediateNmTransmissions大于零,则应使用UdpNm即时Nm循环时间作为周期时间传输。应尽快触发第一个NM PDU的传输。传输后,消息周期计时器应重新加载。在这种情况下,不得使用通用自行车补偿器。

【规范】如果从就绪睡眠状态进入正常运行状态,则应立即启动NMPDU的传输。

【规范】如果UdpNmPnHandleMultipleNetworkRequests设置为TRUE UdpNm_NetworkRequest,将触发从网络模式到重复消息状态的状态转换。如果PDU传输能力被启用,NMPDU应使用UdpNm即时Nm循环时间作为周期时间进行传输。应尽快触发第一个NM PDU的传输。传输后,消息周期计时器。在这种情况下UdpNmMsgCycleOffset不得使用。

【规范】如果NMpdu应通过UdpNmImmediateNmCycleTime ,UdpNm应确保成功请求UdpNmImmediateNmTransmissions(包括第一次即时传输)。如果对SoAd的传输请求失败(返回E_NOT_OK),UdpNm应在下一个主功能中重试该传输请求。然后,UdpNm将继续使用UdpNmMsg循环时间传输NMpdu。

【规范】如果UdpNm消息周期计时器过期,则应使用UdpNmMsgCycleTime重新启动。

【规范】如果NMpdu的传输已停止,则应取消UdpNm消息周期计时器。

【规范】如果参数UdpNmRetryFirstMessageRequest(见ECUC_UdpNm_00085)为TRUE,如果从总线睡眠过渡到重复消息状态后的第一个传输请求没有被SoAd接受,则在下一个主功能中重复消息请求,直到一个传输请求被SoAd接受。

【规范】如果用结果E_NOT_OK调用UdpNm_SoAdIfTxConfirmation,则UdpNm将调用函数Nm_TxTimeoutException。

3.5.2 NM消息接收

如果已成功接收到NM消息,则SoAd将调用UdpNm_SoAdIfRxIndication。

【规范】在调用UdpNm_SoAdIfRxIndication时,UdpNm模块应将函数参数中引用的网络管理PDU的数据复制到一个内部缓冲区。

【规范】当接收到NM PDU时,如果UdpNmPduRXIndicationEnabled(配置参数)为TRUE,则应调用Nm函数Nm_PduRxIndication。

3.6 其他功能

  • 远程睡眠指示器的检测
  • 用户数据
  • 被动方式
  • 状态更改通知
  • 通信控制
  • NM协调器同步支持
  • 部分网络(PN功能)
  • 总线唤醒功能

3.7 帧结构

下图显示了n个字节PDU长度的示例,其中源节点标识符位于第一个字节中,控制位向量位于第二个字节中,使用了用户数据,并启用了部分网络。用户数据范围位于系统字节和PNC位向量之间:

下图描述了控制位向量的格式:

四、API接口

4.1 API定义

  1. UdpNm_Init
  2. UdpNm_PassiveStartUp
  3. UdpNm_NetworkRequest
  4. UdpNm_NetworkRelease
  5. UdpNm_DisableCommunication
  6. UdpNm_EnableCommunication
  7. UdpNm_SetUserData
  8. UdpNm_GetUserData
  9. UdpNm_GetNodeIdentifier
  10. UdpNm_GetLocalNodeIdentifier
  11. UdpNm_RepeatMessageRequest
  12. UdpNm_GetPduData
  13. UdpNm_GetState
  14. UdpNm_GetVersionInfo
  15. UdpNm_RequestBusSynchronization
  16. UdpNm_CheckRemoteSleepIndication
  17. UdpNm_SetSleepReadyBit
  18. UdpNm_Transmit

4.2 回调通知

  1. UdpNm_SoAdIfTxConfirmation
  2. UdpNm_SoAdIfRxIndication
  3. UdpNm_SoAdIfTriggerTransmit

4.3 调度函数

  1. UdpNm_MainFunction

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533309.html

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

相关文章

创新案例 | 肆拾玖坊白酒0到20亿增长是传销还是创新

01.背景介绍 中国证券报引用公开数据显示,2016年,规模以上白酒企业数量为1578家,2021年,这一数字下降到965家。 同时,白酒产能逐年向优势产区集中,头部企业市场占有率不断提高。2021年,茅台、…

性能测试-操作和优化分析

打流工具 iperf 测试吞吐率 服务端:iperf -u -s 客户端:iperf -u -c 1.1.1.1 -b 500M -t 10 测试结果 ------------------------------------------------------------ Client connecting to 192.168.56.106, UDP port 5001 Sending 1470 byte d…

全面监测健康数据,更实用的健康手表,dido E55S Pro上手

关心健康的朋友,一般都特别关注自己的各项健康数据,会通过智能手表之类的工具来持续检测。现在健康类的智能手表选择很多,功能也很丰富,像是我现在用的这款dido E55S Pro,除了常规的心率、血氧之外,还检测心…

vector【实现】:迭代器失效以及非法的间接寻址、深拷贝中的浅拷贝。

vector模拟实现_云的小站的博客-CSDN博客 目录 主题: 迭代器失效 Insert导致的迭代器失效 ereas导致的迭代器失效 非法的间接寻址 深拷贝中的浅拷贝。 主题: 1)迭代器失效 2)非法的间接寻址 3)深拷贝中的浅拷…

2023年最佳SleekFlow最佳替代品

建立更强大的对话关系的最佳平台是什么?现如今,国内客服集成与营销自动化工具也有非常多,比如SaleSmartly(ss客服),被称为SleekFlow的最佳替代品。了解为什么SaleSmartly是SleekFlow的最佳替代品。在这篇文…

BTC交易费激增,LTC活跃地址数飙升! BRC-20爆火背后,区块链网络经历了什么?

BRC-20 代币和 Ordinals 协议的日益普及推动了对比特币区块空间的需求,比特币区块链的费用已飙升至两年来的高点。 BRC-20代币标准在 Ordinals 协议上运行。Ordinals 允许用户通过将对数字艺术的引用写入基于比特币的小型交易中,来将数据嵌入比特币区块…

网站历史快照查询软件-批量网站历史快照查询

批量网站历史快照查询软件 批量网站历史快照查询软件是一种可以让用户在短时间内批量查询多个网站历史快照的工具,可以极大地提高用户的工作效率。批量实时查询是该软件的一大优势,下面主要介绍批量实时查询的优势。 一、高效性 批量实时查询可以同时…

通过2种Python库,教会你如何在自动化测试时加入进度条?

前言 我们在执行自动化测试或者调试时,自动化测试用例数量过多,不清楚目前用例数执行了多少个了,还差多少个执行完成。 这时候就会猜想,如果执行过程中存在进度条,就很清楚的了解到测试用例的执行情况,今…

Cannot read properties of null (reading ‘content‘)报错解决

项目是用vue3webpack,始终启动不成功~ 一、问题报错 二、报错解决尝试总结 (1)首先尝试的是因为我近期在做vite3vue3的需求把node版本升到了 16.17.1 猜测是不是node版本影响的 node版本切了14.15.3,16.17.1,以及很…

【换根DP+容斥】P3047 [USACO12FEB]Nearby Cows G

P3047 [USACO12FEB]Nearby Cows G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 思路: 做法就是换根 预处理dp[v][j]用普通的树形DP处理即可 注意:一开始预处理的dp[v][j]指的是在v的子树里离v为j的权值和 Code: #in…

JavaWeb12-三大组件之过滤器-Filter

1. 官方文档 文档:java_ee_api_中英文对照版.chm 2. Filter 过滤器说明 2.1 为啥要过滤器-需求示意图 ● 一图胜千言 2.2 过滤器介绍 Filter 过滤器它是 JavaWeb 的三大组件之一(Servlet 程序、Listener 监听器、Filter 过滤器)Filter 过滤器是 JavaEE 的规范…

图像处理:手写实现图像增广算法(旋转、亮度调整、裁剪与拼接)

前言 图像增广算法在计算机视觉领域扮演着至关重要的角色。随着深度学习的兴起,大规模数据集的需求变得更加迫切,而图像增广算法可以通过对原始图像进行一系列变换,扩充数据集,从而提升模型的泛化能力和鲁棒性。 本文将着重介绍…

win10系统cpu版本 Tensorflow2.5.0的安装

文章目录 前言电脑重装系统了,顺便简单记录一下我的tensorflow2.5.0 CPU的安装过程 一、创建一个虚拟环境?二、确定 输入 y三、激活你的环境四、安装tensorflow2.5.0五、利用清华镜像源加速一下,不然等到猴年马月!六,开…

Shape-E:文字到3D的生成模型试用

文章目录 Shape-E:文字到3D的生成模型试用项目介绍项目地址项目使用试用Text to 3DImage to 3D 总结 Shape-E:文字到3D的生成模型试用 项目介绍 Shape-E是一个生成3D模型的工具,可以通过输入文字或者上传图片生成3D模型。该模型的项目地址是…

穿越火线(CF) AI 自瞄 代码 权重 数据集 亲测可用(结尾有资源)

初衷 本人热衷玩CF,同时为一名程序员,近期听说AI霸占FPS游戏,本着学习的态度,特来测试 不喜欢看过程的小伙伴直接看最下面 模型 采用yolov5模型架构 对过程感兴趣的小伙伴下文自行学习 https://zhuanlan.zhihu.com/p/17212138…

数字孪生技术在矿业领域怎样应用?

随着科技的不断发展,数字孪生技术正逐渐走入矿业领域,为这个传统行业带来了全新的变革和机遇。数字孪生技术以其精准模拟和实时监控的特性,为矿业企业提供了更高效、更安全的运营和管理方式。 在矿业开采过程中,数字孪生技术的应…

代码随想录算法训练营day42 | 01背包问题,你该了解这些!,01背包问题,你该了解这些! 滚动数组 , 416. 分割等和子集

代码随想录算法训练营day42 | 背包理论基础,背包理论基础(滚动数组), 416. 分割等和子集 1、01背包理论基础背包问题概述01背包二维dp数组01背包案例 2、01背包理论基础(滚动数组)3、 416. 分割等和子集解…

Redis持久化-Redis主从-Redis哨兵-Redis分片集群

主要内容 Redis持久化Redis主从Redis哨兵Redis分片集群 Redis持久化 Redis有两种持久化的方案: RDB持久化AOF持久化 1. RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所…

数字化时代下,制造业企业应该这样做仓库管理

透过现象看本质,在传统的仓储管理中都存在着以下问题: 1.信息化水平较低,以人工为主,以纸张为主,效率低下,容易出现错误; 2.信息流的不对称性,各个过程之间的联系不紧密,…

【高危】Apache Spark UI shell 命令注入漏洞(POC)

漏洞描述 该漏洞是针对此前CVE-2022-33891漏洞的修订,原有漏洞通告中认为3.1.3版本已修复该漏洞,后发现仍受到影响,3.1.3版本已不再维护,官方建议升级至3.4.0版本。 Apache Spark是美国阿帕奇(Apache)软件…