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