用单片机实现数字相位变换器的设计方法
2012-02-25 来源:21IC
数字相位变换器又称脉冲调相器,是鉴相型位置伺服系统中的主要控制线路。它的作用是将脉冲信号转换为相位变化信号。在传统的系统设计中,脉冲调相器是通过纯硬件线路实现的,线路复杂、设计难度大、调试难度也较大。作者在旋转变压器鉴相型位置检测系统中设计脉冲调相器时,改变传统的纯硬件设计方法,采用单片机实现脉冲调相,使硬件设计工作大大简化,易于实现,且电路调试简便。
1 脉冲调相器的工作原理
用一个频率为fcp的时钟脉冲去触发一个容量为M的计数器时,如用四位二进制计数器,其容量为16,那么在计数器的最后一级输出端可获得一个频率为 1/16fcp的方信号。如果在时钟脉冲触发计数器的过程中,向计数器加入一个额外的脉冲,则由于计数器提前完成16个数的计数任务,而使得最后一级的输出提前翻转,从而使最后一级的输出提前翻转,从而使计数器的输出产生了一个正的相移Δθ,如图(a)所示。同理,在时钟脉冲触发计数器的过程中,如果扣除一个脉冲,则由于计数器推迟完成16个数的计数任务而最后一级的输出延时翻转,从而导致其输出产生一个负的相移Δθ,如图1(b)。Δθ与计数器容量有关,即Δθ=360°/M。如果在时钟脉冲触发计数器的过程中,向计数器加入或扣除的不止是一个脉冲,而是N个脉冲,则计数器输出相移θ=NΔθ。
在上述旋转变压器鉴相型位置检测系统中,要求脉冲调相器输出400Hz的调相信号。一个脉冲产生的相移为Δθ=1.8°,则计数器的容量应为200,触发脉冲的频率应为80kHz。
2 硬件电路
硬件电路如图2所示。
2.1 电路实现的功能
(1)产生两个频率为80kHz的异步时钟脉冲的信号FA和FB;
(2)在时钟脉冲FA的反相信号FA作为计数脉冲触发容量为200的计数器过程中,控制FB的反相信号FB插入计数脉冲,使计数器输出信号相位前移;或阻塞FA进入计数器,即扣除脉冲,使计数器输出信号相位后移。
2.2 工作原理
频率为160kHz的时钟脉冲源CP160K经二分频器U1A分频后产生两个频率为80kHz的方波信号Q和Q。Q和Q再分别与CP160K作与运算,由门U3A和U4A分别输出,获得两个频率为80kHz的异步脉冲信号FA和FB,波形如图3所示。
无调相指令时,89C2051单片机将输出位P1.2和P1.3均置成0。此时门U5A被打开,门 U3B被封锁并输出1,打开门U4B,计数脉冲系列FA通过U4B触发容量为100的计数器U6计数,在二分频器U1B的第9脚输出400Hz方波信号。当单片机接收到正确相指令时,将P1.2置为0,P1.3 置为1,门U5A打开,FA通过门U5A,此时U3B也打开,FB通过门U3B变成FB,并和FA同时进入门U4B,形成计数脉冲系列。由于FA和FB是异步信号,因此达到了在计数脉冲系列FA中插入脉冲的目的,使计数器U6A多计一个数,从而使二分频器U1B输出信号相位前移,工作波形如图4(a)所示。当单片机接收到负调相指令时,将P1.2置为1,P1.3置为0.此时门U5A被封锁并输出1,时钟脉冲FA被阻塞,同时门U3B被封锁并输出1,时钟脉冲FB被阻塞,同时门U3B被封锁并输出1,时钟脉冲的FB也被阻塞,达到了在计数脉冲系列FA中减去脉冲的目的,使计数器U6A少计一个数,从而使 U1B输出信号相位后移,波形如图4(b)所示。
3 软件设计
程序设计的主要思路是:执行正方向调相时,根据给定的脉冲数(假设脉冲数为N),控制P1.3的状态,实现插入N个FB的操作,能见图4(a);执行 P1.3的状态,实现插入N个控制P1.2的状态,实现阻塞N个FA的操作,参见图4(b)。程序框衅如图5所示,程序清单见程序1和程序2,其中寄存器 B的存放给定脉冲数N。
程序1:正方向调相程序
MA6: MOV A,B
JZ MA4
MA7:JB P1.6,$
JNB P1.6,$
NOP
SETB P1.3
JB P3.1,$
CLR P1.3
DJNZ B,MA7
MA4:RET
程序2:负方向调相程序
MA8:MOV A,B
JZ MA9
MA10:JB P1.6,$
JNB P1.6,$
NOP
SETB P1.2
JB P1.6,$
JNB P1.6,$
CLR P1.2
DJNZ B,MA10
MA9:RET
通过该系统的设计,体会到在一些复杂数字电路设计中,如果处理速度允许,采用类似AT89C2051的低价位单片机来实现其中的部分硬件电路功能,可降低设计难度、缩短研制时间、提高设计效率。随着微机处理速度的不断提高,这种方法会获得更广泛的应用。