近年來(lái),嵌入式技術(shù)發(fā)展迅速,嵌入式應用已經(jīng)深入到金融、航空航天、電信、網(wǎng)絡(luò )、工業(yè)控制、信息家電等各個(gè)領(lǐng)域。嵌入式系統已經(jīng)無(wú)所不在,與人們的日常生活息息相關(guān)。嵌入式系統以微處理器為核心,以計算機技術(shù)為基礎,其主要特征是實(shí)時(shí)性強。針對嵌入式處理器的應用,Xilinx公司推出了IBM PowerPC 405和MicroBlaze兩種32位的嵌入式處理器內核,IBMPowerPC 405是嵌入在現場(chǎng)可編程門(mén)陣列(filedprogrammable gate array,FPGA)中的硬核處理器,而MicroBlaze是采用哈佛(Harvard)總線(xiàn)結構的軟核處理器,可在可編程器件中進(jìn)行配置,具有更好的靈活性,適合復雜嵌入式系統的開(kāi)發(fā)。 1 MicroBlaze23軟內核內部結構 MicroBlaze軟內核是一種針對Xilinx FPGA器件而優(yōu)化的功能強火的32位微處理器,適用于所有現產(chǎn)的FPGA器件。MicroBlaze軟內核和其它外設IP核一起,可以完成可編程系統芯片(SOPC)的設計。MicroBlaze軟內核采用RISC(reduced instruction system computer)架構和哈佛(Harvard)結構的32位指令和數據總線(xiàn),內部有32個(gè)通用寄存器R0~R31和2個(gè)特殊寄存器程序指針(PC)和處理器狀態(tài)寄存器(MSR)。MicroBlaze還具有指令和數據緩存,所有的指令長(cháng)度都是32位,有3個(gè)操作數和兩種尋址模式,指令功能劃分有邏輯運算,算術(shù)運算,分支,存儲器讀/寫(xiě)和特殊指令等,指令執行的流水線(xiàn)是并行流水線(xiàn),它分為3級流水線(xiàn):取指,譯碼和執行。MicroBlaze軟內核結構如圖1所示。 Microblaze軟內核,片上本地存儲器,標準總線(xiàn)互連以及基于片上外設總線(xiàn)(OPB)的外圍設備構成了MicroBlaze嵌入式系統。 2 MicroBlaze嵌入式系統開(kāi)發(fā)流程 在用Xilinx公司生產(chǎn)的FPGA進(jìn)行嵌入式設計時(shí),Xilinx公司提供嵌入式開(kāi)發(fā)工具EDK,它由XPS(xilinxplatform studio),SDK(software development kit),creat—import peripheral和XMD(xilinx microprocessordebugger)組成。 其中XPS是主設計程序平臺,可以實(shí)現嵌入式開(kāi)發(fā)的所有步驟環(huán)節,其它的軟件工具可以在XPS里面直接調用。SDK是軟件開(kāi)發(fā)工具,支持C和C++,主要完成軟件的設計。creat—import peripheral工具實(shí)現用戶(hù)IP核和CPU的接口設計。XMD主要完成軟件調試。 進(jìn)行硬件設計時(shí),EDK以IP cote的形式,提供諸如LMB、OPB總線(xiàn)接口、外部存儲控制器、SDRAM控制器、UART中斷控制器、定時(shí)器及其他一些外圍設備接口等資源,利用這些資源,用戶(hù)能夠輕松構建一個(gè)完善的嵌入式處理器系統。進(jìn)行相應的軟件設計時(shí),EDK提供了外設IP驅動(dòng)程序和大量的函數庫,板級支持包(BSP:board support package)以及完整的操作系統以幫助用戶(hù)開(kāi)發(fā)軟件平臺。 當用戶(hù)需要定制自己的外設以完成一些特殊功能時(shí),用戶(hù)可以Xilinx公司提供的Project Navigator ISE環(huán)境下,用VerilogHDL或者VHDL代碼完成用戶(hù)IP core的設計,利用XPS中提供的creat—import peripheral工具完成創(chuàng )建和導入用戶(hù)IP core。利用EDK現有的IP core和用戶(hù)自定義IP core可以建立一個(gè)完善的嵌入式系統。在XPS開(kāi)發(fā)環(huán)境下,完整的開(kāi)發(fā)流程如圖2所示。 MHS和MSS文件都是由用戶(hù)根據整個(gè)系統的要求通過(guò)EDK生成的。其中MHS文件包含了對整個(gè)MicroBlaze系統組織的描述(包括處理器、總線(xiàn)、外設等),用戶(hù)也可以根據自己的實(shí)際情況修改MHS文件(例如opb_gpio的輸出寬度),完善系統設計。硬件平臺生成器(PlatGen)產(chǎn)生整個(gè)系統的網(wǎng)表,結合約束文件可最終生成可配置文件(.bit)用以下載。MSS文件包含了所有外設的驅動(dòng)等信息的描述,庫生成器(LibGen)通過(guò)它產(chǎn)生所需的驅動(dòng),用戶(hù)根據這些驅動(dòng)文件完成軟件調度程序,再由MB2GCC工具對調度程序進(jìn)行編譯生成可執行程序。最后.bit文件和軟件程序合成下載到開(kāi)發(fā)板。若程序執行不理想,可以用 XMD進(jìn)行軟件調試,找出問(wèn)題所在,解決問(wèn)題完成設計。 3 AD數據采樣與實(shí)現 本設計給出了AD數據接收、采樣、存儲。天線(xiàn)接收到的信號,經(jīng)過(guò)信號斛析,得到了時(shí)間信息,產(chǎn)生數字信號,經(jīng)過(guò)30.69MHz 中頻調制,送入ad_transmit完戰AD采樣,存儲到嵌入在開(kāi)發(fā)板上的blockram里面,可以通過(guò)FPGA調試工具chipscope來(lái)觀(guān)察AD采樣數據。 本設計采用的足e元素科技的Virtex4系列開(kāi)發(fā)板,該開(kāi)發(fā)板上有嵌入的兩個(gè)AD數據接口(adc0,adc1),在本設計采用的是adc0。AD采樣是用Verilog代碼設計完成的,在ISE環(huán)境下仿真驗證成功,掛載到OPB總線(xiàn)上。其硬件平臺如圖3所示。 構建實(shí)驗的系統資源為: MicroBlaze:系統的核心模塊; LMB總線(xiàn):(1)ILMB BRAM Cntrl,DLMBBRAM Cntrl內部BRAM控制接口IP,使得MicroBlaze可以通過(guò)LMB總線(xiàn)訪(fǎng)問(wèn)BRAM;(2)BRAM-BLOCK(片內存儲模塊),可作為系統的程序存儲空間或高速緩存; OPB總線(xiàn):(1)通信接口IP,通過(guò)OPB-UARTLITE(串行通信接口),驅動(dòng)uart接口轉換器完成與外部系統如 PC的數據通信;(2)用戶(hù)接口IP,通過(guò)OPB總線(xiàn)訪(fǎng)問(wèn) MicroBlaze。 天線(xiàn)等外圍設備:天線(xiàn)、信號解析、信號產(chǎn)生器和中頻調制完成根據解析出的時(shí)間信息產(chǎn)生數字信號,調制為中頻模擬信號,中頻調制頻率為30.69MHz。 Uart端口:通過(guò)超級端口觀(guān)察軟件凋度程序的執行過(guò)程。 Chipscope核:ila核及icon核用來(lái)觀(guān)察數據,icon核控制ila核,ila核連接所需要觀(guān)察的信號的端口。 Dcm時(shí)鐘控制:控制AD采樣速率,本設計采樣頻率為81.84MHz。 設計中的硬件描述文件(MHS)即為按照上面定制的硬件平臺框圖中給出的系統資源編寫(xiě)的,其部分內容如下: 給出的MHS文件中,列出了用戶(hù)IP ad_transmit 地址,時(shí)鐘還有端口連接情況,其中ad_transmit_0_ad_din設置為外部端口,連接到開(kāi)發(fā)板上FPGA相應的adc0端口。chipscope_ila則列出了通過(guò)chipscope觀(guān)察的信號。 軟件描述文什(MSS)列出了所有外設的驅動(dòng)信息,函數庫產(chǎn)生器利用這些配置信息,配置相應的驅動(dòng)程序函數庫。用戶(hù)根據這些驅動(dòng)程序來(lái)完成軟件調度程序,完成軟件設計。本設計主要通過(guò)硬件來(lái)實(shí)現,軟件調度程序比較簡(jiǎn)單,流程圖如4所示。 完成軟件調度程序以后,就可以對源程序進(jìn)行編澤、匯編和鏈接,生成可執行義件,通過(guò)在XPS中利用工具“data2bram”,將軟件設計中生成的程序代碼作為存儲區的初始化數據,合并到硬件設計中生成的下載配置文件中,最終生成包含軟、硬件設計的FPGA下載配置文件“download.Bit”,就可以將其下載到芯片中驗證本設計。 通過(guò)FPGA調試工具chipscope來(lái)觀(guān)察接收的AD采樣數據,本設計中設定了AD數據溢出控制,即AD采樣數據在-8192~+8192之間,AD采樣數據如圖5,圖6所示,實(shí)現AD數據采樣。 本設計將用戶(hù)IP ad_transimit掛載到OPB總線(xiàn)上,采用chipscope對AD采樣數據進(jìn)行觀(guān)察,通過(guò)觀(guān)察與分析,可以得出本設計很好的完成了AD數據接收,采樣,存儲,是一個(gè)完整的AD數據采集系統。進(jìn)一步可以對存儲的AD采樣數據進(jìn)行更為復雜的數據處理過(guò)程。 |