在分析某型飛機MILSTD1553B數據總線系統構成的基礎上,結合其通信協議與其消息傳輸格式,建立了某型飛機總線系統通訊層次結構,并運用FPGA和DSP技術設計了此型飛機總線系統通訊軟件。 目前,隨著工藝和技術的進步,集成電路技術的發展已經使得在一個芯片上集成一個可編程系統(Programmable System On a Chip,PSOC)成為可能。其中,現場可編程門陣列(Field Programmable Gate Array,FPGA)由于其設計靈活、速度快,在數學專用集成電路的設計中得到廣泛的應用。數字信號處理(DSP)的理論與實現手段獲得了快速發展,已成為當代發展最快的學科之一。由于其高速的處理速度和強大而又靈活的接口與通信能力,在很多領域已經得到了廣泛的應用。 MILSTD1553B數據總線具有雙向輸出特性,實時性和可靠性高,廣泛應用在當代的運輸機和相當數量的民航客機以及軍用飛機上。 1 1553B數據總線系統構成 1553B總線系統主要由3部分組成:總線控制器BC;遠程終端RT;數據總線D ata Bus。 某飛機的總線系統構成如圖1所示。 圖中CIP1為BC,CIP2為CIP1備份,其他子系統都是RT,并且此總線系統是雙余度的,兩套總線互為備份。 CIP1為通信和信息處理系統;CIP2為通信和信息處理系統備份;DTE為數據傳輸設備;INS為慣性導航系統;FDR為飛行參數記錄系統;ADC為大氣數據計算機;IFU為接口組件;FCC為火控計算機;SMS為外掛管理系統;LRS為激光測距系統。 2 1553B數據總線通信協議 1553B總線的工作頻率是1 Mb/s 。采用曼徹斯特II碼,半雙工工作方式。主要的硬件部分為總線控制器(BC)、遠端終端(RT)和可選用的總線監控器(MT)。一般情況下,這3部分通過1個多路總線接口(MBI)來完成。可把MBI嵌在計算機內。該總線有10種消息格式。每個消息至少包含2個字,每個字有16個消息位,1個奇偶校驗位和3個位長的同步頭,所有的消息字都采用曼徹斯特II碼構成。1553B的數據總線傳輸的字的格式如圖2所示。 1553B數據總線用的是指令/響應型通信協議。他有3種類型的終端,分別為: (1)總線控制器(BC) 他是在總線上惟一被安排為執行建立和啟動數據傳輸任務的終端。 (2)遠程終端(RT) 他是用戶子系統到數據總線上的接口,他在BC的控制下提取數據或吸收數據。 (3)總線監控器(MT) 他“監控”總線上的信息傳輸,以完成對總線上的 數據源進行記錄和分析,但他本身不參與總線的通信。 3 1553B數據總線消息傳輸格式 1553B總線上的信息的傳遞是以消息為單位的。所有的消息都是由數據字、指令字、狀態字組成。下面是1553B協議允許的10種消息格式,如圖3所示。 4 某型飛機總線系統通訊層次結構 參考ISO的開放式互連系統七層模式,某型飛機機載系統分為5層:應用層、驅動層、傳輸層、數據鏈路層和物理層,如圖4所示。 這5層之間功能劃分明確,接口簡單,從而為硬軟 件的設計實現奠定良好的基礎。應用層是通信系統的最高層次,他實現通信系統管理功能(如初始化、維護、重構等)和解釋功能(如描述數據交換的含義、有效性、范圍、格式等)。 驅動層是應用層與低層的軟件接口。為實現應用層的管理功能,驅動層應能控制子系統內多 路傳輸總線接口(簡稱MBI)的初始化、啟動、停止、連接、斷開、啟動其自測試,監控其工作狀態,控制其和子系統主機的數據交換。 傳輸層控制多路傳輸總線上的數據傳輸,傳輸層的任務包括信息處理、通道切換、同步管理等。 數據鏈路層按照MILSTD1553B規定,控制總線上各條消息的傳輸序列。 物理層按照MILSTD1553B規定,處理1553B總線物理介質上的位流傳輸。 應用層、驅動層在各個子系統主機上實現,傳輸層、數據鏈路層、物理層在MBI上實現。 5 總線系統通訊軟件設計 在某型飛機航空總線系統的設計中,一個很重要的工作就是總線通訊軟件的設計。航空總線通訊軟件設計包括:驅動層和應用層的軟件設計。其中驅動層直接驅動總線接口板主要完成各個寄存器的配置,實現數據的發送和接收;應用層是設計中的最高層,他管理整個系統的功能。作為一塊接口板,設計的重點在于驅動層的軟件的設計,他包括3個方面的內容: (1)FPGA部分的軟件。 (2)DSP部分的軟件。 (3)上位機操作系統驅動軟件。 5.1 FPGA程序控制功能 該部分采用VHDL語言編寫,實現1553B總線數據的接收、發送、曼徹斯特II碼、錯誤檢出、奇偶檢驗、與DSP的接口和譯碼電路等功能。其中發送單元與接收單元是并行工作的,由邏輯門電路實現。這里從軟件角度畫出流程圖如圖5所示。 5.2 DSP程序控制功能 DSP控制部分程序實現的功能如下: (1)對總線接口板的初始化(包括初始化DSP本身內部電路和寄存器FPGA及上位機通訊寄存器)。 (2)實現RT地址識別 由于是多RT總線接口板,所以收到數據后,應該判別該RT地址是否屬于該接口板; (3)與上位機消息傳輸控制功能 消息傳輸控制程序完成總線應傳輸的數據在總線接口 板和上位機之間的數據交換。包括數據的讀寫過程和自檢測過程,所要完成的操作如下: ①向FPGA寫入發送數據(到總線)。 ②從FPGA內讀出數據(該數據由DSP處理)。 ③向雙口RAM寫入數據(到上位機)。 ④自檢測過程。自檢測過程是在收到上位機的自檢命令后,實現接口板的數據發送 和接收性能測試。 (4)中斷控制程序 在DSP芯片TMS320F206接口的設計中,使用3個硬件中斷,INT1,INT2由FPGA來產生,INT3 則由上位機來產生。INT1表明FPGA的接收單元已收到一個數據,通知F206讀數,INT2表明FPGA的接收單元已收到一個錯誤數據,通知F206讀取錯誤狀態信息,INT3是上位機和接口板數據傳輸 控制的一種手段,通過INT3中斷,上位機告訴接口板進行數據接收還是數據發送操作,發送多少數據,采用的消息格式以及總線控制等信息。 DSP部分的軟件采用C++和匯編語言混合編程,關鍵路徑如中斷服務程序,數據發送和接收程序都采用匯編語言以達到最大的執行效率,主程序采用C++編寫。 DSP部分軟件的流程圖,如圖6所示。 5.3 上位機控制程序 主要實現上位機在特定的操作系統下對接口板的軟件驅動、數據通訊和傳輸控制。主要使用C++在Windows環境下進行軟件開發。 6 結語 本文介紹了一種基于FPGA和DSP對某型飛機總線系統通訊軟件設計與實現的方法。在實際的運用中,較好的實現了總線系統通訊功能,對1553B總線研究具有一定的使用和參考價值。 |