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