AUTOSAR之网络管理API定义

目录

1.英文术语

2.缩写表 

3.功能(服务)定义

3.1 CanNm_Init

3.2 CanNm_DeInit

3.3 CanNm_PassiveStartUp

3.4 CanNm_NetworkRequest

3.5 CanNm_NetworkRelease

3.6 CanNm_DisableCommunication

3.7 CanNm_EnableCommunication

3.8 CanNm_SetUserData

3.9 CanNm_GetUserData

3.10 CanNm_Transmit

3.11 CanNm_GetNodeIdentifier

3.12 CanNm_GetLocalNodeIdentifier

3.13 CanNm_RepeatMessageRequest

3.14 CanNm_GetPduData

3.15 CanNm_GetState

3.16 CanNm_GetVersionInfo

3.17 CanNm_RequestBusSynchronization

3.18 CanNm_CheckRemoteSleepIndication

3.19 CanNm_SetSleepReadyBit

4.回调通知

4.1. CanNm_TxConfirmation

4.2. CanNm_RxIndication

4.3. CanNm_ConfirmPnAvailability

4.4. CanNm_TriggerTransmit

5. 预定功能

5.1 CanNm_MainFunction

6. 预期接口

6.1.强制接口

6.2. 可选接口

6.3 可配置接口

6.4 任务结束通知

7 服务接口


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.缩写表 

缩写解释
CanIfCAN接口(CAN Interface)的缩写
NM PDU

网络管理报文

SDU服务数据
CanNmCAN网络管理(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_Enable
Communication(函数)可启用NM PDU传输能力。(RS_Nm_02512)

[SWS_CanNm_00177] 如果NM PDU传输能力被使能,调用服务
CanNm_Enable
Communication(函数)则返回E_NOT_OK。()

[SWS_CanNm_00295] 如果当前模式不是网络模式,调用服务
CanNm_Enable
Communication(函数)则返回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] 。如果CanNmComUserDataSupportCanNmGlobalPnSupport是使能的,则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] 如果CanNmNodeDetectionEnabledCannNmUserDataEnabled
 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的配置:可选
(仅当
CanNmPassiveModeEnabledCanNmImmediateTxConfEnabled为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_NetworkStartIndicationNm.h该节点在总线休眠模式下接收到NM消息的通知,表示网络中的某些节点已进入网络模式。
Nm_PrepareBusSleepModeNm.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_CarWakeUpIndicationNm.h该功能指示接收到CWU(整车唤醒)请求。
Nm_CoordReadyToSleepCancellationNm.h当CBV中的NM协调器睡眠就绪位被设置回0时,取消指示
Nm_CoordReadyToSleepIndicationNm.h当CBV中的NM协调器睡眠就绪位被设置回1时,设置指示
Nm_ForwardSynchronizedPncShutdownNm.h网络管理已在特定NM通道上接收到PN关闭消息的通知。这用于在整个PN拓扑上授予几乎同步的PNC关闭。
Nm_PduRxIndicationNm.h已接收到NM报文的通知
Nm_RemoteSleepCancellationNm.h网络管理已检测到网络上并非所有其他节点都已做好进入总线睡眠模式的准备的通知
Nm_RemoteSleepIndicationNm.h网络管理已检测到网络上的所有其他节点已准备好进入总线休眠模式的通知
Nm_RepeatMessageIndicationNm.h该服务用于指示已接收到具有设置重复消息请求位的NM消息。这是节点检测和动态PNC到通道映射功能所需的。
Nm_StateChangeNotificationNm.h通知下层<BusNm>的状态已更改。
PduR_CanNmRxIndicationPduR_CanNm.h指示从下层通信接口模块接收的PDU
PduR_CanNmTriggerTransmitPduR_CanNm.h在该应用程序接口(API)中,上层模块(称为模块)应检查可用数据是否符合PduInfoPtr->SduLength报告的缓冲区大小,如果符合,它应将其数据复制到PduInfoPtr->SduDataPtr提供的缓冲区中,并且在PduInfoPtr->SduLength中更新实际复制数据的长度;如果不符合,将返回E_NOT_OK且不改变PduInfoPtr。
PduR_CanNmTxConfirmationPduR_CanNm.h下层通信接口模块确认PDU的传输或未能传输PDU。

]()

6.3 可配置接口

CanNm不提供任何可配置接口。

6.4 任务结束通知

CanNm不提供任何任务结束通知。

7 服务接口

CanNm不提供任何服务接口。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心骗小白话

和我一起成长吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值