本文选用定时器1作为两路脉冲输入捕获计数器,利用它的两路脉冲捕获功能CAP1.2和CAP1.3捕获经整形后机组频率和电网频率的上升沿和下降沿信号,以CAP1.2为例,如图3所示。通过CAP1.2捕获功能,可以将每次上升沿和下降沿到来时对应的计数器值装载到T1CR2寄存器中,将连续3次捕获时计数器值依次保存到CAPJ 0、CAPJ 1和CAPJ 2 3个定义存储单元中,储存单元对应值为CAPJ 0、CAPJ 1和CAPJ 2,每完成1次T1CR2装载即可求得1次相邻上升沿或下降沿计数器差值TJ=CAPJ 0-CAPJ 2。本文设定计数时钟不分频,根据测周法原理,机组频率值Fg为:
式中, Fpclk为VPB时钟频率,在不分频情况下为11.059 2 MHz。设机组频率为Fg=50 Hz,则周期Tg=0.02 s,测得的周期数Ng=0.02×11 059 200=221 184,测频系统的理论分辨率为0.002 6 Hz,由此可见,此方法具有很高的分辨率。
2.3 测频软件流程
系统软件由1个主程序和2个中断子程序组成,如图4所示。CAPJ0、CAPJ1和CAPJ2依次保存连续3个机组频率信号捕获对应的寄存器值T1CR2,CAPX0、CAPX1和CAPX2依次保存连续3个电网频率信号捕获时对应寄存器值T1CR3,TJ和TX分别表示机组频率和电网频率在1个周期内计数器计数差值。
在系统软件中,主程序完成各种设定功能初始化。捕获中断子程序完成对整形后的机组频率和电网频率信号捕获,计算出信号在1个周期内对应的计数器计数值,并对其进行简单判断和滤波处理。在信号捕获中采用同时捕获上升沿和下降沿,计算计数器差值时上升沿和下降沿分开计算的方法,使得每半个周期就可获得1次频率值,相对1个周期或几个周期才能求得1次频率值的计算策略,它能够更快反映机组频率的波动情况,提高了调速器频率响应性,缩短了调速器不运转的时间。
在数据发送程序中,将1个周期内计数器差值通过UART0口采用串口通信方式发送到PLC控制器中,在PLC中完成信号频率值计算。此处采用发送频率信号计数器差值而不是计算后频率值或周期值,一方面是整数比小数传送方便,通信更加简单;另一方面是频率值或周期值具有多位小数,传送时将丢失精度,不能保证频率值的原始性。频率值在PLC中计算完成后直接使用进行调速器控制PID计算,将使调速器控制过程更加精确。在数据发送程序中,完成喂狗操作,防止程序“跑飞”,同时对机组频率和电网频率信号是否消失进行判断,增加控制过程可靠性。