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