基于微型涡轮喷气式发动机启动阶段控制特点的研究
2021-08-06舒凯跃
舒凯跃
(浙江国际海运职业技术学院 浙江·舟山 316000)
1 主控部分设计
项目中的硬件部分,采用ATMega16作为主控模块。项目中需要涉及到ATMega16的三个计数/定时器:其中TC0与TC2为8位,TC1为16位。硬件上的分配如下:
(1)TC0(PB3)分配给启动电机;
(2)TC1(PD6)分配给转速,完成输入捕获功能;
(3)TC2(PD7)分配给油泵。
2 转速部分设计
Atmega16的T/C1具有外部脉冲捕获的功能(PD6引脚),T/C1的工作原理可以总结为:将被测信号的上升沿(下降沿)作为输入捕捉的触发信号。
我们还要考虑两个因素:T/C1的溢出和不同频率范围下的外部脉冲测量精度问题。我们首先来看一下最简单的一种情况:
晶振为8MHz,将其64分频后作为T/C1的系统时钟,那么T/C1的系统时钟就是125KHz,TCNT1将在这个频率下进行加1计数。我们将外部输入脉冲的上升沿作为触发条件,那么当第一个上升沿出现时,假设TCNT1=m1,当第二个上升沿出现时TCNT1=m2。那么外部脉冲的一个周期耗时:

上面的计算公式中的(m2-m1)没有考虑到16位定时器T/C1的溢出情况,我们需要将各种情况归纳总结如下:

在分析前我们首先要搞清楚两个概念:T/C1的溢出、外部脉冲计数值的溢出。这是两个不同的概念。具体如下:
情况【A】:没有发生T/C1溢出中断,这也是最简单的情况;
情况【B】:发生了T/C1溢出中断,但是没有超过16位计数器的计数值极限;
情况【C】:发生了T/C1溢出中断,已经无法存放超过65536个系统脉冲的个数;
所以代码中有如下判断依据:

因此计算的公式应该根据T/C1是否溢出来进行改变,为此我们使T/C1的溢出中断,并在溢出中断的ISR中置位用户溢出中断标识。
最后一点,我们还需要提高对外部脉冲频率计算的精度。……