張洪亮
(中國西南電子技術研究所,成都 610036)
基于FPGA的BLVDS總線設計
張洪亮
(中國西南電子技術研究所,成都 610036)
針對現有的航空總線系統結構復雜、傳輸速率低、電磁兼容性差等問題,提出了一種基于FPGA的總線型低壓差分信號(BLVDS)總線解決方案。介紹了BLVDS的總線結構,對BLVDS的通信方式和基于FPGA使用硬件描述語言實現BLVDS總線通信的方法進行了深入研究。同時,分析了信號傳輸質量,在工程中驗證了其高速率和高可靠的總線傳輸特性,為新一代航空高速總線系統提供了參考。
航空總線;數據傳輸;總線型低壓差分信號;硬件描述語言
機載數據總線技術是現代先進飛機電傳操作系統和航空綜合化最重要的關鍵技術之一。航空電子系統的發展對機載數據總線不斷提出新的要求[1]。采用新一代的高速率、低功耗、電磁兼容性的總線技術成為新的發展方向。
總線型低壓差分信號(BLVDS)是一種新型總線接口電路,適合于多點電纜或背板應用。BLVDS可以為系統提供理論最高800Mbit/s的傳輸速率,并具有功耗低、電磁兼容性好等特點。受1553B總線的傳輸方式啟發,筆者基于FPGA,采用硬件描述語言(HDL)實現了250Mbit/s的BLVDS的FPGA邏輯設計。
BLVDS總線通信系統由背板和通信子板組成。背板有8個插槽,可以插入8個子卡,并布有BLVDS總線、備份總線和匹配電阻。通信子板包含3種類型:主控節點、總線監視器、通信終端。其中,主控節點向通信終端發送指令字、數據字;總線監視器接收總線上傳輸的所有數據作為分析使用;通信終端接收主控節點發送過來的指令和數據,并可以回復相應的狀態和數據。
通信系統結構如圖1示。

圖1 BLVDS總線結構Fig.1 The system diagram of BLVDS
BLVDS為一主多從的多點總線。總線的主節點稱為主控節點,從節點稱為終端節點。
總線上所有節點都有一個唯一的總線地址,用于各個節點的識別。當主控節點需要向某一終端節點發送數據時,主控節點應先向終端節點發送接收指令,終端節點在接收到數據1 ms內向主控節點回復狀態字,并將接收到的信息上報應用層。
當終端節點需要發送數據給主控節點時,終端節點的應用層將要發送的數據寫入緩存等待發送,主控節點每10 ms都會向總線上各個終端節點發起查詢指令,當查詢到要發送數據的終端節點時,終端節點向主控節點在1 ms內回復狀態信息和需要發送的數據。系統通信流程[2]如圖2示。

圖2 系統通信方式Fig.2 The communication of system
BLVDS總線上每一次消息的發送或查詢只能由主控節點發起,任何終端節點都無權主動向總線上發送數據。當主控節點向某個終端節點發送詢問消息后,終端節點應在1 ms之內作出響應,向總線發送狀態信息。主控節點若在1 ms內沒有在總線上探測到該終端節點發出應答消息,則認為該終端節點響應超時。主控節點判定終端節點響應超時后,則重復向該終端節點發送詢問消息,若重復3次發送仍未收到該終端節點的應答消息,則認為該節點為故障節點,并向應用層報告。
該設計使用了硬件設計語言在FPGA內部實現,包含終端節點、主控節點和總線監視器各項功能,CPU可以根據需要對FPGA內部的寄存器(雙口內部特定地址)進行配置從而獲得不同的功能。在CPU需要發送總線數據時,只需要將準備好的數據寫入相應地址的雙口RAM內部,然后再向FPGA發送一個發送標志位,FPGA將自行將所有數據向BLVDS總線發送數據;在CPU需要接收數據時,FPGA先將接收好的數據進行解析,然后存入相應的雙口RAM內,并向CPU發出中斷,通知其來讀取數據[3]。
BLVDS總線通信系統的發送/接收方式已經在1.2節中介紹,這里不再重復。圖3為指令字(包含查詢指令)、數據字、狀態字的格式定義。圖中,同步頭表示該幀數據的類型;數據個數表示該幀數據所包含的數據字個數;源地址表示發送該消息的節點地址;目的地址表示接收該消息的節點地址;P為奇偶校驗位。

圖3 消息格式定義Fig.3 The frame of message
2.2.1 接收FPGA邏輯設計
外部時鐘進入FPGA后,首先使用DCM進行鎖相、倍頻后生采樣時鐘。整個邏輯將使用這個采樣時鐘進行邏輯處理。當外部BLVDS信號(Sy-lock、Sy-data、Sy-rclk)進入FPGA后,首先幀同步器使用采樣時鐘對這些信號進行采樣處理。采樣處理完成后,同步信號判決器對同步信號Sy-lock進行判別,若該信號有效,則證明數據處于有效狀態,可以對數據進行采樣。數據鎖存器是將兩個10 bit數據進行合并和鎖存,然后供源地址鎖存器、目的地址鎖存器、數據長度鎖存器以及雙口RAM等所有內部邏輯使用。源地址鎖存器和目的地址鎖存器的作用是將接收到的源地址和目的地址進行鎖存,并與CPU寫入寄存器的地址進行比對。在接收數據的同時,Byte計數器也對接收到的字節計數,奇偶校驗器也進行同步校驗,接收到的數據也被同步寫入雙口RAM中。當Byte計數器的計數值與數據長度鎖存器長度相等時,進入幀判別器,幀判別成功的標志為目的地址與當前模塊地址相同、校驗正確并符合本協議通信過程后,方可發送判別成功標志。中斷處理器檢測到判別成功后,向CPU發送接收中斷,此時CPU可以從雙口RAM中讀取數據。圖4為接收邏輯框圖。

圖4 接收邏輯框圖Fig.4 The diagram for receiving logic
2.2.2 發送FPGA邏輯設計
當FPGA接收到來自CPU的發送標志位后,標志位處理器開始對標志位同步處理,并將處理好的標志位送至幀判別器。與此同時,地址累加器開始累加,FPGA開始自動讀取雙口RAM內的數據。數據鎖存器將數據鎖存,并將需要解析部分的數據送至源地址鎖存器、目的地址鎖存器和數據長度鎖存器。源地址鎖存器和目的地址鎖存器作用是將鎖存到的地址與CPU寫入寄存器的地址進行比對,并將比對的結果送入幀判別器。10 bit數據轉換器作用是將鎖存的數據進行10 bit轉換,并將轉換的數據送至BLVDS發送芯片。幀判別器的作用是在接收到標志位、并在目的地址和源地址符合要發送的要求時,啟動同步信號發生器。同步信號發生器將產生同步信號,并使用25 MHz時鐘將同步信號與10 bit數據進行同步。圖5為發送邏輯時序圖。

圖5 發送邏輯時序圖Fig.5 The diagram for transmission logic
為了驗證設計的正確性和性能指標,搭建了如圖1所示總線測試平臺[4],使用Ti公司型號為TMS320F2812的DSP作為CPU進行功能驗證、傳輸測試、工程驗證。
使用DSP作為主控節點和終端節點的CPU進行功能驗證。驗證流程為:DSP完成設置寄存器后,在主控節點DSP將需要發送的數據寫入FPGA,并給FPGA一個發送標志位,FPGA發送邏輯自動發送數據。在經過背板傳輸后,終端節點的FPGA接收數據,并將接收到的數據發送至通信終端的DSP,DSP將接收到的數據進行打印。在此過程,使用Chipscope軟件采集到了主控節點發送邏輯和接收邏輯的時序圖,如圖6所示。圖中tx-count為發送數據字節計數器,PRIULBUS1-SYNC為發送同步信號,PRIULBUS1-TDATA為發送的數據,PRIDLBUS1-LOCK-buf為接收同步信號,PRIDLBUS1-RDATABUF為接收數據。驗證結論:發送的數據可以通過總線傳輸后正確接收。

圖6 主控節點發送接收數據時序圖Fig.6 The diagram of transmitting and receiving data from master node
為了衡量傳輸系統的性能優劣,在實驗室中,通常用眼圖分析法來分析信號的傳輸質量。對總線上串化后的數據進行眼圖測量,圖7為測試時的眼圖。從圖7中可以看出每個碼元將重疊在一起,波形無失真,最終在示波器上看到的是跡線又細又清晰的“眼睛”,“眼”開啟得較大,表明信號傳輸質量較好。驗證結論:信號傳輸質量較好,信號傳輸可靠。

圖7 數據和時鐘經過串化后的眼圖Fig.7 The eye diagram for serialized data and clock
根據設計需求,使用測試系統進行了工程驗證,在速率為250 Mbit/s時,CPU每1 ms周期內需完成20 byte數據的收發和兩節點無時間間隙連續收發,分別對主控節點進行自發自收測試,主控節點與通信終端互相收發測試,經過50 000幀數據收發測試,均無誤碼、丟包現象。由此可得出結論:設計可靠,滿足現階段需求。
數據總線是航空電子系統的神經樞紐。本文設計完成了一種基于FPGA的高速率、低功耗的BLVDS總線通信方式,在嚴格的時序內完成了模塊內部和模塊級間的數據傳輸,并通過功能驗證、傳輸測試和工程驗證的方法使設計得到驗證,達到了預期的目標和性能,檢驗了設計的正確性和可行性,為航空領域新一代總線發展提供了重要參考。
[1]支超有.機載數據總線技術及其應用[M].北京:國防工業出版社,2009.
ZHI Chao-you.Avionics Data Bus Technology and Its Application[M].Beijing:National Defense Industry Press,2009.(in Chinese)
[2]聶俊偉,向超,彭啟琮.基于NIOS2的MIL-STD-1553B總線協議的分析[J].通信技術,2007(12):18-20.
NIE Jun-wei,XIANG Chao,PENG Qi-cong.Analysis of MIL-STD-1553B Protocol Based onNIOS2[J].Communications Technology,2007(12):18-20.(in Chinese)
[3]黃潤龍.基于FPGA的高速同步串行總線設計[J].電訊技術,2008,48(11):92-96.
HUANG Run-long.Design of High SpeedSynchronous Serial Bus Based on FPGA[J].Telecommunication Engineering,2008,48(11):92-96.(in Chinese)
[4]楊翠虹,文豐,姚宗.基于LVDS的高速數據傳輸系統的設計[J].通信技術,2010(9):59-61.
YANG Cui-hong,WEN Feng,YAO Zong.Design of Longdistance High-Speed Serial Data Transmission System based onLVDS[J].Communications Technology,2010(9):59-61.(in Chinese)
ZHANG Hong-liang was born in Penglai,Shandong Province,in1984.He received the B.S.degree from Harbin Engineering University in2008.He isnow anassistantengineer.His research direction is electronic communication.
Email:anywn310@163.com
Design of BLVDS Bus Based on FPGA
ZHANG Hong-liang
(Southwest China Institute of Electronic Technology,Chengdu 610036,China)
To solve problems of avionics system based on electrical bus,such as complex structure,low transmission rate,bad electromagnetic compatibility,a kind of Bus-Low Voltage Differential Signaling(BLVDS)based on FPGA is proposed.The structure of BLVDS bus is introduced and related key technologies are investigated including BLVDS communications and the method for BLVDS communicationsbased on FPGA by hardware description language.At the same time,the signal transmission quality is analysed,the high speed and high reliable bus transmission characteristics are verified in application of project,which provides important reference for new-style avionics high speed bus system.
avionics bus;data transmission;BLVDS;HDL
V243;TP336
A
10.3969/j.issn.1001-893x.2012.06.039
1001-893X(2012)06-1022-05
2011-11-01;
2012-04-10
張洪亮(1984—),男,山東蓬萊人,2008年于哈爾濱工程大學獲學士學位,現為助理工程師,主要研究方向為電子通信。