基于數(shù)字信號處理器和EP3C78017實現(xiàn)圖行輸出顯示系統(tǒng)的設(shè)計
隨著現(xiàn)代電子信息技術(shù)的發(fā)展,人機交互、圖形圖像數(shù)據(jù)的輸出顯示在系統(tǒng)設(shè)計中越來越重要,一方面要求各種參數(shù)的輸入,另一方面要求將數(shù)據(jù)結(jié)構(gòu)顯示出來。文中設(shè)計的基于DSP和FPGA的系統(tǒng)結(jié)構(gòu),實現(xiàn)了人機交互和各種圖形圖像的輸出顯示,而且可以達到動態(tài)顯示的效果。在設(shè)計上采用了軟件填充的圖形設(shè)計方法,先由DSP生成全局數(shù)據(jù)緩沖區(qū),填充要繪制的圖形,之后通過DSP的EDMA傳遞給FPGA,F(xiàn)PGA實現(xiàn)顯示屏的接口不斷掃描,將數(shù)據(jù)送到顯示屏顯示。同時FPGA連接鍵盤接口,通過掃描法掃描鍵值,之后通過中斷方式送到DSP,使DSP對各種輸入進行控制。整個系統(tǒng)的結(jié)構(gòu)圖如圖1所示。
1 系統(tǒng)功能
為實現(xiàn)顯示系統(tǒng)的基本功能,系統(tǒng)要求實現(xiàn)人機交互,通過鍵盤輸入各種鍵值,選擇或輸入各種參數(shù),因此設(shè)計了6×6的矩陣鍵盤,可以輸入26個英文字母和0~9共10個數(shù)字,鍵盤的接口連在FPGA上,F(xiàn)PGA將掃描到的鍵值以中斷方式送到DSP,DSP根據(jù)輸入的參數(shù)進行處理。
對于顯示部分,系統(tǒng)要求提供各種驅(qū)動函數(shù),可以實現(xiàn)畫點、畫線、畫方框、畫矩形、填充矩形、畫橢圓、填充橢圓、畫圓、填充圓、顯示漢字、數(shù)字、英文字符以及圖標Logo等功能,在這些基本畫圖函數(shù)的基礎(chǔ)上可以實現(xiàn)各種復(fù)雜圖形的顯示。
總的實現(xiàn)方式是在DSP內(nèi)部開辟一緩沖數(shù)據(jù)區(qū),DSP將要輸出的圖形數(shù)據(jù)填充至數(shù)據(jù)緩沖區(qū),需要顯示時,DSP啟動EDMA,通過總線將緩沖區(qū)的數(shù)據(jù)送至FPGA,在FPGA內(nèi)開辟一雙口RAM,一端接收DSP傳輸?shù)木彌_區(qū)的數(shù)據(jù),保存在雙口RAM中,另一端將雙口RAM中保存的緩沖區(qū)數(shù)據(jù)讀出,以不斷掃描的方式按照顯示屏的時序?qū)?shù)據(jù)顯示在顯示屏上。
2 系統(tǒng)硬件設(shè)計
DSP具有高速處理的特點,運算速度快、FPGA并行處理能力強,常用于設(shè)計一些接口。DSP和FPGA相互結(jié)合的結(jié)構(gòu),能充分發(fā)揮二者的優(yōu)點,選用各種復(fù)雜的系統(tǒng)。
顯示控制系統(tǒng)采用的DSP是TI公司的,它是TI公司推出的一款高性能的數(shù)字信號處理器。FPGA采用的是Altera公司Cyclone系列的一款芯片EP3C78017,這是一款高性價比的FPGA芯片。FPGA和DSP通過DSP的外部總線接口EMIF連接。為便于系統(tǒng)的擴張,將FPGA映射在DSP的CE2和CE3的地址空間,對應(yīng)的存儲器映射地址分別為0xA0000000和0xB0000000。
由于要加載字庫,系統(tǒng)需要大容量的數(shù)據(jù)存儲器來存儲字庫數(shù)據(jù)和數(shù)據(jù)緩沖區(qū),而DSP的內(nèi)部RAM只有不到200 kB,因此需要擴展系統(tǒng)的數(shù)據(jù)存儲器。系統(tǒng)外掛了一個SDRAM,它依然通過DSP的EMIF接口和DSP相連接,連接在DSP的CE0空間,對應(yīng)的存儲器映射地址為0x80000000,SDRAM的型號為MT48LC2M32BTG。
顯示屏是640×480點陣的EL LCD寬溫顯示屏,其上下半屏同時掃描的雙掃描單色顯示屏,由于寬溫特性,多用在工業(yè)和軍事中,型號是EL640.480 AF1 ET。
系統(tǒng)將鍵盤接口和顯示接口連接在FPGA上。系統(tǒng)硬件原理如圖2所示。
3 系統(tǒng)軟件設(shè)計
3.1 鍵盤接口設(shè)計
為實現(xiàn)人機交互必須要有相應(yīng)的輸入接口,系統(tǒng)在FPGA外部連接了6×6的矩陣鍵盤,以實現(xiàn)各種參數(shù)的輸入和顯示控制。DSP和FPGA要完成各自不同的控制邏輯。
FPGA中用VHDL硬件描述語言設(shè)計鍵值的掃描程序,采用逐行掃描的思想,并開辟一寄存器保存掃描到的鍵值,DSP讀取該寄存器即得到按鍵鍵值,該寄存器對應(yīng)的地址為0xA0001000,對應(yīng)DSP中CE2的選址空間。當有按鍵按下時,F(xiàn)PGA掃描得到鍵值,保存至按鍵寄存器中,并向DSP發(fā)送外部中斷Exint4,DSP在中斷服務(wù)程序中讀取地址為0xA0001000寄存器中的內(nèi)容即可得到鍵值。
3.2 顯示接口設(shè)計
由于顯示屏是640×480的單色顯示屏,要在DSP內(nèi)開辟一顯示的數(shù)據(jù)緩沖區(qū),大小為38 400 Byte,緩沖區(qū)的每一位代表一個像素,代表顯示屏上的一個像素點,緩沖區(qū)的第一個Byte的最低位點代表顯示屏的第一個像素點,依次類推。
對于要顯示的圖像,DSP必須先用相應(yīng)的圖形算法填充該圖形緩沖區(qū),之后啟動DSP的EDMA將數(shù)據(jù)通過DSP的總線送至FPGA的雙口RAM中,雙口RAM的起始地址是0xA0080000,對應(yīng)LCD顯示屏第一行的第1~32個像素點,結(jié)束地址是0xA00895FC,對應(yīng)顯示屏第480行第637~640個像素點。DSP是32位數(shù)據(jù)總線,每個地址可存儲32位的像素點。
對于畫圖函數(shù),最基本的莫過于畫點函數(shù),它是其他各種作圖函數(shù)的基礎(chǔ),也是實現(xiàn)各種復(fù)雜圖形顯示的基礎(chǔ)。
畫線、畫方框、畫矩形、填充矩形、畫橢圓、填充橢圓、畫圓、填充圓的驅(qū)動函數(shù)只要基于畫點函數(shù)再配合相應(yīng)的算法即可實現(xiàn)。
對于漢字的顯示,需要加載相應(yīng)的字庫,系統(tǒng)中的字庫采用16×16點陣的漢字字庫。首先根據(jù)漢字的區(qū)位碼在字庫中找到相應(yīng)的點陣數(shù)組,然后將點陣數(shù)組輸入到相應(yīng)坐標的顯存緩沖區(qū)即可。為提高程序的運行速度,系統(tǒng)中沒有采用標準C庫文件的文件操作方式來讀取字庫數(shù)組,而是將字庫文件轉(zhuǎn)換為數(shù)組形式保存在SDRAM中,程序只需根據(jù)漢字的區(qū)位碼查表即可得到點陣數(shù)組,大幅提高了程序的運行速度。
對于圖標和圖像的顯示,首先也要將圖像轉(zhuǎn)換為相應(yīng)的點陣數(shù)組,再按照要顯示的坐標區(qū)域?qū)Ⅻc陣數(shù)組輸入的相應(yīng)區(qū)域即可。
用基本畫圖函數(shù)就可實現(xiàn)各種圖形的顯示,在此基礎(chǔ)也可以實現(xiàn)各種復(fù)雜圖像的顯示,系統(tǒng)驗證時曾顯示了圖像、正弦波、三角波等較為復(fù)雜的動態(tài)圖形的顯示,并可以通過鍵盤控制波形頻率的改變,如圖3所示。
4 結(jié)束語
人機交互和圖形圖像顯示技術(shù),在需要人機交互系統(tǒng)應(yīng)用中具有重要現(xiàn)實意義,文中討論了基于DSP+FPGA的圖形顯示控制系統(tǒng),給出了各部分的設(shè)計思想,提供了鍵盤輸入和圖形圖像顯示的功能,可以滿足各種復(fù)雜的人機交互和圖形圖像顯示,在實際使用中也得到了驗證。
責任編輯:gt