<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > SOPC在分布式干擾系統嵌入式網關設計中的應用

          SOPC在分布式干擾系統嵌入式網關設計中的應用

          作者: 時間:2017-06-05 來源:網絡 收藏

          1設計的要求

          根據的作戰(zhàn)運用背景,在設計硬件平臺時應從以下幾個方面考慮:

          (1)微型化。應該在體積上足夠小,保證的小型化。

          (2)擴展性和靈活性。分布式干擾系統需要定義統一、完整的外部接口,方便軟硬件系統的升級,其嵌入式網關也應具有擴展性和靈活性,可以根據作戰(zhàn)環(huán)境的需要進行升級。

          (3)穩(wěn)定性和安全性。穩(wěn)定性要求嵌入式網關能夠在給定的外部環(huán)境變化范圍內正常工作。安全性設計包括代碼安全和通信安全,是軍事領域應用的基本要求。

          (4)低成本。分布式干擾系統的作戰(zhàn)應用表明,系統是大量部署且不能回收的,因此就要嚴格限制包括嵌入式網關在內的重要部件的成本。

          (5)低功耗。嵌入式網關的硬件設計直接決定了其能耗水平,還決定了各種軟件通過優(yōu)化可能達到的最低能耗水平。因此,要合理地設計硬件系統,有效降低系統能耗。

          (6)具有一定的信號預處理能力。嵌入式系統中微處理器的處理能力較弱,且內存較小,嵌入式網絡的速度普遍不高。這就要求嵌入式網關具有一定的信號預處理能力,包括下變頻功能和FFT變換功能,以此來提高網絡傳輸的效率。

          2分布式干擾系統中嵌入式網關的硬件設計

          嵌入式網關實際上就是一個可實現網絡通信功能的嵌入式系統。隨著FPGA技術的迅速發(fā)展,SoPC作為一種特殊的嵌入式系統,具備軟硬件在系統可編程、可裁減、可擴充、可升級的功能,已逐漸成為一個新興的技術方向。因此,本文在設計分布式干擾系統的嵌入式網關時選用基于FPGA的SoPC解決方案,選用的實驗平臺為Xilinx公司的ML402開發(fā)平臺。

          2.1分布式干擾系統中嵌入式網關的硬件組成

          圖1表示的是分布式干擾系統中嵌入式網關的硬件組成,這些硬件除A/D、干擾機和控制中心外都集成在一塊ML402*估板上。系統以帶有32位MicroBlaze微處理器軟核的FPGA作為控制中心,處理經A/D變換后的偵察信號數據,然后通過以太網將數據傳送到控制中心,并從控制中心傳回控制參數。DDR_SDRAM作為片外存儲器,用來彌補微處理器內部存儲器容量小的缺點;CF卡存儲系統軟硬件的bit文件和網絡配置文件;串口用來控制具有遠程控制功能的偵察接收機,也可在調試時輸出系統的運行信息。本文設計的嵌入式網關的各功能部件在FPGA內部都以IP核的形式構建并連接,較好地滿足了分布式干擾系統對嵌入式網關硬件設計的要求。


          2.2SoPC的片上總線設計

          本文引用地址:http://www.ex-cimer.com/article/201706/349175.htm

          受分布式干擾系統體積和電源能量的限制,其網絡通信必須采用猝發(fā)通信的方式,這就對嵌入式網關微處理器的處理能力提出了更高的要求。MicroBlaze微處理器的總線是其優(yōu)于其他同類CPU的重要部分,每種總線都有鮮明的特點和明確的外設。只有合理使用不同的總線來訪問不同的外設,且正確地協調這些總線的工作,才能最大限度地發(fā)揮MicroBlaze的優(yōu)勢。因此,SoPC的片上總線設計是該系統設計的重點。

          在本文設計的分布式干擾系統的嵌入式網關中,SysACECF卡、中斷控制INTC、GPIO和串口UART與MieroBlaze處理器之間只進行參數傳遞,對速度要求不高,因此使用PLB總線與MieroBlaze處理器和多端口內存控制器(MultiPortMemoryController,MPMC)相連;MPMC與Mic-roBlaze處理器之間使用XCL相連。自定義IP核FFT輸出信號的頻譜數據,對傳輸速度要求很高,因此使用FSL總線與MicroBlaze內部通用寄存器直接相連。DDC輸出信號的時域數據,對傳輸速度要求最高;為滿足傳輸速度要求,本文參照以太網控制器SoftTEMAC開發(fā)了XPS_LL_Exam-pleIP核,通過該IP核的LocalLink接口將信號的時域數據傳輸到MPMC中進行處理。分布式干擾系統的嵌入式網關片上總線設計如圖2所示。


          2.3的實現

          本文設計的SoPC是利用Xilinx公司的嵌入式開發(fā)套件(EmbeddedDevelopmentKit,EDK)實現的。EDK集成了硬件平臺產生器、軟件平臺產生器、仿真模型生成器、軟件編譯器和軟件調試等工具。用戶使用EDK可以對硬件平臺進行任意的添加和裁減,同時可以方便地添加自定義的IP核,極大地方便了開發(fā)過程,提高設計效率。本文利用EDK實現圖2所示的各功能部件IP核的添加,并實現了IP核的地址分配和總線架構、外設接口的連接。

          3分布式干擾系統中嵌入式網關的軟件設計

          分布式干擾系統中嵌入式網關的軟件包括嵌入式操作系統和網絡應用程序。EDK集成了軟件平臺產生器、軟件編譯器和軟件調試等工具,因此,軟件設計也在EDK進行。

          3.1嵌入式操作系統的選用

          嵌入式操作系統是嵌入式軟件技術的核心,介于嵌入式系統硬件和應用程序之間,負責調度并管理應用程序,完成對嵌入式系統硬件的控制和操作。嵌入式操作系統的選用主要考慮實時、高可靠、低功耗、可抑制性和兼容性、軟件開發(fā)難易等因素。本文主要是對分布式干擾系統的網絡通信進行技術驗證,因此選擇較為簡單的Xilkernel操作系統。

          Xilkernel是Xilinx公司提供的用于EDK系統的小型、模塊化的嵌入式操作系統。Xilkernel的內核完整,且占用CPU資源較少,運行速度快,是中小型設計的理想操作系統。Xilkernel本身不帶有文件處理系統和TCP/IP協議棧,但與LwIP庫和Treck協議棧具有良好的接口,加上文件系統支持庫LibXilMFS,可形成較為復雜的嵌入式操作系統。

          首先,在EDK的軟件平臺設置中選擇Xilkernel,并選擇相應的文件系統和TCP/IP協議棧,本文選擇xilfatfs文件系統和lwip130協議棧。然后在操作系統和庫函數界面對操作系統進行配置,主要進行輸入/輸出、線程和計時器的設置。最后執(zhí)行產生庫函數和BSPs文件,即可生成與嵌入式系統硬件平臺相匹配的嵌入式操作系統環(huán)境。

          3.2網絡應用程序的開發(fā)

          分布式干擾系統中嵌入式網關傳輸的主要數據為偵察信號時域和頻域數據,直接影響著網絡通信的效率,因此,本文只對偵察信號時域和頻域數據的傳輸進行檢測。網絡應用程序采用順序執(zhí)行的結構方式。為了能夠響應外圍設備的中斷請求,在程序中為多個外圍設備提供了相應的中斷服務程序。網絡應用程序的流程圖如圖3所示。


          4系統調試

          用一根千兆網線將圖1所示的硬件系統與PC機相連,在PC機上開發(fā)網絡客戶端程序,發(fā)送控制偵察接收機的數據。使用信號線將AR-ONE通信接收機輸出端與A/D板相連,A/D模塊使用ADI公司的模數轉換器(ADC)AD9460。在偵察接收機受控工作時,使用串口線將圖1所示硬件系統與AR-ONE通信接收機串口輸入相連;在偵察接收機自主工作和系統調試時,使用串口線將圖1所示硬件系統與PC機相連,在超級終端中觀察系統運行狀態(tài)。將信號源與AR-ONE通信接收機信號輸入端相連。將軟硬件聯合編譯生成的bit文件下載到FPGA開發(fā)板上,信號源輸出95.5MHz的FM信號,在PC機上使用無線電監(jiān)測測向系統進行監(jiān)測,如圖4、圖5所示。

          經比對,PC機上顯示的正是信號源輸出信號的頻域和時域波形。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();