Xilinx FPGA的嵌入式系統(tǒng)開發(fā)過程
摘要:圍繞Xilinx公司FPGA中的MicroBlaze軟核微處理器,對其體系結(jié)構(gòu)、設(shè)計流程和相關(guān)開發(fā)工具進(jìn)行了詳細(xì)介紹,并且通過一個實例說明了以MicroBlaze軟核處理器為內(nèi)核的嵌入式系統(tǒng)的開發(fā)過程。
關(guān)鍵詞:FPGA;MicroBlaze;嵌入式設(shè)計
引言
隨著FPGA技術(shù)的迅速發(fā)展,可編程片上系統(tǒng)(SOPC)作為一種特殊的嵌入式微處理器系統(tǒng),融合了SoC和FPGA各自的優(yōu)點,并具備軟硬件在系統(tǒng)可編程、可裁減、可擴(kuò)充、可升級的功能,已逐漸成為一個新興的技術(shù)方向。SOPC的核心是在FPGA上實現(xiàn)的嵌入式微處理器核,目前主要有Xilinx公司集成的32位軟核MicroBlaze,32位PowerPC系列處理器硬核PowerPC405、PowerPCA40,ARM公司的Cortex-A9,以及Altera公司的Nios系列微處理器軟核等。本文主要介紹Xilinx公司的MicroBlaze軟核結(jié)構(gòu),對其體系結(jié)構(gòu)、設(shè)計流程和相關(guān)開發(fā)工具一一進(jìn)行介紹,并在實際的無線電監(jiān)測系統(tǒng)中采用此方案,構(gòu)建了一個小型化、智能化、網(wǎng)絡(luò)化的軟件無線電處理平臺。
1 MicroBlaze處理器結(jié)構(gòu)
MicroBlaze軟核處理器是可配置的精簡指令集(RISC)32位CPU,該RISC核針對Xilinx公司的FPGA芯片進(jìn)行了優(yōu)化。設(shè)計人員可以根據(jù)設(shè)計定制處理器的可選配置,根據(jù)版本的不同,配置不同的選項。該軟核處理器具有以下幾個方面的特征:
◆32個32位通用寄存器;
◆32位3個操作數(shù)的指令字,指令字有2種尋址模式;
◆分離的32位地址總線和數(shù)據(jù)總線;
◆具有高速的指令和數(shù)據(jù)緩存,3級和5級流水線操作;
◆靈活的總線結(jié)構(gòu),支持LMB、OPB、PLB、XCL、FSL片上總線接口等,新推出的系列還支持AXI總線接口;
◆支持MMU存儲管理、FPU浮點單元、高速緩存、異常處理和調(diào)試邏輯等可根據(jù)性能需求和邏輯區(qū)域成本任意裁減的高級特性。
MicroBlaze的這些特性極大地擴(kuò)展了其應(yīng)用范圍,MicroBlaze處理器的內(nèi)核仍在不斷更新之中,目前使用的版本MicroBlaze v7.1,其內(nèi)部架構(gòu)如圖1所示。
[!--empirenews.page--]
圖1中MicroBlaze處理器的外部接口定義如下:
①DPLB(Data Processor Local Bus)、DOPB(Data On—chip Peripheral Bus);數(shù)據(jù)接口,處理器本地總線,用于處理器與片內(nèi)的設(shè)備數(shù)據(jù)交換。
②IPLB(Instruction Processor Local Bus)、IOPB(Instruction On-Chip Peripheral Bus):指令接口,用于指令讀取通道。
③DLMB(Data Local Memory Bus):數(shù)據(jù)接口,本地存儲器總線,用于高速數(shù)據(jù)交換。
④ILMB(Instruction Local Memory Bus);指令接口,實現(xiàn)高速指令讀取。
⑤MFSL0~15(Main Fast Simple Link):FSL主設(shè)備數(shù)據(jù)接口,提供點對點數(shù)據(jù)通道;SFSL0~15(Slave FastSimple Link):FSL從設(shè)備點對點數(shù)據(jù)接口。
⑥D(zhuǎn)WFSL0~15:FSL主設(shè)備直接連接接口;DRFSL0~15:FSL從設(shè)備直接連接接口;
⑦IXCL(Instruction side Xilinx CacheLink interface)和DXCL(Data side Xilinx CacheLink interface):分別為指令高速緩存接口和數(shù)據(jù)高速緩存接口。
2 EDK工具開發(fā)流程
Xilinx公司嵌入式開發(fā)套件工具EDK(Embedded Development Kit)為用于開發(fā)基于MieroBlaze軟核和PowerPC硬核處理器的SOPC系統(tǒng)提供了一個很好的工具平臺。Xilinx公司的EDK工具主要包含:Xilinx Platform Studio(XPS)人機(jī)界面、嵌入式系統(tǒng)工具套件、嵌入式處理IP核、Platform Studio SDK(Software Development Kit,SDK)。XPS提供下面的特性:
◆能夠添加核,編輯核參數(shù),進(jìn)行總線和信號連接,產(chǎn)生MHS文件;
◆能夠產(chǎn)生和修改MSS文件;
◆支持Xilinx底層所有工具;
◆能夠產(chǎn)生和觀察系統(tǒng)塊圖和設(shè)計報告;
◆多用戶軟件應(yīng)用支持;
◆項目管理;
◆過程和工具流程依賴管理。
一個完整的嵌入式處理器系統(tǒng)設(shè)計通常包括3個部分:硬件系統(tǒng)的構(gòu)建、軟件系統(tǒng)及存儲器映射、應(yīng)用程序開發(fā)。
硬件系統(tǒng)的構(gòu)建是指設(shè)計人員根據(jù)應(yīng)用的需要而使用Xilinx的技術(shù)建立靈活的嵌入式處理子系統(tǒng)。硬件平臺是由一個或多個處理器或外設(shè)連接到處理器總線構(gòu)成的,EDK通過微處理器硬件規(guī)范(Microprocessor Hardware Specification,MHS)文件記錄硬件平臺信息。
軟件系統(tǒng)及存儲器映射是由軟件驅(qū)動和用于建立應(yīng)用程序的操作系統(tǒng)組成的。所建立的軟件映像文件只包含用戶所使用到的一部分Xili nx的庫。EDK通過微處理器軟件規(guī)范(Microprocessor Software Spectifcation,MSS)記錄軟件平臺信息。設(shè)計人員可以在軟件平臺運行多個應(yīng)用程序。
MHS和MSS數(shù)據(jù)文件定義了嵌入式系統(tǒng),其開發(fā)流程如圖2所示。
3 嵌入式系統(tǒng)應(yīng)用設(shè)計
3.1 系統(tǒng)的硬件組成
本文以某智能無線電監(jiān)測管控系統(tǒng)為例,采用基于FPGA的SOPC技術(shù),選用的實驗平臺為Xilinx公司的XCAVSX35 FPGA開發(fā)平臺。圖3表示的是系統(tǒng)中嵌入式處理器的硬件組成,這些硬件除A/D轉(zhuǎn)換模塊、干擾機(jī)和控制中心外,都集成在一塊FPGA評估板上。系統(tǒng)以帶有32位Micro Blaze軟核的FPGA作為控制中心,處理經(jīng)A/D變換后的偵察信號數(shù)據(jù),然后通過以太網(wǎng)將數(shù)據(jù)傳送到控制中心,并從控制中心傳回控制參數(shù)DDR_SDRAM作為片外存儲器,用來彌補微處理器內(nèi)部存儲器容量小的缺點;CF卡存儲系統(tǒng)軟硬件的bit文件和網(wǎng)絡(luò)配置文件;串口用來控制具有遠(yuǎn)程控制功能的偵察接收機(jī),也可在調(diào)試時輸出系統(tǒng)的運行信息。本文設(shè)計的嵌入式系統(tǒng)的各功能部件在FPGA內(nèi)部都以IP核的形式構(gòu)建并連接,包括DDC和FFT自定義的IP核,它們分別以PLB總線和FSL總線掛接在MicroBlaze上,較好地滿足了智能無線電監(jiān)測管控系統(tǒng)的硬件設(shè)計需求。
[!--empirenews.page--]
3.2 系統(tǒng)的軟件設(shè)計
智能無線電監(jiān)測管控系統(tǒng)的嵌入式軟件包括嵌入式操作系統(tǒng)和網(wǎng)絡(luò)應(yīng)用程序。EDK集成了軟件平臺產(chǎn)生器、軟件編譯器和軟件調(diào)試等工具,因此,軟件設(shè)計也在EDK中進(jìn)行。
嵌入式操作系統(tǒng)是嵌入式軟件技術(shù)的核心,介于嵌入式系統(tǒng)硬件和應(yīng)用程序之間,負(fù)責(zé)調(diào)度并管理應(yīng)用程序,完成對嵌入式系統(tǒng)硬件的控制和操作。嵌入式操作系統(tǒng)的選用主要考慮實時性、可靠性、功耗、可抑制性以及兼容性、軟件開發(fā)難易程度等因素,本文選擇Xilinx公司提供的實時操作系統(tǒng)Xilkernel來進(jìn)行軟件開發(fā)。
嵌入式系統(tǒng)應(yīng)用軟件主要是接收客戶端指令和發(fā)送數(shù)據(jù)給客戶端,通信方式為TCP/IP的網(wǎng)絡(luò)數(shù)據(jù)通信協(xié)議,網(wǎng)絡(luò)通信應(yīng)用程序采用順序執(zhí)行的結(jié)構(gòu)方式。為了能夠響應(yīng)外圍設(shè)備的中斷請求,在程序中為多個外圍設(shè)備提供了相應(yīng)的中斷服務(wù)程序。網(wǎng)絡(luò)應(yīng)用程序軟件流程圖如圖4所示。
3.3 實驗結(jié)果
系統(tǒng)使用ARONE接收機(jī)監(jiān)測無線電信號,中頻輸出為10.7 MHz,A/D采集卡將采集的數(shù)據(jù)送入FPGA中,F(xiàn)PGA處理后將數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)絇C機(jī)中,在PC機(jī)上開發(fā)網(wǎng)絡(luò)客戶端程序,對偵察的信號進(jìn)行分析、記錄、存儲等操作。使用信號線將ARONE通信接收機(jī)輸出端與A/D轉(zhuǎn)換模塊相連,A/D轉(zhuǎn)換模塊使用美國模擬器件公司的A/D轉(zhuǎn)換器AD9460。在偵察接收機(jī)受控工作時,使用串口線將圖3所示硬件系統(tǒng)與ARONE通信接收機(jī)串口輸入相連;在偵察接收機(jī)自主工作和系統(tǒng)調(diào)試時,使用串口線將圖3所示硬件系統(tǒng)與PC機(jī)相連,在超級終端中觀看系統(tǒng)運行狀態(tài)。將信號源與ARONE通信接收機(jī)信號輸入端相連。將軟硬件聯(lián)合編譯生成的bit文件下載到FPGA開發(fā)板上,在PC機(jī)上使用系統(tǒng)監(jiān)測軟件進(jìn)行監(jiān)測。圖5是中頻信號分析圖,可得到信號電平大小、頻率、帶寬等信息;圖6是頻段掃描的頻譜數(shù)據(jù)顯示,在選定的頻率范圍內(nèi)循環(huán)掃描,得到所有信號的電平、頻率等信息。實驗結(jié)果表明;通過合理規(guī)劃FPGA資源和任務(wù)需要,在一塊FPGA中實現(xiàn)了信號處理、接口與控制、網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)娜蝿?wù),能夠很好地滿足實際工程需要。
結(jié)語
本文介紹了一種基于FPGA的嵌入式系統(tǒng)設(shè)計,利用此嵌入式系統(tǒng)實現(xiàn)了某智能無線電監(jiān)測管控系統(tǒng)信號的采集、處理、傳輸?shù)裙δ?。同時,基于FPGA IP核的設(shè)計,使各功能部件集中在FPGA芯片上,滿足了系統(tǒng)對體積、成本、功耗和靈活性的要求。