余曉玫+高飛


摘 要: 通過對通信波形進行硬件抽象層設計及波形組件劃分,提出一種基于通信體系結構的波形FPGA軟件設計與實現方法。通過對FPGA的軟件工作流程、波形組件、硬件平臺、軟件層次結構、抽象層的設計方法與連接、波形組件的實現方法等分析與研究,較好地實現了軟件和硬件分離,以及組件化的設計思想,最大限度地實現了FPGA軟件的移植重用。
關鍵詞: 軟件通信體系結構; 波形; FPGA軟件; 設計方法
中圖分類號: TN92?34 文獻標識碼: A 文章編號: 1004?373X(2017)01?0010?03
Abstract: A design and implementation method of the waveform FPGA software based on communication architecture is proposed by designing the hardware abstraction layer and dividing the waveform component of the communication waveform. The software workflow, waveform component, hardware platform, software hierarchical structure, abstraction layer design method and connection, and waveform component realization method of FPGA are analyzed and researched to realize the separation of software and hardware greatly, componentization design thought, and FPGA software transplant and reuse to the maximum extent.
Keywords: software communication architecture; waveform; FPGA software; design method
0 引 言
軟件通信體系結構(SCA)對軟、硬件體系架構和波形組件管理具有重要的指導意義,它是無線電軟、硬件體系架構及波形應用程序接口(API)應當遵循的規范和嵌入式、分布式通信波形組件管理、配置、互連互通的標準。現場可編程門陣列(FPGA)是一款基于通信體系結構的信號處理器件,通過編程改變處理器的配置信息,滿足不同的設計功能 [1?5]。FPGA的設計集中在芯片中,由配置器件內部的輸入/輸出端口、邏輯功能完成設計操作,這種設計破解了傳統數字印刷電路設計的難度和工作量,設計靈活,電路性能優異、使用效率高,集成度、編程速度和可靠性優于傳統數字電路系統[6]。
當前主流的FPGA在邏輯架構上已從僅含一種基本邏輯塊的同構FPGA發展為具有多種邏輯塊的異構FPGA,同時在互連線上包含了直線、扭線和拐線結構,設計越來越復雜,貫穿整個FPGA的是直線在水平方向和垂直方向的互連線,這也是直線的特點,其主要用于全局的復位線、時鐘線等,且改直線經過tile時并不需要偏移。FPGA的扭線主要用于多倍線、長線等,每個tile之間的連接方式是由互連線以循環交錯的方式連接完成。FPGA互連線的拐線結構主要由水平和垂直方向的多段扭線連接組成[7?9]。FPGA的測試技術主要測試芯片資源,因為芯片資源是該器件的核心部件,由編程驗證各單元邏輯功能是否正確并且要求編程覆蓋FPGA所有的連線資源、邏輯資源[10]。基于此,本文對通信波形進行硬件抽象層設計及波形組件劃分,提出一種基于通信體系結構的波形FPGA軟件設計方法。
1 FPGA工作流程與波形組件
1.1 FPGA工作流程
信號處理模塊FPGA由中頻處理設備、射頻控制設備、基帶協處理組件等組成,FPGA的工作部分是硬件抽象層,信號處理模塊FPGA的幾個部件間及部件與外部部件數據和信息的交換就是由硬件抽象層通過統一、標準的接口完成部件間或部件與外部的信息交換[11?14]。該硬件抽象層接口協議包括常用的多種并行、串行、高速串行總線等,支持任意接口之間的數據轉發和可打斷數據及不可打斷數據,可以實現配置多種數據位寬和任意接口和波形組件之間的數據傳輸以及仲裁傳輸優先級數據信息。其工作流程如圖1所示。
1.2 FPGA波形組件
波形是指為完成無線通信雙方信息間的無線傳輸采取變換信息傳輸所有協議的系列變化過程,波形變化可以完成用戶輸入信息、射頻頻入、輸出等功能,實現無線電臺和用戶信息的交流。FPGA采用不同類型的存儲器實現可編程功能,對于一種較復雜的波形來說,由波形的定義可知它包含了許多種變換,因此,需要較多的硬件、軟件實現變換功能。
FPGA波形組件組成部門主要包括信源編譯碼、信道編譯碼和調制解調等,其內部由多個模塊實現不同通信體制的功能。波形組件屬于獨立于硬件的功能模塊,模塊間以接口相連,各自具備自身模塊的功能,是實現執行和可重用通信功能的軟件應用程序,模塊和接口共同構成波形組件庫。圖2為波形組件劃分的示意圖,圖中RF表示射頻設備、IF表示中頻設備、I/O表示用戶接口設備、BCP表示基帶協處理組件、BP表示媒體鏈路組件、MAC表示媒體接入組件、NET表示無線網絡組件、Safe表示安全/密碼設備、LLC表示邏輯鏈路組件。
波形組件為了方便跨平臺移植、集成硬件抽象層,采用相應的功能模塊封裝對應的通信波形軟件。與此同時,波形組件劃分原則是參照高內聚低耦合和分而治之進行,其中RF,IF,BCP部署在FPGA上,BP,MAC部署在DSP上,LLC,NET,Safe,I/O部署在GPP上。
2 無線通信的FPGA軟件設計與實現
2.1 FPGA硬件平臺原理
為實現數字信號處理的功能,硬件平臺采用如圖3所示的基本結構。具體分析如下:AD9862芯片是進行模擬信號采集轉化為數字信號的裝置;FPGA芯片和AD9862芯片之間的連接是通過高速并行接口與A/D接口和D/A接口完成,用于實現數字信號的處理工作;DSP6416芯片和FPGA芯片的通信連接由EMIF接口完成,該接口無需時鐘信號,接口模式為異步接口,只進行低速的數據傳輸,該接口傳輸的讀寫信號可以完成DSP響應硬件中斷操作和FPGA的讀寫操作。
2.2 FPGA抽象層的設計方法與連接
在通信體系結構剛開始的嵌入式系統是由ASIC完成,但是隨著FPGA芯片計算傳輸速度的加快,為了提高波形應用軟件的可移植性和可升級性,實現更加接近電臺天線并擴展電臺平臺的邊界,作為可編程的硬件設備,FPGA芯片應用到通信體系結構中可以實現上述要求。這是因為,FPGA芯片的物理輸入輸出端口未從應用程序中抽象出來,在移植新平臺時無需像通用處理器和DSP芯片改變接口,這得益于FPGA中的任何算法都是根據具體邏輯電路計算完成,提高波形的可移植性對SCA和FPGA都十分重要,可移植性和可升級性的實現可以節約時間、減少復雜的操作。
FPGA抽象層的設計方法是通過工具軟件對硬件描述語言設計完成,在語言設計過程中包括綜合分析、實現編程和下載編程,而FPGA抽象層的算法設計是對不同接口采用抽象對應的HAL模塊化設計出通用的HC對外接口計算完成,具體設計連接見圖4。
圖4表示硬件抽象層的連接實現,圖中“○”代表HAL?C端點,即抽象連接開始的地方,HAL?C是SCA的硬件抽象層連接專用硬件補充規范引入的,該通信機制與硬件平臺無關;HC表示波形組件,HAL表示硬件對外端口的抽象,HAL?C提供的通用通信API可以實現最小化的硬件平臺通信機制對軟件設計的影響,最小化的影響有助于減少軟件移植過程重復編寫代碼,提高了新建平臺的可移植性和可升級性,實現了開發系統波形與硬件平臺的有效分離,既節約了時間,也減少了移植成本費用。HAL?C API也為波形組件提供了一個底層的通信接口,其中,底層API接口可以實現波形組件1,波形組件2的通信功能,兩個組件的通信不是直接進行而是通過HAL?C提供的通信機制實現。因此,組件開發者把數據發送到硬件對外端口即可實現硬件抽象層具體數據的傳輸。
2.3 FPGA波形組件的實現方法
FPGA波形組件的實現方法需要劃分波形組件,劃分的方法主要是指把中頻處理設備、射頻控制設備、基帶協處理組件等安排在FPGA上,實現器件正常運行。具體FPGA波形組件實現方法以中頻處理設備為例進行系統論述。
圖5為中頻處理設備API接口定義,API分為A1,A2,B,C1,C2,E,F,G,K,H共10個部分。其中,F部分的IFProcDataConsumer接口來自于D部分的Packet:PayloadStatus接口,為了更好地理解接口間的連接,采用自定義一個E部分的pushPacket函數,同時該接口被基帶協處理組件調用,使中頻處理設備獲得下行數據。自定義pushPacket函數的原型為pushPacket(in CF::OctetSequence payload)。中頻處理設備發送過來的上行數據接收工作可由F部分的IFProcDataConsumer接口完成。
F部分IFProcDataProducer接口屬于中頻設備控制接口并且來自于G部分PayloadControl接口,該接口通常在波形初始化或由基帶處理組件在運行時調用兩個接口之間相互配合接收的上層數據,主要功能是實現用戶傳輸分組長度的功能,進而實現一系列的參數配置工作,使得各層之間有機結合。
3 結 語
通過對通信波形進行硬件抽象層設計及波形組件劃分,提出一種基于通信體系結構的波形FPGA軟件設計與實現方法。該方法使得多個通信波形的各波形組件能夠運行在通用的、開放式的硬件平臺上,良好地實現了軟件和硬件分離,以及組件化的設計思想,最大限度地實現了FPGA軟件的移植重用。通信體系結構的波形FPGA是目前比較先進的軟件通信體系結構的設計方法和思想,實現波形的可移植性和可升級性是無線通信設備頂端設計的直觀反映。今后,制定適合實際情況的FPGA軟件對將來無線通信系統體系的設計及使用模式將起到指導性的作用。
參考文獻
[1] 洪錫軍,劉獻科,張激.基于SCA的無線通信技術研究[J].計算機工程,2005,31(8):120?122.
[2] 孫曉東.FPGA軟件設計[J].電腦編程技巧與維護,2010,12(2):5?6.
[3] 鄧剛,高宏偉,周軍輝,等.FPGA上SCA波形組件接口的設計與實現[J].信息通信,2012(4):16?19.
[4] 郭銳,范建華.FPGA硬件抽象層連接的設計與實現[J].中國新通信,2007(2):60?63.
[5] 劉暢,李智.基于FPGA的任意波形發生器的設計[J].微計算機信息,2010,26(2):130?132.
[6] 丁暉,李靖,唐文杰.基于FPGA 軟件/硬件協同設計模式[J].計算機與數字工程,2010,38(9):115?116.
[7] 孫佩剛,趙海,張文波,等.基于軟件通信體系結構的波形實現及其研究[J].計算機工程,2006,32(17):170?172.
[8] 王琳,劉濤,余秀美.基于軟件通信體系結構的波形組件化開發技術研究[J].移動通信,2011(6):68?71.
[9] 郭銳,范建華.軟件無線電臺中FPGA波形的可移植性[J].山西電子技術,2007(2):60?61.
[10] 石賊弟,電小璜,煉錟可.一種基于軟件通信體系結構的波形組件動態部署方法[J].計算機測量與控制,2014,22(9):3058?3061.
[11] 邱永紅,朱勤.基于軟件通信體系結構的無線通信系統研究[J].系統工程與電子技術,2004,26(5):621?623.
[12] 常濟崧,吳宇,施峻武.基于SCA的可移植FPGA波形組件接口設計[J].現代電子技術,2010,33(4):79?82.
[13] 劉攀,周強,朱珂,等.基于VPR的層次式FPGA結構描述方法研究[J].微電子學,2009,39(1):105?111.
[14] 孫黎,張濤,周珊.基于ATE的FPGA 軟件自動化測試技術的研究[J].計算機技術與發展,2014,24(8):6?10.
[15] 邱永紅.無線通信波形描述方法研究[J].電視技術,2007,47(5):19?24.