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