摘 要:在研發(fā)第四代戰(zhàn)機過程中,TM總線成為機載航空總線的研究熱點之一。提出一種利用EDA技術(shù)的TM總線接口設計。硬件設計方面通過對TM總線協(xié)議的分析,采用可編程邏輯器件設計了主/從一體化TM總線控制器,并對TM總線控制結(jié)構(gòu)和接口狀態(tài)機運行機理進行了描述。軟件部分實現(xiàn)了USB驅(qū)動開發(fā)和固件開發(fā)。
關(guān)鍵詞:機載計算機;測試維護總線;總線控制器;USB;固件
中圖分類號:TP302文獻標識碼:A
文章編號:1004-373X(2010)01-027-04
Interface Design for Airborne TM Bus
LIU Lin,GU Wencan,WANG Jun
(Engineering College,Air Force Engineering University,Xi′an,710038,China)
Abstract:In the research of fighter plane of the fourth generation,the bus of Test and Maintenance(TM)becomes one of the hottest points of air-borne aeronautical bus.A method utilizes the technique of EDA to design the bus interface of TM is proposed.The hardware design through analysing protocol of TM bus,adopting CPLD to design the master/slave integrated TM-BUS controller,and describing the controlling structure of TM-Bus and the running mechanism of interface state machine.The drive exploitation and firmware exploitation of USB are realized in software.
Keywords:airborne computer;test and maintenance bus;bus controller;USB;firmware
航空電子系統(tǒng)是飛機上的一個重要系統(tǒng),它決定著飛機的作戰(zhàn)性能。隨著科學技術(shù)的迅猛發(fā)展,作戰(zhàn)環(huán)境的變化,技術(shù)的進步與需求的改變,使航空電子技術(shù)不斷出新,航空電子技術(shù)的進步也極大地提高了飛機的作戰(zhàn)性能。飛機功能的不斷增強,使得F-22/F-35等先進飛機航電設備的成本也直線上升[1]。為了使飛機的造價與壽命成正比,只有提高系統(tǒng)的可維護性。當飛機具有良好的可維護性時,系統(tǒng)的維護費用、維護難度和全壽命周期費用才能得到降低,軍機戰(zhàn)斗力和快速反應能力才能得到提高。
1 TM總線概述
TM(Test and Maintenance,測試與維護)總線是用于電子設備的子系統(tǒng)和模塊的測試、診斷與維護的標準底板總線,是針對模塊和子系統(tǒng)而提出的一項新的檢測技術(shù),現(xiàn)已應用于以F-22為代表的第四代飛機中[2]。現(xiàn)提出一種TM總線的接口設計。
TM總線采用主從式工作方式,系統(tǒng)中存在一個TM總線主設備和多個TM總線從設備,從設備在主設備的命令下工作。本文的設計主要是從測試數(shù)據(jù)角度出發(fā),測試數(shù)據(jù)通過主/從模塊的控制器經(jīng)USB接口進行數(shù)據(jù)傳輸、采集、處理后,送入計算機。各模塊通過TM總線控制器掛接到TM總線上,圖1為總體設計。
圖1 TM總線總體設計
2 系統(tǒng)硬件設計
2.1 系統(tǒng)硬件結(jié)構(gòu)設計
系統(tǒng)硬件設計包括總線控制器、USB接口平臺及PC連接幾個部分,本文將介紹TIU(傳輸接口單元)通過USB接口進行數(shù)據(jù)傳輸?shù)倪^程,整體結(jié)構(gòu)框圖如圖2所示。
圖2 硬件整體結(jié)構(gòu)
由圖2可知,硬件總體結(jié)構(gòu)數(shù)據(jù)傳輸可分為以下兩大塊:
(1) 在USB接口接收從TIU傳送出的數(shù)據(jù),經(jīng)過數(shù)據(jù)處理和數(shù)據(jù)解析,把數(shù)據(jù)解釋成有實際意義的參數(shù),實時顯示在PC機的顯示畫面上。
(2) 從PC機來的數(shù)據(jù),通過USB接口,發(fā)往TIU。
2.2 TIU設計
在所設計的系統(tǒng)總體結(jié)構(gòu)中,TM總線主/從模塊上都有一個TIU,其基本功能是完成TM總線協(xié)議及實現(xiàn)主從模塊間的數(shù)據(jù)通信。
2.2.1 TIU詳細設計
在TM-BUS控制器的研制中,主/從TM-BUS控制器實現(xiàn)一體化設計,通過控制使TIU工作在主/從兩種模式下,主方式下的TIU發(fā)送命令,從方式下的TIU接收并執(zhí)行命令。TIU結(jié)構(gòu)設計圖如圖3所示。
圖3 TIU結(jié)構(gòu)設計
2.2.2 TIU的設計原理
從數(shù)據(jù)信號流程方面來說:接收數(shù)據(jù)時,TM總線上的輸入信號經(jīng)過譯碼轉(zhuǎn)換進入寄存器,在這里完成數(shù)據(jù)串/并格式轉(zhuǎn)換,進行奇偶校驗檢查,檢查后如果正確,則通過地址比較邏輯,進行命令譯碼,按照所給出的命令送入所定義的不同作用的寄存器中。
TIU執(zhí)行控制命令的過程如下:TIU鏈路層狀態(tài)機控制命令的接收,核心狀態(tài)機執(zhí)行該命令,并把待傳送的應答傳送至移位寄存器中,再由TIU鏈路層狀態(tài)機控制應答傳送。由軟件實現(xiàn)的命令其執(zhí)行過程是核心狀態(tài)機將該命令傳送至輸入接口緩沖器并產(chǎn)生中斷信號,模塊中的CPU響應中斷,從輸入接口緩沖器中讀取命令,進行測試操作和模塊維護操作,并把結(jié)果寫入狀態(tài)寄存器或輸入緩沖器,然后TM總線主控制器取走該測試結(jié)果[3]。
2.3 TM總線狀態(tài)機設計
TM總線協(xié)議規(guī)定其鏈路層狀態(tài)機分為主從兩個狀態(tài)機,由于TIU不存在同時既做主又做從的工作模式,因此可以把主/從兩個狀態(tài)機合為一個。通過控制使TIU工作在主/從兩種模式下,主方式下的TIU發(fā)送命令,從方式的TIU接收并執(zhí)行命令。圖4為主狀態(tài)機狀態(tài)轉(zhuǎn)換圖。
圖4 主狀態(tài)機狀態(tài)轉(zhuǎn)換圖
在TM-BUS主狀態(tài)機狀態(tài)標記中,最后兩位表示在該狀態(tài)下MCTL和MMD的值,狀態(tài)轉(zhuǎn)換的條件由狀態(tài)變量M1,M2,M3表示。圖4中所標的轉(zhuǎn)換條件為[M1,M2,M3]取值。
POWERUP200為上電后或復位后的狀態(tài);XFER161X~XFER001X為數(shù)據(jù)傳送狀態(tài);WAIT00為出錯狀態(tài),該狀態(tài)結(jié)束的條件是MCTL與MMD發(fā)生傳輸沖突消失且消息傳送結(jié)束;在PAUSE01狀態(tài)下插入等待;EOM00為消息傳送的起始和結(jié)束狀態(tài)。主/從兩個狀態(tài)機合為一個狀態(tài)機后,MCS和主權(quán)控制狀態(tài)機控制作何種狀態(tài)機運行,[M1,M2,M3]控制主狀態(tài)機的狀態(tài)轉(zhuǎn)換,從狀態(tài)機的狀態(tài)轉(zhuǎn)換由MCTL和MMD控制。
2.4 USB接口設計
USB接口芯片采用了ISP1581。ISP1581是Philips公司提供的高速USB接口芯片,符合USB 2.0規(guī)范[4]。它的內(nèi)部集成了數(shù)據(jù)收發(fā)器、串行接口引擎(SIE)、并行接口引擎(PIE)、FIFO存儲器(8 KB)、存儲管理單元(MMU)、微控制器接口和DMA(直接內(nèi)存訪問)管理器。外部電路接口簡單,因ISP1581內(nèi)部不帶有微控制器,需外接。本文的微控制器采用AT89C52單片機。USB硬件模塊主要包括ISP1581,AT89C52,總體框架結(jié)構(gòu)如圖5所示。
圖5 USB硬件模塊整體框架結(jié)構(gòu)
ISP1581通過16位數(shù)據(jù)總線與FPGA相連,AT89C52負責控制數(shù)據(jù)的DMA傳輸。
ISP1581與微控制器的通信通過一個高速(15 MB/s或15 Mword/s)的通用并行接口AD[7:0]實現(xiàn),并具有高速DMA接口。
2.4.1 USB接收數(shù)據(jù)模塊實現(xiàn)
本文采用的USB器件是帶有DMA控制器的ISP1581,為了簡化電路,采用ISP1581的DMA主控制器方式。如圖6所示,當FPGA的FIFO滿標志為1時,單片機給ISP1581發(fā)送請求有效信號、寫信號和寫周期信號,給FIFO發(fā)送讀請求信號和讀周期信號,當讀出的數(shù)據(jù)達到預定的數(shù)目時,單片機把ISP1581請求信號設置為無效,等待下一組存儲數(shù)據(jù)。
圖6 由單片機控制的傳輸通道
2.4.2 讀數(shù)據(jù)和并/串轉(zhuǎn)換
單片機把接收的控制信號通過DMA傳輸通道把數(shù)據(jù)傳到FIFO中,其DMA傳輸過程和圖6相似,只要把DIOW改成DIOR,把rdreq改成wreq就可以了,然后通過FPGA的內(nèi)部邏輯取出16位并行數(shù)據(jù)進行并/串轉(zhuǎn)換。
3 系統(tǒng)軟件設計
3.1 USB固件(Firmware)程序開發(fā)
固件其實就是單片機的程序文件,主要完成設備初始化、USB協(xié)議標準請求處理以及其他應用程序。一般來說,固件程序的軟件結(jié)構(gòu)可設計為基于中斷的分層結(jié)構(gòu),如圖7所示。
圖7 固件程序的分層結(jié)構(gòu)
在固件程序中,后臺的中斷服務例程(ISR)負責從ISP1581收集數(shù)據(jù),當ISR收集到了足夠的數(shù)據(jù)時,通知前臺主程序循環(huán)數(shù)據(jù)已經(jīng)準備好,由主程序循環(huán)進行數(shù)據(jù)的處理。以的批量傳輸端點為例,當從主機收到一個數(shù)據(jù)包,就會向為控制器產(chǎn)生一個中斷請求,微控制器立即響應中斷。在中斷服務例程中,固件程序?qū)?shù)據(jù)包從內(nèi)部數(shù)據(jù)緩沖區(qū)轉(zhuǎn)移到循環(huán)數(shù)據(jù)緩沖區(qū),然后將數(shù)據(jù)緩沖區(qū)清零以使該端點可以接收新的數(shù)據(jù)包,這時微控制器可以繼續(xù)執(zhí)行當前更為緊急或者還未處理完的任務,例如讀取采集數(shù)據(jù),然后返回到主循環(huán)中檢查循環(huán)緩沖區(qū)是否有新的數(shù)據(jù),并進行處理。
3.2 USB設備驅(qū)動程序開發(fā)
驅(qū)動程序的基本功能是建立應用程序與USB接口之間的數(shù)據(jù)通訊。本設計采用Driver Works開發(fā)USB驅(qū)動程序。
應用程序可以利用Win32API直接調(diào)用驅(qū)動程序。讀操作是從應用程序調(diào)用Win32API函數(shù)的ReadFile開始的。當應用程序調(diào)用ReadFile函數(shù)時,系統(tǒng)通過ntdll.dll調(diào)用ntreadfile向設備驅(qū)動程序發(fā)送一個IRP,驅(qū)動程序接收到該IRP后,開辟用以接收數(shù)據(jù)的內(nèi)存區(qū),判斷所讀數(shù)據(jù)是否大于端點的最大信息包規(guī)格(Maxsize),如果所讀數(shù)據(jù)大于端點的最大信息包規(guī)格,則此次只能讀取Maxsize個字節(jié),這樣就會造成數(shù)據(jù)丟失。因此,固件程序應避免發(fā)送大于端點Maxsize的信息包,然后建立相應端點的URB并向下層驅(qū)動提交該URB,此時I/O管理器執(zhí)行Read,把設備傳來的數(shù)據(jù)放到緩沖區(qū)內(nèi)。具體過程如圖8所示[5]。
4 結(jié) 語
本文對TM-BUS技術(shù)在四代機中的應用進行了分析,運用VHDL語言、FPGA、USB等技術(shù),設計了TM-BUS接口板。在對TM-BUS控制協(xié)議分析的基礎上,基于FPGA技術(shù)實現(xiàn)了TM總線協(xié)議,利用USB芯片ISP1581實現(xiàn)接口電路與上位機的連接,實現(xiàn)與PC機的數(shù)據(jù)通信,同時編寫了USB設備端的固件程序和PC機端的USB的設備驅(qū)動程序[6]。通過試驗得出結(jié)論:
圖8 應用程序操作流程圖
(1) TM總線技術(shù)為綜合航空電子系統(tǒng)可測試性的發(fā)展提供了必要的技術(shù)途徑;
(2) 基于FPGA技術(shù)實現(xiàn)的TM-BUS協(xié)議芯片,可有效實現(xiàn)總線各項控制功能。
對于一個復雜系統(tǒng)的設計,初始階段可能會存在功
能上的不足,這些會逐步得到改正,因而本設計有提高和升級的空間。
參考文獻
[1]陳德煌,陳萬美.F-22戰(zhàn)斗機的綜合航空電子系統(tǒng)[J].電光與控制,2003,10(1):50-54.
[2]江帆,鞠建波,鄧曉濤.綜合航空電子系統(tǒng)新技術(shù)研究[J].現(xiàn)代電子技術(shù),2003,26(6):32-34.
[3]周若愚,馮英振.模塊測試和維護總線[J].航空電子技術(shù),2007,32(3):38-43.
[4]黎美,劉篤仁.基于USB 2.0的接口芯片ISP1581的應用與設計[J].中國集成電路,2005(7):55-60.
[5]李志文.基于USB 2.0的接口芯片ISP1581的應用設計[D].北京:北京航空航天大學,2006.
[6]董文龍,蔣本珊.基于TM1300的USB接口設計與實現(xiàn)[J].計算機系統(tǒng)應用,2005(1):89-93.
[7]白煜.基于PCI總線的ARINC429總線接口板的設計[D].西安:西北工業(yè)大學,2002.
[8]王衛(wèi)東,康繼昌,周耀榮.測試維護總線(TM-BUS)控制器的設計與實現(xiàn)[J].西北工業(yè)大學學報,2000,18(4):591-594.
[9]方加喜,徐善鋒,李玉山.通用串行總線原理及其外設接口設計[J].半導體技術(shù),2007,27(11):33-38.
[10]胡志強,徐洪生,張宗麟.基于FPGA的ARINC429總線接口芯片的設計與應用[J].測控和技術(shù),2002,21(1):65-66.