摘要:介紹LED顯示屏的工作原理,提出大屏幕LED圖文顯示屏控制系統MCU+FPGA的設計方案。單片機系統負責接收和存儲上位機LED點(diǎn)陣數據,FPGA控制器完成顯示數據的轉換、動(dòng)態(tài)掃描并驅動(dòng)大屏幕LED顯示屏。FPGA控制器由VHDL語(yǔ)言編程實(shí)現,并在QuartuslI中仿真測試通過(guò)。整個(gè)系統外圍電路簡(jiǎn)單,易于擴展。 引言 目前,市場(chǎng)上的中小規模LED顯示系統,一般采用傳統的單片機作為主控芯片。對LED大屏幕顯示屏來(lái)說(shuō),由于數據傳輸量大,要求掃描速度快,而單片機內部的資源較少、運行速度較慢,難于滿(mǎn)足系統要求。以FPGA作為控制器,一方面,FPGA采用軟件編程實(shí)現硬件功能,速度較快;另一方面,它的引腳資源豐富,可擴展性強。因此,用單片FPGA和簡(jiǎn)單的外圍電路就可以實(shí)現大屏幕LED顯示屏的控制,無(wú)需另外設計漢字庫,具有集成度高、穩定性好、設計靈活和效率高等優(yōu)點(diǎn)。 1 系統總體結構 ![]() 2 LED顯示屏基本工作原理 ![]() 256×1024大屏幕顯示屏由16×32個(gè)的16×32點(diǎn)陣屏級聯(lián)而成。為了縮短控制系統到屏體的信號傳輸時(shí)間,將顯示數據分為16個(gè)區,每個(gè)區由16×1024點(diǎn)陣組成,每行數據為1024/8=128字節,顯示屏的像素信號由LED顯示屏的右側向左側傳輸移位,把16個(gè)分區的數據存在同一塊存儲器。一屏的顯示數據為32 KB,要準確讀出16個(gè)分區的數據,其存儲器的讀地址由16位組成,由于數據只有32 KB,因此最高可置為0。其余15位地址從高到低依次為:行地址(4位)、列地址(7位)、分區地址(4位)。4位分區地址的譯碼信號(Y0~Y15)作為鎖存器的鎖存脈沖,在16個(gè)讀地址發(fā)生周期內,依次將第1~16分區的第1字節數據鎖存到相應的鎖存器,然后在移位鎖存信號上升沿將該16字節數據同時(shí)鎖存入16個(gè)8位并轉串移位寄存器組中。在下一個(gè)16個(gè)讀地址發(fā)生時(shí)鐘周期,一方面,并轉串移位寄存器將8位數據移位串行輸出,移位時(shí)鐘為讀地址發(fā)生時(shí)鐘的二分頻;另一方面,依次將16個(gè)分區的第2字節數據讀出并鎖入相應的鎖存器,按照這種規律將所有分區的第一行數據依次全部讀出后,在數據有效脈沖信號的上升沿將所有串行移位數據輸出,驅動(dòng)LED顯示。接下來(lái),移位輸出第2行的數據,在此期間第1行保持顯示;第2行全部移入后,驅動(dòng)第2行顯示,同時(shí)移入第3行……按照這種各分區分行掃描的方式完成整個(gè)LED大屏幕的掃描顯示。 3 基于FPGA顯示屏控制器的設計 3.1 FPGA控制模塊總體方案 ![]() 如圖3所示,FPGA控制模塊主要由單片機與FPGA接口及數據讀寫(xiě)模塊、讀地址發(fā)生器、譯碼器、行地址發(fā)生器、數據鎖存器組、移位寄存器組、脈沖發(fā)生器等模塊組成。 讀地址發(fā)生器主要產(chǎn)生讀地址信號,地址信號送往MCU接口及數據讀寫(xiě)模塊,讀取外部SRAM1或SRAM2中已處理好的LED顯示屏數據,并把數據按分區方式送到數據鎖存器組鎖存。鎖存器輸出16分區數據,通過(guò)移位寄存器組實(shí)現并串轉換得到顯示屏所需要的串行數據,并送往LED顯示屏列驅動(dòng)電路。脈沖發(fā)生器為各模塊提供相應的同步時(shí)鐘,行地址發(fā)生器產(chǎn)生相應的行信號送往顯示屏的行驅動(dòng)電路。 3.2 單片機與FPGA接口及數據讀寫(xiě)模塊 ![]() 單片機與FPGA接口及數據讀寫(xiě)模塊結構如圖4所示。單片機從EEPROM中讀取數據并根據顯示要求進(jìn)行處理后,通過(guò)接口及數據讀寫(xiě)模塊把數據送往數據緩沖器SRAM1或SRAM2。為提高數據的傳輸速度,保證顯示效果的連續性,在系統中采用雙體切換技術(shù)來(lái)完成數據存儲過(guò)程。也就是說(shuō),采用雙SRAM存儲結構,兩套完全獨立的讀、寫(xiě)地址線(xiàn)和數據線(xiàn)輪流切換進(jìn)行讀寫(xiě)。工作時(shí),FPGA在一個(gè)特定的時(shí)間只從兩塊SRAM中的一塊讀取顯示的數據進(jìn)行顯示,同時(shí)另外一塊SRAM與MCU進(jìn)行數據交換。MCU會(huì )寫(xiě)入新的數據,依次交替工作,可實(shí)現左移、上移、雙屏等顯示模式。如果顯示的內容不改變,即一塊SRAM里的數據不變時(shí),MCU不需要給另外一塊SRAM寫(xiě)數據。 ![]() 該模塊采用VHDL有限狀態(tài)機來(lái)實(shí)現,整個(gè)控制分為4個(gè)狀態(tài),其狀態(tài)轉換圖如圖5所示。其工作過(guò)程如下:系統開(kāi)機進(jìn)入初始狀態(tài)ST0,單片機的寫(xiě)入使能端E為低電平,單片機從EEPROM中讀取數據并把數據寫(xiě)入到SRAM1,同時(shí)FPGA讀取SRAM2中的數據;當單片機數據寫(xiě)完一屏數據后E變?yōu)楦唠娖,當FPGA從SRAM2中讀完數據、結束信號READ_END為低電平時(shí),進(jìn)入ST1狀態(tài)。 在ST1狀態(tài)下,若沒(méi)有新的數據寫(xiě)入則E保持高電平,FPGA讀取SRAM1的數據,為靜態(tài)顯示;只有當單片機的讀入控制信號E為低電平且READ_END為低電平時(shí),進(jìn)入ST2狀態(tài)。在ST2狀態(tài)下,單片機把數據寫(xiě)入SRAM2,同時(shí)FPGA讀取SRAM1的數據,單片機數據寫(xiě)完后E變?yōu)楦唠娖,當FPGA一屏數據讀完后READ_END為低電平,進(jìn)入ST3狀態(tài)。在ST3狀態(tài)下,如果沒(méi)有新數據寫(xiě)入E為高電平,FPGA讀取SRAM2中的數據。當單片機有新的數據寫(xiě)入時(shí)E變?yōu)榈碗娖,當FPGA一屏數據讀完后READ_END為低電平時(shí),重新進(jìn)入ST0狀態(tài)。通過(guò)這種周而復始的交替工作完成數據的寫(xiě)入與讀取,其端口程序如下: 3.3 讀地址發(fā)生器 讀地址發(fā)生器主要產(chǎn)生外部緩存器SRAM1(SRAM2)的讀地址信號,使系統能正確地從存儲器中讀取相應的顯示數據。其地址最高位為0,其余地址分別為行地址(hang[3..0])、列地址(lie[6..0])、分區地址(qu[3..0])15位有效地址信號。在16個(gè)脈沖周期內讀出在SRAM1(SRAM2)中的16字節數據,其部分VHDL源程序如下: ![]() ![]() ![]() 3.4 譯碼器 譯碼器模塊主要是產(chǎn)生16路的分區信號(低電平有效)分別控制16個(gè)鎖存器,把16個(gè)分區的顯示數據分別鎖存在相應的鎖存器中。 3.5 數據鎖存器組及移位寄存器組模塊 數據鎖存器組模塊由16個(gè)8位鎖存器組成鎖存器組,鎖存16個(gè)分區的數據。移位寄存器組模塊由16個(gè)8位移位寄存器組成,把各路鎖存器中8位并行數據轉換成同時(shí)輸出的16路串行數據,驅動(dòng)LED顯示屏,實(shí)現數據的并串轉換。 ![]() 其生成的元件符號如圖6所示。其中,DATA IN[7..0]為每個(gè)分區的8位并行數據輸入,SCLK為移位時(shí)鐘,CLR為清零信號,LOAD為數據鎖存信號,CS[15..0]為16分區的輸入信號(接譯碼器的輸出),DATA_OUT[15..0]為16路的串行數據輸出。 3.6 脈沖發(fā)生器 系統采用1/16的掃描方式,把數據分為16分區,16分區數據同時(shí)傳送。假設刷新的頻率為60 Hz(即周期為16.67 ms),每一行顯示的時(shí)間約為16.67 ms/16=1.04 ms。每行有1024位,則移位脈沖周期為1.04/1024=1.02 μs,即移位頻率為0.983 MHz以上才能滿(mǎn)足要求。由于移位脈沖是數據讀取模塊時(shí)鐘的2分頻,因此系統的時(shí)鐘至少1.97 MHz以上,本系統采用50 MHz時(shí)鐘源。其時(shí)序圖如圖7所示。 ![]() 其中,RDCLK為FPGA讀取數據時(shí)鐘;SCLK是串行輸出的移位時(shí)鐘,是RDCLK的2分頻;LOAD是數據鎖存信號,每次讀完16個(gè)分區中的某個(gè)字節數據DATA后產(chǎn)生鎖存信號,數據鎖存在數據鎖存器組中,其時(shí)鐘是RDCLK的16分頻。 4 FPGA控制模塊的仿真測試 在QuartusII 5.1中建立一個(gè)工程,并建立原理圖文件,把單片機與FPGA接口及數據讀寫(xiě)模塊、讀地址發(fā)生器、譯碼器、行地址發(fā)生器、數據鎖存器、移位寄存器、脈沖發(fā)生器等單元模塊所生的模塊元件符號連接起來(lái),構成總控制模塊邏輯圖并對其功能仿真。仿真結果如圖8所示,從存儲器中讀取16字節數據,經(jīng)并串轉換輸出16路的串行數據。從波形圖分析,功能正確,且各輸出端口信號均符合時(shí)序要求。 ![]() 結語(yǔ) FPGA是在線(xiàn)可編程芯片,可以根據不同的用戶(hù)要求進(jìn)行不同的編程,縮短了系統的開(kāi)發(fā)周期并節約了硬件的開(kāi)發(fā)成本。本文以FPGA為主芯片,較完整地設計了大屏幕LED單色圖文顯示屏控制系統。隨著(zhù)LED顯示屏技術(shù)的發(fā)展,FPGA與ARM或DSP等芯片的組合,必將在雙色顯示屏和彩色顯示屏領(lǐng)域獲得廣泛的應用。 |
學(xué)習了。! |
看一下 |
學(xué)習了 |
謝謝樓主分享! |
學(xué)習了 |