udp是什么意思(意思是什么)


1 前言

有些标题党不好意思,但是这个真的是我在了解了网络上的资料之后,被迫写出来的。网络上的大多只是起到了一个autosar官方PDF翻译,没有说清楚问题或者误导了很多人,也没有人说为什么要这样设计udpnm协议?udpnm的各个状态的含义?本文档立足于以大白话方式去讲解,但是通俗与严谨之中需要取舍。

新能源车上有各种各样的ECU,这些ECU都是需要用电的,蓄电池的电量是有限的,如果所有的ECU一直都工作,那么车辆的续航肯定会严重受到影响,因此为了尽可能的省电,所以就提出了网络管理UdpNm,类似的还有CanNm等来节约电量,他们是针对不同总线类型的网络管理,内部原理其实都是一样的。

2 介绍2.1 UdpNm状态机

udp是什么意思

UdpNm 是一个表示以太网状态的状态机,状态机的作用就是根据不同的触发条件转换到对应的状态,而这些状态也是电源管理唤醒休眠的重要参考指标。这里以一群通过电话会议的人来举例,对各个状态进行介绍:

这里举例的是一群人通过电话开会的场景类比ECUs在同一网络之中通信的场景,便于小白们理解。ECU相当于参会者,电话线相当于以太网线。

在没有开会的时候所有人都会处于一个休息阶段(即这里的Bus Sleep Mod),当某人想要开会讨论的时候,会打电话拨号,把所有处于休息状态的人惊醒(这里的拨号动作就相当于唤醒行为)。所有的与会者都会进入Repeat Message State,这个状态是他们被唤醒之后正式开始进入工作状态 Normal Operation State 前的准备工作(对于被唤醒的ECU,他们会进行的准备行为比如被动唤醒节点会进行唤醒应答,表示我醒了,以实现探测现存节点之类作用),之后有的节点会进入 Normal 状态开始嘴遁输出同时聆听他人的话;有的会进入 Ready 阶段只听他人说话,自己本生不像参加这场会议。当最后一个不说话的人也不说话时候,大家都会进入 Prepare 阶段,收拾笔记桌面,准备进入休眠阶段(即Bus Sleep Mod)。

上面说的案例为了小白更容易理解,仅仅是单独某个ECU来说的udp是什么意思,实际是需要结合多个ECU来一起分析。

udp是什么意思

同时如上图蓝色部分,AUTOSAR还设计了两个状态。两个状态分别表示udp是什么意思,软件组件需要在总线上通信(网络状态为“requesed”);或者软件组件不需要在总线上通信(总线网络状态为“released”)。与这五个状态具有以下包含关系:

udp是什么意思

如上图:PNC(Partial Networking Cluster)是一组ECU,它们通常需要同时进行通信。每个PNC都会被映射到一个或多个通道(channel)上,每个通道代表的是一根物理总线。

"The AUTOSAR UdpNm are received by all nodes in the cluster via broadcast transmission. Reception of NM packets indicates that sending nodes want to keep the NM-cluster awake. If any node is ready to go to the Bus-Sleep Mode, it stops sending NM packets, but as long as NM packets from other nodes are received, it postpones transition to the Bus-Sleep Mode. Finally, if a dedicated timer elapses because no NM packets are received anymore, every node initiates transition to the Bus-Sleep Mode. If any node in the NM-cluster requires bus-communication, it can keep the NMcluster awake by transmitting NM packets."

上面是官方介绍udpnm,从中我们可以知道udpnm的一些运行机制规则:

提炼上面四点,得到如下结论:

上面的话可以仔细想想。

2.2 电源管理

电源管理作为降低能耗的服务,需要确保ECU在不需要工作时可以进入低功耗模式,减少不必要的能源浪费。让我们通过下面两个问答,了解电源管理通用的运行机制是怎样的,这样会更清楚为何需要UdpNm:

- power manager 什么时候会使 ECU 进入睡眠模式?

答:电源管理会不断检查ECU是否有空闲间隙,当它发现ECU有空闲间隙,就会将ECU置于低功耗模式。

- power manager 如何保持 ECU 唤醒状态?

答:当存在唤醒源的刺激时,ECU就会唤醒。唤醒源唤醒本质都是短暂的,即唤醒源刺激后,ECU只会活跃一小会儿,唤醒源需要不断刺激,ECU才会保持长期唤醒。我们根据这个特点把唤醒源分为保持的和非保持的。例如,外部串口设备向ECU发送数据,这个唤醒源是保持的,ECU会一直保持活跃状态;如定时器唤醒则不保持,过一会儿,ECU就会睡下去。

电源管理通过寻找ECU空闲的时候(表明当前ECU没有唤醒源去维持唤醒),使能ECU睡眠下去,从而达到节能的目的,可以参考下图去理解。

udp是什么意思

我们需要像UdpNm这样的东西,作为一种保持的唤醒源,它不断周期发送的udp消息被ECU接受到后,经过校验合格,会使电源管理维持板子的唤醒状态。因此我们可以根据业务控制某组或者某个ECU保持唤醒的时长,以进行处理业务。当业务完成的时候,这些ECU会因为缺乏唤醒刺激而进入睡眠状态。

UdpNm作为一种维持唤醒源,维持ECU唤醒状态。在没有唤醒ECU之前,它可能需要知道唤醒哪些ECU以及什么时候唤醒,而这些信息都是电源管理提供给它的。下面进一步说明。

2.3 UdpNm作为电源管理的工具

这里介绍的是UdpNm与电源管理的关系。电源管理根据业务需要,会控制唤醒哪些ECU以及什么时候唤醒这些ECU,即时间和范围。如2.1所说,它提供这两个信息给 UdpNm。电源管理作为决策者,UdpNm作为动作的执行者。所以它执行动作如下:

根据UdpNm状态机,用户开发的电源管理服务根据不同状态做出对应的决策。例如,如果当前状态机的状态是 Network Requested,表明当前需要总线通信来处理业务,电源管理则维持ECU的唤醒状态。当电源管理主动释放网络,表示不需要总线通信时候,状态是Network Released,ECU则会被睡眠。

总的来说,AUTOSAR中的网络管理模块和电源管理模块共同完成电源管理任务。UdpNm作为工具会提供API给电源管理,电源管理传入时间和范围这两个参数,UdpNm根据这两个参数去执行动作。

3 如果是我,我会怎样设计UdpNm

这里我会以我的角度,在不考虑可靠性的情况下,去设计一个简单的网络管理状态机,目的是为了说明AUTOSAR设计 Prepare Sleep State 和 Repeat Message State这两种状的目的和作用。

3.1 我设计的简单状态机

实际场景之中,同一个网络的ECU之间互相通信,可以总结为以下三种场景:ECU主动发送消息同时也可以接收消息;接收消息但是不发消息;或者没活干睡眠。类似通过电话讨论的一群人,有人既说话也听别人说话,有人只听别人说话,有人啥也不干休息。以此,我简单设计的状态机包含三种状态,分别是:

状态之间的转换关系是这样:

udp是什么意思

说明:上图之中的状态机与AUTOSAR的相比,除了少了两个状态repeat和prepare之外,其他的条件与AUTOSAR均一致:

这里定义的三个状态,似乎囊括了ECU的所需的场景,满足状态转换场景。但是有一些问题:

如何保证ECU在进入工作状态normal时,需要互动的ECU已经被唤醒?见3.1.3解释

如果直接从ready进入bus sleep,ECU直接睡下去,这个时候已经存在于内核发送缓冲区的数据怎么办?直接扔弃的话会影响应用业务等。见3.1.4解释

于是AUTOSAR新增了以下两个状态,解决上述两个问题。

3.2 AUTOSAR设计的状态机

AUTOSAR把状态分为了下图这几种,转换关系如下图:

udp是什么意思

3.3 AUTOSAR添加Bus-Sleep Mode的原因

“The purpose of the Prepare Bus Sleep state is to ensure that all nodes have time to stop their network activity before the Bus Sleep state is entered. Bus activity is calmed down (i.e. queued messages are transmitted in order to empty all Tx-buffers) and finally there is no activity on the bus in the Prepare Bus-Sleep Mode. ”

当处于prepare时候,网络之中已经没有ECU在发送message了,如果网络之中没有ECU要发送消息,UdpNmWaitBusSleepTime(这是一个配置参数,表明在真正进入睡眠前需要需要待在prepare的时长)时间后,网络之中的所有nodes都会进入睡眠。prepare在这里有两点作用:

UdpNmWaitBusSleepTime时间内,这里是一个冷静期,也是一个确认时期,确认channel之中的任何ECU是否还需进行总线通信。给予某些ECU反悔的机会——醒来的机会,减少物理层的频繁休眠唤醒动作。

更重要的是:给予时间传输Tx-buffers的消息,断开PHY链路等,使物理层睡眠下去,这样不影响应用报文的正常发送。

在这种模式下,从进入Prepare Bus Sleep Mode时刻到UdpNmWaitBusSleepTime超时这段时间,ECU应停止APP帧的传输,关闭TCP/IP套接字,请求物理层进入睡眠模式(物理层应实施响应的动作,包括清除TX缓冲区,TCP/IP断开连接,以太网PHY链路断开等)。

设想一下,如果没有prepare,那么会直接从ready直接进入bus sleep,即直接进入休眠,这个时候如果还有应用层的消息在内核缓冲区,可能会没有发送出去,从而影响上层服务的业务。

新增一个Prepare Bus Sleep Mode状态,作为从ready到bus sleep的缓冲带是很有必要的。

3.4 AUTOSAR添加Message State Mode状态的原因

"For nodes that are not in passive mode the Repeat Message State ensures, that any transition from Bus-Sleep or Prepare Bus-Sleep to the Network Mode becomes visible for the other nodes on the network. Additionally, it ensures that any node stays active for a minimum amount of time (UdpNmRepeatMessageTime)."

这个状态的存在有以下几点作用:

检测网络之中的现存节点。

动态PNC-to-cnannel 映射

确保唤醒其他节点之后再进行正常通讯。

检测网络之中的现存节点,是指PNC内之中哪些节点已经被唤醒,哪些没有被唤醒。

总结上面两点,通过主动唤醒节点在repeat阶段超时未收到被动唤醒节点发送的消息,以此来判断节点未被唤醒。

(主动唤醒与被动唤醒是靠CBV之中的Active Wakeup Bit来区别的。在repeat状态下,对于主动唤醒发送的消息,CBV之中的Active Wakeup Bit被设置为1。离开网络模式时,此位被清除;对于被动唤醒发送的消息,CBV之中的Active Wakeup Bit不会被设置为1。)

在AUTOSAR中,"PNC-to-channel-mapping" 是一个可选的功能,它允许系统动态地学习和确定哪些PNC与哪些通道相关联。在一个复杂的车载网络系统中,可能有多个PNC和多个通道。每个PNC可能包含一组ECU,每个通道可能连接一组ECU。PNC和通道之间的关系可能会随着系统的运行而变化。通过启用"PNC-to-channel-mapping"功能,系统可以动态地学习和更新这些关系。

AUTOSAR需要这么一个状态,它具有发送消息,即需要发送消息应答的能力,才能完成上述所说的能力,在3.1.1我设计的状态机之中,只有normal operation state阶段可以发送消息,我可以把AUTOSAR的repeat状态"镶嵌"到normal的状态初始位置,让我设计的normal同时具有AUTOSAR设计的repeat和normal状态的能力。但是AUTOSAR并没有这么做,个人认为应该是以下原因:

Repeat message state的设计原因:repeat停留时长短暂,很多行为与normal相似,大胆猜测AUTOSAR把这个repeat单独拎出来作为一个状态,最终目的是为了解耦,使状态功能简单专一。在normal状态正式周期传输message前,需要完成物理层面的唤醒,节点探测等功能,PNC路由等,节点有序唤醒等工作,而这些工作都分出去。使状态机的各个状态作用更加清晰明了。Normal operation State Just operate normally.

udpnm作为应用服务的依赖,RMS状态的设计是udpnm可靠性的重要表现之一。

5 参考文档

AUTOSAR_SWS_COMManager.pdf

AUTOSAR_SWS_UDPNetworkManagement.pdf

6 缩写含义

Abbreviation / Acronym

Description

NM-Channel

Logical channel associated with the NM-cluster

NM-Cluster

Set of NM nodes coordinated with the use of the NM algorithm.

PNC

Partial network cluster

Bus

Physical communication medium to which a NM node/ecu is connected to.

channel

Logical bus to which the NM node/ecu is connected to

network

Entity of all NM nodes/ecus which are connected to the same bus.

WUP

Wake Up Pulse

WUR

Wake Up Request

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ3361245237,本站将立刻清除。