CanNm产品参考手册
缩写词注解
缩写词 |
英文全称 |
中文解释 |
API |
Application Programming Interface |
应用程序接口 |
BSW |
Basic Software |
基础软件模式管理 |
CanIf |
Can Interface |
Can接口模块 |
DEM |
Diagnostic Event Manager |
诊断事件管理模块 |
DET |
Default Error Tracer |
默认错误检测模块 |
NM |
Network Management |
网络管理 |
PDU |
Protocol Data Unit |
协议数据单元 |
SDU |
Service Data Unit |
服务数据单元 |
PNI |
Partial Network Information |
部分网络信息 |
PN |
Partial Network |
部分网络 |
PNC |
Partial Network Cluster |
部分网络集群 |
ERA |
External Request Array |
外部请求集合 |
EIRA |
External and Internal Request Array |
外部和内部请求集合 |
CanNm |
Can Network Management |
Can网络管理 |
CBV |
Control Bit Vector |
控制位向量 |
CWU |
Car Wakeup |
车辆唤醒 |
简介
CanNm模块的核心功能是协调网络正常运行和总线睡眠模式之间的转换,除此之外,还提供了可选功能,例如检测当前节点或检测其他所有节点是否准备休眠等。
CanNm提供网络管理接口(Nm)和CanIf模块之间的适配。CanNm通过调用CanIf模块的发送API来传输数据,并提供接收API给CanIf用于接收下层网络管理报文。Nm模块调用CanNm模块API来更改CanNm的当前状态机状态,CanNm的状态机模式切换需要通知给Nm模块。
图1-1CanNm在AUTOSAR中的位置
CanNm模块的主要功能为:
1、协调网络正常运行和总线睡眠模式之间的转换
2、可选功能
1)检测远程睡眠指令功能
2)用户数据功能
3)被动模式功能
4)NM PDU Rx指示功能
5)状态变化通知功能
6)通讯控制功能
7)NM协调器同步支持功能
减负载功能
3、局部联网功能
4、车辆唤醒功能
参考资料
[1] AUTOSAR_SWS_ CANInterface.pdf,R19-11
[2] AUTOSAR_SWS_CANNetworkManagement.pdf,R19-11
[3] AUTOSAR_SWS_PDURouter.pdf,R19-11
[4] AUTOSAR_SWS_NetworkManagementInterface.pdf,R19-11
[5]AUTOSAR_SWS_COMManager.pdf,R19-11
功能描述
AUTOSAR CanNm基于分散的直接网络管理策略,这意味着每个网络节点仅根据在通信系统内接收和/或发送报文,执行自给自足的活动。
AUTOSAR CanNm协调算法基于周期性的NM数据包,集群中的所有节点都通过广播传输接收这些数据包。接收到NM数据包表明发送节点要保持NM集群处于唤醒状态。如果任何节点准备好进入总线睡眠模式,它将停止发送NM数据包,但是只要接收到来自其他节点的NM数据包,它就会推迟过渡到总线睡眠模式。如果在专用计时器超时前都未接收到NM数据包,则每个节点都会启动到总线休眠模式的转换。CanNm通过状态机切换和各状态定时器管理来完成协调算法。
状态机切换
模式介绍
首先介绍AUTOSAR CanNm协调算法的三种操作模式:
Network Mode 网络模式
Prepare Bus-Sleep Mode准备总线睡眠模式
Bus-Sleep Mode总线睡眠模式
当本节点的操作模式发生变化的时候,需要通知上层Nm。
图2-1 CanNm状态机
Network Mode
Network Mode下包括三种内部状态:
Repeat Message State重复消息状态
Normal Operation State正常运行状态
Ready Sleep State就绪睡眠状态
下面对这三种状态分别说明:
Repeat Message State
当节点配置为Passive Mode的节点,意味着该节点只能接受报文而不能传输任何报文,关于Passive Mode具体的将在下面章节中进行说明。
对于非Passive Mode的节点,Repeat Message State可确保从Bus-Sleep或Prepare Bus-Sleep到Network Mode的任何过渡对于网络上的其他节点都是可见的。此外,它确保所有节点在CanNmRepeatMessageTime(配置参数)内保持活动状态。当CanNmRepeatMessageTime配置为0,表示未配置Repeat Message State。这意味着Repeat Message State是瞬态的,在进入后立即离开,因此无法保证启动稳定性,并且无法执行节点检测过程。当CanNmRepeatMessageTime超时后,节点将离开Repeat Message State而切至其他状态。若当前网络状态为请求,切换到Normal Operation State,若当前网络状态为释放,切换到Ready SleepState。
当非Passive Mode的节点从Bus-SleepMode, Prepare-Bus-Sleep Mode,Normal Operation State或Ready Sleep State进入Repeat Message State时,传输功能应该被重启,为了防止总线数据爆发,降低负载,每次进入Repeat Message State时,都要延迟CanNmMsgCycleOffset(配置参数)段时间后,再开始传输数据,若配置CanNmImmediateNmTransmissions并且网络被请求则不需要延迟CanNmMsgCycleOffset时间。
(2)Normal Operation State
Normal Operation State可确保只要需要网络功能,任何节点都可以使NM集群保持唤醒状态。当处于Normal Operation State,节点按照CanNmMsgCycleTime周期发送报文,当网络释放后,CanNm进入ReadySleep state。
(3)Ready Sleep State
Ready Sleep State可确保NM群集中的任何节点都在等待过渡到Prepare Bus-Sleep Mode。
当进入Ready Sleep State,本节点就不再传输数据。当节点接收到其他节点传输的报文时,会将NM-Timeout定时器重置,当NM-Timeout定时器超时且处于Ready Sleep State时,网络管理进入Prepare Bus-Sleep Mode。其中NM-Timeout定时器的时间是由CanNmTimeoutTime(配置参数)决定的。
Prepare Bus Sleep Mode
Prepare Bus Sleep state目的是确保所有节点都有时间在进入总线休眠状态之前停止其网络活动,使总线活动平静下来,最后在“准备总线睡眠模式”下总线上没有任何活动。
当本节点进入Prepare Bus-Sleep Mode,CanNmWaitBusSleepTime(配置参数)定时器被启动,当CanNmWaitBusSleepTime定时器超时,当前状态将由Prepare Bus-Sleep Mode切换至Bus-Sleep Mode。
如果在Prepare Bus-Sleep Mode接收到其他节点传输的网络管理报文时,当前CanNm状态将由Prepare Bus-Sleep Mode切换至Network Mode,默认情况下,将进入Repeat Message State。
如果在Prepare Bus-Sleep Mode接收到网络请求时,当前状态将由Prepare Bus-Sleep Mode切换至Network Mode,默认情况下,将进入Repeat Message State。如果CanNmImmediateRestartEnabled(配置参数)被设置为TRUE,那么在这种情况下会立刻触发一次传输,这样做的理由是:集群中的其他节点仍处于Prepare Bus-Sleep Mode,在这种特殊情况下,应避免过渡到Bus-Sleep Mode,并应尽快恢复总线通信。由于CanNm中网络管理PDU的传输偏移导致,处于Repeat Message State的第一个网络管理PDU的传输可能会大大延迟。为了避免延迟重新启动网络可以立即请求发送网络管理PDU。
Bus-Sleep Mode
Bus-Sleep state的目的是在不交换任何消息时降低节点的功耗。将通信控制器切换到睡眠模式,激活相应的唤醒机制,最后将功耗降低到总线睡眠模式下的适当水平。
当CanNm处于Bus-Sleep Mode接收到网络管理报文时,此时CanNm不会切换至Network Mode,而是通知Nm模块,由上层模块做决策。
当CanNm处于Bus-Sleep Mode接收到被动请求或网络请求时,当前状态将由Bus-Sleep Mode切换至Network Mode,默认情况下,将进入Repeat Message State。
PDU格式
网络管理的报文有特定的格式要求,报文数据段格式如图:
图2-2NM PDU默认格式
其中CBV(ControlBitVector)字节对应的bit位标识如下
图2-3 CBV格式
对于CBV中的bit说明如下:
Bit 0重复消息请求
0:未请求进入Repeat Message State
1:请求进入Repeat Message State
Bit 1,2:保留位,当配置项CanNmCoordinatorEnabled使能时,该位等于配置的CanNmCoordinatorId的值
Bit 6局部网络信息位(PNI)
Bit5 Bit7为保留位
NmPdu中的UserData可以通过CanNm的配置引用EcuC中的Pdu。未使用的情况下默认全0xFF,通过Nm的接口去抓取当前接收与发送的UserData。
可选功能
CanNm可以通过使能配置参数来使用以下可选功能。
检测远程睡眠指令功能
远程睡眠指示应用于一种情况,当处于NormalOperation State的节点发现集群中的所有其他节点都准备睡眠,但处于Normal Operation State状态的节点仍将保持总线苏醒。为了避免这种情况,可以使能远程睡眠指示功能。
如果当前CanNm状态为Normal Operation State,并且在CanNmRemoteSleepIndTime(配置参数)定时器内未收到其他节点发送的网络管理报文,则通知上层Nm模块集群内的其他节点均已准备睡眠。
如果CanNm已通知上层Nm模块,而在Normal Operation State或Ready Sleep State下又收到了网络管理报文,或者CanNm从Normal Operation State切换至Repeat Message State,CanNm需要通知上层Nm模块集群中的某些节点不再准备睡眠。
用户数据功能
使用CanNmUserDataEnabled开关(配置参数)对NM用户数据的支持进行静态配置。
当用户数据功能使能,可以调用CanNm_SetUserData,该函数可以设置总线上接下来发送的NM数据包的NM用户数据。也可以调用CanNm_GetUserData,该函数可以提供包含在最近接收到的NM PDU的有效载荷中的NM用户数据。
如果CanNmComUserDataSupport(配置参数)配置为使能,CanNm将在每次请求发送相应的NM消息之前从引用的NM I-PDU收集NM用户数据,并将用户数据与其他NM字节合并。此时就不能再通过CanNm_SetUserData函数设置用户数据。
被动模式功能
在被动模式下,节点仅接收NM消息,但不发送任何NM消息。被动模式应使用CanNmPassiveModeEnabled开关(配置参数)进行静态配置。
NM PDU Rx指示功能
若CanNmPduRxIndicationEnabled(配置参数)使能,在成功接收NM PDU时,CanNm应通过调用Nm_PduRxIndication通知上层。
状态变化通知功能
如果CanNmStateChangeIndEnabled(配置参数)使能,则CanNm需要将CanNm状态的所有更改通知上层Nm。
通讯控制功能
使用CanNmComControlEnabled开关(配置参数),可以静态配置通信控制。当CanNm_DisableCommunication函数被调用,CanNm模块NM报文的传输能力将被停止,直到调用CanNm_EnableCommunication,CanNm的nm报文传输能力被恢复。
当CanNm_DisableCommunication函数被调用,CanNm的NM-Timeout定时器将被停止,调用函数CanNm_EnableCommunication,NM-Timeout定时器将被恢复。若一直未调用CanNm_EnableCommunication,CanNm会一直处在Ready Sleep State中无法进入休眠状态,在这种情况下,AutoSar规定,当网络被释放后,CanNm将从Ready Sleep State切换至Prepare Bus-Sleep Mode。
NM协调器同步支持功能
当有多个协调器连接到同一条总线时,在CBV中,NmCoordinatorSleepReady位用于指示主协调器请求启动关闭,有关CBV的概念见2.2章。
当CanNm处于网络模式,接收网络管理报文的CBV中NmCoordinatorSleepReady=1,则CanNm通知上层协调睡眠功能被请求。
当CanNm已通知上层协调睡眠功能被请求,接收网络管理报文的CBV中NmCoordinatorSleepReady=0,则CanNm通知上层协调睡眠功能请求被取消。
减负载功能
当CanNmBusLoadReductionEnabled参数配置为TRUE时,CanNm应该支持总线负载降低机制,当从其他状态进入Repeat Message State状态时,关闭总线负载降低机制,当从其他状态进入Normal Operation State状态时,打开总线负载降低机制。
当总线负载降低机制启动后,CanNm_RxIndication()被调用后,使用CanNmMsgReducedTime参数重装CanNm Message Cycle Timer,当总线负载降低机制启动后,当成功发送NM PDU后,用CanNmMsgCycleTime参数重装CanNm Message Cycle Timer。
PN功能
Autosar4.x版本开始支持PN功能,Pn功能的目的是基于功能划分网络,形成局域网;这种功能的划分由整车设计完成,对于各节点只需要关心自身存在的网段。只有在CanNmGlobalPnSupport(配置参数)和各通道下的CanNmPnEnabled(配置参数)使能的情况下,Pn功能才能正常工作。
如果CanNmPnEnabled(配置参数)为FALSE,则CanNm将执行正常的Rx指示处理,并且应禁用Pn功能。如果CanNmPnEnabled为TRUE,接收到的NM-PDU CBV中的PNI位为0,则CanNm模块应执行常规的Rx指示处理,从而省去了Pn功能的扩展。如果CanNmPnEnabled为TRUE并且接收到的NM-PDU CBV中的PNI位为1,则CanNm模块处理NM-PDU的Pn信息。
如果CanNmPnEnabled为TRUE,则CanNm模块应将CBV中发送的PNI位的值设置为1,要使用Pn,则必须使用CBV。
如果CanNmPnEnabled为FALSE,则CanNm模块应将CBV中已发送的PNI位的值始终设置为0。
Pn信息的位置位于网络管理报文的用户数据部分中,具体的位置通过CanNmPnInfoOffset和CanNmPnInfoLength来确定。
例如当CanNmPnInfoOffset = 3,CanNmPnInfoLength = 2,代表NM消息只有字节3和字节4包含PN请求信息。
PN过滤
PNC是Partial Network Cluster的缩写,它是指为了在车辆网络中支持一个或多个车辆功能而由多个ECU构成的集群。PNC的编号我们称为PNC ID,范围8~63,整车网络统一编号,关于PNC id与CanNmPdu映射关系说明:PNC ID对应CanNmPdu中的一个bit,例如PNC ID=8,对应CanNmPduByte1的bit0;PNC ID=63,对应Byte7的bit7;PNC ID对应的bit数值为1,则表示当前PN网络被请求,为0则表示网络释放。
通过配置参数CanNmPnFilterMaskByte,CanNm可以检测到哪个PN与ECU相关,而哪个与PN不相关。
CanNmPnFilterMaskByte的每个位具有以下含义:
0 PN请求与本ECU无关。如果接收的NM PDU中将该位置设置为1,也无法使ECU的通讯栈处于唤醒状态,因为该位的请求与本ECU是无关的。
1 PN请求与本ECU有关。如果已在接收的NM-PDU中将该位置设置为1,则ECU的通信堆栈将保持唤醒状态。
如果至少有一位与本ECU相关的PN请求,那么这条Nm PDU对于CanNm来说就是有用的,需要进行处理,如果没有一位与本ECU相关的PN请求,那么这条NM PDU将被忽略。
ERA与EIRA
ERA是指ECU外部的PN请求的聚合,当CanNmPnEraCalcEnabled使能(配置参数),表示支持ERA功能。而EIRA是指ECU内部和外部Pn请求的聚合,当CanNmPnEiraCalcEnabled使能(配置参数),表示支持EIRA功能。
ERA是在网关节点才使用,此时没有内部的请求,只有不同的Channel对Pn的外部请求,ERA会为每个channel的每个PN位都设置一个监测的定时器,当CanNmPnResetTime(配置参数)时间内未请求PN,则将该PN的请求状态设置为未请求,每次请求状态有变化的时候都会通知上层PduR,由PduR模块进行转发。
EIRA体现了当前节点与网络上其他节点对某一个PNC的请求与释放情况;EIRA不区分物理Channel,只针对不同的PN。EIRA会为每个PN位都设置一个监测的定时器,当CanNmPnResetTime(配置参数)时间内未请求PN,则将该PN的请求状态设置为未请求,每次请求状态有变化的时候都会通知上层PduR,由PduR模块进行转发。
自发传输
如果网络被请求并且CanNmPnHandleMultipleNetworkRequest(配置参数)设置为TRUE,无论CanNm处于Ready Sleep State,Normal Operation State或Repeat Message State,CanNm应更改为或重新启动为Repeat Message State。并且,CanNm会传输CanNmImmediateNmTransmissions(配置参数)数量的报文,其中第一条报文立即传输,其他报文按CanNmImmediateNmCycleTime传输(配置参数)。
车辆唤醒功能
当CanNmCarWakeUpRxEnabled(配置参数)使能时,车辆唤醒功能被启用,目前暂时没有使用场景。如果任何接收到的NM-PDU中的Car Wakeup位为1,都会通知上层Nm。
当CanNmCarWakeUpRxEnabled(配置参数)使能,CanNmCarWakeUpFilterEnabled(配置参数)也使能时,只有收到NodeId等于CanNmCarWakeUpFilterNodeId的报文时,才会通知上层。
源文件描述
表3-1CanNm组件文件描述
文件 |
说明 |
CanNm_Cfg.h |
定义CanNm模块预编译时用到的配置参数。 |
CanNm_Cfg.c |
定义CanNm模块生成的配置参数。 |
CanNm.h |
CanNm模块头文件, 包含了API函数的扩展声明并定义了配置的数据结构。 |
CanNm.c |
CanNm模块源文件,包含了API函数的实现。 |
CanNm_Cbk.h |
包含CanNm供SoAd调用的API函数的声明 |
CanNm_Internal.h |
包含CanNm内部的变量和数据结构的定义 |
CanNm_MemMap.h |
CanNm编译抽象文件 |
图3-1 CanNm组件文件交互关系图
API接口
类型定义
CanNm_ConfigType类型定义
名称 |
CanNm_ConfigType |
类型 |
Structure |
范围 |
– |
描述 |
此类型应包含容器CanNm_GlobalConfig及其子容器的参数。 |
输入函数描述
输入模块 |
API |
Det |
Det_ReportError |
Nm |
Nm_CarWakeUpIndication |
Nm_CoordReadyToSleepCancellation |
|
Nm_CoordReadyToSleepIndication |
|
Nm_PduRxIndication |
|
Nm_RemoteSleepCancellation |
|
Nm_RemoteSleepIndication |
|
Nm_StateChangeNotification |
|
Nm_TxTimeoutException |
|
Nm_RepeatMessageIndication |
|
Nm_BusSleepMode |
|
Nm_NetworkMode |
|
Nm_NetworkStartIndication |
|
Nm_PrepareBusSleepMode |
|
PduR |
PduR_CanNmRxIndication |
PduR_CanNmTriggerTransmit |
|
PduR_CanNmTxConfirmation |
|
CanIf |
CanIf_Transmit |
CanSM |
CanSM_TxTimeoutException |
静态接口函数定义
CanNm_Init函数定义
函数名称: |
CanNm_Init |
||
函数原型: |
void CanNm_Init( const CanNm_ConfigType * CanNmConfigPtr ) |
||
服务编号: |
0x00 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
CanNmConfigPtr |
值域: |
指向初始化结构体的指针 |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
初始化 完整的CanNm模块, 即初始化在配置时 激活的所有通道。 |
CanNm_DeInit函数定义
函数名称: |
CanNm_DeInit |
函数原型: |
void CanNm_DeInit ( void ) |
服务编号: |
0x10 |
同步/异步: |
同步 |
是 否可重入: |
不可重入 |
输入参数: |
无 |
输 入输出参数: |
无 |
输出参数: |
无 |
返回值: |
无 |
功能概述: |
反初始化CanNm模块 |
CanNm_PassiveStartUp函数定义
函数名称: |
Can Nm_PassiveStartUp |
||
函数原型: |
FUN C(Std_ReturnType, CANNM_CODE) CanN m_PassiveStartUp( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0x01 |
||
同步/异步: |
非同步 |
||
是 否可重入: |
可重入(同 一通道不可重入) |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 被动启动 CanNm网络管理成功 E_NOT_OK: 被动启动 CanNm网络管理失败 |
||
功能概述: |
被动启动CanNm模块 |
CanNm_NetworkRequest函数定义
函数名称: |
Can Nm_NetworkRequest |
||
函数原型: |
Std_ReturnType CanN m_NetworkRequest( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0x02 |
||
同步/异步: |
非同步 |
||
是 否可重入: |
可重入(同 一通道不可重入) |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 请求被接受 E_NOT_OK: 请求被拒绝 |
||
功能概述: |
由于 ECU 需要在总线上通 信,因此请求网络 |
CanNm_NetworkRelease函数定义
函数名称: |
Can Nm_NetworkRelease |
||
函数原型: |
Std_ReturnType CanN m_NetworkRelease( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0x03 |
||
同步/异步: |
非同步 |
||
是 否可重入: |
可重入(同 一通道不可重入) |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 请求被接受 E_NOT_OK: 请求被拒绝 |
||
功能概述: |
由于EC U不需要在总线上通 信,因此释放网络 |
CanNm_DisableCommunication函数定义
函数名称: |
CanNm_Dis ableCommunication |
||
函数原型: |
Std_ReturnType CanNm_Disa bleCommunication( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0x0c |
||
同步/异步: |
非同步 |
||
是 否可重入: |
可重 入(仅限不同通道) |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 请求成功 E_NOT_OK :请求关闭通信失败 |
||
功能概述: |
用于ISO14229的 28服务,关闭通信 |
CanNm_EnableCommunication函数定义
函数名称: |
CanNm_E nableCommunication |
||
函数原型: |
Std_ReturnType CanNm_En ableCommunication( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0x0d |
||
同 步/异步: |
非同步 |
||
是 否可重入: |
可重入( 同一通道不可重入) |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 请求成功 E_NOT_OK: 请求使能通信失败 |
||
功能概述: |
用于ISO14229 的28服务,使能通信 |
CanNm_SetUserData函数定义
函数名称: |
CanNm_SetUserData |
||
函数原型: |
Std_ReturnType C anNm_SetUserData( NetworkHandleType nmChannelHandle const uint8* nmUserDataPtr ) |
||
服务编号: |
0x04 |
||
同 步/异步: |
同步 |
||
是 否可重入: |
不同通道可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
nmUserDataPtr |
值域: |
指向 要设置的用户数据的指针 |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 设置用户数据成功 E_NOT_OK: 设置用户数据失败 |
||
功能概述: |
设置总 线上接下来发送的 NM消息的用户数据 |
CanNm_GetUserData函数定义
函数名称: |
CanNm_GetUserData |
||
函数原型: |
Std_ReturnType C anNm_GetUserData( NetworkHandleType nmChannelHandle uint8* nmUserDataPtr ) |
||
服务编号: |
0x05 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
请求获取用户数据的通道 |
输 入输出参数: |
无 |
||
输出参数: |
nmUserDataPtr |
值域: |
指向用于输 出用户数据的内存的指针 |
返回值: |
E_OK: 请求用户数据成功 E_NOT_OK: 请求用户数据失败 |
||
功能概述: |
从最近收到的NM PDU中获取用户数据 |
CanNm_Transmit函数定义
函数名称: |
CanNm_Transmit |
||
函数原型: |
Std_ReturnType CanNm_Transmit( PduIdType TxPduId, const PduInfoType* PduInfoPtr ) |
||
服务编号: |
0x49 |
||
同步/异步: |
同步 |
||
是 否可重入: |
对不 同的TxPduId可重入 |
||
输入参数: |
TxPduId |
值域: |
要发送的Pdu的Id |
PduInfoPtr |
值域: |
要发 送的数据长度和数据指针 |
|
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 成功接收传输请求 E_NOT_O K:传输请求被拒绝 |
||
功能概述: |
请 求发送一帧NM报文 |
CanNm_GetNodeIdentifier函数定义
函数名称: |
CanNm_ GetNodeIdentifier |
||
函数原型: |
Std_ReturnType CanNm_G etNodeIdentifier( NetworkHandleType nmChannelHandle, uint8* nmNodeIdPtr ) |
||
服务编号: |
0x06 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
获取NodeId的通道号 |
输 入输出参数: |
无 |
||
输出参数: |
nmNodeIdPtr |
值域: |
指向 存储NodeId的变量的指针 |
返回值: |
E_OK: 获取成功 E_NOT_OK: 获取失败 |
||
功能概述: |
获取 最近接收到的NM报 文中的节点标识符 |
CanNm_GetLocalNodeIdentifier函数定义
函数名称: |
CanNm_GetLo calNodeIdentifier |
||
函数原型: |
Std_ReturnType CanNm_GetLoc alNodeIdentifier( NetworkHandleType nmChannelHandle, uint8* nmNodeIdPtr ) |
||
服务编号: |
0x07 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
获取NodeId的通道号 |
输 入输出参数: |
无 |
||
输出参数: |
nmNodeIdPtr |
值域: |
指向 存储NodeId的变量的指针 |
返回值: |
E_OK: 获取成功 E_NOT_OK: 获取失败 |
||
功能概述: |
获取配置的该通道 的本地节点标识符 |
CanNm_RepeatMessageRequest函数定义
函数名称: |
CanNm_Rep eatMessageRequest |
||
函数原型: |
Std_ReturnType CanNm_Repe atMessageRequest( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0x08 |
||
同步/异步: |
非同步 |
||
是 否可重入: |
可重入(同 一通道不可重入) |
||
输入参数: |
nmChannelHandle |
值域: |
需要置位Repeat Message Request Bit的通道 |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK:设置成功 E_NOT_OK:设 置重复标志位失败 或未配置此网络。 |
||
功能概述: |
为总线 上接下来发送的NM PDU设 置重复消息请求位 |
CanNm_GetPduData函数定义
函数名称: |
CanNm_GetPduData |
||
函数原型: |
Std_ReturnType CanNm_GetPduData( NetworkHandleType nmChannelHandle, uint8* nmPduDataPtr ) |
||
服务编号: |
0x0a |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
nmPduDataPtr |
值域: |
获取到的 NMPdu数据要被存放的地址 |
返回值: |
E_OK: 获取成功 E_NOT_OK: 获取数据失 败或未配置此网络 |
||
功能概述: |
从最近接收到的NM PDU 中获取整个PDU数据 |
CanNm_GetState函数定义
函数名称: |
CanNm_GetState |
||
函数原型: |
Std_ReturnType CanNm_GetState( NetworkHandleType nmChannelHandle, Nm_StateType* nmStatePtr, Nm_ModeType* nmModePtr ) |
||
服务编号: |
0x0b |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
nmStatePtr |
值域: |
存放CanNm状态的地址 |
nmModePtr |
值域: |
存放CanNm模式的地址 |
|
返回值: |
E_OK: 获取成功 E_NOT_OK: 获取失败 |
||
功能概述: |
获取CanN m当前的状态和模式 |
CanNm_GetVersionInfo函数定义
函数名称: |
Can Nm_GetVersionInfo |
||
函数原型: |
void CanN m_GetVersionInfo( Std_ VersionInfoType* Versioninfo ) |
||
服务编号: |
0xf1 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
无 |
||
输 入输出参数: |
无 |
||
输出参数: |
versioninfo |
值域: |
指向存储 版本信息的buffer的地址 |
返回值: |
无 |
||
功能概述: |
获取版本信息 |
CanNm_RequestBusSynchronization函数定义
函数名称: |
CanNm_RequestB usSynchronization |
||
函数原型: |
Std_ReturnType CanNm_RequestBu sSynchronization( NetworkHandleType nmChannelHandle ) |
||
服务编号: |
0xc0 |
||
同步/异步: |
非同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 请求成功 E_NOT_OK: 请求失败 |
||
功能概述: |
请求总线同步 |
CanNm_CheckRemoteSleepIndication函数定义
函数名称: |
CanNm_CheckRemo teSleepIndication |
||
函数原型: |
Std_ReturnType CanNm_CheckRemot eSleepIndication( NetworkHandleType nmChannelHandle, boolean* nm RemoteSleepIndPtr ) |
||
服务编号: |
0xd0 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
输 入输出参数: |
无 |
||
输出参数: |
nm RemoteSleepIndPtr |
值域: |
检测是否发生远 程睡眠通知结果存储地址 |
返回值: |
E_OK: 检查成功 E_NOT_OK: 获取指示失败 |
||
功能概述: |
检查是否 发生远程睡眠通知 |
CanNm_SetSleepReadyBit函数定义
函数名称: |
CanNm _SetSleepReadyBit |
||
函数原型: |
Std_ReturnType CanNm_ SetSleepReadyBit( NetworkHandleType nmChannelHandle, boolean nmSleepReadyBit ) |
||
服务编号: |
0x17 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不同通道可重入 |
||
输入参数: |
nmChannelHandle |
值域: |
NM通道Id |
nmSleepReadyBit |
值域: |
ReadySleep Bit要设置的的值 |
|
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 设置成功 E_NOT_OK: 设置失败 |
||
功能概述: |
在 控制位向量中设置N M协调器睡眠就绪位 |
CanNm_TxConfirmation函数定义
函数名称: |
Can Nm_TxConfirmation |
||
函数原型: |
void CanN m_TxConfirmation( PduIdType TxPduId ) |
||
服务编号: |
0x40 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不同PduId可重入 |
||
输入参数: |
TxPduId |
值域: |
发送成功的PduId |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
底层通信模块 确认成功发送报文 |
CanNm_RxIndication函数定义
函数名称: |
C anNm_RxIndication |
||
函数原型: |
void Ca nNm_RxIndication( PduIdType RxPduId, const PduInfoType* PduInfoPtr ) |
||
服务编号: |
0x42 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不同PduId可重入 |
||
输入参数: |
RxPduId |
值域: |
接收报文的PduId |
PduInfoPtr |
值域: |
接收报文 的长度和指向报文的指针 |
|
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
底层通信模 块调用该函数通知 CanNm接收到NM报文 |
CanNm_TriggerTransmit函数定义
函数名称: |
CanN m_TriggerTransmit |
||
函数原型: |
Std_ReturnType
CanN
PduIdType
TxPduId,
PduInfoType*
PduInfoPtr
) |
||
服务编号: |
0x41 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不同PduId可重入 |
||
输入参数: |
TxPduId |
值域: |
发送PduId |
输 入输出参数: |
PduInfoPtr |
值域: |
下层模块提 供的用于存储发送数据的 buffer地址和buffer大小 。返回时将实际拷贝的数 据长度赋值给sduLength。 |
输出参数: |
无 |
||
返回值: |
E_OK: 从 CanNm获取数据成功 E_NOT_OK: 从 CanNm获取数据失败 |
||
功能概述: |
下层 模块在发送数据时 调用该函数从CanN m获取要发送的数据 |
CanNm_MainFunction函数定义
函数名称: |
CanNm_MainFunction |
函数原型: |
void CanNm_MainFunction( void ) |
服务编号: |
0x13 |
功能概述: |
CanNm模块周期调度函数 |
可配置函数定义
无。
配置
CanNmGlobalConfig
图5‑1CanNmGlobalConfig容器配置图
表5‑1CanNmGlobalConfig属性描述
UI名称 |
描述 |
|||
CanNmGloba lPnSupport |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
用于 全局启用部分网络支 持的预处理器开关。 |
|||
依赖关系 |
无 |
|||
CanNmBus LoadReduct ionEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处理器开关,用于 启用总线减负载支持 |
|||
依赖关系 |
如果 CanN mPassiveModeEnabled == true 或 C anNmGlobalPnSupport == true,那么CanNmBusL oadReductionEnabled = false |
|||
CanNmBusSy nchronizat ionEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处 理器开关,用于启用 总线同步支持,此功 能仅适用于网关节点 |
|||
依赖关系 |
如果(CanN mPassiveModeEnabled == False), 那么等于(NmBusSyn chronizationEnabled )否则等于(False) |
|||
Ca nNmComCont rolEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处理器开关,用 于启用通信控制支持 |
|||
依赖关系 |
如果(CanN mPassiveModeEnabled == False),那么等于( NmComControlEnabled )否则等于(False) |
|||
Can NmComUserD ataSupport |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
用于启用Com用户 数据的预处理器开关 |
|||
依赖关系 |
如果CanN mPassiveModeEnabled == True则 CanN mComUserDataSupport = False |
|||
CanNmCo ordinatorS yncSupport |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
启用/禁 用协调器同步支持。 |
|||
依赖关系 |
如果将CanNmPas siveModeEnabled设置 为TRUE,则必须将Ca nNmCoordinatorSyncS upport设置为FALSE。 |
|||
CanNmDevE rrorDetect |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
启用或者禁用DET报错 |
|||
依赖关系 |
无 |
|||
CanNmImm ediateRest artEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处理 器开关,用于在准备 总线休眠模式下根据 总线通信请求启用NM PDU立即传输 |
|||
依赖关系 |
如果定义了 CanNmPassiveModeEn abled,则不能定义它 |
|||
CanNmIm mediateTxc onfEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
启用 /禁用立即发送确认。 |
|||
依赖关系 |
如果Can NmPasiveModeEnabled 已启用,则不应启用 CanNmImmed iateTxconfEnabled。 |
|||
Can NmMainFunc tionPeriod |
取值范围 |
0.001 .. 0.255 |
默认取值 |
无 |
参数描述 |
各个实例的CanNm_Mai nFunction的调用周期 ,以秒为单位指定。 |
|||
依赖关系 |
取值需要大于0 |
|||
Can NmPassiveM odeEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处理器开关 ,用于支持被动模式 |
|||
依赖关系 |
依赖于NmIf模块的N mPassiveModeEnabled |
|||
CanNmPd uRxIndicat ionEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
用于启用PDU R x指示的预处理器开关 |
|||
依赖关系 |
依 赖于NmIf模块的NmPdu RxIndicationEnabled |
|||
Ca nNmPnEiraC alcEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
FALSE |
参数描述 |
指定CanNm是否 计算内部外部请求的 PN请求信息(EIRA) |
|||
依赖关系 |
仅当C anNmGlobalPnSupport == true时可配置 |
|||
CanNmP nResetTime |
取值范围 |
0.001~65.535 |
默认取值 |
无 |
参数描述 |
以秒为单位指定 重置定时器的运行时 间。该复位时间对EI RA和ERA中的PN请求复 位有效。每个通道的 值应该相同。因此它 是一个全局配置参数 |
|||
依赖关系 |
仅当C anNmGlobalPnSupport == true时可配置 CanNmPnResetTime> CanNmMsgCycleTime CanNmPnResetTime <CanNmTimeoutTime |
|||
CanNmR emoteSleep IndEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处理器开关,支持 远程睡眠指示,此功 能仅适用于网关节点 |
|||
依赖关系 |
如果(CanN mPassiveModeEnabled == False),那么等于( NmComControlEnabled )否则等于(False) |
|||
CanNmS tateChange IndEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
用 于启用CanNM状态更改 通知的预处理器开关 |
|||
依赖关系 |
依赖于NmS tateChangeIdEnabled |
|||
CanNmUserD ataEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预处理器开关 ,用于支持用户数据 |
|||
依赖关系 |
依赖 于NmUserDataEnabled |
|||
CanNmVers ionInfoApi |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
启用 或者禁用版本获取API |
|||
依赖关系 |
无 |
|||
CanNmPnEir aRxNSduRef |
取值范围 |
Reference to [ Pdu ] |
默认取值 |
无 |
参数描述 |
引 用COM-Stack中Pdu。 C anNm只需要一个SduRe f,因为EIRA是所有以 太网通道上的聚合。 |
|||
依赖关系 |
仅当Can NmPnEiraCalcEnabled == true 时可配,引用的PDU需 要在PDUR中进行关联 |
CanNmChannelConfig
图5‑2CanNmChannelConfig容器配置图
表5‑2CanNmChannelConfig属性描述
UI名称 |
描述 |
|||
C anNmStayIn PbsEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
如 果禁用此参数,则在 Ca nNmWaitBusSleepTime 后离开Prepare Bus-Sleep 模式。如果启 用此参数,则只有在 ECU 断电或任何重新启动 原因适用时才能离开 Prepare BusSleep 模式。 |
|||
CanNmAc tiveWakeup BitEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
FALSE |
参数描述 |
在CanNm模块中 启用/禁用处理Active Wakeup Bit |
|||
依赖关系 |
此参数仅在 CanNmPassiveModeEna bled为False时可配置 |
|||
CanNmAl lNmMessage sKeepAwake |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
FALSE |
参数描述 |
指定 CanNm 是否丢弃不相关的 NM PDU。 |
|||
依赖关系 |
仅当 Can NmPnEiraCalcEnabled == true 或 Ca nNmPnEraCalcEnabled == true时有效 |
|||
CanNmBu sLoadReduc tionActive |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
该参数定义了 各自NM通道的总线减 负载功能是否启用。 |
|||
依赖关系 |
如果CanNmBusL oadReductionEnabled == false则CanNmBus LoadReductionActive = false |
|||
CanNm CarWakeUpB itPosition |
取值范围 |
0 .. 7 |
默认取值 |
无 |
参数描述 |
指定CWU在NM PDU中的Bit位置。 |
|||
依赖关系 |
仅当 CanN mCarWakeUpRxEnabled == TRUE 时可用 |
|||
CanNmC arWakeUpBy tePosition |
取值范围 |
0 .. 7 |
默认取值 |
无 |
参数描述 |
指定CWU在NM PDU中的Byte位置。 |
|||
依赖关系 |
仅当 CanN mCarWakeUpRxEnabled == TRUE 时可用,CanNmCa rWakeupBytePosition ≥ 启用的系统字节数 (CBV,NID) |
|||
CanNmCa rWakeUpFil terEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
如果 支持CWU过滤,则仅NM PDU中具有源节 点标识符CanNmCarWa keUpFilterNodeId的C WU位被视为CWU请求。 |
|||
依赖关系 |
CanNmCarW akeUpRxEnabled=TRUE |
|||
CanNmC arWakeUpFi lterNodeId |
取值范围 |
0~255 |
默认取值 |
无 |
参数描述 |
CWU过滤的源节点标 识符。如果支持CWU过 滤,则只有具有源节 点标识符CanNmCarWak eUpFilterNodeId的NM PDU中的 CWU位被视为CWU请求 |
|||
依赖关系 |
CanNmCarWakeU pFilterEnabled=TRUE |
|||
Can NmCarWakeU pRxEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
FALSE |
参数描述 |
启 用或禁用在接收的NM PDU中支持CarWakeUp bit评估 |
|||
依赖关系 |
依赖于NmIf模块的N mCarWakeUpRxEnabled |
|||
CanNm ImmediateN mCycleTime |
取值范围 |
0.001 .. 65.535 |
默认取值 |
无 |
参数描述 |
定义用于CanNmImmed iateNmTransmissions NM PDU 立即传输的循环 时间,以秒为单位。 |
|||
依赖关系 |
此参数 仅在以下情况下有效 CanNmImmediate NmTransmissions>1。 |
|||
CanNmImme diateNmTra nsmissions |
取值范围 |
0 .. 255 |
默认取值 |
无 |
参数描述 |
定义应立即传输的NM PD U的数量。如果该值为 零,则不会立即发送 NM PDU。立即传输 NM PDU 的循环时间由 CanNmI mmediateNmCycleTime 定义。 |
|||
依赖关系 |
如果 CanNmImme diateRestartEnabled = true 那么 CanNmImmed iateNmTransmissions = 0 如果 CanNmPnHandleMult ipleNetworkRequests == True” 那么 “CanNmImmed iateNmTransmissions > 0 |
|||
CanNmMsgC ycleOffset |
取值范围 |
0~65.535 |
默认取值 |
无 |
参数描述 |
周期性传输节 点中的时间偏移。它 决定了传输的启动延 迟。以秒为单位指定 |
|||
依赖关系 |
参数值<CanM sgCycleTime此参数仅 在CanNmPassiveModeE nabled为False时有效 |
|||
CanNmMs gCycleTime |
取值范围 |
0.001~65.535 |
默认取值 |
无 |
参数描述 |
NM PDU的周 期以秒为单位。它确 定周期性速率,并且 是传输调度的基础。 |
|||
依赖关系 |
当“CanNmPassiveM odeEnabled”为“False ”时,此参数才有效。 |
|||
CanNmMsgR educedTime |
取值范围 |
0.001~65.535 |
默认取值 |
无 |
参数描述 |
减负载的周期传输 时间,以秒为单位。 |
|||
依 赖关系· |
0,5 * CanNmMsgCycleTime ≤ CanNmMsgReducedTime < CanNmMsgCycleTime 此参数 仅在以下情况下有效 CanNmBusL oadReductionEnabled == True 和 CanNmBus LoadReductionActive == True 和 CanN mPassiveModeEnabled == False 否则不使用此参数。 |
|||
CanNmMsgT imeoutTime |
取值范围 |
0.001~65.535 |
默认取值 |
无 |
参数描述 |
当使用部分网络并 定义此超时时,CanNm 会监控 NM-PDU 在此传输超 时时间内成功传输, 否则提供错误通知。 |
|||
依赖关系 |
CanNmMsgTimeoutTime < CanNmMsgCycleTime 此参数仅在 CanN mPassiveModeEnabled 和 CanNmImm ediateTxConfEnabled 设置为 FALSE 且 CanNmPnEnabled 设置为 TRUE 时有效。 |
|||
C anNmNodeId |
取值范围 |
0~255 |
默认取值 |
无 |
参数描述 |
本地节点标志符 |
|||
依赖关系 |
此参数仅在 CanNmNodeIdEnabled == True 时有效 |
|||
CanNmPduC bvPosition |
取值范围 |
CANNM_PDU_BYTE_0 CANNM_PDU_BYTE_1 CANNM_PDU_OFF |
默认取值 |
无 |
参数描述 |
定义NM PDU内控制位向量的位 置。参数的值表示NM PDU中控制位 向量的位置(CanNmPd uByte0表示字节0,Ca nNmPduByte1表示字节 1,CanNmPduOff表示 源节点标识符不是NM PDU的一部分) |
|||
依赖关系 |
如果CanNmNod eDetectionEnabled== true,那么Can NmPduCbvPosition!= CANNM_PDU_OFF 如果(CANNM_ PDU_CBV_POSITION!= CA NNM_PDU_OFF&&CANNM_ PDU_NID_POSITION!= CANN M_PDU_OFF)则CANNM_ PDU_CBV_POSITION!= CAN NM_PDU_NID_POSITION 如果(CANNM_ PDU_CBV_POSITION!= CANNM_PDU_OFF&&CAN NM_PDU_NID_POSITION ==CANNM_PDU_OFF)则 CANNM_PDU_CBV_POSIT ION=CANNM_PDU_BYTE0 |
|||
CanNmPduN idPosition |
取值范围 |
CANNM_PDU_BYTE_0 CANNM_PDU_BYTE_1 CANNM_PDU_OFF |
默认取值 |
无 |
参数描述 |
定义NM PD U中源节点标识的位置 。该参数的值表示NM PD U中源节点标识的位置 |
|||
依赖关系 |
如果C anNmNodeIdEnabled== true,那么Can NmPduNidPosition!= CANNM_PDU_OFF 如果(CANNM_ PDU_NID_POSITION!= CANNM_PDU_OFF&& CANNM_ PDU_CBV_POSITION!= CANN M_PDU_OFF)则CANNM_ PDU_NID_POSITION!= CAN NM_PDU_CBV_POSITION 如果(CANNM_ PDU_NID_POSITION!= CANNM_PDU_OFF&& CANNM _PDU_CBV_POSITION== CA NNM_PDU_OFF)则CANN M_PDU_NID_POSITION= CANNM_PDU_BYTE0 |
|||
CanN mPnEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
使能或者禁用PN |
|||
依赖关系 |
仅当 C anNmGlobalPnSupport == true 时有效,同时 需要配置CanNmPnInfo |
|||
C anNmPnEraC alcEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
FALSE |
参数描述 |
指定CanNm是否计算外 部请求的PN请求信息 |
|||
依赖关系 |
仅当 C anNmGlobalPnSupport == true 时有效 |
|||
CanNmP nHandleMul tipleNetwo rkRequests |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
FALSE |
参数描述 |
指定CanNm是否执行 从网络模式到重复消 息状态(true)或不 (false)的附加转换 |
|||
依赖关系 |
仅当 C anNmGlobalPnSupport == true 时有效 |
|||
Can NmRemoteSl eepIndTime |
取值范围 |
0.001~65.535 |
默认取值 |
无 |
参数描述 |
远程睡 眠指示超时。它定义 了需要多长时间才能 识别所有其他节点已 准备好进入睡眠状态 |
|||
依赖关系 |
CanNm RemoteSleepIndTime≥ CanNmMsgCycleTi me且CanNmRemoteSlee pIndTime仅在CanNmRe moteSleepIndEnabled = true时是必需的 |
|||
Ca nNmRepeatM essageTime |
取值范围 |
0~65.535 |
默认取值 |
无 |
参数描述 |
重复消息状态 超时。它以秒为单位 定义了NM应该停留在 重复消息状态的时间 |
|||
依赖关系 |
CanNm RepeatMessageTime=n *CanNmMsgCycleTime; CanNmRepeatMes sageTime>CanNmImmed iateNmTransmissions *CanNmI mmediateNmCycleTime |
|||
CanNmRetr yFirstMess ageRequest |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
指定 CanNm 中的第一个消息 请求是否重复直到被 CanIf 接受。 |
|||
依赖关系 |
如果CanNmPassive ModeEnabled=true,则 CanNmRetryFirstM essageRequest=false |
|||
CanNmT imeoutTime |
取值范围 |
0.002~65.535 |
默认取值 |
无 |
参数描述 |
NM PDU的网络超 时。它表示在转换到 Prepare Bus-Sleep 模式启动 之前,NM需要停留在 R eadySleep状态的时间 |
|||
依赖关系 |
CanNmTimeoutTime > CanNmMsgCycleTime |
|||
C anNmWaitBu sSleepTime |
取值范围 |
0.001~65.535 |
默认取值 |
无 |
参数描述 |
表 示在转换到总线休眠 模式之前,NM应停留 在准备总线休眠模式 的时间,以秒为单位 |
|||
依赖关系 |
它 应该对群集中的所有 节点都是相等的。它 应该足够长,使所有T x缓冲区都为空,如果 Ca nNmStayInPbsEnabled 被禁用,这个参 数应该是强制性的。 |
|||
CanNm NodeDetect ionEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
预编译时间切换 以启用节点检测功能 |
|||
依赖关系 |
仅当 CanNmNodeIdEnabled 设置为 TRUE 时有效 如果 CanN mPassiveModeEnabled == True 那么 CanNmNodeDetection = False |
|||
CanNmNod eIdEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
用于启用源节点 标识的预处理器开关 |
|||
依赖关系 |
依赖于NmIf模 块的NmNodeIdEnabled |
|||
CanN mRepeatMsg IndEnabled |
取值范围 |
STD_ON,STD_OFF |
默认取值 |
无 |
参数描述 |
启用/ 禁用已收到RepeatMes sageRequest位的通知 |
|||
依赖关系 |
如果CanN mPassiveModeEnabled == False则等于 NmRepeatMsgIndEna bled,否则等于False |
|||
CanNmPnEr aRxNSduRef |
取值范围 |
Reference to [ Pdu ] |
默认取值 |
无 |
参数描述 |
参考COM堆栈中的Pdu 。每个CanNm通道都需 要SduRef,因为每个 channel都会报告ERA |
|||
依赖关系 |
仅当 Ca nNmPnEraCalcEnabled == true 时有效,引用的PDU需 要在PDUR中进行关联 |
|||
CanNm ComMNetwor kHandleRef |
取值范围 |
Reference to [ ComMChannel ] |
默认取值 |
无 |
参数描述 |
此引用指 向由ComMChannel定义 的唯一通道,并提供 对ComMChannelId中唯 一通道索引值的访问 |
|||
依赖关系 |
无 |
CanNmRxPdu
图5-3CanNmRxPdu容器配置图
表5‑3 CanNmRxPdu属性描述
UI名称 |
描述 |
|||
Ca nNmRxPduId |
取值范围 |
0 .. 65535 |
默认取值 |
C ANNM_RX_PD U_index(x) |
参数描述 |
此参数定义与此 CanNm 通道关联的 CanIf L-PDU 范围的 Rx PDU ID。 |
|||
依赖关系 |
配置的PDU顺序 |
|||
Can NmRxPduRef |
取值范围 |
Reference to [ Pdu ] |
默认取值 |
无 |
参数描述 |
对此 CanNm 通道使用的全局 PDU 的引用。 |
|||
依赖关系 |
依 赖于ECUC里面配置的 PDU,与CanNmTxPduRef 、CanNmTxUse rDataPduRef不能相同 |
CanNmTxPdu
仅当 CanNmPassiveModeEnabled 为 false 时,此容器的配置有效。
图5-4CanNmTxPdu容器配置图
表5‑4 CanNmTxPdu属性描述
UI名称 |
描述 |
|||
CanN mTxConfirm ationPduId |
取值范围 |
0 .. 65535 |
默认取值 |
C ANNM_TX_PD U_index(x) |
参数描述 |
下 层的TxConfirmatio n使用的TxPdu的ID。 |
|||
依赖关系 |
配置的PDU顺序 |
|||
Can NmTxPduRef |
取值范围 |
Reference to [ Pdu ] |
默认取值 |
无 |
参数描述 |
引用AUTOSAR ECU 配置规范中描述的全 局PDU结构中的PDU。 CanNm模块将使 用此参考来导出PDU ID。 |
|||
依赖关系 |
依赖 于ECUC里面配置的PD U,与CanNmRxPduRef 、CanNmTxUser DataPduRef不能相同 |
CanNmUserDataTxPdu
图5-5CanNmUserDataTxPdu容器配置图
表5‑5CanNmUserDataTxPdu属性描述
UI名称 |
描述 |
|||
CanNmTxUse rDataPduId |
取值范围 |
0 .. 65535 |
默认取值 |
CAN NM_USER_TX _PD U_index(x) |
参数描述 |
此参数定义NM用户 数据I-PDU的Handle ID。 |
|||
依赖关系 |
配置的PDU顺序 |
|||
C anNmTxUser DataPduRef |
取值范围 |
Reference to [ Pdu ] |
默认取值 |
无 |
参数描述 |
在全 局PDU集合中引用NM User Data I-PDU I-PDU。 |
|||
依赖关系 |
依赖 于ECUC里面配置的PD U,与CanNmRxPduRef 、CanNmTxPduRef 不能相同,该PDU需要 在PDUR模块中有引用 |
CanNmPnInfo
图5-6CanNmPnInfo容器配置图
表5‑6CanNmPnInfo属性描述
UI名称 |
描述 |
|||
CanNmPn InfoLength |
取值范围 |
1 .. 7 |
默认取值 |
无 |
参数描述 |
指定NM消息中 PN请求信息的长度。 |
|||
依赖关系 |
仅当 Ca nNmGlobalPnSupport == true 时有效 |
|||
CanNmPn InfoOffset |
取值范围 |
1 .. 7 |
默认取值 |
无 |
参数描述 |
指定NM消息中PN 请求信息的偏移量。 |
|||
依赖关系 |
仅当 Ca nNmGlobalPnSupport == true 时有效 |
CanNmPnFilterMaskByte
图5-7CanNmPnFilterMaskByte容器配置图
表5‑7CanNmPnFilterMaskByte属性描述
** UI名称** |
描述 |
|||
Ca nNmPnFil terMaskB yteIndex |
取值范围 |
0 .. 6 |
默认取值 |
无 |
参数描述 |
过滤掩码 字节的索引。指定过滤 掩码字节数组中的位置 |
|||
依赖关系 |
仅当 CanNmGlobalPnSupport == true 时有效CanNmPn FilterMaskByteIndex< CanNmPnInfoLength |
|||
Ca nNmPnFil terMaskB yteValue |
取值范围 |
0 .. 255 |
默认取值 |
无 |
参数描述 |
用于配置 过滤掩码字节的参数。 |
|||
依赖关系 |
仅当 CanNmGlobalPnSupport == true 时有效 |