




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、南昌航空大學學士學位論文1 緒論1.1 引言隨著科技的發展及戰爭的需要,戰車、艦船、飛機等武器平臺上電子設備越來越多,越來越復雜,于是將電子設備按一定的協議聯網加以有效地綜合,使之達到資源和功能共享已成為必然的要求。電子綜合的支撐技術是聯網技術,而武器平臺上的聯網技術不同于一般的局域網絡技術,它特別強調網絡的可靠性和實時性1。1553B總線最初是在七十年代末為適應飛機的發展由美國提出的飛機內部電子系統聯網標準,其后由于它的高可靠性和靈活性而在其他的機動武器平臺上也得到了較廣泛的應用。MIL-STD-1553B是70年代發展起來的“ 飛機內部時分制指令響應式多路傳輸數據總線”,它具有可靠性高、速
2、度快、反應靈敏、雙冗余等特點,特別適用于快速反應武器系統2。雖然其傳輸速率只有1Mbit/s,但它并沒有因后來發展起來的高速網遭淘汰, 而是隨微電子技術和計算機技術的發展而不斷提高。世界上許多集成電路公司和廠家都不斷開發和生產集成度更高、通用性更強的1553B總線系列器件。這些器件優化了1553B總線通訊接口,減輕了主機的通訊負擔,從而提高了系統的可靠性3。1.2國內外1553B總線研究發展狀況及涉及領域 隨著時代的發展,對于增加飛機推力、改善氣動性能等技術的成熟,航空系統設計任務的重點,逐漸集中在飛機內部的電子設計上。與此同時,信息工程、計算機技術、控制技術、電子技術都有了長足的進步。航空電
3、子綜合化技術就是在這樣的背景下產生的3。技術的核心問題是實現信息采集、處理、分配、存儲的一個系統。MIL-STD-1553B多路總線是綜合化航空電子系統設備間的數據交換紐帶,它將所有的綜合化航空電子子系統連接在一起,共同構成具有特殊性的分布式計算機網絡,從而實現綜合系統內部的信息共享和系統綜合化控制。航空電子系統中,不僅需要不同的硬件接口來應付不同的航空設備,而且航空設備內部接口連線也十分復雜和混亂,可靠性能也不高3。為了解決這個狀況,提出了在航空電子系統中使用數據總線,使得不同的航空電子設備之間能夠互相通信。美國軍方提出的MIL-STD-1553B數據總線協議就是在航空電子綜合化技術發展過程
4、中形成的現代航空機載系統設備互聯的網絡接口標準。從推出到現在,經過三十多年的發展,1553B總線技術也在不斷的改進。目前1553B總線已經成為在航空航天領域占統治地位的總線標準。國內對 1553B 總線協議進行了跟蹤研究,制定了相應的國軍標 GJB289A,科研院所和相關單位在這方面做了大量的工作,也取得了一定的成績。如成都恩菲特公司自主研發的 eph31580 型芯片1。如圖1.2所示:圖1.1 成都恩菲特eph31580 型芯片1.3本論文的研究內容及安排從接口實現的具體功能出發,采用自頂向下的設計思想,結合大型可編程邏輯器件的特點,提出了一種基于FPGA的1553B總線接口系統的設計方法
5、。對系統進行了總體分析及結構設計,使用硬件描述語言VHDL對設計進行了描述,最后在FPGA上進行了實現。1553B總線系統的關鍵核心部分是總線接口芯片,在充分檢索相關資料后,對MIL-STD-1553B數據總線協議進行分析研究,設計基于FPGA的1553B總線控制器,并要設計預留工作方式選擇信號及控制信號,以可將總線控制器、遠程終端接口、總線監視器結合起來以達到通用航空總線接口的功能。完成相應的軟件系統語言程序最后經綜合和仿真驗證后,在特定的FPGA中實現。采取的設計步驟安排如下:第1章:主要闡述了MIL-STD-1553B總線技術的國內外發展情況以及相關領域的運用。第2章:查找一些MIL-S
6、TD-1553B數據總線協議的資料,并對其進行初步的制定步驟。第3章:結合相關書籍和設計方法對1553B總線接口提出總體的設計方案。第4章:應用1553B總線接口的具體設計與實現FPGA,并最后對其中每個小模塊的設計作詳細的設計。第5章:1553B總線接口試驗分析,主要介紹總線接口芯片測試系統設計及其測試的結果分析以及系統性能分析。第6章:總結了本文的研究設計工作,并對將來進一步的工作做了展望。2 MIL-STD-1553B數據總線協議簡介2.1 1553B數據總線的應用和特點由于其傳輸速率高,設備之間連接簡單靈活,噪聲容限高,通信效率高而且可靠,為美軍標所采用,將其作為機載設備相互通信的總線
7、標準。從推出到現在,經過三十年的發展,1553B總線技術也在不斷的改進。目前1553B總線已經成為在航空航天領域占統治地位的總線標準4。MIL-STD-1553B的其可靠性、穩定性的特點,在美國等過早已得到認可,且對1553B的使用,已由軍飛機的使用擴展到坦克、船舶、衛星、武器等領域。圖2.1 1553B航空總線的大體應用領域綜合起來1553B總線有以下幾個優良特點56:(1)實時性好,1553B總線的傳輸碼速率為1Mbps,每條消息最多包含32個字,傳輸一個固定不變的消息所需時間短。(2)合理的差錯控制措施和特有的方式命令,為確保數據傳輸的完整性,1553B采用了合理的差錯控制措施反饋重傳糾
8、錯方法。當總線控制器BC向某一終端RT發出一個命令或發送一個消息時,終端應在給定的響應時間內發回一個狀態字,如果傳輸的消息有錯,終端就拒絕發回狀態字,由此報告上次消息傳輸無效。而方式命令不僅使系統能完成數據通訊控制任務,還能調查故障情況并完成容錯管理功能。(3)總線效率高, 總線形式的拓撲結構對總線效率的要求比較高,為此1553B對涉及總線效率指標的某些強制性要求如命令響應時間、消息間隔時間以及每次消息傳輸的最大和最小數據塊的長度都有嚴格限制。 (4)具有命令/響應以及“廣播”通訊方式,BC能夠以“廣播”方式向所有RT發送一個時間同步消息,這樣總線上的所有消息傳輸都由總線控制器發出的指令來控制
9、,相關終端對指令應給予響應并執行操作。這種方式非常適合集中控制的分布式處理系統。2.2 編碼方式1553B總線上數據是以雙相曼徹斯特編碼的方式傳輸的。曼徹斯特碼是一種廣泛應用于航空電子綜合系統中的、線數據傳輸的雙極性碼。它在每個碼位中點存在一個跳變。1信號是一個由l到0的負跳沿,而O信號是由0到1的正跳沿。它本身包含了自定時的信息,因此它不需要獨立的信道來傳輸位定時信息,它可以直接從數據中分離出定時時鐘,在傳輸代碼信息的同時,也將時鐘同步信號一起傳輸到對方,每位編碼中有一跳變,不存在直流分量,因此具有自同步能力和良好的抗干擾性能7。它是主要用在數據同步傳輸中的一種編碼方式。圖2.2給出了 Ma
10、nehesterIx編碼的方式同時此種編碼方式還能與變壓器禍合相協調,十分適合用在變壓器禍合形式,長度為6m(20英尺)左右的場合,在航空電子綜合系統中,它是最主要的編碼形式8。圖2.2 Manehester11編碼2.2.1 FPGA的內部結構應用特點:1)采用FPGA設計ASIC電路(專用集成電路),用戶不需要投片生產,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。3)FPGA內部有豐富的觸發器和I/O引腳。4)FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容9
11、。可以說,FPGA芯片是小批量系統提高系統集成度、可靠性的最佳選擇之一。FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此,工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。加電時,FPGA芯片將EPROM中數據讀入片內編程RAM中,配置完成后,FPGA進入工作狀態。掉電后,FPGA恢復成白片,內部邏輯關系消失,因此,FPGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使
12、用非常靈活。2.3 硬件描述語言(HDL)硬件描述語言HDL(Hardware Description Language )是一種用形式化方法來描述數字電路和數字邏輯系統的語言。數字邏輯電路設計者可利用這種語言來描述自己的設計思想,然后利用EDA工具進行仿真,再自動綜合到門級電路,最后用ASIC或FPGA實現其功能7。 舉個例子,在傳統的設計方法中,對2輸入的與門,我們可能需到標準器件庫中調個74系列的器件出來,但在硬件描述語言中,“&”就是一個與門的形式描述,“C = A & B”就是一個2輸入與門的描述。而“and”就是一個與門器件10。 硬件描述語言發展至今已有二十多年歷
13、史,當今業界的標準中(IEEE標準)主要有VHDL和Verilog HDL 這兩種硬件描述語言。2.3.1 VeriIog HDL在數字電路設計中,數字電路可簡單歸納為兩種要素:線和器件。線是器件管腳之間的物理連線;器件也可簡單歸納為組合邏輯器件(如與或非門等)和時序邏輯器件(如寄存器、鎖存器、RAM等)。一個數字系統(硬件)就是多個器件通過一定的連線關系組合在一塊的。因此,Verilog HDL的建模實際上就是如何使用HDL語言對數字電路的兩種基本要素的特性及相互之間的關系進行描述的過程。隨著Verilog-XL算法的成功,Verilog HDL語言得到迅速發展。1989年,Cadence公
14、司收購了GDA公司,Verilog HDL語言成為Cadence公司的私有財產。1990年,Cadence公司決定公開VerilogHDL語言,于是成立了OVI(Open Verilog International)組織,負責促進Verilog HDL語言的發展。基于Verilog HDL的優越性,IEEE于1995年制定了Verilog HDL的IEEE標準,即Verilog HDL1364-1995;2001年發布了Verilog HDL 1364-2001標準。在這個標準中,加入了Verilog HDL-A標準,使Verilog有了模擬設計描述的能力1112。Verilog HDL適合算
15、法級(Algorithm)、寄存器傳輸級(RTL)、邏輯級(Logic)、門級(Gate)和板圖級(Layout)等各個層次的設計和描述11。具體如表2.2所示。表2.2 不同層級的描述方式設計層次 行為描述 結構描述系 統 級 系統算法 系統邏輯圖寄 存 器 數據流程圖、真值表 寄存器ALUROL等 輸 出 級 狀態機 分模塊描述 門 布爾方程 邏輯門觸發器鎖存器 級 真 值 表 構成的邏輯圖版 圖 級 幾何圖形 圖形連接關系2.3.2 VHDL語言VHDL 語言能夠成為標準化的硬件描述語言并獲得廣泛應用,它自身必然具有很多其他硬件描述語言所不具備的優點1。歸納起來 VHDL 語言主要具有以
16、下優點:(1) VHDL 語言功能強大,設計方式多樣VHDL 語言具有強大的語言結構,只需采用簡單明確的VHDL語言程序就可以描述十分復雜的硬件電路。同時,它還具有多層次的電路設計描述功能。此外,VHDL 語言能夠同時支持同步電路、異步電路和隨機電路的設計實現, 這是其他硬件描述語言所不能比擬的。VHDL 語言設計方法靈活多樣,既支持自頂向下的設計方式,也支持自底向上的設計方法;既支持模塊化設計方法,也支持層次化設計方法。(2) VHDL 語言具有強大的硬件描述能力10VHDL 語言具有多層次的電路設計描述功能,既可描述系統級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述
17、或者結構描述,也可以采用三者的混合描述方式。同時,VHDL 語言也支持慣性延遲和傳輸延遲,這樣可以準確地建立硬件電路的模型。VHDL 語言的強大描述能力還體現在它具有豐富的數據類型。VHDL 語言既支持標準定義的數據類型,也支持用戶定義的數據類型,這樣便會給硬件描述帶來較大的自由度。 (3) VHDL 語言具有很強的移植能力VHDL 語言很強的移植能力主要體現在:對于同一個硬件電路的 VHDL 語言描述,它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執行。(4) VHDL 語言的設計描述與器件無關 采用VHDL 語言描述硬件電
18、路時,設計人員并不需要首先考慮選擇進行設計的器件。這樣做的好處是可以使設計人員集中精力進行電路設計的優化,而不需要考慮其他的問題。當硬件電路的設計描述完成以后,VHDL 語言允許采用多種不同的器件結構來實現。 (5) VHDL 語言程序易于共享和復用VHDL 語言采用基于庫 ( library) 的設計方法。在設計過程中,設計人員可以建立各種可再次利用的模塊,一個大規模的硬件電路的設計不可能從門級電路開始一步步地進行設計,而是一些模塊的累加。這些模塊可以預先設計或者使用以前設計中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設計中進行復用11。由于 VHDL 語言是一種描述、模擬、綜合、優化
19、和布線的標準硬件描述語言,因此它可以使設計成果在設計人員之間方便地進行交流和共享,從而減小硬件電路設計的工作量,縮短開發周期。2.3.3 veriIog HDL和VHDL的比較目前最主要的硬件描述語言是VHDL和Verilog HDL。VHDL發展的較早,語法嚴格,而Verilog HDL是在C語言的基礎上發展起來的一種硬件描述語言、語法較自由(目前ASIC設計多采用Verilog語言)10。VHDL和VerilogHDL兩者相比,VHDL是一種高級的描述語言,通常更適合行為級和RTL級的描述,可以用于高級建模,而VerilogHDL則是一種比較低級的描述語言,更適合于RTL級,尤其是門級電路
20、的描述,易于控制電路的資源。另外,從兩種語言推進的過程來看,VHDL語言偏重標準化考慮,而Verilog語言由于是在Cadence扶植下針對EDA工具開發的硬件描述語言,因此,跟EDA工具的結合更為密切。學習VHDL比學習Verilog難一些,但Verilog自由的語法也使得的初學者容易上手但也容易出錯。國外電子專業很多在本科階段教授VHDL,在研究生階段教Verilog。從國內來看,VHDL的參考書很多,便于查找資料,而VerilogHDL的參考書則很少,這給學習Verilog HDL帶來不少困難。結合兩者的優點,經常采用VHDL和VerilogHDL兩種混合語言進行電子線路描述,使得利用語
21、言描述硬件的效果更佳1213。2.4 1553字結構1553B總線協議規定,總線上數據是以曼徹斯特編碼的字格式進行傳輸的。協議規定每次信息傳輸包括命令字、數據字(指令字和狀態字)等幾種字格式。每種字的字長為20位,因為總線數據傳輸速率是1Mb1t/s,所以傳輸每一位需要 1us的時間,傳輸一個完整的字需要20us。這幾種字格式的有效信息位是16位,每個字的前3位為同步位,用來表示數據到來并區分為何種字類型。最后一位為校驗位,1553B協議規定總線上傳輸的數據全部采用奇校驗,這種做法方便各個終端設備的接口統一,保證數據傳輸的可靠性。由發送端為數據進行補奇,接收端進行奇校驗。數據是以曼徹斯特編碼的
22、方式傳輸的。同步頭是判斷數據類型和捕獲總線上數據的重要信息,同步頭總共占用3個數據位,它的特點就是電平變化以1.5個數據位為單位,因此接收端只要判斷電平在1.5個數據單位變化就認為是同步頭。同步頭分為兩種:前 1.5個數據位為高電平,后1.5個數據位為低電平的同步頭用來表示這個字為命令字(方式指令字)或者狀態字;前1.5個數據位為低電平,后1.5個數據位為高電平的同步頭用來表示這個字為數據字15。圖2.3 1553B總線命令字/數據字/狀態字格式圖2.5 155B總線的網絡拓撲結構 MIL-STD-1553B總線網絡由終端、字系統和總線傳輸介質組成。終端是使數據總線和子系統相連接的電子組件。字
23、系統為多路數據總線上接收數據傳輸服務的裝置或功能單位。總線控制器(BC)是總線系統上傳輸的信息并有選擇地提取信息以備后用的終端。 1553B總線系統采用命令、響應式傳輸的操作方式。只有當總線控制器發出命令后,遠程終端才能做出響應,也即遠程終端永遠是被動的,即使它想給BC或者給別的RT發信息。2.6 對于BC功能的155B工作模式1553B的三種工作模式:總線控制器(Bus Controller),遠程終端(Remote Terminal),總線監控器(Bus Monitor)。其中總線控制器(BC):對1553B總線的控制和管理,也是所有信息傳輸動作的發起者。任何時刻總線上只有一個總線控制器,
24、其負責發送命令、參與數據傳輸、接收狀態響應和檢測總線系統。2.7 155B總線的傳輸方式和數據格式 1553B總線的傳輸速度是1Mb/s,采用曼徹施特II型編碼,半雙工工作方式。信號以串行數字脈沖編碼調制(PCM)形式在數據總線上傳輸。邏輯1為雙極編碼信號1/0,即一個正脈沖繼之一個負脈沖,邏輯0為雙極編碼信號0/1,即一個負脈沖繼之一個正脈沖1415。圖2.4 155B總線的傳輸方式 1553B信息流由一串1553B消息由命令字、數據字、狀態字組成。所有1553B字都是20bit長,每一個字都應是:3為同步頭+16位數據/命令/狀態為+1為奇偶校驗。同步和奇偶校驗位被1553硬件
25、用在確定1553信息格式和數據錯誤的時候17。3 155B3總線接口設計總體方案3.1 1553B數據總線系統的設計總線系統原理工作硬件組成如圖3.1 雙通道收發器宿主機接口雙端口存儲器C P U接口寄存器及控制邏輯1553協議處理器(耦合器) da通道Aadcs通道B讀寫RAM控制(耦合器)圖3.1 總線總體設計思路組成 1553B總線接口主要包括3大模塊,雙通道收發器、1553B協議處理器和接口寄存器,以及使用FPGA的片內雙口RAM存儲器。雙通道收發器屬于電平轉換設備,不能夠在FPGA內部實現,可以用收發芯片等來完成其功能。1553B協議處理器完成總線控制器的主要功能。CPU處理器,EP
26、ROM,RAM,信道切換邏輯等組成,完成接收與發送消息的打包和解包處理,以便于子系統接收/發送。與宿主機接口模塊實現宿主機與總線接口板間的接口,連有雙端口存儲器,驅動電路和譯碼電路。雙口存儲器主要用于主機和總線接口板進行信息交換的緩沖區,減少主機的負荷。3.2 1553B協議處理器結構1553B協議處理器是一個1553B總線接口的核心部分。它完成包括收發消息,數據流控制等多種協議處理流程。因為總線接口可以分為總線控制器BC、遠程終端RT和總線監視器BM三種類型,所以協議處理器按功能可以劃分為BC、RT或者BM。本設計要實現的BC和RT在有些功能上是相同的,所以部分模塊是BC/RT通用的。 總線
27、控制器BC實現的功能18總線控制器是總線信息傳輸的發起者,要實現的具體功能包括:(l)信息的正確發送:包括命令字/方式指令的寫入、添加同步頭、字計數、曼徹斯特編碼等。(2)信息的正確接收:包括狀態字和數據字的接收、同步頭識別、字計數、曼徹斯特解碼、產生中斷及奇偶校驗等。(3)字/消息的處理:包括命令字提取,雙命令字的協調、狀態字的分析、接口寄存器的讀寫、自測試、存儲器及緩沖器讀寫等。所以,以下的實驗內容主要是圍繞著這子模塊進行編寫和設計。如圖3.3 就是對該些部分的劃分結構。時鐘產生模塊主處理器 地址控制存儲器接口并行通信接口串行通信接口數字接收器模擬接收器雙口RAM命令字/狀態字譯碼及發送命
28、令字控制發生器控制模擬發送器數字發送器狀態字設置/命令字寄存器發送超時監測檢錯控制圖3.2 總線接口系統結構圖(1)模擬收發器部分:簡要來說接收部分是將雙電平曼徹斯特碼轉化為單電平曼徹斯特碼,而發送部分則是將單電平曼徹斯特碼轉化為雙電平曼徹斯特碼,包括模擬接收器和模擬發送器兩部分。模擬接收器:數字邏輯與數據總線相接的最基本前端模擬部件。由于FPGA純粹基于數字電路設計,所以對于模擬接收中的模擬量處理部分,要經過外部模擬電路進行實現。盡管總線上的信號是以數字形式傳輸的,但連接終端的雙絞屏蔽線電纜,其特性會引起信號衰減,終端收到的信號常是一個失真的正弦波。總線上的輸入信號通過濾波消除了高頻噪聲。門
29、限檢出為抑制低頻噪聲創造了條件且具有與邏輯檢測相兼容的數字輸出。并將雙極性的曼徹斯特碼轉換為單極性的曼徹斯特碼。模擬發送器:數字邏輯與數據總線相接的模擬部件,它是將FPGA發出的單極性信號轉變為符合MIL-STD-1553B標準的雙極性信號。(2)總線接口部分:接收部分實現的功能是將曼徹斯特碼轉換為單極性不歸零碼(NRZ碼),并且實現對同步頭的檢測,以及奇偶位的校驗,實現串/并轉換。發送部分實現的功能是將曼徹斯特碼轉換為雙極性不歸零碼(NRZ碼),并且實現對同步頭的編碼,實現狀態字、數據字和命令字的編碼,以及奇偶位的產生,進行并/串轉換。根據1553B通訊協議的規定,發送器要禁止發送大于800
30、微秒的消息。包括數字接收器,數字發送器和發送超時檢測三部分。數字發送器:該部分即為曼徹斯特碼編碼,它是將單極性不歸零碼轉換為單極性的曼徹斯特碼,而且實現對同步頭的編碼,以及奇偶位的產生,并對數據進行并/串轉換。數字接收器:該部分即為曼徹斯特碼解碼,功能與發送器剛好相反,是將單極性曼徹斯特碼轉換為單極性不歸零碼,同時實現對同步頭的檢測,以及奇偶位校驗位檢測,位計數檢測,同步時鐘的提取,以及數據的串/并轉換。發送超時檢測:在MIL-STD-1553B協議標準中規定發送器要禁止發送大于800微秒的消息。本模塊就是對發送器進行計時控制,當發送器發送的消息時間大于800微秒時,它就關斷發送器。(3)總線
31、協議處理模塊:實現命令字、狀態字以及方式命令譯碼,進行RT地址比較,子地址比較,進行命令字、狀態字和方式命令譯碼,進行錯誤檢測及發送中斷信號等。并要為其余模塊發送相應控制量,實現對總線接口的控制。包括命令字/狀態字譯碼及數據控制,地址控制,檢錯控制,命令字發送及狀態字設置,發送器控制等幾部分。命令字/狀態字譯碼及命令字發送控制部分:該模塊實現的功能是在BC工作方式下發送命令字,且在BC/RT/MT三種工作模式下對命令字或狀態字進行譯碼,產生相應的控制信號實現對其他模塊的控制,如對地址控制部分,檢錯控制部分,命令字發送/狀態字設置部分,以及發送器控制部分等,本部分是接口芯片的一個核心部分。地址控
32、制部分:該模塊實現對各工作方式下輸入雙口RAM的地址的控制以及讀寫使能。包括地址變換和地址選擇兩部分。檢錯控制部分:該模塊用于檢測消息傳輸過程中發生的錯誤,包括字計數檢測及RT響應超時檢測,并且根據其它模塊檢測到的RT地址錯誤、奇偶校驗錯誤和位計數錯誤等產生中斷信號17。狀態字設置部分:該模塊實現RT工作方式下的返回狀態字設置,及對狀態字和當前命令字和上一命令字進行存儲,以備方式命令的消息方式的實現。發送器控制模塊:針對不同的工作方式的所需要發送的數據的選擇。時鐘產生:對外部輸入時鐘進行處理產生不同頻率的時鐘。它實質上是一個計數器,對外部輸入時鐘進行分頻處理。(4)主處理器接口部分:實現主處理
33、機與總線接口交換信息的功能,通過共享RAM來實現。包括并行通信接口、串行通信接口、存儲器接口和雙端口RAM。其中每部分的具體功能如下:存儲器接口:它實際上是一個隔離器,對外部子系統處理器和總線接口芯片對雙口RAM進行訪問的信號進行處理,它不允許兩者同時對雙口RAM進行讀或者寫,當兩者同時讀或寫時,進行相應控制,規定兩者的訪問優先級。雙口RAM:它是整個芯片的數據存儲區,用以存儲不同工作方式下的各類字,是傳輸消息的內容數據,也是處理器與總線接口芯片通信的數據交換媒介18。并行通信控制接口:該部分主要實現總線接口芯片與主處理器并行通信。串行通信接口:該部分即為了實現總線接口芯片的串行通信,在FPG
34、A中嵌入UART(通用異步收發器),可以與具有UART的通信接口部件相連接,例如通過RS232總線與PC機進行串行通信。3.3 總線接口寄存器模塊功能接口寄存器是以控制和狀態寄存器來實現的,主要有以下幾個寄存器:遠程終端命令字寄存器:RT模式下,存儲接收到的所有命令字和方式指令字。接收命令字寄存器:只在RT的模式下使用,信息完整的接收后,命令字會從遠程終端命令字寄存器送入此寄存器18。第一命令字寄存器:存放BC要發送的命令字,或者存放RT一>RT傳輸的第一個命令字。矢量字/第二命令字/方式指令數據寄存器:在BC模式下,可以存放RT一>RT傳輸時的第二個命令字或者方式指令需要的數據字
35、;在RT模式下,存放方式指令提取的矢量字。第一狀態字寄存器:存放RT返回的狀態字,或者是RT一>RT模式下RT返回的第一個狀態字。同步/第二狀態字/返回方式指令數據寄存器:在BC模式下,此寄存器既可以存放來自RT一>RT模式下傳輸的第二個狀態字也可以存放來自RT的方式指令返回字:RT模式下,作為存放帶數據字的方式指令字的數據字的寄存器。操作寄存器:子系統用來控制總線接口的寄存器。配置整個接口的功能選擇。方式指令寄存器:RT接收到的方式指令14。4 1553B總線接口具體設計與實現4.1總線BC功能總線控制器BC是1553B總線上唯一可以發起和終止消息傳輸任務的終端。一條總線上只可以
36、存在一個總線控制器,它是1553B總線的指揮和調度者。其主要功能是,向系統中的遠程終端發出指令,控制終端的行為。包括發送廣播指令,模式代碼(mode code)指令;普通發送數據指令,普通接收數據指令。 作為總線控制器,要實現的任務包括:(1)數據字的正確接收:包括接收器,同步檢出,數據檢出,曼徹斯特n碼錯誤檢出奇偶檢測,位/字計數;(2)數據字的發送:包括發送控制,同步/數據編碼,時鐘產生;(3)字/消息的處理:包括,a接收部分,計數器,狀態寄存器;b自測試部分;c主子系統接口部分,控制,數據地址,控制寄存器;d存儲器緩沖器部分;e狀態字譯碼部分,字計數識別,消息錯誤檢出等任務18。作為MI
37、LSTD一1553B總線的通用接口應完成以下功能:將總線上的串行信息流轉換成處理機可以處理的并行信息或者與之相反;接收或發送信息時,能夠識別或生成標準的1553B信息字和消息;完成與處理機之間的信息交換,這包括1553B信息地址的分配,命令字(或狀態字)的譯碼或返回狀態字、發送數據字等。4.2 1553B協議處理器BC功能模塊設計4.2.1 模擬收發器模擬收/發器是BCR/T/MT直接與傳輸電纜接口的關鍵部件,1553B總線采用的是雙相碼中的曼徹斯特碼,本身包含了自定時的信息,同時它能與變壓器禍合協調,十分適宜用于變壓器禍合形式,電纜長度為500英尺左右航電綜合系統中。簡要的說就是將雙電平曼徹
38、斯特碼轉化為單電平曼徹斯特碼,以及將單電平曼徹斯特碼轉化為雙電平曼徹斯特碼。4.2.2 總線控制器BC設計 總線接口的每一種類型的終端的設計都包括模擬收發器、總線接口模塊、總線控制模塊、處理機接口模塊四部分,都需要完成字處理和消息處理,而BC是總線上唯一被安排為執行建立和啟動數據傳輸任務的終端,被指派啟動數據總線上信息傳輸任務的終端。針對BC功能,其FPGA部分的邏輯結構如圖4.1示。時鐘產生模塊地址控制存儲器接口并行通信接口外部時鐘發送命令字串行通信接口外部控制信號數字接收器雙口RAM狀態字譯碼/接收數據字發生器控制數字發送器發送超時監測檢錯控制圖4.1 總線控制器內部結構圖下面將結構圖中的
39、各小模塊進行設計說明。4.2.3 消息發送器在BC模式下,需要涉及到發送指令文字,所以發送消息控制模塊根據工作模式從接口寄存器中讀取相應的指令字,從而判斷消息傳輸模式是否帶數據字等。然后控制發送單元將指令字和數據字發送出去。BC在發送命令字的同時也對發出的命令字進行譯碼,包括提取RT地址,以及要發送數據字的個數,來產生控制信號提供給其他模塊。在RT模式只需要發送狀態字、數據字和方式指令數據碼,數據字計數需要從命令字的字計數字段提取,方式指令數據碼是BC通過方式指令字讀取的RT狀態,包括上一狀態字、上一命令字、矢量字等。Moore型有限狀態機的輸出只與有限狀態機的當前狀態有關,與輸入信號的當前值
40、無關。在圖4.2中描述了Moore型有限狀態機的示意圖.state logicoutput logicstate registerinputstateoutputcurrent stateclokreset圖4.2 Moore型有限狀態機示意圖Moore型有限狀態機在時鐘clock脈沖的有效邊沿后的有限個門延時后,輸出達到穩定值。即使在一個時鐘周期內輸入信號發生變化,輸出也會在一個完整的時鐘周期內保持穩定值而不變。輸入對輸出的影響要到下一個周期才能反映出來,Moore型有限狀態機最重要的特點就是將輸入與輸出信號隔離開來。單進程Moore型有限狀態機,其VHDL語言描述如下:Library ie
41、ee;Use ieee.std_logic_1164.all;Entity moore is Port(datain : in std_logic_vector(1 downto 0); Clk,clr : in std logic; q : out std_logic_vector(3 downto 0);End moore;Architecture behav of moore is Type st_type is (st0,st1,st2,st3,st4);Signal c_st : st_type;BeginProcesss(clk,clr)BeginIf clr=1 then C_s
42、t<=st0; q<=”0000”;Elsif clk event and clk=1 then Case c_st is When st0=>if datain”10” then c st<=st1; Else c_st<=st0; end if; q<=”1001”; When st1=>if datain”11” then c st<=st2; Else c_st<=st1; end if; q<=”0101”; When st2=>if datain”01” then c st<=st3; Else c_st<
43、;=st0; end if; q<=”1100”; When st3=>if datain”00” then c st<=st4; Else c_st<=st2; end if; q<=”0010”;When st4=>if datain”11” then c st<=st0; Else c_st<=st3; end if; q<=”1001”; When others=>c_st,=st0; End case;End if;End process;End behav;其特點是組合進程和時序進程在同一個進程中,此進程可以認為是一個混合
44、進程。注意在此進程中,CASE語句處于測試時鐘上升沿的ELSIF語句中,因此在綜合時,對Q的賦值操作必然引進對Q鎖存的鎖存器。這就是說,此進程中能產生兩組同步的時序邏輯電路,一組是狀態機本身,另一組是由CLK作為鎖存信號的4位鎖存器,負責鎖存輸出數據Q。與多進程的狀態機相比,這個狀態機結構的優勢是,輸出信號不會出現毛刺現象。這是由于Q的輸出信號在下一個狀態出現時,由時鐘上升沿鎖入鎖存器后輸出,即有時序器件同步輸出,從而很好地避免了競爭冒險現象。從輸出的時序上看,由于Q的輸出信號要等到進入下一狀態的時鐘信號的上升沿進行鎖存,即Q的輸出信號在當前狀態中由組合電路產生,而在穩定了一個時鐘周期后在次態
45、由鎖存器輸出,因此要比多進程狀態機的輸出晚一個時鐘周期,這是此類狀態機的缺點。圖4.3單進程Moore狀態機的工作時序圖:圖4.3 單進程Moore型狀態機的工作時序4.2.4寄存器 1:I/O寫寄存器寄存器的寫操作VHDL語言描述如下:write:proeess(strb,wr) FPGA的I/O端口進程beginif(wrevent and wr=0)then 寫信號wr有效時繼續執行該進程if(ios=0 and strb=0)then 判斷是信息否是寫外部I/O端口case addr iswhen”11111”=>commandword<=datadsp; 寫入I/O地址I
46、Fwhen”11110”=>dataword<=datadsp; 寫入I/O地址IEwhen”11101”=>timerword<=datadsp; 寫入I/O地址IDwhen others=>null;end case;end if;end if;end proeess;其操作波形如圖4.4所示:圖中在wr下降沿,在strb和ios信號為低電平時分別對I/O端口1F,lE,1D都進行了寫操作。圖4.4 I/O接口寫操作2:I/O讀寄存器讀寄存器的VHDL實現如下:read:process(strb,rd) 讀FPGA的I/O進程beginif(rdevent a
47、nd rd=0)then 讀信號rd有效時執行該進程if(ios=0 and strb=0)then 判斷端口狀態case addr iswhen”11100”=>datadsp<=datal553; 讀出1553B數據,地址ICwhen”11011”=>datadsp<=statusl553; 讀出1553B狀態,地址IBwhen”11010”=>datadsp<=timervalue; 讀出計數器的值,地址IAwhen other=>datadsp=>”zzzzzzzzzzzzzzzz”; 讀其它I/O端口則總線置為高阻狀態end case;
48、end if;elsedatadsp<= “zzzzzzzzzzzzzzzz”;end if;end process:4.2.5 計數器計數器單元的功能是實現一個412微妙的計數器,如圖4.5所示。該計數器的輸入信號有:(l)clock32m,32兆赫茲的時鐘輸入信號;(2)timerstart,計數器啟動信號; TIMRERDATAIN80CLOCK32MTIMERSTARTTIMERCLR SUPERTIMEATIMERCTLDATAIN80 CLOCK32MTIMERSTARTTIMERRORTIMERCLRTIMERCTL圖4.5 計數器方框圖(3)timerclr,計數器清零信
49、號;(4)timerctl,計數器控制信號,當該端口收到一個高脈沖時,表示F206要寫入新的計數值,該計數值由F206通過I/O地址ID寫入FPGA的寄存器timerword;計數器收到該信號后,就會把新的計數值裝入計數周期單元中,該值由用戶自己定義大小,它的取值范圍M為:4微妙 12微妙計數器的時鐘周期 計數器的時鐘周期 可算得,128 384之間;(5)datain0.8這9位數據線是寫入計數周期的數據輸入;(6)timererror,它是一個輸出信號,高脈沖表示計數器超時錯誤(超過了timerword的值的大小)。在收到一個timerstart信號后,計數器開始計數,只要中間過程中沒收到
50、清零信號,當計數值到達timerword以后,就會在timererror輸出一個電平,該輸出會通知中斷單元發送一個超時中斷給F206。下面是產生timererror信號的VHDL語言描述:eounter:proeess(eloek32m) 計數進程beginif(cloek32m=l)then 計數器時鐘信號if(timercl=1)then 1為清零信號有效timereontervalue<=imerword; 如果清零則把計數最大值timerword裝入elsif(starttime=1)then 是否收到計數器開始信號timercontervalue<=timerconter
51、value+1; 每一個loek32m時鐘到后計數值加if(timereontervalue>=timerword)then 判斷計數值是否大于最大值timerwordtimererror<=1; 送出超時錯誤信號timercontervalue<=0: 計數值清零elsetimererror<=1; 個時鐘周期后清零end if;end if;end if;end process;4.2.6檢錯控制 MIL-STD-1553B總線為軍用總線,廣泛運用于航空電子綜合系統中,1553B總線自身在兼顧實時性的條件下,采用了合理的差錯控制措施即反饋重傳糾錯(ARQ)方法來保證
52、數據傳輸的可靠性。而總線接口是實現航空電子綜合化系統的關鍵部件,主要完成總線的信息綜合,資源共享,任務協調和容錯重構。航空電子系統對于可靠性的要求嚴格,所以對于MIL-STD-1553B總線接口的可靠性設計就顯得尤為重要。 在該總線接口設計過程中要保證電路可靠的工作,錯誤檢測是一個至關重要的部分,一般要提高系統工作的可靠性要從兩方面出發:硬件和軟件。在硬件上由于數字電路設計中對于故障的處理可采用冗余技術,將故障的影響掩蓋起來。在本次設計中主要從軟件上進行可靠性設計,對總線上的數據進行曼徹斯特 II型碼字的解碼、采用奇偶校驗的方法對接收的數據進行編碼檢錯,同時包括系統的時間范圍要求如消息間隔和R
53、T響應時間等,以及對消息進行字計數檢測等,這樣可以在增加少量硬件的基礎上迅速地完成檢錯任務。 該檢錯控制模塊分為三部分:字計數部分、RT,的響應超時檢測和中斷信號產生部分。其間相互聯系如圖4.6所示。1、字計數部分: 用于檢測發送或接收消息的過程中數據字個數是否正確,判斷是否發送/接收規定個數的數據字。工作在 BC 模式時,根據來自自身命令字分析模塊的消息類型、加載信號、數據字計數值,以及來自編解碼模塊的數據發送/接收完畢信號、總線上輸入輸出的曼徹斯特碼正反相信號來控制字計數。 RT響應超時檢測RT_ADDR RT地址輸入RESET 復位信號0有效CLK12 系統時鐘錯誤中斷產生單元MODE
54、模式選擇 RTCS RT響應超時信號RX/RX_N 接受曼徹斯特碼 REQ_AYN 異步請求信號TX/TX_N 發送狀態曼徹斯特碼 CODE_ERR總線碼字錯誤信號 PARITY_ERR 奇偶校驗錯誤字計數單元 RAERR RT地址錯誤 STAERR 狀態字錯誤位置位T_R 當前消息類型 CNTERR 字錯誤信號RX_RDY 接收數據完畢信號TX_RDY 發送數據完畢信號CNT 數據字計數值fa 發出中斷INT1LOAD 數據字技術加載信號圖 4.6 檢錯控制部分輸入輸出管腳說明圖該模塊的工作過程如下:由總線上曼徹斯特碼型的正反相信號來判斷是否正在接收/發送數據,再根據編解碼模塊的接收/發送完畢反饋信號 RX_RDY、TX_RDY 來進行計數,每接收或發送出一個有效數據相應的計數信號減一;在接收時當計數器的值減到“0”時,進行 4us 時間的等待,如果無數據輸入則認為數據個數不多于命令字規定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論