CAN Network Management(CanNm)实现基于 CAN 的网络管理。符合 AUTOSAR NM 规范 + OSEK NM 兼容扩展,支持 Partial Networking(PN)、协调器同步、重复消息、远程睡眠指示等。
CanNm / NM / CAN / BusSleep / PrepareBusSleep / Network / RepeatMessage / CBV / PN / PN-C / PN-R / Sync / OSEK NM
[1] AUTOSAR SWS Nm
[2] AUTOSAR SWS ComM
[3] AUTOSAR SWS CAN Interface
[4] AUTOSAR SWS CAN State Manager
[5] AUTOSAR SRS Network Management
CanNm 应:
CanNm 依赖:Nm(通用 NM 接口)/ ComM(模式请求)/ CanIf(CAN 接口)/ PduR(PDU 路由)/ Dem(错误上报)。
CanNm 状态机:
CanNm 支持 PN:
void CanNm_Init(const CanNm_ConfigType* ConfigPtr):初始化。
void CanNm_DeInit(void):去初始化。
Std_ReturnType CanNm_NetworkRequest(NetworkHandleType NetworkHandle):网络请求。
Std_ReturnType CanNm_NetworkRelease(NetworkHandleType NetworkHandle):网络释放。
Std_ReturnType CanNm_PassiveStartUp(NetworkHandleType NetworkHandle):被动启动。
Std_ReturnType CanNm_CheckRemoteSleepIndication(NetworkHandleType NetworkHandle, boolean* NmRemoteSleepIndPtr):检查远程睡眠指示。
Std_ReturnType CanNm_GetState(NetworkHandleType NetworkHandle, Nm_StateType* NmStatePtr, Nm_ModeType* NmModePtr):获取 NM 状态与模式。
Std_ReturnType CanNm_GetUserData(NetworkHandleType NetworkHandle, uint8* const UserDataPtr, uint8* LengthPtr):获取用户数据。
Std_ReturnType CanNm_SetUserData(NetworkHandleType NetworkHandle, const uint8* UserDataPtr, uint8 Length):设置用户数据。
Std_ReturnType CanNm_GetPduData(NetworkHandleType NetworkHandle, uint8* const PduDataPtr, uint8* LengthPtr):获取 NM PDU 数据。
Std_ReturnType CanNm_RequestBusSynchronization(NetworkHandleType NetworkHandle):请求总线同步。
Std_ReturnType CanNm_CheckBusSynchronization(NetworkHandleType NetworkHandle, boolean* SynchronizedPtr):检查同步状态。
void CanNm_TxConfirmation(PduIdType TxPduId, Std_ReturnType Result):发送确认。
void CanNm_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr):接收指示。
void CanNm_MainFunction(void):周期性主函数。
CanNm 配置类:
CANNM_E_UNINIT:模块未初始化。
CANNM_E_PARAM_POINTER:参数指针为空。
CANNM_E_PARAM:参数无效。
CANNM_E_INV_NETWORK_HANDLE:网络句柄无效。
CANNM_E_BUSY:模块忙。
校对轮次:L1 自动校对(2026-06-13)