喷射的阶段(InjCurr_stPhaseUBA[idxBankUB])

#define INJCURRST_OFF 0 喷射关闭阶段

支持手动从标定处更新电流控制参数

#define INJCURRST_BOOST 1 高压上冲阶段

喷射过程中初始阶段之一,主要目的是通过快速提高喷油器线圈的电流来实现快速响应,以确保喷油器能够迅速打开。

1、高压上冲启动。

打开两个高边MOS和喷射的低边MOS。

2、实时监控喷射电流。

打开后立即获取此Bank的电流值,用来监测喷射过程中是否出现异常情况。

3、故障处理。

a)过流保护

InjCurr_adCRTUWA[idxBankUB]>InjCurr_iShortLmtUW

当反馈电流大于过流阈值 InjCurr_iShortLmtUW 时,认为发生过流。

执行:

关闭喷射:InjCurr_Ctl_BnkOff(idxBankUB)

写入故障信息:设置故障标志 DSM_bErrUBA,并记录为“Boost段过流” (_DSM_BOOST_GRAD_UPPERLIMIT)。

切换至故障状态:InjCurr_SwitchTo(idxBankUB, _INJCURR_ST_MALFUNCTION)

b)欠流保护

if((InjCurr_tiTmr1DuraUIA[idxBankUB]>=InjCurr_tiHtGChkUI)&&(InjCurr_adCRTUWA[idxBankUB]<InjCurr_iOpenLmtUW))

在上冲过程中,如果经过一定时间(InjCurr_tiHtGChkUI),反馈电流仍低于开路电流下限

InjCurr_iOpenLmtUW,可能发生开路或高边短地。

执行:

关闭喷射:InjCurr_Ctl_BnkOff(idxBankUB)

写入故障信息:标志为“Boost段欠流” (_DSM_BOOST_GRAD_LOWERLIMIT)。

切换至故障状态:InjCurr_SwitchTo(idxBankUB, _INJCURR_ST_MALFUNCTION)

4、高压上冲完成条件

如果没有故障发生,代码判断是否可以退出“高压上冲阶段”:

退出条件 1:时间达到上冲时限

if(InjCurr_tiTmr1DuraUIA[idxBankUB] >= InjCurr_tiBoostMaxUI)

上冲阶段的持续时间已达到最大允许值 InjCurr_tiBoostMaxUI

退出条件 2:上冲电流达到目标值(允许截断)

if((_BOOST_INTERFERENCE_ENABLE) && (InjCurr_adCRTUWA[idxBankUB] > InjCurr_iBoostDestUW))

如果允许截断(_BOOST_INTERFERENCE_ENABLE),且当前电流已达到目标电流 InjCurr_iBoostDestUW

退出后处理

若反馈电流低于开路电流下限值,关闭喷射并记录“欠流故障”。

否则:

启用 DCDC 电源泵电:InjCurr_bDCDCEnUB |= (uint8)(0x01 << idxBankUB)

此Bank高边控制高压的Mos关闭,只留下24V低压。

切换到下一个阶段:高端维持阶段(_INJCURR_ST_PEAK)。

#define INJCURRST_PEAK 2 高端维持阶段

通过维持高电流,确保喷油器保持打开状态,从而提供稳定的喷射量。

1. 获取反馈信息

获取当前喷射反馈电流(InjCurr_adCRTUWA[idxBankUB])。

获取高端维持阶段的计时信息(InjCurr_tiTmr1DuraUIA[idxBankUB])。

2. 高端维持完成条件

条件: 如果高端维持阶段持续时间达到上限值 InjCurr_tiPeakMaxUI

动作:

启用 DCDC 泵电支持:InjCurr_bDCDCEnUB |= (uint8)(0x01 << idxBankUB)

关闭 24V 高压调制:InjCurr_Ctl_BatOff(idxBankUB)

切换到保持阶段(Hold Phase):InjCurr_SwitchTo(idxBankUB, _INJCURR_ST_HOLD)

3. 故障处理

高端维持阶段会实时监控反馈电流,处理以下两类故障

a)过流故障

如果电流超过短路标定上限值 InjCurr_iShortLmtUW

执行:

关闭喷射:InjCurr_Ctl_BnkOff(idxBankUB)

写入过流故障信息:DSM_stErrUBA[idxBankUB] = _DSM_PEAK_CRT_UPPERLIMIT

切换到故障阶段(Malfunction Phase):InjCurr_SwitchTo(idxBankUB, _INJCURR_ST_MALFUNCTION)

b)欠流故障

如果电流低于开路下限值 InjCurr_iOpenLmtUW

执行:

写入欠流故障信息:DSM_stErrUBA[idxBankUB] = _DSM_PEAK_CRT_LOWERLIMIT

切换到故障阶段。(Malfunction Phase):InjCurr_SwitchTo(idxBankUB, _INJCURR_ST_MALFUNCTION)

4. 高端调制控制

高端维持阶段会对反馈电流进行动态调制,控制 MOS 管的开关状态,确保电流保持在目标范围内。

a)MOS 开状态(维持电流下限)

条件:如果电流低于下限 InjCurr_iPeakLoLmtUW,且当前状态不是 MOS 开状态。

动作:

根据是否由 DCDC 支持选择调用 InjCurr_Ctl_BoostOnInjCurr_Ctl_BatOn

重置计时器 2:InjCurr_RstTmr2(idxBankUB)

设置下次调制的时间间隔:InjCurr_tiNextActionUWA[idxBankUB] = InjCurr_tiPeakPwmOnUW

b)MOS 关状态(维持电流上限)

条件:如果电流超过上限 InjCurr_iPeakUpLmtUW,且当前状态不是 MOS 关状态。

动作:

关闭 24V调制:InjCurr_Ctl_BatOff(idxBankUB)

重置计时器 2,调整下次动作时间:InjCurr_tiNextActionUWA[idxBankUB] = InjCurr_tiPeakPwmOffUW

#define INJCURRST_HOLD 3 低端维持阶段

喷射控制流程中接近结束的阶段,主要目的是通过低电流维持喷油器的最小开启状态,并逐步完成喷射过程。

1. 获取反馈信息

反馈电流: InjCurr_adCRTUWA[idxBankUB],用于判断当前电流是否在目标范围内。

阶段计时: InjCurr_tiTmr1DuraUIA[idxBankUB],用于判断是否超出低端维持阶段的时间限制。

2. 低端维持阶段结束条件

条件: 阶段计时超过低端维持时间限制 InjCurr_tiHoldMaxUI

动作:

关闭喷射:InjCurr_Ctl_BnkOff(idxBankUB)

切换到故障阶段(Malfunction Phase):InjCurr_SwitchTo(idxBankUB, _INJCURR_ST_MALFUNCTION)

3. 故障处理

a)过流故障

条件: 如果反馈电流大于短路上限值 InjCurr_iShortLmtUW

动作:

关闭喷射:InjCurr_Ctl_BnkOff(idxBankUB)

写入过流故障信息:DSM_stErrUBA[idxBankUB] = _DSM_HOLD_CRT_UPPERLIMIT

切换到故障阶段。

b)欠流故障

条件: 如果反馈电流小于开路下限值 InjCurr_iOpenLmtUW

动作:

写入欠流故障信息:DSM_stErrUBA[idxBankUB] = _DSM_HOLD_CRT_LOWERLIMIT

切换到故障阶段。

4. 低端调制控制

a)触发调制条件

条件: 调制计时器到达下一个动作的时间 InjCurr_tiNextActionUWA[idxBankUB],且当前未在调制中。

动作: 触发调制 InjCurr_bActionUBA[idxBankUB] = 1

b)MOS 开状态(保持最低电流)

条件: 反馈电流低于低端维持下限值 InjCurr_iHoldLoLmtUW

动作:

打开 24V 调制:InjCurr_Ctl_BatOn(idxBankUB)

重置计时器 2:InjCurr_RstTmr2(idxBankUB)

设置下次调制的时间间隔:InjCurr_tiNextActionUWA[idxBankUB] = InjCurr_tiHoldPwmOnUW

c)MOS 关状态(避免过高电流)

条件: 反馈电流高于低端维持上限值 InjCurr_iHoldUpLmtUW

动作:

关闭 24V 高压调制:InjCurr_Ctl_BatOff(idxBankUB)

重置计时器 2,调整下次动作时间:InjCurr_tiNextActionUWA[idxBankUB] = InjCurr_tiHoldPwmOffUW

#define INJCURRST_EOI 4 结束阶段(End of Injection)

如果持续时间已达到或超过阈值(InjCurr_tiTmr1DuraUIA[idxBankUB] >= InjCurr_tiEoiNoCurrUI),说明结束喷射的条件已满足。

允许对应的 DCDC 泵开始工作,为后续操作或其他模块提供支持。

#define INJCURRST_MALFUNCTION 5 故障阶段

关闭喷射

需要根据新增的管脚来判断具体的故障

需要在什么位置?