1 引言 1553B 總線是MIL-STD-1553B 總線的簡稱,其全稱為飛機內部時分制指令/響應式多路 傳輸數據總線,是一種滿足實時性、數據完整性和系統可靠性的通用機載串行多路總線標 準,該總線標準首先在航空工業中得到廣泛應用。隨著衛星技術的發展,1553B 總線在國 內航天領域的應用也日益廣泛,作為與之配套的地面檢測設備也需要具有1553B 總線接口 的通信板卡。 2 方案設計 本板卡是基于PCI 總線的1553B 總線接口卡,要實現的功能是利用PCI 總線作為媒介, 實現計算機控制1553B 總線BC 端和RT 端進行數據傳輸的功能,最終在衛星地面測試過程中 實現由計算機對遠程終端的設備進行測試和控制。板卡硬件結構如圖1 所示,主要由PCI 協議接口芯片、1553B 總線控制器、收發器和變壓器等組成。 3 PCI-1553B 接口卡功能實現 3.1 1553B 協議 1553B 總線系統中包含三種不同類型的終端:總線控制器(BC)、總線監視器(MT)和 遠程終端(RT)。由于1553B 數據總線采用的是主從控制方式的總線控制,主節點即總線控 制器(BC)負責控制整個網絡,控制數據流從BC 流向RT、RT 流向BC 以及RT 流向RT。數 據流的基本形式是消息,協議規定一個消息傳輸的完整過程由指令字、數據字(或指令字和 狀態字)組成。每一種字長為20 位,有效消息位是16 位,每種字的前三位為同步頭,最后 一位是奇偶校驗位。在本系統中,主要數據傳輸方式是BC→RT 和RT→BC 兩種。 BC 端向RT 端的數據傳輸過程是首先由BC 發出一個接收指令字及規定數目的數據字到 RT,后者在核實消息后發回一個狀態字給BC,指令字和數據字應以沒有字間間隔的連續形 式發出。 RT 端向BC 端的數據傳輸過程是首先由BC 向RT 發出一個發送指令字,該RT 在核實指 令字后,發回一個狀態字給BC,繼之以規定數目的數據字,狀態字和數據字應以沒有字間 間隔的連續形式發出。 3.2 1553B 總線協議控制器的實現 1553B 總線協議控制器是本板卡構成的關鍵。市場上實現1553B 總線協議的芯片很多, 目前應用比較廣泛的是美國數據設備公司(DDC)的BU-61580,它雖然能夠完整的實現 1553B 總線協議,但缺點是設置比較復雜、體積比較大、功耗比較高。本設計采用Condor Engineering 公司的FlightCORE-1553 IP 核作為總線協議控制器,它完全滿足1553B 總線協 議,為主處理器和1553B 總線提供了完整、靈活的接口,能夠實現總線控制器(BC)、遠程 終端(RT)和總線監視器(BM)三種模式,并且適應ALTEA 和XILINX 大部分型號的FPGA, 與BU-61580 等協議芯片相比,具有使用靈活、功耗低、節省印制板面積等特點。 該總線控制器內部有 1K×16bits 的存儲空間,在存儲空間的低地址區是硬件寄存器、 固件保留區和文件寄存器,通過對這些寄存器的設置,可以方便地將控制器配置為BC、RT 或者BM。 下面對常用的寄存器進行說明: 1. 配置寄存器:用來選擇工作模式,即 BC、RT 或BM; 2. 控制寄存器:用來啟動相應的工作模式; 3. 中斷使能寄存器:設置產生中斷的條件; 4. 中斷狀態寄存器:當中斷產生時,固件將該寄存器相應位設置為有效,主處理器通 過讀該寄存器判斷是否有中斷發生; 5. 自檢寄存器:該寄存器具有只讀屬性,表明工作狀態。 實際應用中,該控制器需要4K 字的存儲空間才能正常工作,所以需要擴充存儲空間, 考慮到控制器接收處理總線數據后計算機能及時獲取而又不影響其正常工作,采用雙口RAM 比較合適,其中控制器前1K 字的存儲空間和雙口RAM 的地址空間是重疊的。 3.3 PCI 功能的實現 PCI 協議接口芯片采用PLX9054,通過XILINX 的FPGA 實現PLX9054 與1553 總線協議的 通信。當計算機啟動時,9054 需要串行EEPROM 為其提供一些必要的配置信息以實現對PCI 配置寄存器和本地寄存器的設置,這些信息除了局部空間的范圍和基地址外,還包括設備信 息和中斷資源等,這些需要我們事先燒寫到EEPROM 中,本文EEPROM 采用93LC56B。 實際應用中,需要根據存儲空間大小配置相應的9054 的地址空間,1553B 總線控制器 本身含有1K 字的寄存器空間,為了擴大存儲器空間,在FPGA 內例化了8K×16bits 的雙口 RAM。在9054 的本地端,將地址總線設為32 位,每一次32 位的讀寫操作僅對其低16 位進 行,高16 位未用,因此實際需要配置2 倍于雙口RAM 大小的空間,即32KByte,故EEPROM 中的局部地址空間0 范圍寄存器設為FFFF8000,局部地址空間0 描述寄存器設為4B430043。 3.4 PCI 總線和1553B 總線的橋接 在PCI 總線一邊,9054 的PCI 總線端需要和主機上的PCI 插槽進行連接。由于9054 是 專用的PCI 協議芯片,所以它的PCI 端可以直接通過插卡上的引線和PCI 插槽連接。 9054 的本地端和1553B 總線控制器HOST 端通過FPGA 實現邏輯轉換。9054 支持三種傳 輸模式,即主模式、從模式和DMA 模式,DMA 模式適合突發的大量數據的傳輸,由于1553B 總線的數據速率為1Mbps,數據量很小,因此采用從模式中的單周期讀寫模式,相對于主模 式而言電路設計和時序控制也相對簡單。 根據9054 從模式下單周期讀寫時序、1553B 總線控制器HOST 端時序和雙口RAM 時序采 用如圖2 所示的狀態機實現PCI 總線對1553B 總線控制器和雙口RAM 空間的讀寫操作。 圖2 狀態轉換圖 當9054 的局部總線復位信號有效后,狀態機進入S0 狀態,當啟動本地總線的單周期寫 操作時,在檢測到地址選通信號有效,且寫信號有效后,狀態機進入S1 狀態,將本地地址 總線賦給1553B 總線控制器的地址總線,狀態機進入S2 狀態,將本地數據總線賦給1553B 總線控制器的數據總線,直到數據寫入后,狀態機重新回到S0 狀態;當啟動本地總線單周 期讀操作時,在地址選通信號有效且讀信號有效后判斷本地地址總線,當本地地址大于等于 1024 時,訪問雙口RAM 的B 端口,當本地地址小于1024 時,訪問1553B 總線控制器內的寄 存器,這樣做的好處是防止對雙口RAM 操作時出現讀寫沖突的問題。 3.5 接口卡外圍電路 接口卡外圍電路主要包括收發器、變壓器和 RT 子地址電路等。 收發器分為接收和發射兩部分,接收部分的功能是將 1553 總線上傳輸的雙極性差分曼 徹斯*轉化為適合FPGA 輸入的互補CMOS/TTL 電平。發射部分是接收部分的逆過程, 它將互補的CMOS/TTL 電平轉為適合1553B 總線傳輸的雙極性差分曼徹斯*。本設計收 發器采用HOLT 公司的HI1567,由于HI1567 的工作電壓是5V,在與IO 電壓非5V 的FPGA 互聯時需要串接330 歐姆的電阻。 接口卡通過短截線與 1553B 主總線相連。在短截線和收發器之間需要設置隔離變壓器, 以提供總線驅動電壓,防止終端因短路引起損壞和接口卡產生的噪聲影響1553B 主總線上的信號。短截線與1553B 主總線的連接方式有兩種:直接耦合和變壓器耦合。直接耦合是 直接將短截線連接到主總線。變壓器耦合在直接耦合的基礎上加了一個耦合變壓器,對終端 實行兩級隔離,增加了數據傳輸的距離,同時提高了系統的可靠性。直接耦合短截線的長度 最大為1 英尺(約0.3 米),而變壓器耦合方式短截線最大可以達20 英尺(約6 米)。 本文 變壓器采用HOLT 公司的PMDB2725EX,該變壓器提供兩種變壓比,即1:2.5 和1:1.79,分 別適應直接耦合和變壓器耦合兩種方式。需要注意的是無論采用哪種方式,都必須在1553B 總線和變壓器之間串聯隔離電阻對總線進行短路保護。收發器和變壓器電路如圖3 所示。 RT 子地址不僅可以通過板卡上的手動開關來完成1553B 總線終端RT 地址的設置,也 可以通過上位機進行軟件設置。 圖 3 收發器變壓器電路圖 4 驅動及應用軟件設計 驅動程序的基本功能是完成設備的初始化、對端口的讀寫操作,中斷的響應以及調用。 本文采用DDK(驅動程序開發包)來編寫驅動程序,這里就不做詳細介紹。 應用軟件采用 Visual C++編寫,完成對PCI 的讀寫操作,進而實現控制1553B 總線的 數據傳輸。其中,BC 模式下的流程為: (1)讀取自檢寄存器,判斷工作狀態; (2)通過配置寄存器,設置工作模式為總線控制器(BC); (3)根據中斷條件設置中斷使能寄存器; (4)初始化中斷隊列; (5)定義BC 塊和發送接收數據緩沖區; (6)將控制字、命令字和需要發送的數據寫入相應的消息塊中; (7)設置控制寄存器啟動傳輸; (8)輪詢中斷狀態寄存器,如果中斷,進入中斷程序,處理相應的中斷。 5 結束語 為實現有效載荷地面測試過程中終端設備與星上1553B總線上被測試設備之間的信息交互,需要應用1553B總線到計算機標準接口的通信板卡。本文通過對1553B總線和PCI總線協議的分析,結合航天地面測試實際要求提出了一種1553B-PCI總線接口卡的實現方法,給出了硬件結構框圖,部分原理圖和接口控制的FPGA實現。經過測試,實現了計算機通過PCI總線與遠程終端設備的信息交互,滿足了實際要求,并在XXX型號地面測試中應用。 |