基于SoPC的數字示波器設計
3 SoPC設計
本設計中使用的是NiosⅡ/f處理器,使用硬件乘除法器,工作于50 MHz。使用FPGA內嵌的RAM塊作為系統的運行內存。采用FLASH作為片外存儲器,保存用戶(hù)程序,其通過(guò)Avalon總線(xiàn)三態(tài)橋與NiosⅡ處理器相連。
3.1 SoPC軟件設計
系統開(kāi)機調用相關(guān)函數初始化LCD,SD卡和FAT文件系統之后,首先繪制圖形界面,輸出固定信息,接著(zhù)讀取波形參數,將其顯示在LCD上,然后等待FIFO寫(xiě)滿(mǎn)。若FIFO寫(xiě)滿(mǎn)則將FIFO數據讀入緩沖區中,同時(shí)在屏幕上繪制波形,獲得波形的最大和最小值。最后如果有用戶(hù)按鍵輸入則處理按鍵事件,否則檢測波形參數是否變化,若有變化則更新顯示,否則等待FIFO寫(xiě)滿(mǎn),進(jìn)行下一次顯示。流程如圖3所示。本文引用地址:http://dyxdggzs.com/article/177387.htm
3.1.1 SoPC底層軟件設計
底層軟件為各設備的驅動(dòng)程序,主要有:
(1)LCD驅動(dòng)。根據顯示內容的需求,LCD驅動(dòng)程序設計了以下函數:
①發(fā)送數據/命令:將數據/命令通過(guò)驅動(dòng)器發(fā)送到LCD;
②LCD初始化:完成LCD的上電復位和初始化;
③LCD清屏:清空顯示;
④輸出一個(gè)像素:在指定位置輸出一個(gè)指定顏色的像素點(diǎn);
⑤畫(huà)直線(xiàn):畫(huà)從(x0,y0)到(x1,y1)的指定顏色的直線(xiàn);
⑥畫(huà)矩形:畫(huà)從(x0,y0)到(x1,y1)的指定顏色的矩形,可選擇是否填充;
⑦輸出一個(gè)字符:在指定位置輸出一個(gè)指定顏色的字符;
⑧輸出一個(gè)字符串:在指定位置輸出一個(gè)指定顏色的字符串。
(2)SD卡驅動(dòng)。SD卡通信采用SPI模式,SD卡驅動(dòng)的函數及功能為:
①發(fā)送數據/命令:將數據/命令發(fā)送到SD卡;
②讀取數據:從SD卡讀取一個(gè)字節;
③SD卡復位:SD卡上電后復位并使其進(jìn)入SPI模式;
④SD卡初始化:初始化SD卡使其作好數據讀寫(xiě)準備;
⑤讀一個(gè)扇區:從指定的扇區地址讀取一個(gè)扇區的數據到緩沖區;
⑥寫(xiě)一個(gè)扇區:將緩沖區數據寫(xiě)入指定的扇區地址處。
(3)FAT16文件系統。FAT16文件系統的主要函數及功能為:
①FAT初始化:獲取每簇的扇區數、FAT表地址、根目錄地址和FAT表占用的扇區數等FAT信息;
②確定文件名稱(chēng):查找已存在的波形文件以確定要保存的文件的名稱(chēng);
③添加根目錄項:將保存的文件的名稱(chēng)、大小、位置等添加到根目錄;
④添加FAT表項:查找FAT表的空簇,將新文件的簇號寫(xiě)入FAT表。
評論