數(shù)/模轉(zhuǎn)換電路一般使用專門(mén)的D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器的種類比較多,如有權(quán)電阻網(wǎng)絡(luò)型、倒T型電阻網(wǎng)絡(luò)型、權(quán)電流型、開(kāi)關(guān)數(shù)型、權(quán)電容網(wǎng)絡(luò)型、串行輸入型等,本文利用Intel 8254設(shè)計(jì)了一種簡(jiǎn)單實(shí)用的數(shù)模轉(zhuǎn)換(D/A)電路,并應(yīng)用于飛行模擬器三自由度運(yùn)動(dòng)平臺(tái)控制系統(tǒng)中。
1 運(yùn)動(dòng)平臺(tái)控制系統(tǒng)組成
三自由度運(yùn)動(dòng)平臺(tái)控制系統(tǒng)硬件由平臺(tái)控制計(jì)算機(jī)、接口系統(tǒng)、濾波功放板、看門(mén)狗電路和液壓伺服系統(tǒng)組成,接口系統(tǒng)包括D/A,A/D轉(zhuǎn)換電路(見(jiàn)圖1)。通過(guò)主計(jì)算機(jī)接收到飛行方程解算出的與控制平臺(tái)有關(guān)的各種信息,由平臺(tái)控制計(jì)算機(jī)進(jìn)行處理,經(jīng)數(shù)/模轉(zhuǎn)換(D/A)、濾波、功放成為伺服閥控制指令,驅(qū)動(dòng)液壓缸平滑、穩(wěn)定的伸縮,實(shí)時(shí)產(chǎn)生和被模擬的飛機(jī)相似的過(guò)載、姿態(tài)、振動(dòng)等運(yùn)動(dòng)信息。液壓缸的伸長(zhǎng)量經(jīng)位移傳感器送給比較放大器,形成硬件閉環(huán)控制,位移信號(hào)經(jīng)模/數(shù)轉(zhuǎn)換(A/D),送給平臺(tái)控制計(jì)算機(jī),用來(lái)對(duì)平臺(tái)極限位置的限制。同時(shí),由看門(mén)狗電路實(shí)時(shí)監(jiān)視控制電路的工作情況,確保運(yùn)動(dòng)平臺(tái)的安全。控制系統(tǒng)硬件電路的核心為自行研制的D/A轉(zhuǎn)換電路及看門(mén)狗電路。
?
2 D/A轉(zhuǎn)換電路
三自由度運(yùn)動(dòng)平臺(tái)數(shù)/模轉(zhuǎn)換電路主要由74LS138譯碼器、可編程定時(shí)器/計(jì)數(shù)器芯片8254、8位數(shù)據(jù)緩存器74LS245等組成,核心元件是可編程定時(shí)器/計(jì)數(shù)器芯片8254。
2.1 8254簡(jiǎn)介
可編程定時(shí)器/計(jì)數(shù)器是為方便計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)和應(yīng)用而研制的,定時(shí)值及其范圍可以很容易地由軟件來(lái)控制和改變,能夠滿足各種不同的定時(shí)和計(jì)數(shù)要求,因此得到廣泛應(yīng)用。8254是Intel公司生產(chǎn)的通用定時(shí)/計(jì)數(shù)器,是在8253的基礎(chǔ)上稍加改進(jìn)而推出的改進(jìn)型產(chǎn)品,兩者硬件組成和引腳完全相同。
8254是24腳雙列直插式芯片,用+5 V電源供電。芯片內(nèi)有3個(gè)相互獨(dú)立的16位定時(shí)/計(jì)數(shù)器。主要管腳如圖2所示。
?
數(shù)據(jù)線D0~D7與CPU的數(shù)據(jù)總線相連接,是雙向三態(tài)的數(shù)據(jù)線,用于與CPU交換信息。讀信號(hào)RD是一個(gè)低電平有效的由CPU發(fā)來(lái)的控制信號(hào),RD信號(hào)通知8254,CPU要讀8254中的某個(gè)通道的計(jì)數(shù)值或狀態(tài)字,也就是說(shuō)由RD來(lái)讀取8254中的某個(gè)計(jì)數(shù)器的相關(guān)內(nèi)容;WR是一個(gè)低電平有效的由CPU發(fā)來(lái)的控制信號(hào),CPU通過(guò)此信號(hào)向8254發(fā)送控制字和計(jì)數(shù)值;片選信號(hào)CS是一個(gè)低電平有效的信號(hào),CPU用此信號(hào)來(lái)選擇8254。在芯片不被選中的情況下,讀信號(hào)和寫(xiě)信號(hào)沒(méi)有意義,也不起作用;地址線A1,A0一般接到系統(tǒng)地址總線的A1,A0上,它們的功能是編碼選擇3個(gè)通道和1個(gè)控制寄存器,其端口編碼略,CS,RD,WR,A1和A0組合起來(lái)才能對(duì)寄存器進(jìn)行選擇和操作。
CLK0~CLK2是3個(gè)通道的外部時(shí)鐘脈沖收入線,是8254作計(jì)數(shù)器或定時(shí)器的計(jì)數(shù)脈沖;GATE0~GATE2是3個(gè)通道的門(mén)控信號(hào)輸入線,高電平有效,用于啟動(dòng)或禁止通道工作的外部信號(hào);OUT0~OUT2是3個(gè)通道的計(jì)數(shù)為0/定時(shí)時(shí)間到脈沖輸出線,輸出波形取決于8254通道的工作方式。
8254的每一個(gè)計(jì)數(shù)器都有6種工作方式。不同的工作方式下,計(jì)數(shù)過(guò)程的啟動(dòng)方式不同,OUT端的輸出波形不同,自動(dòng)重復(fù)功能、GATE的控制作用以及更新計(jì)數(shù)初值對(duì)計(jì)數(shù)過(guò)程的影響也不完全相同。同一芯片中的3個(gè)計(jì)數(shù)器,可以分別編程選擇不同的工作方式。三自由度運(yùn)動(dòng)平臺(tái)數(shù)/模轉(zhuǎn)換電路中的計(jì)數(shù)器使用了方式1和方式2。
2.1.1 工作方式1
8254工作方式1——可編程單次脈沖,是一種硬件啟動(dòng)計(jì)數(shù)工作方式,不能自動(dòng)重復(fù)但通過(guò)GATE的正跳變可使計(jì)數(shù)過(guò)程重新開(kāi)始。在寫(xiě)入方式1的控制字后,OUT成為高電平,在寫(xiě)入計(jì)數(shù)初值后,要等GATE信號(hào)出現(xiàn)正跳變時(shí)才能開(kāi)始計(jì)數(shù)。在下一個(gè)CLK脈沖到來(lái)后,OUT變低,將計(jì)數(shù)初值送入計(jì)數(shù)器并開(kāi)始減1計(jì)數(shù),直到計(jì)數(shù)器減到0后OUT變?yōu)楦唠娖健?/p>
計(jì)數(shù)過(guò)程一旦啟動(dòng),GATE即使變成低電平也不會(huì)使計(jì)數(shù)中止。計(jì)數(shù)完成后若GATE再來(lái)一個(gè)正跳變,計(jì)數(shù)過(guò)程又重復(fù)1次。也就是說(shuō)對(duì)應(yīng)GATE的每一個(gè)正跳變,計(jì)數(shù)器都輸出1個(gè)寬度為N*TCLK(其中N為計(jì)數(shù)初值,TCLK為CLK信號(hào)的周期)的負(fù)脈沖,因此稱這種方式為可編程單次脈沖方式,計(jì)數(shù)初值N=3的工作波形圖如圖3所示。
?
在計(jì)數(shù)過(guò)程啟動(dòng)之后計(jì)數(shù)完成之前,若GAFE又發(fā)生正跳變,則計(jì)數(shù)器又從初值開(kāi)始重新計(jì)數(shù),OUT端仍為低電平,兩次的計(jì)數(shù)過(guò)程合在一起使OUT輸出的負(fù)脈沖加寬了。
在方式1計(jì)數(shù)過(guò)程中若寫(xiě)入新的計(jì)數(shù)初值,也只是寫(xiě)入到計(jì)數(shù)初值寄存器中,并不馬上影響當(dāng)前計(jì)數(shù)過(guò)程,同樣要等到下一個(gè)GATE正跳變啟動(dòng)信號(hào),計(jì)數(shù)器才接收新初值重新計(jì)數(shù)。
2.1.2 工作方式2
8254工作方式2——分頻工作方式,既可以用軟件啟動(dòng)(GATE=1時(shí)寫(xiě)入計(jì)數(shù)初值后啟動(dòng)),也可以用硬件啟動(dòng)(GATE=0時(shí)寫(xiě)入計(jì)數(shù)初值后并不立即開(kāi)始計(jì)數(shù),等GATE由低變高時(shí)啟動(dòng)計(jì)數(shù))。方式2一旦啟動(dòng),計(jì)數(shù)器就可以自動(dòng)重復(fù)地工作。
方式2工作波形圖如圖4所示,寫(xiě)入控制字后,OUT信號(hào)變?yōu)楦唠娖剑粲?jì)數(shù)初值N=3,啟動(dòng)計(jì)數(shù)后,以CLK信號(hào)的頻率進(jìn)行減1計(jì)數(shù)。當(dāng)減到1時(shí),OUT輸出寬度為一個(gè)CLK時(shí)鐘周期的負(fù)脈沖,OUT恢復(fù)成高電平后,計(jì)數(shù)器又重新開(kāi)始計(jì)數(shù)。可以看出,OUT輸出信號(hào)的頻率為CLK信號(hào)頻率的1/N,即N次分頻,故稱這種工作方式為分頻工作方式。
?
方式2需要GATE信號(hào)保持高電平。當(dāng)GATE變?yōu)榈碗娖綍r(shí),停止計(jì)數(shù)。GATE由低變高后,計(jì)數(shù)初值又重新裝入減1計(jì)數(shù)器中開(kāi)始計(jì)數(shù)。
方式2在計(jì)數(shù)過(guò)程中若寫(xiě)入新的計(jì)數(shù)初值,并不影響當(dāng)前的計(jì)數(shù)過(guò)程。在本次計(jì)數(shù)結(jié)束后,才以新的計(jì)數(shù)初值開(kāi)始新的分頻工作方式。
2.2 D/A轉(zhuǎn)換原理
采用1片74LS138譯碼器、2片可編程定時(shí)器/計(jì)數(shù)器芯片8254、1片8位數(shù)據(jù)緩存器74LS245組成D/A變換電路,如圖5所示。
?
74LS138譯碼器略。其中1片8254(U2的計(jì)數(shù)器2)的計(jì)數(shù)器工作在方式2,對(duì)時(shí)鐘信號(hào)進(jìn)行分頻,輸出信號(hào)OUT為一寬度為一個(gè)時(shí)鐘周期的負(fù)脈沖,作為另外5個(gè)計(jì)數(shù)器的門(mén)控啟動(dòng)信號(hào),啟動(dòng)8254開(kāi)始進(jìn)行D/A變換。其余5個(gè)計(jì)數(shù)器工作在方式1,在門(mén)控信號(hào)GATE上跳后的下一時(shí)鐘的下降沿處開(kāi)始計(jì)數(shù),輸出OUT將變低,直到計(jì)數(shù)器的值減少到零時(shí)輸出將變高。給定的計(jì)數(shù)值越小,輸出OUT“高”保持越長(zhǎng),平均電壓越大;給定的計(jì)數(shù)值越大,輸出OUT“高”保持越短,平均電壓越小,如輸出OUT的“高”和“低”相同,則輸出平均電壓為2.5 V,如輸出OUT全為“高”,則輸出平均電壓為5 V,如輸出OUT全為“低”,則輸出平均電壓為0 V,這樣利用調(diào)制脈寬的方法就實(shí)現(xiàn)了D/A變換。
8254輸出的5路電壓信號(hào)經(jīng)8位數(shù)據(jù)緩存器74LS245輸出。其中OUT0,OUT1,OUT2作為三路控制信號(hào)送給3個(gè)電液伺服閥,由電液伺服閥驅(qū)動(dòng)各液壓缸運(yùn)動(dòng),進(jìn)而驅(qū)動(dòng)運(yùn)動(dòng)平臺(tái)仿真飛機(jī)飛行時(shí)的升降、傾斜、俯仰等位姿。OUT3和OUT4這2路電壓信號(hào)作為備份,維修時(shí)使用。
3 軟件實(shí)現(xiàn)
8254的內(nèi)部功能通過(guò)系統(tǒng)軟件編程來(lái)確定,系統(tǒng)通過(guò)接口傳送所要求的工作方式和數(shù)值來(lái)初始化計(jì)數(shù)器,每個(gè)計(jì)數(shù)器都是獨(dú)立地通過(guò)一個(gè)命令數(shù)據(jù)來(lái)編程,D/A轉(zhuǎn)換程序流程圖如圖6所示。
?
程序的設(shè)計(jì)思想是首先為8254進(jìn)行端口地址分配,以便CPU對(duì)硬件進(jìn)行訪問(wèn)并對(duì)8254賦初值。開(kāi)始計(jì)數(shù)時(shí)每隔一段時(shí)間(ms)對(duì)計(jì)數(shù)器進(jìn)行1次讀數(shù),并將當(dāng)前所得計(jì)數(shù)值與上一計(jì)數(shù)時(shí)間所得計(jì)數(shù)值相減,將得到的計(jì)數(shù)差值進(jìn)行累加,最終所得值即為8254讀入的脈沖方波個(gè)數(shù)。將此脈沖方波輸出,就實(shí)現(xiàn)了D/A轉(zhuǎn)換,得到系統(tǒng)所需要的模擬電壓值。
8254控制字由D7~D0組成,D7D6選擇計(jì)數(shù)器0,1,2或鎖存計(jì)數(shù)器;D5D4選擇操作類型,如先讀/寫(xiě)低8位,后讀/寫(xiě)高8位等;D3D4D1選擇計(jì)數(shù)工作方式,有6種工作方式,如方式1為001、方式2為010等;D0位選擇計(jì)數(shù)器的數(shù)制,該系統(tǒng)采用二進(jìn)制,D0=0,而計(jì)數(shù)初值取256,即十六進(jìn)制的FF。
4 結(jié)語(yǔ)
基于Intel 8254的運(yùn)動(dòng)平臺(tái)數(shù)/模轉(zhuǎn)換電路簡(jiǎn)單實(shí)用,實(shí)時(shí)性好,已經(jīng)應(yīng)用于我單位研制的某型飛機(jī)飛行模擬器的三自由度運(yùn)動(dòng)平臺(tái)控制系統(tǒng)、儀表控制系統(tǒng)、操縱負(fù)荷仿真系統(tǒng)等的數(shù)/模轉(zhuǎn)換電路中。該電路還可推廣應(yīng)用于工業(yè)控制系統(tǒng)中的數(shù)模轉(zhuǎn)換電路中。
評(píng)論
查看更多