目录
3.6 CanNm_DisableCommunication
3.12 CanNm_GetLocalNodeIdentifier
3.13 CanNm_RepeatMessageRequest
3.17 CanNm_RequestBusSynchronization
3.18 CanNm_CheckRemoteSleepIndication
4.3. CanNm_ConfirmPnAvailability
1.英文术语
英文术语 | 翻译 |
Network Management | 网络管理 |
Source Node Identifier | 简称SNI,节点源地址 |
Control Bit Vector | 简称CBV,网络管理报文中的控制字节 |
PDU transmission ability is disabled | 意思是网络管理报文传输功能已被CanNm_DisableCommunication服务禁用 |
Repeat Message Request Bit Indication | 重复请求报文指示,CanNm_RxIndication通过识别接收到网络管理报文(NM PDU)中控制字节(CBV)的重复报文请求位(Repeat Message Request Bit)来确认该指示 |
2.缩写表
缩写 | 解释 |
CanIf | CAN接口(CAN Interface)的缩写 |
NM PDU | 网络管理报文 |
SDU | 服务数据 |
CanNm | CAN网络管理(CAN Network Management)的缩写 |
CBV | 控制字节(网络管理报文中的第二个字节) |
CWU | 整车唤醒(Car Wakeup) |
NM | 网络管理(Network Management) |
SNI | 节点源地址(Source Node Identifier) |
PNC | 部分网络集群(Partial Network Cluster) |
PNI | 部分网络信息(Partial Network Information) |
PNL | 部分网络学习(Partial Network Learning) |
SWS | 全称Software specification,意思是软件规范 |
API | 全称Application Program Interface,意思是应用程序接口 |
3.功能(服务)定义
3.1 CanNm_Init
[SWS_CanNm_00208][
Service Name 服务名 | CanNm_Init |
Syntax 语法 | void CanNm_Init ( const CanNm_ConfigType* cannmConfigPtr ) |
Service ID [hex] 服务标识符 | 0x00 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Non Reentrant 不可重入(只运行一次) |
Parameters(in) 输入参数 | CannmConfigPtr 指向选定配置结构的指针 |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | None 无 |
Description 描述 | 初始化CanNm模块 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00253] CanNm_Init的注意事项:必须在CanIf初始化后调用函数CanNm_ Init。()
3.2 CanNm_DeInit
[SWS_CanNm_91002][
Service Name 服务名 | CanNm_DeInit |
Syntax 语法 | void CanNm_DeInit (void) |
Service ID [hex] 服务标识符 | 0x10 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Non Reentrant 不可重入(只运行一次) |
Parameters(in) 输入参数 | None 无 |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | None 无 |
Description 描述 | 去初始化CanNm模块 |
Avaiable via 可通过(该文件查看) | CanNm.h |
](SRS_BSW_00336)
注意:该去初始化函数CanNm_DeInit的一般行为和约束在下面的服务有明确说明:[SWS_BSW_00152], [SWS_BSW_00072], [SWS_BSW_00232], [SWS_BSW_00233]
警告:CanNm_DeInit功能的调用方必须确保所有CAN网络都处于总线休眠模式
[SWS_BSW_00352] 如果CanNm模块的错误检测被开启,如果不是所有CAN网络都处于总线休眠模式时,调用CanNm_DeInit功能函数会造成CANNM_E_NOT_IN_BUS_SLEEP错误。(SRS_BSW_00369)
3.3 CanNm_PassiveStartUp
[SWS_CanNm_00211][
Service Name 服务名 | CanNm_PassiveStartUp |
Syntax 语法 | Std_ReturnType CanNm_PassiveStartUp ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0x01 |
Sync/Async 同步/异步 | Asynchronous 异步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:网络管理的被动启动失败 |
Description 描述 | AUTOSAR CAN NM的被动启动,表示触发从总线睡眠模式或准备总线睡眠模式到网络模式中重复报文状态的转换。 警告:CanNm模块正确初始化。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00254] CanNm_PassiveStartUp警示:CanNm模块要正确初始化。()
3.4 CanNm_NetworkRequest
[SWS_CanNm_00213][
Service Name 服务名 | CanNm_NetworkRequest |
Syntax 语法 | Std_ReturnType CanNm_NetworkRequest ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0x02 |
Sync/Async 同步/异步 | Asynchronous 异步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:网络请求失败 |
Description 描述 | 请求网络,因为ECU需要在总线上通信。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00255] 功能函数CanNm_NetworkRequest应将网络状态更改为“已请求”。()
[SWS_CanNm_00256] CanNm_NetworkRequest的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00257] CanNm_NetworkRequest的配置:可选
(仅当 CanNmPassiveModeEnabled不使能,此配置才可用)。()
3.5 CanNm_NetworkRelease
[SWS_CanNm_00214][
Service Name 服务名 | CanNm_NetworkRelease |
Syntax 语法 | Std_ReturnType CanNm_NetworkRelease ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0x03 |
Sync/Async 同步/异步 | Asynchronous 异步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:网络释放失败 |
Description 描述 | 释放网络,因为ECU不需要在总线上通信。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00259] CanNm_NetworkRelease的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00260] CanNm_NetworkRelease的配置:可选
(仅当 CanNmPassiveModeEnabled不使能,此配置才可用)。()
3.6 CanNm_DisableCommunication
[SWS_CanNm_00215][
Service Name 服务名 | CanNm_DisableCommunication |
Syntax 语法 | Std_ReturnType CanNm_DisableCommunication ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0x0C |
Sync/Async 同步/异步 | Asynchronous 异步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:禁用NM PDU传输能力失败 |
Description 描述 | 由于ISO14229通信控制(28hex)服务,禁用NM PDU传输能力 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00261] CanNm_DisableCommunication的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00262] CanNm_DisableCommunication的配置:可选
(仅当 CanNmComControlEnabled设置为TRUE,此配置才可用)。()
[SWS_CanNm_00172] 如果当前模式不是网络模式,服务
CanNm_DisableCommunication应返回E_NOT_OK。()
3.7 CanNm_EnableCommunication
[SWS_CanNm_00216][
Service Name 服务名 | CanNm_EnableCommunication |
Syntax 语法 | Std_ReturnType CanNm_EnableCommunication ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0x0D |
Sync/Async 同步/异步 | Asynchronous 异步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:启用NM PDU传输能力失败 |
Description 描述 | 由于ISO14229通信控制(28hex)服务,启用NM PDU传输能力 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00176] 如果NM PDU传输能力被禁用,调用服务
CanNm_EnableCommunication(函数)可启用NM PDU传输能力。(RS_Nm_02512)
[SWS_CanNm_00177] 如果NM PDU传输能力被使能,调用服务
CanNm_EnableCommunication(函数)则返回E_NOT_OK。()
[SWS_CanNm_00295] 如果当前模式不是网络模式,调用服务
CanNm_EnableCommunication(函数)则返回E_NOT_OK。()
[SWS_CanNm_00263] CanNm_EnableCommunication的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00264] CanNm_EnableCommunication的配置:可选
(仅当 CanNmComControlEnabled设置为TRUE,此配置才可用)。()
3.8 CanNm_SetUserData
[SWS_CanNm_00217][
Service Name 服务名 | CanNm_SetUserData |
Syntax 语法 | Std_ReturnType CanNm_SetUserData ( NetworkHandleType nmChannelHandle, const uint8* nmUserDataPtr ) |
Service ID [hex] 服务标识符 | 0x04 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
nmUserDataPtr 下一次传输的NM PDU的用户数据应从指针对于的数据提取 | |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:设置用户数据失败 |
Description 描述 | 为接下来在总线上传输的NM PDU设置用户数据。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00265] CanNm_SetUserData的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00266] CanNm_SetUserData的配置:可选
(仅当 CanNmUserDataEnabled设置为TRUE和CanNmPassiveModeEnabled未使能,此配置才可用)。()
3.9 CanNm_GetUserData
[SWS_CanNm_00218][
Service Name 服务名 | CanNm_GetUserData |
Syntax 语法 | Std_ReturnType CanNm_GetUserData ( NetworkHandleType nmChannelHandle, uint8* nmUserDataPtr ) |
Service ID [hex] 服务标识符 | 0x05 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | nmUserDataPtr 应将最近接收的NM PDU中的用户数据复制到该指针对应的空间 |
Return value 返回值 | Std_ReturnType E_OK:没有错误 E_NOT_OK:获取用户数据失败 |
Description 描述 | 从最近接收的NM PDU中获取用户数据。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00267] CanNm_GetUserData的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00268] CanNm_GetUserData的配置:可选
(仅当 CanNmUserDataEnabled设置为TRUE,此配置才可用)。()
3.10 CanNm_Transmit
[SWS_CanNm_00331][
Service Name 服务名 | CanNm_Transmit |
Syntax 语法 | Std_ReturnType CanNm_Transmit ( PduIdType TxPduId, const PduInfoType* PduInfoPtr ) |
Service ID [hex] 服务标识符 | 0x49 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant for different PduIds. Non reentrant for the same PduId. 可重入用于不同的报文ID。对于相同的报文ID,不可重入。 |
Parameters(in) 输入参数 | TxPduId 要发送的PDU的ID |
PduInfoPtr PDU数据的长度和指针以及元数据的指针。 | |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:传输请求已被接受 E_NOT_OK:传输请求未被接受。 |
Description 描述 | 请求PDU的传输。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00330] 。如果CanNmComUserDataSupport和CanNmGlobalPnSupport是使能的,则CanNm模块应提供一个CanNm_Transmit应用程序接口。()
[SWS_CanNm_00330] 如果同时满足下面三个条件:
1.CanNmComUserDataSupport是使能的;
2.CanNm模块处于重复报文状态或正常操作状态;
3.CanNm_Transmit服务函数被调用
CanNm应请求使用当前用户数据附加传输NM PDU。(RS_Nm_02527)
3.11 CanNm_GetNodeIdentifier
[SWS_CanNm_00219][
Service Name 服务名 | CanNm_GetNodeIdentifier |
Syntax 语法 | Std_ReturnType CanNm_GetNodeIdentifier ( NetworkHandleType nmChannelHandle, uint8* nmNodeIdPtr ) |
Service ID [hex] 服务标识符 | 0x06 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant 可重入 |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | nmNodeIdPtr 最近接收的NM PDU中的节点标识符应复制到该指针所对应的空间 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:从最近接收到的NM PDU中获取节点标识符失败,或者没有为此网络处理进行配置 |
Description 描述 | 从最近接收的NM PDU中获取节点标识符。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00132] 如果CanNmNodeIdEnabled设置为TRUE,服务调用
CanNm_GetNodeIdentifier应提供最近接收到的网络管理PDU中的节点标识符。
(RS_Nm_02506)
[SWS_CanNm_00269] CanNm_GetNodeIdentifier的注意事项:前提是CanNm模块需要正确初始化。()
3.12 CanNm_GetLocalNodeIdentifier
[SWS_CanNm_00220][
Service Name 服务名 | CanNm_GetLocalNodeIdentifier |
Syntax 语法 | Std_ReturnType CanNm_GetLocalNodeIdentifier ( NetworkHandleType nmChannelHandle, uint8* nmNodeIdPtr ) |
Service ID [hex] 服务标识符 | 0x07 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant 可重入 |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | nmNodeIdPtr 本地节点的节点标识符应复制到此指针所对应的空间 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:获取本地节点的节点标识符失败,或者没有为此网络处理进行配置 |
Description 描述 | 获取为本地节点配置的节点标识符。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00133] 如果CanNmNodeIdEnabled设置为TRUE,服务调用
CanNm_GetLocalNodeIdentifier应提供本地节点配置的节点标识符。
(RS_Nm_02508)
[SWS_CanNm_00269] CanNm_GetLocalNodeIdentifier的注意事项:前提是CanNm模块需要正确初始化。()
3.13 CanNm_RepeatMessageRequest
[SWS_CanNm_00221][
Service Name 服务名 | CanNm_RepeatMessageRequest |
Syntax 语法 | Std_ReturnType CanNm_RepeatMessageRequest ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0x08 |
Sync/Async 同步/异步 | Asynchronous 异步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:设置重复消息请求位失败,或者没有为此网络处理进行配置 |
Description 描述 | 为接下来在总线上传输的NM PDU设置重复消息请求位 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00273] CanNm_RepeatMessageRequest的注意事项:前提是CanNm模块需要正确初始化。()
3.14 CanNm_GetPduData
[SWS_CanNm_00222][
Service Name 服务名 | CanNm_GetPduData |
Syntax 语法 | Std_ReturnType CanNm_GetPduData ( NetworkHandleType nmChannelHandle, uint8* nmPduDataPtr ) |
Service ID [hex] 服务标识符 | 0x0A |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant 可重入 |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | nmPduDataPtr NM PDU的字节信息复制到该指针所对应的空间 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:获取NM PDU数据失败,或者没有为此网络处理进行配置 |
Description 描述 | 从最近接收的NM PDU中获取整个PDU数据。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00275] CanNm_GetPduData的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00138] 如果CanNmNodeDetectionEnabled或CannNmUserDataEnabled
或 CanNmNodeIdEnabled设置为TRUE,调用CanNm_GetPduData服务函数应提供最近接收的NM PDU的整个数据。()
3.15 CanNm_GetState
[SWS_CanNm_00223][
Service Name 服务名 | CanNm_GetState |
Syntax 语法 | Std_ReturnType CanNm_GetState ( NetworkHandleType nmChannelHandle, Nm_StateType* nmStatePtr, Nm_ModeType* nmModePtr ) |
Service ID [hex] 服务标识符 | 0x0B |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant 可重入 |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | nmStatePtr NM状态应复制到该指针所对应的空间 |
nmModePtr NM模式应复制到该指针所对应的空间 | |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:获取NM 状态失败 |
Description 描述 | 获取网络管理的状态和模式。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00277] CanNm_GetState的注意事项:前提是CanNm模块需要正确初始化。()
3.16 CanNm_GetVersionInfo
[SWS_CanNm_00224][
Service Name 服务名 | CanNm_GetVersionInfo |
Syntax 语法 | void CanNm_GetVersionInfo ( Std_VersionInfoType* versioninfo ) |
Service ID [hex] 服务标识符 | 0xF1 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant 可重入 |
Parameters(in) 输入参数 | None 无 |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | versioninfo 此模块的版本信息应复制到该指针所对应的空间 |
Return value 返回值 | None 无 |
Description 描述 | 获取CanNm模块的版本信息。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
3.17 CanNm_RequestBusSynchronization
[SWS_CanNm_00226][
Service Name 服务名 | CanNm_RequestBusSynchronization |
Syntax 语法 | Std_ReturnType CanNm_RequestBusSynchronization ( NetworkHandleType nmChannelHandle ) |
Service ID [hex] 服务标识符 | 0xC0 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Non Reentrant 不可重入 |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:请求总线同步失败 |
Description 描述 | 请求总线同步。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
](RS_Nm_02516)
[SWS_CanNm_00279] CanNm_RequestBusSynchronization的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00280] CanNm_RequestBusSynchronization的配置:可选
(仅当 CanNmPassiveModeEnabled不使能和CanNmBusSynchronizationEnabled设置为TRUE,此配置才可用)。(RS_Nm_02516)
[SWS_CanNm_00130] 如果CanNmPassiveModeEnabled不使能,服务调用
CanNm_ RequestBusSynchronization将触发单个网络管理PDU的传输。
(RS_Nm_02516)
注意:此服务通常用于支持NM网关扩展(给ECU加网关的功能)
[SWS_CanNm_00187] 如果在总线睡眠模式和准备总线睡眠模式下,调用
CanNm_RequestBusSynchronization,CanNm模块将不执行服务,并返回E_NOT_OK。(RS_Nm_02516)
3.18 CanNm_CheckRemoteSleepIndication
[SWS_CanNm_00227][
Service Name 服务名 | CanNm_CheckRemoteSleepIndication |
Syntax 语法 | Std_ReturnType CanNm_CheckRemoteSleepIndication ( NetworkHandleType nmChannelHandle, boolean* nmRemoteSleepIndPtr ) |
Service ID [hex] 服务标识符 | 0xD0 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant 可重入 |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | nmRemoteSleepIndPtr 远程睡眠指示检查结果应复制到该指针所对应的空间 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:检查远程睡眠指示位失败 |
Description 描述 | 检查是否出现远程睡眠指示。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00153]调用服务CanNm_CheckRemoteSleepIndication应提供有关远程睡眠指示当前状态的信息(即:检测到或者没有)。(RS_Nm_00052,RS_Nm_02509)
[SWS_CanNm_00281] CanNm_CheckRemoteSleepIndication的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00282] CanNm_CheckRemoteSleepIndication的配置:可选
(仅当 CanNmRemoteSleepIndEnabled为TRUE,此配置才可用)。()
3.19 CanNm_SetSleepReadyBit
[SWS_CanNm_00338][
Service Name 服务名 | CanNm_SetSleepReadyBit |
Syntax 语法 | Std_ReturnType CanNm_SetSleepReadyBit ( NetworkHandleType nmChannelHandle, boolean nmSleepReadyBit ) |
Service ID [hex] 服务标识符 | 0x17 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant(but not for the same NM-Channel) 可重入(对于不相同的NM通道) |
Parameters(in) 输入参数 | nmChannelHandle NM通道(区分) |
nmSleepReadyBit 将此输入参数写入到CBV中的ReadySleep位 | |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | Std_ReturnType E_OK:无错误 E_NOT_OK:远程睡眠指示位写入失败 |
Description 描述 | 在控制位向量中设置NM协调器睡眠就绪位(NM Coordinator Sleep Ready Bit) |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00339] CanNm_SetSleepReadyBit的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00340] CanNm_SetSleepReadyBit的配置:可选
(仅当 CanNmCoordinatorSyncSupport为TRUE,此配置才可用)。()
4.回调通知
4.1. CanNm_TxConfirmation
[SWS_CanNm_00228][
Service Name 服务名 | CanNm_TxConfirmation |
Syntax 语法 | void CanNm_TxConfirmation ( PduIdType TxPduId, Std_ReturnType result ) |
Service ID [hex] 服务标识符 | 0x40 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant for different PduIds. Non reentrant for the same PduId. 可重入用于不同的报文ID。对于相同的报文ID,不可重入。 |
Parameters(in) 输入参数 | TxPduId 已发送的PDU的ID。 |
result E_OK:PDU已传输 E_NOT_OK:PDU传输失败 | |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | None 无 |
Description 描述 | 下层通信接口模块确认PDU的传输,或者PDU的传输失败。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
[SWS_CanNm_00283] CanNm_TxConfirmation的注意事项:
- 在中断级别(中断模式)或任务级别(轮询模式)调用该回调服务。对于多个CAN控制器的使用,此回调服务是可重入的。
- 前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00284] CanNm_TxConfirmation的配置:可选
(仅当 CanNmPassiveModeEnabled和CanNmImmediateTxConfEnabled为FALSE,此配置才可用)。()
4.2. CanNm_RxIndication
[SWS_CanNm_00231][
Service Name 服务名 | CanNm_RxIndication |
Syntax 语法 | void CanNm_RxIndication ( PduIdType RxPduId, const PduInfoType* PduInfoPtr ) |
Service ID [hex] 服务标识符 | 0x42 |
Sync/Async 同步/异步 | Synchronous 同步的 |
Reentrancy 可重入 | Reentrant for different PduIds. Non reentrant for the same PduId. 可重入用于不同的报文ID。对于相同的报文ID,不可重入。 |
Parameters(in) 输入参数 | RxPduId 接收到的PDU的ID。 |
PduInfoPtr 包含接收到的PDU的长度(SduLength)、指向包含该PDU的缓冲区(SduDataPtr)的指针以及与该PDU相关的数据单元。 | |
Parameters(inout) 输入输出参数 | None 无 |
Parameters(out) 输出参数 | None 无 |
Return value 返回值 | None 无 |
Description 描述 | 指示从下层通信接口模块接收的PDU。 |
Avaiable via 可通过(该文件查看) | CanNm.h |
]()
注意:该回调函数由CAN接口调用(向上层上传接收参数),并且由CanNm模块实现。在CAN驱动器的接收指示事件的情况下调用。
[SWS_CanNm_00231] CanNm_ RxIndication的注意事项:
- 在该服务返回之前,CAN接口将无法访问canSduPtr。直到该服务返回时,此canSduPtr才有效,并且由上层使用。CAN接口保证为canNmRxPduId配置的字节数是有效的。在中断级别(中断模式)或任务级别(轮询模式)调用该回调服务。对于多个CAN控制器的使用,此回调服务是可重入的。
- 前提是CanNm模块需要正确初始化。()
-
4.3. CanNm_ConfirmPnAvailability
[SWS_CanNm_00344][
Service Name
服务名
CanNm_ConfirmPnAvailability
Syntax
语法
void CanNm_ConfirmPnAvailability ( NetworkHandleType nmChannelHandle ) Service ID [hex]
服务标识符
0x16
Sync/Async
同步/异步
Synchronous
同步的
Reentrancy
可重入
Reentrant(but not for the same NM-Channel)
可重入(对于不相同的NM通道)
Parameters(in)
输入参数
nmChannelHandle
NM通道(区分)
Parameters(inout)
输入输出参数
None
无
Parameters(out)
输出参数
None
无
Return value
返回值
None
无
Description
描述
在指定的NM通道上开启PN滤波器功能。
(注意:必须CanNmGlobalPnSupport为TRUE,此应用程序接口才可使用)
Avaiable via
可通过(该文件查看)
CanNm.h ]()
-
[SWS_CanNm_00345] CanNm_ConfirmPnAvailability的注意事项:前提是CanNm模块需要正确初始化。()
[SWS_CanNm_00346] CanNm_ConfirmPnAvailability的配置:可选
(仅当 CanNmGlobalPnSupport为TRUE,此配置才可用)。()
-
4.4. CanNm_TriggerTransmit
[SWS_CanNm_91001][
Service Name
服务名
CanNm_TriggerTransmit
Syntax
语法
Std_ReturnType CanNm_TriggerTransmit ( PduIdType TxPduId, PduInfoType* PduInfoPtr ) Service ID [hex]
服务标识符
0x41
Sync/Async
同步/异步
Synchronous
同步的
Reentrancy
可重入
Reentrant for different PduIds. Non reentrant for the same PduId.
可重入用于不同的报文ID。对于相同的报文ID,不可重入。
Parameters(in)
输入参数
TxPduId
请求传输的SDU(服务数据)的ID
Parameters(inout)
输入输出参数(既有输入部分参数,又预留了输出参数的空间)
PduInfoPtr
包含指向SDU数据应复制到的缓冲区(SduDataPtr)的指针,以及可用的缓冲区大小(以SduLengh为单位)。返回时,服务将以SduLength表示复制的SDU数据的长度。
Parameters(out)
输出参数
None
无
Return value
返回值
Std_ReturnType
E_OK:SDU已复制,SduLength表示复制的字节数
E_NOT_OK:未复制任何SDU数据,且不得使用PduInfoPtr,因为它可能包含空指针或指向无效数据的点。
Description
描述
在该应用程序接口(API)中,上层模块(称为模块)应检查可用数据是否符合PduInfoPtr->SduLength报告的缓冲区大小,如果符合,它应将其数据复制到PduInfoPtr->SduDataPtr提供的缓冲区中,并且在PduInfoPtr->SduLength中更新实际复制数据的长度;如果不符合,将返回E_NOT_OK且不改变PduInfoPtr。
Avaiable via
可通过(该文件查看)
CanNm.h ]()
-
[SWS_CanNm_00351] CanNm_TriggerTransmit应复制TxPduId请求的相应NM PDU的NM PDU数据,到对应的数据缓存中。(RS_Nm_02503)
注意:CanIf可以在中断里调用CanNm_TriggerTransmit功能函数。
5. 预定功能
5.1 CanNm_MainFunction
[SWS_CanNm_00234][
Service Name 服务名 | CanNm_MainFunction |
Syntax 语法 | void CanNm_MainFunction ( void ) |
Service ID [hex] 服务标识符 | 0x13 |
Description 描述 | CanNm的主要功能用于处理该文件中描述的算法 |
Avaiable via 可通过(该文件查看) | SchM_CanNm.h |
]()
注意:SWS_BSW_00037明确规定,如果模块未初始化,则CanNm_main函数将返回,而不执行任何功能。
6. 预期接口
本章列出了其他模块所需的所有接口
6.1.强制接口
[SWS_CanNm_00324][
API Function 应用程序接口功能 | Header File 头文件 | Description 描述 |
Det_ReportRuntimeError | Det.h | 用于报告运行时错误的服务。如果已配置调用,则应调用此调用 |
Nm_BusSleepMode | Nm.h | 网络管理已进入总线休眠模式的通知。 |
Nm_NetworkMode | Nm.h | 网络管理已进入网络模式的通知。 |
Nm_NetworkStartIndication | Nm.h | 该节点在总线休眠模式下接收到NM消息的通知,表示网络中的某些节点已进入网络模式。 |
Nm_PrepareBusSleepMode | Nm.h | 网络管理进入准备睡眠模式的通知。 |
]()
6.2. 可选接口
本章定义了实现模块可选功能所需的所有接口。
[SWS_CanNm_00325][
API Function 应用程序接口功能 | Header File 头文件 | Description 描述 |
CanIf_Transmit | CanIf.h | 请求PDU传输 |
CanSM_TxTimeoutException | CanSM_CanIf.h | 该功能用来通知CanSM模块,如果CanNm检测到受影响的部分CAN网络存在发送超时异常,该异常应在CanSM模块的相应网络状态机内恢复。 |
Det_ReportError | Det.h | 用于报告开发错误的服务。 |
Nm_CarWakeUpIndication | Nm.h | 该功能指示接收到CWU(整车唤醒)请求。 |
Nm_CoordReadyToSleepCancellation | Nm.h | 当CBV中的NM协调器睡眠就绪位被设置回0时,取消指示 |
Nm_CoordReadyToSleepIndication | Nm.h | 当CBV中的NM协调器睡眠就绪位被设置回1时,设置指示 |
Nm_ForwardSynchronizedPncShutdown | Nm.h | 网络管理已在特定NM通道上接收到PN关闭消息的通知。这用于在整个PN拓扑上授予几乎同步的PNC关闭。 |
Nm_PduRxIndication | Nm.h | 已接收到NM报文的通知 |
Nm_RemoteSleepCancellation | Nm.h | 网络管理已检测到网络上并非所有其他节点都已做好进入总线睡眠模式的准备的通知 |
Nm_RemoteSleepIndication | Nm.h | 网络管理已检测到网络上的所有其他节点已准备好进入总线休眠模式的通知 |
Nm_RepeatMessageIndication | Nm.h | 该服务用于指示已接收到具有设置重复消息请求位的NM消息。这是节点检测和动态PNC到通道映射功能所需的。 |
Nm_StateChangeNotification | Nm.h | 通知下层<BusNm>的状态已更改。 |
PduR_CanNmRxIndication | PduR_CanNm.h | 指示从下层通信接口模块接收的PDU |
PduR_CanNmTriggerTransmit | PduR_CanNm.h | 在该应用程序接口(API)中,上层模块(称为模块)应检查可用数据是否符合PduInfoPtr->SduLength报告的缓冲区大小,如果符合,它应将其数据复制到PduInfoPtr->SduDataPtr提供的缓冲区中,并且在PduInfoPtr->SduLength中更新实际复制数据的长度;如果不符合,将返回E_NOT_OK且不改变PduInfoPtr。 |
PduR_CanNmTxConfirmation | PduR_CanNm.h | 下层通信接口模块确认PDU的传输或未能传输PDU。 |
]()
6.3 可配置接口
CanNm不提供任何可配置接口。
6.4 任务结束通知
CanNm不提供任何任务结束通知。
7 服务接口
CanNm不提供任何服务接口。