王志海
(93707部隊 河北 張家口 075000)
現(xiàn)代飛行模擬座艙由計算機系統(tǒng)和飛行模擬器其他系統(tǒng)組成,計算機內(nèi)部都是數(shù)字量信號,通過外部接口設備將數(shù)字信號轉(zhuǎn)換為電壓信號控制系統(tǒng)的外部硬件設備,這種外部接口設備也稱為過程通道。計算機輸出的數(shù)字量信號,經(jīng)過過程通道變成電壓信號,控制儀表顯示、座艙燈光等,從而實現(xiàn)反應座艙內(nèi)飛行狀態(tài),仿真時機飛行的功能[1]。在某型飛機飛行模擬器的設計實現(xiàn)上,采用了一種在電路級可擴展的方案,較好的平衡了數(shù)字量輸出系統(tǒng)電路的成本控制與冗余設計。
某型飛機模擬仿真座艙在設計初期,鑒于此座艙的主要功能范圍和應用面比較有針對性,主要集中在對部分座艙設備的功能實現(xiàn)上,因此對于數(shù)字量輸出系統(tǒng)的規(guī)模預估為62路數(shù)字信號,5VTTL電平,10毫安電流,直接驅(qū)動發(fā)光二極管、數(shù)碼管、三極管等小電流器件。但是為了在以后的使用過程中不斷的擴充模擬座艙內(nèi)的設備及開發(fā)更多的功能,要求數(shù)字量輸出系統(tǒng)具備可擴展的能力,在必要時,只通過插接電路、升級軟件等簡單的操作即可實現(xiàn)座艙升級。
某型模擬座艙的數(shù)字量輸出系統(tǒng)主要實現(xiàn)利用發(fā)光二極管實現(xiàn)艙內(nèi)燈光信號、利用數(shù)碼管顯示數(shù)字儀表指示、利用三級管控制大電流元件通斷及艙內(nèi)照明等功能。數(shù)字量輸出系統(tǒng)組成如圖1所示。
圖1 數(shù)字量輸出系統(tǒng)示意Fig.1 Digital output system schematic
模擬座艙控制計算機和單片機板之間通過RS232總線通訊,考慮到目前市面上的通用計算機很少帶有RS232接口,本方案使用USB轉(zhuǎn)TTL的元件PL2303,使用應用更普遍的USB接口來連接單片機和計算機。單片機采用高性能、低功耗的AVR微處理器Atmega48,主頻20 MHz,充分利用其功能完備、資料充分、大多數(shù)指令為單個時鐘周期的特點,滿足座艙數(shù)字信號的實時性要求[2]。
Atmega48微處理器有23路可編程I/O線,其中PD0、PD1用于RXD、TXD串口通信,PC6用于RESET,還剩余20條I/O線,如果直接用于控制數(shù)字量輸出,數(shù)量太少不夠使用,需要擴展I/O口數(shù)量[3]。除使用專門的可編程接口芯片8255A,比較易于實現(xiàn)的方案就是使用串入并出移位寄存器。
74LS164是8位移位寄存器,頻率36 MH,功耗80 mW,芯片引腳定義如圖2所示[4]。
其中 Q0~Q7(QA~QH)為輸出端,A/B 為串行數(shù)據(jù)輸入端,CP為時鐘信號輸入,MR為數(shù)據(jù)清除控制,當MR引腳為低電平時,輸出全為低電平,CP時鐘信號為上升沿時,A/B引腳數(shù)據(jù)串行輸入Q0,Q0~Q7引腳數(shù)據(jù)順序移位,真值表如表1所示。
圖2 74LS164引腳Fig.2 74LS164 Pin
表1 74LS164真值表Tab.1 1 74LS164 truth table
其中H為高電平,L為低電平,X為任意電平,為低電平到高電平跳變。芯片引腳電平跳變的傳輸延遲時間在20~30 ns,滿足飛行模擬座艙數(shù)字量輸出的時間要求。利用74LS164的串行移位的特性,可以使用多個74LS164串接起來,單片機端只占用兩個I/O口,一個用于連接CP端作時鐘線控制,一個用于連接A/B端作數(shù)據(jù)輸入線,就可以擴展出8*N(串行連接N個74LS164)個I/O口,由于串行連接的74LS164共用CP時鐘線,而將上一級芯片的Q7接入下一級的A/B作為數(shù)據(jù)輸入,在電路上的實現(xiàn)就較為簡單了。
數(shù)字量輸出板使用40P排線與單片機板連接,另將單片機控制線串接到40P輸出接口,作為插接擴展板的預留接口,板上使用6片74LS164,數(shù)字輸出能力為6*8=48路數(shù)字量信號。接口板電路如圖3所示。
圖3 數(shù)字輸出電路板Fig.3 Digital output circuit board
圖中接口板只占用單片機6*2=12條I/O線,每一個74LS164芯片輸出引腳直接連接了限流電阻,用于控制發(fā)光二極管,每個芯片單元的8個引腳也可以單獨連接一個共陽數(shù)碼管。當飛行模擬座艙的數(shù)字量輸出系統(tǒng)需要擴容時,只要將下一級的接口板40針輸入口串接到上一級接口板的40針擴展口即可實現(xiàn)電路升級。
由于每一路單片機的Clock線和Data線上的單元都具備順序的地址,對于上位機軟件來地址空間是透明的,控制數(shù)字量輸出時只需要提供74LS164單元編號及I/O引腳位即可實現(xiàn)對任意單元上的8位I/O口的電壓進行控制。比如上圖中的數(shù)字量輸出接口板,第一級板子的單元編號為0~5,位編號為0~39,第二級接口板的單元編號為6~11,位編號是40~87。上位機軟件中使用二維數(shù)組unsigned char BitStatus[6][接口板數(shù)量]來保存每一位數(shù)字量的電平狀態(tài)。在飛行仿真座艙的安裝過程中,只需要對接口板進行編號標記,既可以在軟件中將接線柱的對應的單元地址和控制位編號保存成配置文件,實現(xiàn)對外部數(shù)字信號的精確控制[5]。
上位機程序流程如圖4所示。
圖4 上位機程序流程Fig.4 PC program flow
下位機接收上位機的查詢命令,返回所連接的數(shù)字接口板的I/O數(shù)量;接收上位機的控制命令,改變指定的單元號、位編號上的電平狀態(tài),從而控制座艙內(nèi)的燈光信號及數(shù)字儀表。下位機程序使用WinAvr20100110編譯,通過在代碼中修改預定義的單元數(shù)即可實現(xiàn)接口板擴充[6]:
文中使用的數(shù)字量輸出接口方案已經(jīng)應用于某型飛機模擬座艙,經(jīng)實際應用證明,該方案設計簡單、兼容性好、電路及數(shù)字量輸出規(guī)模擴充方便,完全滿足模擬座艙的數(shù)字信號控制要求。
[1]王行仁.飛行實時仿真系統(tǒng)及技術[M].北京:航空航天大學出版社,1998.
[2]吳正毅.測試技術與測試信號處理[M].北京:清華大學出版社,1991.
[3]ATMEL.ATmega48/88/168[EB/OL].[2011-05-01].http://www.atmel.com/images/doc2545.pdf.
[4]ON Semiconductor.SN74LS164[EB/OL].[2006-07-01].http://www.onsemi.cn/pub_link/Collateral/SN74LS164-D.PDF.
[5]張明,李訓濤.計算機測控技術[M].北京:國防工業(yè)出版社,2010.
[6]劉海成.AVR單片機原理及測控工程應用:基于ATmega48/ATmega16[M].北京:航空航天大學出版社,2008.