基于FPGA的LED大屏幕控制系統(tǒng)設(shè)計
3.3 讀地址發(fā)生器
讀地址發(fā)生器主要產(chǎn)生外部緩存器SRAM1(SRAM2)的讀地址信號,使系統(tǒng)能正確地從存儲器中讀取相應(yīng)的顯示數(shù)據(jù)。其地址最高位為0,其余地址分別為行地址(hang[3..0])、列地址(lie[6..0])、分區(qū)地址(qu[3..0])15位有效地址信號。在16個脈沖周期內(nèi)讀出在SRAM1(SRAM2)中的16字節(jié)數(shù)據(jù),其部分VHDL源程序如下:
3.4 譯碼器
譯碼器模塊主要是產(chǎn)生16路的分區(qū)信號(低電平有效)分別控制16個鎖存器,把16個分區(qū)的顯示數(shù)據(jù)分別鎖存在相應(yīng)的鎖存器中。
3.5 數(shù)據(jù)鎖存器組及移位寄存器組模塊
數(shù)據(jù)鎖存器組模塊由16個8位鎖存器組成鎖存器組,鎖存16個分區(qū)的數(shù)據(jù)。移位寄存器組模塊由16個8位移位寄存器組成,把各路鎖存器中8位并行數(shù)據(jù)轉(zhuǎn)換成同時輸出的16路串行數(shù)據(jù),驅(qū)動LED顯示屏,實現(xiàn)數(shù)據(jù)的并串轉(zhuǎn)換。
其生成的元件符號如圖6所示。其中,DATA IN[7..0]為每個分區(qū)的8位并行數(shù)據(jù)輸入,SCLK為移位時鐘,CLR為清零信號,LOAD為數(shù)據(jù)鎖存信號,CS[15..0]為16分區(qū)的輸入信號(接譯碼器的輸出),DATA_OUT[15..0]為16路的串行數(shù)據(jù)輸出。本文引用地址:http://www.ex-cimer.com/article/169049.htm
3.6 脈沖發(fā)生器
系統(tǒng)采用1/16的掃描方式,把數(shù)據(jù)分為16分區(qū),16分區(qū)數(shù)據(jù)同時傳送。假設(shè)刷新的頻率為60 Hz(即周期為16.67 ms),每一行顯示的時間約為16.67 ms/16=1.04 ms。每行有1024位,則移位脈沖周期為1.04/1024=1.02 μs,即移位頻率為0.983 MHz以上才能滿足要求。由于移位脈沖是數(shù)據(jù)讀取模塊時鐘的2分頻,因此系統(tǒng)的時鐘至少1.97 MHz以上,本系統(tǒng)采用50 MHz時鐘源。其時序圖如圖7所示。
其中,RDCLK為FPGA讀取數(shù)據(jù)時鐘;SCLK是串行輸出的移位時鐘,是RDCLK的2分頻;LOAD是數(shù)據(jù)鎖存信號,每次讀完16個分區(qū)中的某個字節(jié)數(shù)據(jù)DATA后產(chǎn)生鎖存信號,數(shù)據(jù)鎖存在數(shù)據(jù)鎖存器組中,其時鐘是RDCLK的16分頻。
4 FPGA控制模塊的仿真測試
在QuartusII 5.1中建立一個工程,并建立原理圖文件,把單片機與FPGA接口及數(shù)據(jù)讀寫模塊、讀地址發(fā)生器、譯碼器、行地址發(fā)生器、數(shù)據(jù)鎖存器、移位寄存器、脈沖發(fā)生器等單元模塊所生的模塊元件符號連接起來,構(gòu)成總控制模塊邏輯圖并對其功能仿真。仿真結(jié)果如圖8所示,從存儲器中讀取16字節(jié)數(shù)據(jù),經(jīng)并串轉(zhuǎn)換輸出16路的串行數(shù)據(jù)。從波形圖分析,功能正確,且各輸出端口信號均符合時序要求。
結(jié)語
FPGA是在線可編程芯片,可以根據(jù)不同的用戶要求進行不同的編程,縮短了系統(tǒng)的開發(fā)周期并節(jié)約了硬件的開發(fā)成本。本文以FPGA為主芯片,較完整地設(shè)計了大屏幕LED單色圖文顯示屏控制系統(tǒng)。隨著LED顯示屏技術(shù)的發(fā)展,F(xiàn)PGA與ARM或DSP等芯片的組合,必將在雙色顯示屏和彩色顯示屏領(lǐng)域獲得廣泛的應(yīng)用。
評論