《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NiosⅡ的嵌入式高速邏輯分析儀
基于NiosⅡ的嵌入式高速邏輯分析儀
微計算機信息
王振宇,許年豐
摘要: 本設計通過在 Cyclone芯片中嵌入軟 CPU,、數(shù)字 PLL,、FIFO和 UART,實現(xiàn)了單片式 8路高速數(shù)字信號分析儀,??捎面I盤改變采樣速率,,滿足對不同速率的數(shù)字信號進行采樣;用點陣式 LCD顯示所采集的 8路數(shù)字信號;也可通過串口將采集的數(shù)據(jù)傳輸?shù)?PC機進行存儲,、處理和顯示,。本設計的時鐘頻率昀高可 250MHz(CycloneⅡ芯片所支持的昀高工作頻率),從而可以對 8路波特率為 50Mbs的數(shù)字信號進行采集與顯示,。
Abstract:
Key words :

1 引言
由于數(shù)字信號只有高電平和低電平兩種情況,,因此,用單片機 (MCU)就可直接實現(xiàn)多路數(shù)字信號進行采集和邏輯分析,。但由于單片機的時鐘頻率較低,,完成一次采樣的時間受程序執(zhí)行指令速度的限制,采樣速率通常不超過 1MHz,。因此,,用單片機只能實現(xiàn)對低速率數(shù)字信號進行邏輯分析。FPGA的工作時鐘速率通??蛇_ 200MHz以上,,可對高速數(shù)字信號進行采樣,但普通的 FPGA在與外部設備進行數(shù)據(jù)交換時顯得不靈活,。為了解決上述問題,,通常是將 MCU與 FPGA結(jié)合起來,用 FPGA對高速數(shù)字信號進行采樣,,用 MCU負責與外部設備進行數(shù)據(jù)交換,,從而實現(xiàn)對高速數(shù)字信號進行邏輯分析,如圖 1所示,。


 隨著可編程邏輯器件的發(fā)展,,Altera公司研發(fā)了可以嵌入軟 CPU核的 Cyclone系列和 Stratix系列的 FPGA芯片。嵌入式軟核與普通硬核的昀大差別在于它的可裁減性,,設計者可根據(jù)設計需求定制出不同結(jié)構(gòu)的軟核處理器,。軟 CPU核的嵌入實現(xiàn)了 CPU與 FPGA的無縫連接,使芯片既能處理高速數(shù)字信號,,又能方便靈活地與芯片外部設備進行數(shù)據(jù)交換,,還增加了系統(tǒng)的集成度和可靠性。
2 定制軟 CPU核
軟核的定制要利用 Altera公司提供的 SOPC Builder軟件,。
2.1定制 NiosⅡ處理器早期的軟核處理器是 Nios,,但其穩(wěn)定性不夠好,現(xiàn)已被 NiosⅡ所替代,。 NiosⅡ處理器有三種類型: e(經(jīng)濟型 ),、s(標準型)和 f(增強型),。選擇不同類型的處理器所占用的邏輯資源和存儲器資源大小不同,,處理器的運算速度處理能力也有所差別。
2.2定制片內(nèi) RAM
片內(nèi) RAM作為軟核程序的運行空間,,對于沒有擴展外部存儲器的設計,,片內(nèi) RAM是必須的部分,。通過軟件設計向?qū)В梢栽O置片內(nèi)存儲器的類型,,大小,,以及初始化文件。 Cyclone系列芯片有 13~64個片內(nèi) RAM塊,,每個 RAM塊的大小是 4K(128字×36位),,用戶可根據(jù)需要設置存儲器的字數(shù)和字長。當定義的字數(shù)超過 128時,,多個 RAM塊可組成在一起,,構(gòu)成更大容量的存儲器,滿足設計要求,。
2.3定制 UART接口
UART接口是軟核與計算機通信的主要接口,,通過設計向?qū)Э啥ㄖ?UART接口。在定制 UART接口時,,可以設置其波特率,,校驗位,是否允許 DMA控制,。通過此基本設置,,軟核可以與 PC機之間實現(xiàn)串口通信的功能。
2.4定制 LCD控制端口和鍵盤控制端口此類端口是普通 I/O端口,,設置比較簡單,。需要注意的是 LCD的數(shù)據(jù)端口是 8位的雙向端口。當定制了以上 4部分后,,即可生成軟 CPU核,。
3 最小系統(tǒng)形成
完成定制軟核后,需要對軟核編程,,形成基于軟核的昀小系統(tǒng),。
對軟核的編程在 Nios ⅡIDE環(huán)境下進行。首先利用軟件生成針對某軟核的模版程序,,用戶程序都可以從模版開始,。在生成模版程序的同時,也形成了 system.h文件,,此文件中包含了對用戶編程有用的許多信息,,包括所有端口的地址空間分配,中斷號等,。在文件 altera_avalon_pio_regs.h中包含了對普通 I/O端口進行讀寫操作的函數(shù),,通過對函數(shù)的調(diào)用可實現(xiàn)對端口的操作。在文件 altera_avalon_uart_regs.h中包含了對 UART操作的基礎函數(shù),對串口的所有操作,,都可通過對此中函數(shù)的調(diào)用來完成,。

 

在昀小系統(tǒng)中,實現(xiàn)軟核對 LCD的數(shù)據(jù)交換,,讀取鍵盤值,,以及與計算機之間的通信。本設計鍵盤使用 4*4鍵盤,,顯示器采用 240*128點陣 LCD顯示模塊,。主要子程序流程圖如圖 2所示。
4 基于軟核的邏輯分析儀設計
4.1總體結(jié)構(gòu)
基于 NiosⅡ的邏輯分析儀,,采用 FPGA硬件對數(shù)據(jù)采集和存儲,,NiosⅡ軟核進行交互、控制和通信,,并且可以通過 LCD顯示所采集數(shù)據(jù)的邏輯狀態(tài)或通過 RS-232接口與 PC機通信,,在 PC上顯示數(shù)據(jù)的波形并對數(shù)據(jù)長期存儲。另外,,通過鍵盤可對邏輯分析儀的采樣頻率,、觸發(fā)方式等參數(shù)進行設置,這些設置也都可以通過 PC機進行,。邏輯分析儀的整體結(jié)構(gòu)如圖 3所示,。
 

 

4.2嵌入模塊
4.2.1觸發(fā)核模塊
觸發(fā)核主要決定什么時候采集數(shù)據(jù),什么時候完成對數(shù)據(jù)的采集,。在本設計中,,觸發(fā)條件分上升沿觸發(fā)、下降沿觸發(fā),、高電平觸發(fā)和低電平觸發(fā)四種,。區(qū)分這 4種觸發(fā)信息至少要用到連續(xù)兩個時鐘的數(shù)據(jù),因此每級觸發(fā)條件有兩個條件判斷字,,觸發(fā)核通過兩次比較判斷是否觸發(fā),。觸發(fā)核是硬件核,由組合電路和觸發(fā)器組成,。
4.2.2 PLL模塊
在對數(shù)字信號進行采樣時,,需要的時鐘頻率至少應是數(shù)字信號波特率的 5倍。Cyclone器件的嵌入式數(shù)字 PLL要求外部輸入 CLK信號昀低頻率不能低于 20MHz,,可通過分頻的方式得到低頻 CLK,,通過倍頻的方式得到高頻 CLK,也可通過倍頻和分頻組合得到特殊的輸出頻率,,本設計采用 25倍頻和 2分頻,,使昀高時鐘頻率達 250MHz,。
4.2.3數(shù)據(jù)存儲模塊

由于軟核在工作時也是在執(zhí)行指令,運行速度不快,,不能完成對高速數(shù)字信號的采集,。為此,,本設計在 FPGA芯片中嵌入了 FIFO,,作為數(shù)據(jù)的緩存。所采集的數(shù)據(jù),,首先存入 FIFO存儲器中,,這個過程全部通過硬件完成,每個采樣時鐘周期可完成一次數(shù)據(jù)的寫入操作,。當 FIFO中數(shù)據(jù)寫滿時,,存儲器將通知軟核讀取數(shù)據(jù),軟核完成數(shù)據(jù)的處理,、顯示和傳輸?shù)炔僮鳌?br /> 由于 Cyclone器件中 FIFO的容量不大,,若采用固定的采用時鐘,當輸入數(shù)字信號的波特率較低時,,F(xiàn)IFO存儲的數(shù)據(jù)可能還不到一個碼元寬度的數(shù)據(jù),,從而無法在 LCD上顯示其波形。因此,,本設計采用了程控調(diào)整采樣速率,,從而保證了無論是低波特率信號還是高波特率信號,系統(tǒng)都能正確采樣和顯示波形,。
4.3軟核設計軟核作為設計的控制核心具有重要作用,,為了完成對 8路數(shù)據(jù)觸發(fā)模式的設置,以及與
PC機通信,,在用 SOPC Builder軟件定制軟核時,,為其加入了 UART接口和若干位輸入輸出端口,這些端口也實現(xiàn)了通過鍵盤對各路數(shù)據(jù)觸發(fā)方式和其它各參數(shù)的設置,。
4.4軟件設計

本設計編程語言采用的是 C++,,軟件流程包括參數(shù)設置、觸發(fā)判斷,、數(shù)據(jù)采集,、分析與通信、圖形顯示五個方面,,主程序流程如圖 5所示,。


5 結(jié)束語
本設計通過在 Cyclone芯片中嵌入軟 CPU、數(shù)字 PLL,、FIFO和 UART,,實現(xiàn)了單片式 8路高速數(shù)字信號分析儀,。可用鍵盤改變采樣速率,,滿足對不同速率的數(shù)字信號進行采樣,;用點陣式 LCD顯示所采集的 8路數(shù)字信號;也可通過串口將采集的數(shù)據(jù)傳輸?shù)?PC機進行存儲,、處理和顯示,。本設計的時鐘頻率昀高可 250MHz(CycloneⅡ芯片所支持的昀高工作頻率),從而可以對 8路波特率為 50Mbs的數(shù)字信號進行采集與顯示,。
圖 5是通過嵌入式邏輯分析儀采集后,,通過串行通信口送到 PC機,在 PC機屏幕上顯示的 8路數(shù)字信號實拍照片,。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。