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