新竹网站,wordpress 301怎么写,wordpress网站关闭,porto 4wordpress下载这是AUTOSAR网络管理梳理的第二篇文章#xff0c;主要讲解AUTOSAR网络管理的相关参数。第一篇链接【01 AUTOSAR网络管理基础】。
相关参数有很多#xff0c;我挑了一些相对重要的参数#xff0c;分三部分进行讲解#xff1a;
第一部分#xff1a;比较常用#xff0c…这是AUTOSAR网络管理梳理的第二篇文章主要讲解AUTOSAR网络管理的相关参数。第一篇链接【01 AUTOSAR网络管理基础】。
相关参数有很多我挑了一些相对重要的参数分三部分进行讲解
第一部分比较常用且关乎到AUTOSAR网络管理各个状态之间的流转个人觉得相对重要些所以单独整理出来。
第二部分相对比较少用。其中Coordinator相关功能一般GW节点才可能会用上所以普通节点用得相对比较少。
第三部分AUTOSAR标准文档里未找到相关参数但实际应用中会用的一些参数。 第一部分网络管理状态机流转主要参数
CanNm的参数有很多如下八个参数关乎到AUTOSAR网络管理各个状态之间的流转个人觉得相对常用/重要些所以单独整理出来分别为 CanNmMsgCycleTime CanNmImmediateNmCycleTime CanNmImmediateNmTransmissions CanNmRepeatMessageTime CanNmTimeOutTime CanNmWaitBusSleepTime CanNmRemoteSleepIndTime CanNmMsgTimeoutTime
以上这些参数均在AUTOSAR_SWS_CANNetworkManagement.pdf文档中有详细描述。
如上8个参数我结合AUTOSAR网络管理状态机整理成一个AUTOSAR网络管理的时序图具体如下。
大家可结合每个参数的详细描述来进行理解。 1.1、CanNmMsgCycleTime
如下两种情况网络管理报文的发送周期为CanNmMsgCycleTime。
1) NM网络模式中的RMS状态的正常发送子状态下网络管理报文发送周期。
2) NM网络模式中的NOS状态下网络管理报文发送周期。
即当NM处理下图这两个标绿色背景的状态时则NM报文以CanNmMsgCycleTime进行发送。 一般设置为500ms或1000ms具体以OEM要求为准。
Network Management PDU的传输周期通常由定时参数CanNmMsgCycleTime决定。
注意对于同一个网络管理集群中的所有NM节点该参数必须相等。 若网络管理集群的成员数量较多则可能将导致总线负荷过大。
故AUTOSAR网络管理引入了CanNmMsgCycleOffset与CanNmMsgReducedTime两个参数分别用途如下
CanNmMsgCycleOffset主要用来防止突发
CanNmMsgReducedTime主要用来降低CAN总线负荷。
这两个参数第二部分再详细展开说明。 1.2、CanNmImmediateNmCycleTime
当节点处于NM网络模式中RMS状态的快速发送子状态时网络管理报文发送周期。
一般设置为20ms具体以OEM要求为准。 1.3、CanNmImmediateNmTransmissions
当节点处于RMS状态的的快速发送子状态时 节点使用T_NM_ImmediateCycleTime为周期发送网络管理报文的数量。
一般设置为5次或10次具体以OEM要求为准。 即网络唤醒时网络管理以周期CanNmImmediateNmCycleTime进行报文发送共发送CanNmImmediateNmTransmissions次之后再切换为以CanNmMsgCycleTime为周期进行发送。
如果CanNmImmediateNmTransmissions取值为0则当网络唤醒时不会以T_NM_ImmediateCycleTime为周期立即发送NM PDU而是一直以CanNmMsgCycleTime为周期进行发送。
该参数设置为非0时若网络从休眠状态唤醒则主动唤醒的节点会快速发出多个网络管理报文这样可以让总线上的其他节点更快速、更稳定的被唤醒所以一般网络管理都会使用该参数。
dependency要求
1) If CanNmImmediateRestartEnabled true then CanNmImmediateNmTransmissions 0
2) If CanNmPnHandleMultipleNetworkRequests True then CanNmImmediateNmTransmissions 0 1.4、CanNmRepeatMessageTime
描述了节点在RMS重复报文状态(Repeat Message State)中持续的时间。
dependency要求
1) CanNmRepeatMessageTime n * CanNmMsgCycleTime;
2) CanNmRepeatMessageTime CanNmImmediateNmTransmissions * CanNmImmediateNmCycleTime 一般应该等于n * CanNmMsgCycleTime其中n表示在重复消息状态下正常发送的NM PDU的数量。 若取值为0则表示没有配置重复消息状态。这意味着重复消息状态是暂时的这意味着它在进入后立即离开因此不保证启动的稳定性也无法进行节点检测过程。 当网络管理状态机进入Repeat Message State状态时 网络管理报文Byte1Control Bit Vector中的Bit0: Repeat Message Request则置为1并启动计时。当计时到达后重新切换到Normal Operation State。
任一网络管理节点接收到该网络管理报文时均会进入Repeat Message State并启动计时。当计时到达后重新切换到Normal Operation State。
具体如下图示例 网络管理报文Byte1Control Bit Vector中的Bit0: Repeat Message Request不是必须支持的具体看OEM要求。 1.5、CanNmTimeoutTime
描述了节点在NM网络模式(Network Mode)的超时阈值。
即在NM网络模式中的准备睡眠状态(Ready Sleep State)时若持续CanNmTimeoutTime(即状态机中的Nm-Timeout)未接收网络管理报文则该定时器超时 然后节点进入准备总线睡眠模式(Prepare Bus Sleep Mode)。 dependency要求
1) CanNmTimeoutTime CanNmMsgCycleTime 对于网络管理集群中的所有节点该参数应该是相等的。
2) CanNmTimeoutTime CanNmMsgCycleTime
如果无本地网络请求并且总线上没有接收到Network Management PDUs的时间达CanNmTimeoutTime CanNmWaitBusSleepTime那么应该执行转换到Bus-Sleep Mode。
网管集群中的所有网络节点都要配置相同的CanNmTimeoutTime和 CanNmWaitBusSleepTime故网络管理集群的所有节点会大约同时执行向Bus-Sleep Mode的转换。 1.6、CanNmWaitBusSleepTime
它表示NM在转换到Bus-Sleep Mode之前在Prepare Bus-Sleep Mode中停留的时间。
网络管理集群中的所有节点的参数dependency都需相等。且应该足够长以使所有的Tx缓冲区为空。 1.7、CanNmRemoteSleepIndTime
远程睡眠指示超时。它以秒为单位定义了识别所有其他节点准备休眠所需的时间。
如果在CanNmRemoteSleepIndTime时间内没有收到处于NOS状态的Network Management PDU则CanNm模块将调用回调函数Nm_RemoteSleepIndication。即CanNm通知Nm模块本CanNM的所有节点已进入RSS状态。
如果此时节点又收到了其他节点发送的处于NOS状态的网络管理报文应该再调用Nm_RemoteSleepCancellation()函数通知应用层取消之前的指示。
dependency要求
1) 要求CanNmRemoteSleepIndTime ≥ CanNmMsgCycleTime
2) 仅当CanNmRemoteSleepIndEnabled true该参数CanNmRemoteSleepIndTime才有效 1.8、CanNmMsgTimeoutTime
当调用发送接口CanIf_Transmit发 送NM PDU时启动该定时器
当NM PDU发送完成后并调用 CanNm_TxConfirmation则停止该定时器。
如果CanNmGlobalPnSupport设置为TRUE并且定义了CanNmMsgTimeoutTime并且CanNm请求发送一个NM PDU(调用CanIf_Transmit)则CanNm将以CanNmMsgTimeoutTime开始NM Message Tx Timeout Timer。
如果将CanNmGlobalPnSupport设置为TRUE定义了CanNmMsgTimeoutTime并调用了CanNm_TxConfirmation则CanNm将停止NM Message Tx Timeout Timer
要求如下
1) 当使用Partial Network并且定义了这个超时时间时则CanNm监视在此传输超时时间内成功传输的NM-PDU否则提供错误通知。
2) CanNmMsgTimeoutTime CanNmMsgCycleTime
3) 仅当“CanNmPassiveModeEnabled”和“CanNmImmediateTxConfEnabled”设置为“FALSE”“CanNmPnEnabled”设置为“TRUE”时此参数才有效。 第二部分其他AUTOSAR参数
第二部分相对比较少用。其中Coordinator相关功能一般GW节点才可能会用上。
主要列了如下三个参数
1、CanNmMsgCycleOffset
2、CanNmMsgReducedTime
3、NMGlobalCoordinatorTime 2.1、CanNmMsgCycleOffset
参数CanNmMsgCycleOffset的作用主要用来防止报文突发。
如果不是通过CanNm_NetworkRequest或CanNmImmediateNmTransmissions0这两种方式进入Repeat Message State则进入Repeat Message State后NM PDU将会延时CanNmMsgCycleOffset发出。
如下两种情况不允许使用参数CanNmMsgCycleOffset
1) 当由于CanNm_NetworkRequest() (active wakeup)而从Bus Sleep Mode或Prepare Bus Sleep Mode进入Repeat Message状态时如果CanNmImmediateNmTransmissions的值大于零则NM PDU将使用CanNmImmediateNmCycleTime作为周期时间进行传输。应尽快触发第一个NM PDU的发送。发送完成后报文周期计时器(Message Cycle Timer)将被重新加载为CanNmImmediateNmCycleTime。 在这种情况下不能使用CanNmMsgCycleOffset。
2) 如果CanNmPnHandleMultipleNetworkRequests设置为TRUE则CanNm_NetworkRequest将触发从Network Mode到Repeat Message state的状态转换。如果使能了PDU transmission能力则发送的NM PDU使用CanNmImmediateNmCycleTime作为周期时间。应尽快触发第一个NM PDU的发送。
发送完成后报文周期计时器(Message Cycle Timer)将被重新加载为CanNmImmediateNmCycleTime。在这种情况下不能使用CanNmMsgCycleOffset。 2.2、CanNmMsgReducedTime
CanNmMsgReducedTime主要可以用来降低CAN总线的负荷。 关于CanNmMsgReducedTime主要有如下两个规则
1) 若节点收到网络管理报文后则将下帧网络管理报文的计时时间重新加载为CanNmMsgReducedTime取值范围为0.5CanNmMsgCycleTime ~ CanNmMsgCycleTime
2) 若节点发送了网络管理报文后则将下帧网络管理报文的计时时间重新加载为CanNmMsgCycleTime 如果收到网络管理PDU则用节点特定的定时参数CanNmMsgReducedTime重新加载CanNm消息周期定时器。
节点具体时间CanNmMsgReducedTime应该大于½CanNmMsgCycleTime小于CanNmMsgCycleTime。 如果发送了网络管理PDU则用网络管理集群特有的定时参数CanNmMsgCycleTime重新加载报文周期定时器。
这会导致以下行为:
只有CanNmMsgReducedTime时间最小的两个节点在网络中交替传输Network Management PDU。如果其中一个节点停止传输则下一个CanNmMsgReducedTime时间最小的节点开始传输Network Management PDU。
如果网络中只有一个节点需要总线通信则每个CanNmMsgCycleTime发送一个network Management PDU。 如果全局使能了bus load reduction机制(CanNmBusLoadReductionEnabled为TRUE)对于激活的特定网络使能了PDU传输能力并且为该网络调用了CanNm_RxIndication功能则CanNm模块将以节点特定时间CanNmMsgReducedTime重新启动CanNm消息周期定时器 取值范围如下
0,5 * CanNmMsgCycleTime ≤ CanNmMsgReducedTime CanNmMsgCycleTime
该参数仅在满足如下条件时有效
CanNmBusLoadReductionEnabled True and
CanNmBusLoadReductionActive True and
CanNmPassiveModeEnabled False
CanNmMsgReducedTime具体是如何降低CAN总线的负荷的可以详见如下解析或可以详见《AUTOSAR_SWS_CANNetworkManagement.pdf》中11章节。 三个节点连接到总线处于“正常运行”状态。CanNmMsgReducedTime最小的节点(Node 1和Node 2)交替发送各自的Network Management PDU。过了一会儿节点1进入“就绪睡眠”状态。节点2和节点3正在交替发送网络管理PDU。过了一会儿节点2也进入“就绪睡眠”状态。由于节点3是总线上的最后一个节点因此只有节点3使用CanNmMsgCycleTime发送消息。 具体每个时刻解析如下
在T1时刻
1) Node1发出网络管理报文故设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms
2) Node2收到Node1的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime50ms
3) Node3收到Node1的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime60ms 在T2时刻
1) 故Node2会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms
2) Node1收到Node2的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime40ms
3) Node3收到Node2的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime60ms 在T3时刻
1) 故Node1会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms
2) Node2收到Node1的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime50ms
3) Node3收到Node1的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime60ms 在T4时刻Node1不再需要网络故停止发送NM报文。 在T5时刻
1) 故Node2会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms
2) Node3收到Node2的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime60ms 在T6时刻
1) 故Node3会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms
2) Node2收到Node3的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime50ms 在T7时刻
1) 故Node2会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms
2) Node3收到Node2的网络管理报文故设置本节点下次NM的发送时间为CanNmMsgReducedTime60ms 在T8时刻Node2不再需要网络故停止发送NM报文。 在T9时刻
1) 故Node3会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms 在T10时刻
1) 故Node3会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms 在T11时刻
1) 故Node3会在此时发出网络管理报文且设置本节点下次NM的发送时间为CanNmMsgCycleTime70ms 备注CanNmMsgCycleOffset和CanNmMsgReducedTime主要来用降低CAN 总线负荷如果网络上的NM节点不多的情况下一般不会使用这两个参数。做了几个项目了目前OEM实际也比较少用这两个参数。 2.3、NMGlobalCoordinatorTime
讲这个参数之前先大概讲解下Coordinator相关知识。
AUTOSAR网络管理主要涉及两个软件模块CanNMNM模块。
前面介绍的参数都是CanNM相关的内容而参数NMGlobalCoordinatorTime是Nm模块相关的内容。
NM模块是在CanNM的上层ComM通过NM模块与特定总线NM模块如CanNM进行通信从而实现完全的抽象和硬件总线的独立性。
可以参考下图应该就能大概理解CanNm和NM模块的用途及区别了。 NM模块主要涉及如下代码文件
Nm.c (src\components\nm\implementation
Nm.h (src\components\nm\implementation)
Nm_Cbk.h (src\components\nm\implementation)
NmStack_Types.h (src\components\nm\implementation
Nm_Cfg.c(src\gendata)
Nm_Cfg.h (src\gendata)
Nm_Lcfg.c (src\gendata)
SchM_Nm_Type.h(src\gendata) 那什么时候会用到协调器coordinator呢再看下面另一张图: 上图中ECU1~ECU5采用CAN总线连接在一起。 其中ECU1和ECU2采用AUTOSAR CanNM网络管理 ECU3和ECU4采用其他网络管理如J1939NM ECU5同时需支持AUTOSAR CanNM和J1939NM两种网络管理。
综上ECU1~ECU4无需支持coordinator功能但ECU5需支持coordinator功能。
OK返回来讲一下参数NmGlobalCoordinatorTime该参数定义了连接和协调的NM-Cluster的最大关闭时间。
说白话就是因为同时连接了多个网络管理所以必须每个网络管理都休眠了才能让系统进入休眠该参数是为了协调这个的。
NmGlobalCoordinatorTime只有在NmCoordinatorSupportEnabled为TRUE时才有效。
NmGlobalCoordinatorTime至少应设置为关闭所有协调的网络所需的最大时间示例如下图 注意上图涉及了3个GW4个network。 第三部分其他参数
第三部分AUTOSAR标准文档里未找到相关参数但实际应用中会用的一些参数。
主要有如下参数
1、T_WAKEUP
2、T_START_NM_TX
3、T_START_AppFrame 3.1、T_WAKEUP
节点从唤醒事件发生远程唤醒、本地唤醒事件到发出第一帧网络管理报文的最大允许时间间隔。
一般可设置为100ms~200ms具体以OEM要求为准。 3.2、T_START_NM_TX
该参数定义了节点从准备总线睡眠模式(Prepare Bus Sleep Mode)、 常规运行状态(Normal Operation State)或准备睡眠状态(Ready Sleep State)进入重复报文状态(Repeat Message State) 到发出第一帧网络管理报文的最大允许时间间隔。
一般可设置为10ms-50ms具体以OEM要求为准。 3.3 T_START_AppFrame
成功发送第一帧网络管理报文后,到开始发送APP报文的最大间隔。
一般可设置为20ms-50ms具体以OEM要求为准。 4、总结
将如上所有参数汇总整理成下表