经过混频、低通滤波、整形比较之后的两路正弦波信号,已经变成频率在30 kHz 以下的方波信号Q1 和Q2。IRQ0、IRQ1 是ADuC7128 的两个中断引脚,分别将Q1 的输出端与ADuC7128 的IRQ0 引脚连接,Q2 的输出端与ADuC7128 的IRQ1 引脚连接。
IRQ0 用于检测Q1 信号的下降沿,一旦Q1 信号的下降沿到来时,ADuC7128 内部计数器T1 开始工作,IRQ1 用于检测Q2 信号的下降沿,一旦Q2 信号的下降沿到来时,ADuC7128 内部计数器T1 停止工作。这样,计数器T1 上的累计值就是两个方波间隔的脉冲数n,如果已知T1 的计数间隔Δt',即可知两个方波的时间间隔Δt:
从而通过公式( 8) 即可计算出两输入信号的相位差θ。
2. 2 软件设计
本系统的软件设计主要是完成系统初始化、内部数据处理、数据结果显示等功能。图4 是系统的主程序和相位测量流程图。
图4 主程序和相位测量流程图
3 测试结果与分析
两路同频输入信号是由一个相位差可调节的高精度信号源产生。当输入信号频率小于30 kHz时,由ADuC7128 内部计数器直接计数,经过数据处理后得出相位差。输入信号在进行过零比较时,由于两路输入信号之间的电平不相等所引起的幅相误差,使得整形后产生的方波有所失真。图5 是两路输入信号为100 kHz,相位差75°的正弦波信号,经过频率变换及滤波整形后,两个信号的相位保持不变,频率变为30 kHz、幅度线性变化,如图6 所示。
图5 两路相位差75°的正弦波信号
图6 两路相位差75°的方波信号
随机抽取四个不同频率的输入信号,分别在相位差为0 ~ 150°的范围内进行测试,测试结果见表1。