MCU 的输出比较功能可得到非常精确的时间间隔,并且对用户程序没有 额外的负担。 同理,在每个控制周期内,为了给即将工作的汽缸进行点火能量的蓄积,还进行了点火线圈初级电路通电 的延时计数法控制。如图 3 中所示,初级电路的通电时间要求为 ton,则从本缸基准信号出现到下一缸初级电 路通电延时所对应的计数值 Nt 的计算如下: 当发动机转速较低,下一缸通电延迟时间大于控制周期时间(即 )时, 则需在下一控制周期开 始时首先进行该缸通电延时控制,通电延时计数值为 Nt1=Nt-NG,并设置该通道输出比较中断,以此中断为基准 进行点火延时控制。其点火延时计数值为: 3.2 点火控制程序设计 点火控制程序由主程序和中断服务子程序等多个模块组成。主程序的主要功能是根据发动机运行工况, 通过逻辑运算确定最优的点火提前角及初级电路导通时间;中断服务子程序负责系统输入信号的采集与处 理,而其中输入捕捉和输出比较中断程序是实现点火时序控制的关键。 图 4 为点火控制主程序流程图。 ECU 上电后,主程序首先执行 MCU 的初始化操作,设置定时器计数周期、 各输入输出功能和各中断。初始化完成后,主程序进入循环运行状态,等待各中断服务程序发生,检测各输入 参数,进行故障查询和处理。 如系统状态正常,则根据发动机运行工况确定最优的点火提前角及初级电路导通 时间。由于各缸点火时刻是通过程序控制进行调节的,因此利用 CPU 内部的存储器存储点火控制数据表(点 火脉谱)。这样,点火提前角就能按发动机负荷及转速信号通过查数据表得到, 并可按不同工况进行修正。如 此便可使发动机在任何工况下均能提供最佳点火时刻。 输入捕捉和输出比较的中断服务程序流程图分别如图 5 和图 6 所示。