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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種基于FPGA和DSP的圖行顯示控制系統(tǒng)設計

          一種基于FPGA和DSP的圖行顯示控制系統(tǒng)設計

          作者: 時間:2014-04-07 來源:網絡 收藏

          系統(tǒng)將鍵盤接口和顯示接口連接在上。系統(tǒng)硬件原理如圖2所示。

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

           

           

          3 系統(tǒng)軟件設計

          3.1 鍵盤接口設計

          為實現人機交互必須要有相應的輸入接口,系統(tǒng)在外部連接了6×6的矩陣鍵盤,以實現各種參數的輸入和顯示控制。要完成各自不同的控制邏輯。

          FPGA中用VHDL硬件描述語言設計鍵值的掃描程序,采用逐行掃描的思想,并開辟一寄存器保存掃描到的鍵值,讀取該寄存器即得到按鍵鍵值,該寄存器對應的地址為0xA0001000,對應中CE2的選址空間。當有按鍵按下時,FPGA掃描得到鍵值,保存至按鍵寄存器中,并向DSP發(fā)送外部中斷Exint4,DSP在中斷服務程序中讀取地址為0xA0001000寄存器中的內容即可得到鍵值。

          3.2 顯示接口設計

          由于顯示屏是640×480的單色顯示屏,要在DSP內開辟一顯示的數據緩沖區(qū),大小為38 400 Byte,緩沖區(qū)的每一位代表一個像素,代表顯示屏上的一個像素點,緩沖區(qū)的第一個Byte的最低位點代表顯示屏的第一個像素點,依次類推。

          對于要顯示的圖像,DSP必須先用相應的圖形算法填充該圖形緩沖區(qū),之后啟動DSP的EDMA將數據通過DSP的總線送至FPGA的雙口RAM中,雙口RAM的起始地址是0xA0080000,對應LCD顯示屏第一行的第1~32個像素點,結束地址是0xA00895FC,對應顯示屏第480行第637~640個像素點。DSP是32位數據總線,每個地址可存儲32位的像素點。

          對于畫圖函數,最基本的莫過于畫點函數,它是其他各種作圖函數的基礎,也是實現各種復雜圖形顯示的基礎。

          畫線、畫方框、畫矩形、填充矩形、畫橢圓、填充橢圓、畫圓、填充圓的驅動函數只要基于畫點函數再配合相應的算法即可實現。

          對于漢字的顯示,需要加載相應的字庫,系統(tǒng)中的字庫采用16×16點陣的漢字字庫。首先根據漢字的區(qū)位碼在字庫中找到相應的點陣數組,然后將點陣數組輸入到相應坐標的顯存緩沖區(qū)即可。為提高程序的運行速度,系統(tǒng)中沒有采用標準C庫文件的文件操作方式來讀取字庫數組,而是將字庫文件轉換為數組形式保存在SDRAM中,程序只需根據漢字的區(qū)位碼查表即可得到點陣數組,大幅提高了程序的運行速度。

          對于圖標和圖像的顯示,首先也要將圖像轉換為相應的點陣數組,再按照要顯示的坐標區(qū)域將點陣數組輸入的相應區(qū)域即可。

          用基本畫圖函數就可實現各種圖形的顯示,在此基礎也可以實現各種復雜圖像的顯示,系統(tǒng)驗證時曾顯示了圖像、正弦波、三角波等較為復雜的動態(tài)圖形的顯示,并可以通過鍵盤控制波形頻率的改變,如圖3所示。

           

           

          4 結束語

          人機交互和圖形圖像顯示技術,在需要人機交互系統(tǒng)應用中具有重要現實意義,文中討論了基于DSP+FPGA的圖形顯示控制系統(tǒng),給出了各部分的設計思想,提供了鍵盤輸入和圖形圖像顯示的功能,可以滿足各種復雜的人機交互和圖形圖像顯示,在實際使用中也得到了驗證。

          fpga相關文章:fpga是什么



          上一頁 1 2 下一頁

          關鍵詞: FPGA DSP

          評論


          相關推薦

          技術專區(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); })();