用單片機實現(xiàn)數(shù)字相位變換器的設(shè)計方法
摘 要: 介紹了用單片機實現(xiàn)數(shù)字相位變換器(又稱脈沖調(diào)相器)的一種設(shè)計方法。主要描述了數(shù)字相位變換器的工作原理,基于AT89C2051單片機的硬件電路的工作原理以及軟件設(shè)計的基本思想和程序設(shè)計方法。
關(guān)鍵詞: 數(shù)字相位變換器 脈沖調(diào)相 AT89C2051單片機
數(shù)字相位變換器又稱脈沖調(diào)相器,是鑒相型位置伺服系統(tǒng)中的主要控制線路。它的作用是將脈沖信號轉(zhuǎn)換為相位變化信號。在傳統(tǒng)的系統(tǒng)設(shè)計中,脈沖調(diào)相器是通過純硬件線路實現(xiàn)的,線路復(fù)雜、設(shè)計難度大、調(diào)試難度也較大。作者在旋轉(zhuǎn)變壓器鑒相型位置檢測系統(tǒng)中設(shè)計脈沖調(diào)相器時,改變傳統(tǒng)的純硬件設(shè)計方法,采用單片機實現(xiàn)脈沖調(diào)相,使硬件設(shè)計工作大大簡化,易于實現(xiàn),且電路調(diào)試簡便。
1 脈沖調(diào)相器的工作原理
用一個頻率為fcp的時鐘脈沖去觸發(fā)一個容量為M的計數(shù)器時,如用四位二進制計數(shù)器,其容量為16,那么在計數(shù)器的最后一級輸出端可獲得一個頻率為1/16fcp的方波信號。如果在時鐘脈沖觸發(fā)計數(shù)器的過程中,向計數(shù)器加入一個額外的脈沖,則由于計數(shù)器提前完成16個數(shù)的計數(shù)任務(wù),而使得最后一級的輸出提前翻轉(zhuǎn),從而使計數(shù)器的輸出產(chǎn)生了一個正的相移Δθ,如圖1(a)所示。同理,在時鐘脈沖觸發(fā)計數(shù)器的過程中,如果扣除一個脈沖,則由于計數(shù)器推遲完成16個數(shù)的計數(shù)任務(wù)而使最后一級的輸出延時翻轉(zhuǎn),從而導(dǎo)致其輸出產(chǎn)生一個負的相移Δθ,如圖1(b)。
Δθ與計數(shù)器容量有關(guān),即Δθ=360°/M。如果在時鐘脈沖觸發(fā)計數(shù)器的過程中,向計數(shù)器加入或扣除的不止是一個脈沖,而是N個脈沖,則計數(shù)器輸出相移θ=NΔθ。
在上述旋轉(zhuǎn)變壓器鑒相型位置檢測系統(tǒng)中,要求脈沖調(diào)相器輸出400Hz的調(diào)相信號。一個脈沖產(chǎn)生的相移為Δθ=1.8°,則計數(shù)器的容量應(yīng)為200,觸發(fā)脈沖的頻率應(yīng)為80kHz。
2 硬件電路
硬件電路如圖2所示。
2.1 電路實現(xiàn)的功能
(1)產(chǎn)生兩個頻率為80kHz的異步時鐘脈沖信號FA和FB;
(2)在時鐘脈沖FA的反相信號作為計數(shù)脈沖觸發(fā)容量為200的計數(shù)器過程中,控制FB的反相信號插入計數(shù)脈沖,使計數(shù)器輸出信號相位前移;或阻塞進入計數(shù)器,即扣除脈沖,使計數(shù)器輸出信號相位后移。
2.2 工作原理
頻率為160kHz的時鐘脈沖源CP160K經(jīng)二分頻器U1A分頻后產(chǎn)生兩個頻率為80kHz的方波信號Q和。Q和再分別與CP160K作與運算,由門U3A和U4A分別輸出?獲得兩個頻率為80kHz的異步脈沖信號和FB,波形如圖3所示。
無調(diào)相指令時,89C2051單片機將輸出位P1.2和P1.3均置成0。此時門U5A被打開,門U3B被封鎖并輸出1,打開門U4B,計數(shù)脈沖系列通過U4B觸發(fā)容量為100的計數(shù)器U6計數(shù),在二分頻器U1B的第9腳輸出400Hz方波信號。當單片機接收到正調(diào)相指令時,將P1.2置為0,P1.3置為1,門U5A打開,通過門U5A,此時U3B也打開,F(xiàn)B通過門U3B變成,并和同時進入門U4B,形成計數(shù)脈沖系列。由于FA和FB是異步信號,因此達到了在計數(shù)脈沖系列中插入脈沖的目的,使計數(shù)器U6A多計一個數(shù),從而使二分頻器U1B輸出信號相位前移,工作波形如圖4a所示。
當單片機接收到負調(diào)相指令時,將P1.2置為1,P1.3置為0。此時門U5A被封鎖并輸出1,時鐘脈沖被阻塞,同時門U3B被封鎖并輸出1,時鐘脈沖FB也被阻塞,達到了在計數(shù)脈沖系列中減去脈沖的目的,使計數(shù)器U6A少計一個數(shù),從而使U1B輸出信號相位后移,波形如圖4b所示。
3 軟件設(shè)計
程序設(shè)計的主要思路是:執(zhí)行正方向調(diào)相時,根據(jù)給定的脈沖數(shù)(假設(shè)脈沖數(shù)為N),控制P1.3的狀態(tài),實現(xiàn)插入N個的操作,參見圖4(a);執(zhí)行負方向調(diào)相時,根據(jù)給定的脈沖數(shù)N,控制P1.2的狀態(tài),實現(xiàn)阻塞N個的操作,參見圖4?b 。程序框圖如圖5所示,程序清單見程序1和程序2,其中寄存器B中存放給定脈沖數(shù)N。
程序1:正方向調(diào)相程序
MA6: MOV A,B
JZ MA4
MA7: JB P1.6? $
JNB P1.6? $
NOP
SETB P1.3
JB P3.1? $
JNB P3.1? $
CLR P1.3
DJNZ B MA7
MA4 RET
程序2: 負方向調(diào)相程序
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
通過該系統(tǒng)的設(shè)計,體會到在一些復(fù)雜數(shù)字電路的設(shè)計中,如果處理速度允許,采用類似AT89C2051的低價位單片機來實現(xiàn)其中的部分硬件電路功能,可降低設(shè)計難度、縮短研制時間、提高設(shè)計效率。隨著微機處理速度的不斷提高,這種方法會獲得更廣泛的應(yīng)用。
參考文獻
1 王潤孝,秦現(xiàn)生. 機床數(shù)控原理與系統(tǒng). 西安:西北工業(yè)大學(xué)出版社,1997
2 電子工程手冊編委會.中外集成電路簡明速查手冊.北京:電子工業(yè)出版社,1993
3 張友德,趙志英,涂時亮. 單片微型機原理、應(yīng)用與實驗. 上海:復(fù)旦大學(xué)出版社,1992