功能描述
ECU Passive Mode
CanSM可以设置启动后是否进入静默模式(Passive Mode)。 Passive Mode时ECU 所有CAN通道不发送报文,即Tx PDU的状态为OFFLINE_ACTIVE。ECU运行过程中可以调用CanSM_SetEcuPassive()接口来关闭或打开静默模式。
Busoff 恢复机制
CanSM 处理BusOff的机制概况来说主要有以下4步:
-
Can控制器驱动上报CAN Busoff error至CanSM(通过调用CanSM_ControllerBusOff向CanSM通知)。
-
CanSM收到busoff通知后先通过调用CanIf_SetControllerMode(CANIF_CS_STARTED)使Can控制器重启。
-
在CAN控制器重启之后,CanSM切换到TX_OFFLINE状态,即只接收CAN报文、不发送CAN报文。TX_OFFLINE状态持续时间取决于当前是快恢复还是慢恢复。
-
当TX_OFFLINE状态计时时间结束后,CanSM切换到BUS_OFF_CHECK状态。该状态会恢复CAN报文的发送。如果持续CanSMBorTimeTxEnsured时间没有再产生Busoff事件,那么说明Busoff已正常恢复。否则直接跳转至步骤2的状态。
DaVinci配置
CanSMGerneral
Bor Check Level
勾选后使能CanSM_CheckBorLevel API接口。这是MICROSAR专门的接口,并不是AUTOSAR规范的接口。CanSM_CheckBorLevel 用来查询当前处于Busoff快恢复(L1 Level)还是慢恢复(L2 Level)阶段。
Bus Off Begin
Can busoff事件发生时的用户回调函数。该回调函数在CanSM_ControllerBusOff()内被调用。函数原型:
void Appl_CanSM_BusOffBegin( NetworkHandleType NetworkHandle, uint8* OnlineDelayCyclesPtr );
OnlineDelayCyclesPtr 指针指向的数据表示TxOffline的设置时间,一般用于J1939协议。其他协议通信该指针指向数据设为0即可。
Bus Off End
Busoff恢复后(重新打开Tx PDU发生时)的用户回调函数。函数原型:
void Appl_CanSM_BusOffEnd( NetworkHandleType NetworkHandle );
Change Baudrate Api
该参数定义是否提供 Can_ChangeBaudrate API。
请注意:
- ChangeBaudrate API 及此参数已弃用,将在未来版本中移除(由 CanSMSetBaudrateApi 替代)。
- 若此参数设为 true,则需支持 Can_ChangeBaudrate API;否则该 API 不可用。
Ecu Passive Mode
勾选使能Ecu Passive Mode。即MCU上电初始化后所有CAN通道默认保持只收不发的状态。
Extended Ram Check
勾选使能对CAN寄存器和MsgBoxes的扩展RAM检查。
RAM检查将在Shutdown过程中执行。 潜在错误会上报给应用程序。 只要存在CAN寄存器错误,就会停止对CAN硬件的进一步修改。
Main Function Time Period[ms]
设置CanSM_MainFunction()周期性函数的执行周期,一般设置10ms。
Prevent Bus Sleep At Start Up
该参数用于启用/禁用 “Prevent Bus Sleep At Start Up”(防止总线启动时休眠)API 功能。
此 API 可使 CanSM 模块跳过对应 CAN 通道的初始状态转换阶段。
Safe Bsw Checks
该参数用于选择是否启用安全检查功能。 这些检查可提升系统的鲁棒性,例如:在函数执行前对无效参数进行校验。若当前组件被映射到ASIL(汽车安全完整性等级)分区,则必须启用此属性以满足安全相关项目的合规要求。
Set Baudrate Api
该参数用于启用或禁用“SetBaudrate”(设置波特率)功能,此功能允许在运行时动态修改波特率。
对 Can_SetBaudrate API 的支持是可选的。若已使用 Can_ChangeBaudrate 功能,则必须禁用此参数
Swift Tx Timeout Recovery
当CanSM模块接收到CanSM_TxTimeoutException(发送超时异常)通知时,其行为逻辑如下:
- 状态转换规则
- CanSM会执行向CANSM_NO_COMMUNICATION(无通信状态)的转换,除非总线关闭(Bus-Off)已激活。
- 若总线关闭已激活,则忽略该异常通知(因其可能是由TxOffline阶段产生的"误报")。此时通信可能在后续恢复,若未恢复,CanNM模块会再次触发"发送超时异常"通知。
- 通信请求处理
- 在"发送超时异常"处理过程中,所有传入的通信模式请求将被暂存,直至进入CANSM_NO_COMMUNICATION状态。
- 进入该状态后,若最后一次请求的通信模式为COMM_FULL_COMMUNICATION(全通信模式)或COMM_SILENT_COMMUNICATION(静默通信模式),则启动向CANSM_FULL_COMMUNICATION(全通信状态)的转换。
- 快速恢复机制
- 若启用CanSMSwiftTxTimeoutRecovery(快速发送超时恢复)功能:
- 仅将控制器从STOPPED(停止)状态直接切回STARTED(启动)状态,而非执行完整的关闭-启动流程。
- 若首次尝试切回STARTED失败:
- 向ComM模块通知COMM_SILENT_COMMUNICATION
- 向BswM模块通知CANSM_BSWM_NO_COMMUNICATION
- 执行标准重试机制以达成目标控制器状态
- 若启用CanSMSwiftTxTimeoutRecovery(快速发送超时恢复)功能:
Tx Timeout End
该函数在CanSM_TxTimeoutException超时异常处理结束时被调用。
如果配置了有效的函数名称,CanSM 将激活**“扩展”超时异常处理**。
“扩展”超时异常处理等同于先执行 CanSMSwiftTxTimeoutRecovery(快速发送超时恢复机制),随后执行配置的结束指示。
此外,即使发送超时异常发生在 SILENTCOM(静默通信模式)或 BUS_OFF_CHECK(总线关闭检查状态)下,CanSM 仍会执行此处理流程。
默认函数原型:
void Appl_TxTimeoutExceptionEnd( NetworkHandleType NetworkHandle );
User Config File
添加用户自己的头文件。
Version Info Api
勾选使能CanSM_GetVersionInfo() API。
6816

被折叠的 条评论
为什么被折叠?



