<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 基于SoPC的數字示波器設計

          基于SoPC的數字示波器設計

          作者: 時間:2012-04-28 來源:網絡 收藏

          3
          中使用的是NiosⅡ/f處理器,使用硬件乘除法器,工作于50 MHz。使用FPGA內嵌的RAM塊作為系統(tǒng)的運行內存。采用FLASH作為片外存儲器,保存用戶程序,其通過Avalon總線三態(tài)橋與NiosⅡ處理器相連。
          3.1 軟件
          系統(tǒng)開機調用相關函數初始化LCD,SD卡和FAT文件系統(tǒng)之后,首先繪制圖形界面,輸出固定信息,接著讀取波形參數,將其顯示在LCD上,然后等待FIFO寫滿。若FIFO寫滿則將FIFO數據讀入緩沖區(qū)中,同時在屏幕上繪制波形,獲得波形的最大和最小值。最后如果有用戶按鍵輸入則處理按鍵事件,否則檢測波形參數是否變化,若有變化則更新顯示,否則等待FIFO寫滿,進行下一次顯示。流程如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/177387.htm

          c.JPG


          3.1.1 底層軟件設計
          底層軟件為各設備的驅動程序,主要有:
          (1)LCD驅動。根據顯示內容的需求,LCD驅動程序設計了以下函數:
          ①發(fā)送數據/命令:將數據/命令通過驅動器發(fā)送到LCD;
          ②LCD初始化:完成LCD的上電復位和初始化;
          ③LCD清屏:清空顯示;
          ④輸出一個像素:在指定位置輸出一個指定顏色的像素點;
          ⑤畫直線:畫從(x0,y0)到(x1,y1)的指定顏色的直線;
          ⑥畫矩形:畫從(x0,y0)到(x1,y1)的指定顏色的矩形,可選擇是否填充;
          ⑦輸出一個字符:在指定位置輸出一個指定顏色的字符;
          ⑧輸出一個字符串:在指定位置輸出一個指定顏色的字符串。
          (2)SD卡驅動。SD卡通信采用SPI模式,SD卡驅動的函數及功能為:
          ①發(fā)送數據/命令:將數據/命令發(fā)送到SD卡;
          ②讀取數據:從SD卡讀取一個字節(jié);
          ③SD卡復位:SD卡上電后復位并使其進入SPI模式;
          ④SD卡初始化:初始化SD卡使其作好數據讀寫準備;
          ⑤讀一個扇區(qū):從指定的扇區(qū)地址讀取一個扇區(qū)的數據到緩沖區(qū);
          ⑥寫一個扇區(qū):將緩沖區(qū)數據寫入指定的扇區(qū)地址處。
          (3)FAT16文件系統(tǒng)。FAT16文件系統(tǒng)的主要函數及功能為:
          ①FAT初始化:獲取每簇的扇區(qū)數、FAT表地址、根目錄地址和FAT表占用的扇區(qū)數等FAT信息;
          ②確定文件名稱:查找已存在的波形文件以確定要保存的文件的名稱;
          ③添加根目錄項:將保存的文件的名稱、大小、位置等添加到根目錄;
          ④添加FAT表項:查找FAT表的空簇,將新文件的簇號寫入FAT表。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();