基于NiosⅡ的數(shù)字示波器的設(shè)計(jì)與實(shí)現(xiàn)
0 引言
本文引用地址:http://cafeforensic.com/article/268252.htm在電子技術(shù)領(lǐng)域中,示波器的應(yīng)用非常廣泛,使用它可以方便直觀地觀察到信號的全貌,并測量信號的幅度、頻率、周期等基本參數(shù)。傳統(tǒng)的模擬示波器顯示時采用熒光物質(zhì)的余輝時間都是一定的,導(dǎo)致其難以觀測到周期較長的信號。另外,模擬示波器還無法對信號進(jìn)行一些特殊的數(shù)學(xué)處理(如FFT)。而數(shù)字示波器正好可以克服模擬示波器的不足,它采用各種先進(jìn)的測量技術(shù)來滿足各種應(yīng)用。如基于采樣原理,采用高速A/D轉(zhuǎn)換器實(shí)現(xiàn)高速數(shù)據(jù)采集,將模擬信號數(shù)字化,然后借助處理器強(qiáng)大的數(shù)據(jù)處理能力實(shí)現(xiàn)各種數(shù)字信號處理算法,將波形以圖形的方式直觀地顯示出來,并能夠得到被測信號各種豐富的參數(shù)。
1 系統(tǒng)總體方案
本設(shè)計(jì)的系統(tǒng)框圖如圖1所示,得益于FPGA的靈活性,系統(tǒng)的大部分功能都在FPGA內(nèi)部完成,使得整體結(jié)構(gòu)非常簡潔。外圍電路主要包括A/D轉(zhuǎn)換模塊、LCD顯示器、SD卡、FLASH和按鍵。
A/D轉(zhuǎn)換模塊的功能是實(shí)現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)換;FLASH模塊的功能是存儲SoPC(System-on-a-Programmable-Chip)片上系統(tǒng)的固件程序;SD卡模塊的功能是實(shí)現(xiàn)測量信息的長期、大量存儲,提供與PC機(jī)的接口,便于后期在計(jì)算機(jī)上進(jìn)行分析;LCD模塊的功能是對測量信號波形和相關(guān)參數(shù)的實(shí)時顯示;按鍵模塊的功能是提供整機(jī)的調(diào)節(jié)和控制接口。
2 FPGA邏輯功能模塊設(shè)計(jì)
FPGA內(nèi)部系統(tǒng)框圖如圖2所示。它主要由采樣率控制器、觸發(fā)控制單元、FIFO控制器、頻率測量單元、按鍵控制單元和LCD驅(qū)動器構(gòu)成。
3 SoPC設(shè)計(jì)
本設(shè)計(jì)中使用的是NiosⅡ/f處理器,使用硬件乘除法器,工作于50 MHz。使用FPGA內(nèi)嵌的RAM塊作為系統(tǒng)的運(yùn)行內(nèi)存。采用FLASH作為片外存儲器,保存用戶程序,其通過Avalon總線三態(tài)橋與NiosⅡ處理器相連。
3.1 SoPC軟件設(shè)計(jì)
系統(tǒng)開機(jī)調(diào)用相關(guān)函數(shù)初始化LCD,SD卡和FAT文件系統(tǒng)之后,首先繪制圖形界面,輸出固定信息,接著讀取波形參數(shù),將其顯示在LCD上,然后等待FIFO寫滿。若FIFO寫滿則將FIFO數(shù)據(jù)讀入緩沖區(qū)中,同時在屏幕上繪制波形,獲得波形的最大和最小值。最后如果有用戶按鍵輸入則處理按鍵事件,否則檢測波形參數(shù)是否變化,若有變化則更新顯示,否則等待FIFO寫滿,進(jìn)行下一次顯示。流程如圖3所示。
3.1.1 SoPC底層軟件設(shè)計(jì)
底層軟件為各設(shè)備的驅(qū)動程序,主要有:
(1)LCD驅(qū)動。根據(jù)顯示內(nèi)容的需求,LCD驅(qū)動程序設(shè)計(jì)了以下函數(shù):
①發(fā)送數(shù)據(jù)/命令:將數(shù)據(jù)/命令通過驅(qū)動器發(fā)送到LCD;
?、贚CD初始化:完成LCD的上電復(fù)位和初始化;
?、跮CD清屏:清空顯示;
?、茌敵鲆粋€像素:在指定位置輸出一個指定顏色的像素點(diǎn);
?、莓嬛本€:畫從(x0,y0)到(x1,y1)的指定顏色的直線;
?、蕻嬀匦危寒嫃?x0,y0)到(x1,y1)的指定顏色的矩形,可選擇是否填充;
?、咻敵鲆粋€字符:在指定位置輸出一個指定顏色的字符;
⑧輸出一個字符串:在指定位置輸出一個指定顏色的字符串。
(2)SD卡驅(qū)動。SD卡通信采用SPI模式,SD卡驅(qū)動的函數(shù)及功能為:
?、侔l(fā)送數(shù)據(jù)/命令:將數(shù)據(jù)/命令發(fā)送到SD卡;
?、谧x取數(shù)據(jù):從SD卡讀取一個字節(jié);
?、跾D卡復(fù)位:SD卡上電后復(fù)位并使其進(jìn)入SPI模式;
?、躍D卡初始化:初始化SD卡使其作好數(shù)據(jù)讀寫準(zhǔn)備;
?、葑x一個扇區(qū):從指定的扇區(qū)地址讀取一個扇區(qū)的數(shù)據(jù)到緩沖區(qū);
?、迣懸粋€扇區(qū):將緩沖區(qū)數(shù)據(jù)寫入指定的扇區(qū)地址處。
(3)FAT16文件系統(tǒng)。FAT16文件系統(tǒng)的主要函數(shù)及功能為:
?、貴AT初始化:獲取每簇的扇區(qū)數(shù)、FAT表地址、根目錄地址和FAT表占用的扇區(qū)數(shù)等FAT信息;
②確定文件名稱:查找已存在的波形文件以確定要保存的文件的名稱;
?、厶砑痈夸涰?xiàng):將保存的文件的名稱、大小、位置等添加到根目錄;
④添加FAT表項(xiàng):查找FAT表的空簇,將新文件的簇號寫入FAT表。
評論