基于NiosⅡ的嵌入式高速邏輯分析儀
4 基于軟核的邏輯分析儀設計
4.1總體結構
基于 NiosⅡ的邏輯分析儀,采用 FPGA硬件對數據采集和存儲,NiosⅡ軟核進行交互、控制和通信,并且可以通過 LCD顯示所采集數據的邏輯狀態(tài)或通過 RS-232接口與 PC機通信,在 PC上顯示數據的波形并對數據長期存儲。另外,通過鍵盤可對邏輯分析儀的采樣頻率、觸發(fā)方式等參數進行設置,這些設置也都可以通過 PC機進行。邏輯分析儀的整體結構如圖 3所示。
本文引用地址:http://m.butianyuan.cn/article/152384.htm
4.2嵌入模塊
4.2.1觸發(fā)核模塊
觸發(fā)核主要決定什么時候采集數據,什么時候完成對數據的采集。在本設計中,觸發(fā)條件分上升沿觸發(fā)、下降沿觸發(fā)、高電平觸發(fā)和低電平觸發(fā)四種。區(qū)分這 4種觸發(fā)信息至少要用到連續(xù)兩個時鐘的數據,因此每級觸發(fā)條件有兩個條件判斷字,觸發(fā)核通過兩次比較判斷是否觸發(fā)。觸發(fā)核是硬件核,由組合電路和觸發(fā)器組成。
4.2.2 PLL模塊
在對數字信號進行采樣時,需要的時鐘頻率至少應是數字信號波特率的 5倍。Cyclone器件的嵌入式數字 PLL要求外部輸入 CLK信號昀低頻率不能低于 20MHz,可通過分頻的方式得到低頻 CLK,通過倍頻的方式得到高頻 CLK,也可通過倍頻和分頻組合得到特殊的輸出頻率,本設計采用 25倍頻和 2分頻,使昀高時鐘頻率達 250MHz。
4.2.3數據存儲模塊
由于軟核在工作時也是在執(zhí)行指令,運行速度不快,不能完成對高速數字信號的采集。為此,本設計在 FPGA芯片中嵌入了 FIFO,作為數據的緩存。所采集的數據,首先存入 FIFO存儲器中,這個過程全部通過硬件完成,每個采樣時鐘周期可完成一次數據的寫入操作。當 FIFO中數據寫滿時,存儲器將通知軟核讀取數據,軟核完成數據的處理、顯示和傳輸等操作。
由于 Cyclone器件中 FIFO的容量不大,若采用固定的采用時鐘,當輸入數字信號的波特率較低時,FIFO存儲的數據可能還不到一個碼元寬度的數據,從而無法在 LCD上顯示其波形。因此,本設計采用了程控調整采樣速率,從而保證了無論是低波特率信號還是高波特率信號,系統(tǒng)都能正確采樣和顯示波形。
4.3軟核設計軟核作為設計的控制核心具有重要作用,為了完成對 8路數據觸發(fā)模式的設置,以及與
PC機通信,在用 SOPC Builder軟件定制軟核時,為其加入了 UART接口和若干位輸入輸出端口,這些端口也實現了通過鍵盤對各路數據觸發(fā)方式和其它各參數的設置。
4.4軟件設計
本設計編程語言采用的是 C++,軟件流程包括參數設置、觸發(fā)判斷、數據采集、分析與通信、圖形顯示五個方面,主程序流程如圖 5所示。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論