摘要:為降低成本,提高設計靈活性,提出一種基于FPGA的1553B總線接口方案;采用自頂向下的設計方法,在分析1553B總線接口工作原理和響應流程的基礎上,完成了接口方案各FPGA功能模塊設計;對關鍵模塊編寫VHDL代碼,并采用Active?HDL軟件進行了仿真;以Virtex?5 FPGA 開發(fā)板和PC機為驗證平臺,在FPGA中分別模擬BC與RT,在PC機指令下進行了BC與RT功能模塊間的收發(fā)測試,結果表明系統(tǒng)能在協(xié)議規(guī)定的1 MHz數(shù)據(jù)率下穩(wěn)定運行;同時,為提升接口性能,采用光纖代替?zhèn)鹘y(tǒng)電纜傳輸介質,利用FPGA內嵌RocketIO內核進行了傳統(tǒng)1553協(xié)議數(shù)據(jù)的光纖傳輸,速率可達3 Gb/s以上。
0 引言
MIL?STD?1553B(數(shù)字式時分制命令/響應型多路傳輸數(shù)據(jù)總線)由美國國防部于20世紀70年代末提出,它采用曼徹斯特編碼方式和冗余的總線型拓撲結構,具有非常好的時鐘同步能力及容錯機制,極大地簡化了電子設備之間的互聯(lián),因而被廣泛應用于對可靠性要求較高的軍事、航空、航天等領域。
隨著1553B總線優(yōu)越性能不斷體現(xiàn),我國相關領域的應用需求不斷增多,其關鍵地位也日益突出。但由于1553B協(xié)議本身較為復雜、國內技術相對落后,在1553B總線的設計中大多采用國外的協(xié)議接口芯片,典型如DDC公司的BU?61580等。一方面,這類芯片不僅價格昂貴,而且容易受國外限制;另一方面,在實際應用中,芯片許多功能略顯多余,不能進行靈活設計。
現(xiàn)場可編程門陣列FPGA 可將大量邏輯集成在單片IC中,其內部資源豐富,相應EDA開發(fā)工具功能強大,是理想的片上系統(tǒng)設計與實現(xiàn)平臺。FPGA 具有開發(fā)周期短、成本低、靈活性高等諸多優(yōu)點,基于對協(xié)議規(guī)范的分析,通過FPGA來實現(xiàn)MIL?STD?1553B總線接口是可行的。本文提出了一種基于FPGA的1553B總線接口設計方案,并編寫VHDL代碼進行仿真,最后在FPGA上完成了設計驗證,實現(xiàn)了傳統(tǒng)1553B協(xié)議數(shù)據(jù)的1 Mb/s電纜傳輸和3 Gb/s以上光纖傳輸。
1 MIL?STD?1553B總線介紹
MIL?STD?1553B 是一種命令/響應型多路傳輸總線,它采用冗余的總線結構,在當前傳輸線發(fā)生故障時可立刻切換到冗余傳輸線上,防止通信中斷。同時,1553B協(xié)議嚴格規(guī)定了消息格式,限定了每條消息的最大傳輸數(shù)據(jù)量及總線單元的最大響應時間,并規(guī)范了總線耦合方式、電纜電氣特性等,從各個方面確??偩€傳輸?shù)母呖煽啃浴?/p>
1553B總線包含三種總線單元:總線控制器BC、遠程終端RT 和總線監(jiān)視器MT,各單元在總線控制器BC的調度下有序地進行通信??偩€上數(shù)據(jù)以字為基本單位進行傳輸,分為命令字、狀態(tài)字和數(shù)據(jù)字,每個字包含20 位??偩€單元間每一次數(shù)據(jù)的交換稱為一條消息,1553B協(xié)議規(guī)定了10種消息格式,除此之外其他格式的消息均為非法消息??偩€采用曼徹斯特編碼方式,方便接收端提取同步時鐘,簡化了總線結構。
2 1553B總線接口整體設計方案
總線接口是外部系統(tǒng)與總線之間的數(shù)據(jù)交換媒介,其主要功能是完成總線協(xié)議的處理。根據(jù)1553B 協(xié)議的特點,總線接口整體設計方案如圖1所示。
?
?
圖1 總線接口整體設計方案
由圖1 可知,總線接口包括模擬收發(fā)器、曼徹斯特編解碼器和協(xié)議處理邏輯三大模塊。其中,模擬收發(fā)器完成FPGA輸出信號與總線信號之間的電平轉換,可由專用轉換芯片完成,而曼徹斯特編解碼器和1553B協(xié)議處理邏輯是接口的主要組成部分,完成數(shù)據(jù)編解碼和協(xié)議處理,通過FPGA 實現(xiàn)。總線接口通過一定的地址、數(shù)據(jù)和握手信號與外部系統(tǒng)相連。
3 曼徹斯特編解碼器模塊設計
3.1 1553B總線數(shù)據(jù)格式信號編解碼的設計方案由總線傳輸層特性決定,1553B消息字格式和曼徹斯特碼型如圖2所示。
?
?
圖2 1553B消息字格式和曼徹斯特碼型
1553B總線以字為單位進行數(shù)據(jù)傳輸,每個字包含20位,其中前3位為同步頭,后17位為數(shù)據(jù)位和奇偶校驗位,如圖2(a)所示??偩€數(shù)據(jù)傳輸速率為1 Mb/s,采用曼徹斯特Ⅱ雙相碼編碼方式,每位數(shù)據(jù)中間均有一個跳變沿,由正到負的跳變表示邏輯‘1’,由負到正的跳變表示邏輯‘0’,其碼型對應關系如圖2(b)所示。
3.2 編碼器設計
編碼器的設計相對簡單,主要完成對待發(fā)送消息字的曼徹斯特編碼,并將其并串轉換后輸出。由于曼徹斯特碼每位數(shù)據(jù)中間均有跳變,故發(fā)送時需將每一位分割成兩位,分別發(fā)送。其工作過程為:
(1) 同步頭編碼,若為數(shù)據(jù)字同步頭,則編碼為“111000”(由高位到低位,下同),若為狀態(tài)字或命令字
同步頭,則編碼為“000111”;
(2)數(shù)據(jù)和奇偶校驗位編碼,若為‘0’,則編碼為“10”,若為‘1’,則編碼為“01”;
(3)按由低到高的順序將編碼后的40位數(shù)據(jù)串行輸出。
FPGA采用16 MHz主時鐘,由于編碼后每位數(shù)據(jù)對應0.5 μs,故將主時鐘分頻后產(chǎn)生2 MHz時鐘來控制編碼器發(fā)送40 位數(shù)據(jù),每個時鐘沿發(fā)送一位,正好滿足1553B總線1 Mb/s的速率要求[5]。
3.3 解碼器設計
解碼器主要完成消息字的解碼,并將其串并轉換后輸出,其工作過程為:
(1)檢測到總線上有效電平,解碼器開始工作;
(2)同步頭解碼,檢測到指令字和狀態(tài)字同步頭用“011”表示,檢測到數(shù)據(jù)字同步頭用“100”表示;
(3)16位數(shù)據(jù)位和1位奇偶校驗位解碼;
(4)將解碼后的消息字(20位)并行輸出。
同步頭和數(shù)據(jù)位檢測示意如圖3所示。
?
圖3 同步頭和數(shù)據(jù)位檢測
由1553B協(xié)議可知,同步頭包含三個位時,在1.5個位時處有跳變。如圖3(a)所示,同步頭到來后,解碼器連續(xù)采集48 個數(shù),理論上,采用16 MHz 時鐘,如果檢測到24個‘0’和24個‘1’,則表示收到有效同步頭,但考慮到信號上升時間及下降時間等因素,實際若檢測到22個或者23個‘0’和‘1’,就可以判定同步頭有效,進行下一步數(shù)據(jù)的接收。
數(shù)據(jù)位包含一個位時,在0.5個位時處有跳變。如圖3(b)所示,在每個數(shù)據(jù)中間部位,若前一時鐘采樣到‘0’,后一時鐘采樣到‘1’,則表示當前數(shù)據(jù)位為‘0’,反之則是‘1’。另外,如果采到的數(shù)沒有跳變,為全‘0’或者全‘1’,則產(chǎn)生錯誤標志,通知協(xié)議處理邏輯或子系統(tǒng)進行相應的錯誤處理。
4 協(xié)議處理模塊設計
4.1 協(xié)議處理模塊響應流程
協(xié)議處理模塊實現(xiàn)BC,RT,MT三種總線終端的協(xié)議處理,在FPGA模塊設計之前,根據(jù)1553B協(xié)議對協(xié)議處理模塊三種工作模式下的響應流程分別進行分析設計。
4.1.1 BC模式
BC(總線控制器)是1553B 總線的核心,總線上任何類型的數(shù)據(jù)交換都由它發(fā)起。BC模式下接口響應流程設計如圖4所示。
?
?
圖4 BC模式下接口響應流程
MIL?STD?1553B 協(xié)議規(guī)定的總線指令可分發(fā)送指令、接收指令和方式指令三種,共能實現(xiàn)四種類型的功能:RT 到BC 的數(shù)據(jù)傳輸、BC 到RT 的數(shù)據(jù)傳輸、RT 到RT 的數(shù)據(jù)傳輸和總線管理。根據(jù)圖4,BC 模式下接口主要工作過程為:
(1)根據(jù)外部系統(tǒng)需求發(fā)送相應命令字,發(fā)起總線傳輸;
(2)根據(jù)指令類型的不同,進入不同響應流程,主要包括數(shù)據(jù)字發(fā)送、數(shù)據(jù)字接收和狀態(tài)字接收等;
(3)消息完成后進行消息結束處理,主要包括消息結束標志的產(chǎn)生,差錯處理,以及根據(jù)收到的RT狀態(tài)字判斷總線終端狀態(tài)等。
需要注意的是,BC 如果在規(guī)定的時間內沒有收到RT狀態(tài)回復,則需重新發(fā)送命令字進行重試(Retry)。
4.1.2 RT模式
RT(遠程終端)是1553B 總線上的指令/響應型終端,它響應BC發(fā)送的指令,按要求接收或發(fā)送數(shù)據(jù),在規(guī)定時間內回送狀態(tài)字,并服從BC的總線管理。RT模式下接口響應流程設計如圖5所示。
?
?
圖5 RT模式下接口響應流程
根據(jù)圖5,RT模式下接口主要工作過程為:
(1)收到命令字后進行指令分析,根據(jù)指令類型進入相應的響應流程;
(2)按照流程進行數(shù)據(jù)字接收、發(fā)送,并回復狀態(tài)字;
(3)消息完成后進行消息結束處理,主要包括消息結束標志的產(chǎn)生,差錯處理,以及特殊方式指令下方式標志的產(chǎn)生等。
4.1.3 MT模式
MT(總線監(jiān)控器)是總線上的監(jiān)聽單元,它監(jiān)控總線上的信息傳輸,完成對總線的上原始數(shù)據(jù)的記錄,但它本身不參與總線的通信。
MT模式接口的功能較為簡單,主要進行指令字、狀態(tài)字和數(shù)據(jù)字的接收并將其寫入相應緩存中,方便以后提取分析,可通過BC模式或RT模式下接口相應的子模塊實現(xiàn)。
4.2 協(xié)議處理模塊FPGA總體設計
根據(jù)以上三種模式下接口響應流程的分析,對協(xié)議處理模塊各FPGA 子功能模塊進行了劃分,總體設計框圖如圖6所示。
協(xié)議處理模塊主要由數(shù)據(jù)接收部分、數(shù)據(jù)發(fā)送部分和數(shù)據(jù)緩存部分組成,此外還包括超時檢測、地址譯碼及讀寫控制、中斷管理等輔助部分。由于三種模式下某些功能重復,為了提高FPGA 資源利用率,設計時充分考慮了相應模塊的模式復用,整個協(xié)議處理邏輯可在外部模式選擇信號的控制下工作在BC,RT和MT模式。
?
圖6 協(xié)議處理模塊總體設計框圖
16 MHz的全局時鐘通過時鐘管理模塊為各FPGA功能模塊提供工作時鐘,各模塊間通過一定的握手信號互聯(lián),保證協(xié)議處理邏輯有序工作。整個協(xié)議處理模塊的基本工作原理如下:按照1553B 協(xié)議規(guī)范,通過接收器接收總線上的數(shù)據(jù)并存入緩存,通過發(fā)送器取出緩存中的數(shù)據(jù)并發(fā)送到總線上,同時不斷以中斷和握手信號與外部系統(tǒng)進行通信,通知外部系統(tǒng)向緩存中寫入待發(fā)送數(shù)據(jù)或從緩存中讀取已接收數(shù)據(jù),并共同完成差錯處理和協(xié)議邏輯的管理。
5 設計仿真與驗證
根據(jù)設計方案,編寫了重要模塊的FPGA 代碼,模擬實現(xiàn)BC功能和RT功能,采用Active?HDL軟件仿真,其中BC向RT的數(shù)據(jù)傳輸仿真結果如圖7所示。
仿真通過后,在Virtex?5 FPGA平臺上對設計進行了驗證,如圖8所示。將BC功能模塊和RT功能模塊的代碼經(jīng)ISE綜合、布局布線后分別下載到兩塊開發(fā)板中實現(xiàn),開發(fā)板通過串口與PC機通信。PC機將指令和數(shù)據(jù)寫入FPGA相應寄存器中,BC和RT在PC機指令的控制下進行1553B 協(xié)議通信。驗證過程中通過示波器查看模擬總線的波形,并通過ChipScope觀察和比對協(xié)議收發(fā)數(shù)據(jù)。
?
圖7 BC向RT傳輸仿真結果
?
圖8 1553B總線接口FPGA驗證平臺
同時,為提高接口性能,用光纖代替?zhèn)鹘y(tǒng)電纜傳輸介質,采用8B/10B編解碼代替曼徹斯特編解碼,并利用FP?GA內嵌RocketIO內核,進行了傳統(tǒng)1553協(xié)議數(shù)據(jù)的光纖傳輸,傳輸過程數(shù)據(jù)比對ChipScope采樣如圖10所示。
圖9 數(shù)據(jù)比對的ChipScope采樣
驗證結果表明,BC 和RT 功能模塊能夠正常按照1553B協(xié)議進行數(shù)據(jù)的發(fā)送和接收,完成基本1553B協(xié)議的處理,實現(xiàn)1553B 協(xié)議數(shù)據(jù)的1 Mb/s 電纜傳輸和3 Gb/s以上光纖傳輸,數(shù)據(jù)比對無誤,說明該接口設計方案實際可行,具備開發(fā)應用價值,同時也為光纖1553接口的設計提供了一定參考價值。
6 結語
本文提出一種基于FPGA 的1553B總線接口方案,該接口采用模塊化和通用性設計,能夠工作在BC,RT和MT三種模式,實現(xiàn)曼徹斯特編解碼,并完成1553B協(xié)議的處理。編寫VHDL 代碼對設計方案進行了仿真和驗證,證明了其可行性,同時對光纖1553接口的設計進行了探索性研究。目前,1553B 接口芯片主要依賴進口,若能積極開展該方面的研究,開發(fā)出具有自主知識產(chǎn)權的通用IP 核,對于擺脫國外限制,降低成本,提升我國在該領域的自主競爭力具有重要意義,其應用前景非常廣泛。
本文創(chuàng)新點:將FPGA技術應用于1553B總線接口,縮短了設計周期,降低了設計成本,同時,系統(tǒng)的集成度提高,擴展性增強,設計靈活性也大大提高。
評論
查看更多