LED顯示屏控制系統(tǒng)的設(shè)計(jì)_第1頁(yè)
LED顯示屏控制系統(tǒng)的設(shè)計(jì)_第2頁(yè)
LED顯示屏控制系統(tǒng)的設(shè)計(jì)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

LED顯示屏控制系列設(shè)計(jì)關(guān)鍵字:MCUFPGALED顯示屏只要在現(xiàn)在的市場(chǎng)上走一圈就會(huì)發(fā)現(xiàn),大局部的中小規(guī)模LED顯示屏系統(tǒng),采用的是傳統(tǒng)的單片機(jī)作為主控芯片。但是內(nèi)部資源較少、運(yùn)行速度較慢的單片機(jī),很難滿足LED大屏幕的LED顯示屏,因?yàn)橄到y(tǒng)要求數(shù)據(jù)傳輸量大,掃描速度要快。以FPGA作為控制器,一方面,F(xiàn)PGA采用軟件編程實(shí)現(xiàn)硬件功能,可以有效提高運(yùn)行速度;另一方面,它的引腳資源豐富,可擴(kuò)展性強(qiáng)。因此,用單片F(xiàn)PGA和簡(jiǎn)單的外圍電路就可以實(shí)現(xiàn)大屏幕LED顯示屏的控制,具有集成度高、穩(wěn)定性好、設(shè)計(jì)靈活和效率高等優(yōu)點(diǎn)。1系統(tǒng)總體結(jié)構(gòu)LED大屏幕顯示系統(tǒng)由上位機(jī)〔PC機(jī)〕、單片機(jī)系統(tǒng)、FPGA控制器、LED顯示屏的行列驅(qū)動(dòng)電路等模塊組成,如圖1所示。上位機(jī)負(fù)責(zé)漢字、字符等數(shù)據(jù)的采集與發(fā)送。單片機(jī)系統(tǒng)與上位機(jī)之間以異步串行通信工作方式,通過(guò)串行端口從上位機(jī)獲得已完成格式轉(zhuǎn)換的待顯示的圖形點(diǎn)陣數(shù)據(jù),并將其存入EEPROM存儲(chǔ)器。之后通過(guò)FPGA控制器,將存儲(chǔ)器的顯示數(shù)據(jù)復(fù)原到LED顯示屏。掃描控制電路采用可編程邏輯芯片CycloneEP1C6,利用VHDL語(yǔ)言編程實(shí)現(xiàn),采用1/16掃描方式,刷新頻率在60Hz以上。本文著重介紹256×1024的單色圖文顯示屏的FPGA控制模塊。2LED顯示屏根本工作原理對(duì)大屏幕LED顯示屏來(lái)說(shuō),列顯示數(shù)據(jù)通常采用的是串行傳輸方式,行采用1/16的掃描方式。圖2為16×32點(diǎn)陣屏單元模塊的根本結(jié)構(gòu),列驅(qū)動(dòng)電路采用4個(gè)74HC595級(jí)聯(lián)而成。在移位脈沖SRCLK的作用下,串行數(shù)據(jù)從74HC595的數(shù)據(jù)端口SER一位一位地輸入,當(dāng)一行的所有32列數(shù)據(jù)傳送完后,輸出鎖存信號(hào)RCLK并選通行信號(hào)Y0,那么第1行的各列數(shù)據(jù)就可按要求顯示。按同樣的方法顯示其余各行,當(dāng)16行數(shù)據(jù)掃描一遍〔即完成一個(gè)周期〕后,再?gòu)牡?行開(kāi)始下一個(gè)周期的掃描。只要掃描的周期小于20ms,顯示屏就不閃爍。256×1024大屏幕顯示屏由16×32個(gè)的16×32點(diǎn)陣屏級(jí)聯(lián)而成。為了縮短控制系統(tǒng)到屏體的信號(hào)傳輸時(shí)間,將顯示數(shù)據(jù)分為16個(gè)區(qū),每個(gè)區(qū)由16×1024點(diǎn)陣組成,每行數(shù)據(jù)為1024/8=128字節(jié),顯示屏的像素信號(hào)由LED顯示屏的右側(cè)向左側(cè)傳輸移位,把16個(gè)分區(qū)的數(shù)據(jù)存在同一塊存儲(chǔ)器。一屏的顯示數(shù)據(jù)為32KB,要準(zhǔn)確讀出16個(gè)分區(qū)的數(shù)據(jù),其存儲(chǔ)器的讀地址由16位組成,由于數(shù)據(jù)只有32KB,因此最高可置為0。其余15位地址從高到低依次為:行地址〔4位〕、列地址〔7位〕、分區(qū)地址〔4位〕。4位分區(qū)地址的譯碼信號(hào)〔Y0~Y15〕作為鎖存器的鎖存脈沖,在16個(gè)讀地址發(fā)生周期內(nèi),依次將第1~16分區(qū)的第1字節(jié)數(shù)據(jù)鎖存到相應(yīng)的鎖存器,然后在移位鎖存信號(hào)上升沿將該16字節(jié)數(shù)據(jù)同時(shí)鎖存入16個(gè)8位并轉(zhuǎn)串移位存放器組中。在下一個(gè)16個(gè)讀地址發(fā)生時(shí)鐘周期,一方面,并轉(zhuǎn)串移位存放器將8位數(shù)據(jù)移位串行輸出,移位時(shí)鐘為讀地址發(fā)生時(shí)鐘的二分頻;另一方面,依次將16個(gè)分區(qū)的第2字節(jié)數(shù)據(jù)讀出并鎖入相應(yīng)的鎖存器,按照這種規(guī)律將所有分區(qū)的第一行數(shù)據(jù)依次全部讀出后,在數(shù)據(jù)有效脈沖信號(hào)的上升沿將所有串行移位數(shù)據(jù)輸出,驅(qū)動(dòng)LED顯示。接下來(lái),移位輸出第2行的數(shù)據(jù),在此期間第1行保持顯示;第2行全部移入后,驅(qū)動(dòng)第2行顯示,同時(shí)移入第3行……按照這種各分區(qū)分行掃描的方式完成整個(gè)LED大屏幕的掃描顯示。FPGA控制模塊主要由單片機(jī)與FPGA接口及數(shù)據(jù)讀寫(xiě)模塊、讀地址發(fā)生器、譯碼器、行地址發(fā)生器、數(shù)據(jù)鎖存器組、移位存放器組、脈沖發(fā)生器等模塊組成。圖3FPGA控制模塊總體結(jié)構(gòu)框圖讀地址發(fā)生器主要產(chǎn)生讀地址信號(hào),地址信號(hào)送往MCU接口及數(shù)據(jù)讀寫(xiě)模塊,讀取外部SRAM1或SRAM2中已處理好的LED顯示屏數(shù)據(jù),并把數(shù)據(jù)按分區(qū)方式送到數(shù)據(jù)鎖存器組鎖存。鎖存器輸出16分區(qū)數(shù)據(jù),通過(guò)移位存放器組實(shí)現(xiàn)并串轉(zhuǎn)換得到顯示屏所需要的串行數(shù)據(jù),并送往LED顯示屏列驅(qū)動(dòng)電路。脈沖發(fā)生器為各模塊提供相應(yīng)的同步時(shí)鐘,行地址發(fā)生器產(chǎn)生相應(yīng)的行信號(hào)送往顯示屏的行驅(qū)動(dòng)電路。3.2單片機(jī)與FPGA接口及數(shù)據(jù)讀寫(xiě)模塊單片機(jī)與FPGA接口及數(shù)據(jù)讀寫(xiě)模塊結(jié)構(gòu)如圖4所示。單片機(jī)從EEPROM中讀取數(shù)據(jù)并根據(jù)顯示要求進(jìn)行處理后,通過(guò)接口及數(shù)據(jù)讀寫(xiě)模塊把數(shù)據(jù)送往數(shù)據(jù)緩沖器SRAM1或SRAM2。為提高數(shù)據(jù)的傳輸速度,保證顯示效果的連續(xù)性,在系統(tǒng)中采用雙體切換技術(shù)來(lái)完成數(shù)據(jù)存儲(chǔ)過(guò)程。也就是說(shuō),采用雙SRAM存儲(chǔ)結(jié)構(gòu),兩套完全獨(dú)立的讀、寫(xiě)地址線和數(shù)據(jù)線輪流切換進(jìn)行讀寫(xiě)。工作時(shí),F(xiàn)PGA在一個(gè)特定的時(shí)間只從兩塊SRAM中的一塊讀取顯示的數(shù)據(jù)進(jìn)行顯示,同時(shí)另外一塊SRAM與MCU進(jìn)行數(shù)據(jù)交換。MCU會(huì)寫(xiě)入新的數(shù)據(jù),依次交替工作,可實(shí)現(xiàn)左移、上移、雙屏等顯示模式。如果顯示的內(nèi)容不改變,即一塊SRAM里的數(shù)據(jù)不變時(shí),MCU不需要給另外一塊SRAM寫(xiě)數(shù)據(jù)。該模塊采用VHDL有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn),整個(gè)控制分為4個(gè)狀態(tài),其狀態(tài)轉(zhuǎn)換圖如圖5所示。其工作過(guò)程如下:系統(tǒng)開(kāi)機(jī)進(jìn)入初始狀態(tài)ST0,單片機(jī)的寫(xiě)入使能端E為低電平,單片機(jī)從EEPROM中讀取數(shù)據(jù)并把數(shù)據(jù)寫(xiě)入到SRAM1,同時(shí)FPGA讀取SRAM2中的數(shù)據(jù);當(dāng)單片機(jī)數(shù)據(jù)寫(xiě)完一屏數(shù)據(jù)后E變?yōu)楦唠娖?,?dāng)FPGA從SRAM2中讀完數(shù)據(jù)、結(jié)束信號(hào)READ_END為低電平時(shí),進(jìn)入ST1狀態(tài)。在ST1狀態(tài)下,假設(shè)沒(méi)有新的數(shù)據(jù)寫(xiě)入那么E保持高電平,F(xiàn)PGA讀取SRAM1的數(shù)據(jù),為靜態(tài)顯示;只有當(dāng)單片機(jī)的讀入控制信號(hào)E為低電平且READ_END為低電平時(shí),進(jìn)入ST2狀態(tài)。在ST2狀態(tài)下,單片機(jī)把數(shù)據(jù)寫(xiě)入SRAM2,同時(shí)FPGA讀取SRAM1的數(shù)據(jù),單片機(jī)數(shù)據(jù)寫(xiě)完后E變?yōu)楦唠娖剑?dāng)FPGA一屏數(shù)據(jù)讀完后READ_END為低電平,進(jìn)入ST3狀態(tài)。在ST3狀態(tài)下,如果沒(méi)有新數(shù)據(jù)寫(xiě)入E為高電平,F(xiàn)PGA讀取SRAM2中的數(shù)據(jù)。當(dāng)單片機(jī)有新的數(shù)據(jù)寫(xiě)入時(shí)E變?yōu)榈碗娖?,?dāng)FPGA一屏數(shù)據(jù)讀完后READ_END為低電平時(shí),重新進(jìn)入ST0狀態(tài)。通過(guò)這種周而復(fù)始的交替工作完成數(shù)據(jù)的寫(xiě)入與讀取,其端口程序如下:ENTITYWRITEREAD_SELISPORT〔REST:INSTD_LOGIC;CLK:INSTD_LOGIC;E:INSTD_LOGIC;單片機(jī)寫(xiě)入標(biāo)記WR:INSTD_LOGIC;單片機(jī)寫(xiě)控制信號(hào)ADDR_WR:INSTD_LOGIC_VECTOR〔15DOWNTO0〕;單片機(jī)寫(xiě)地址信號(hào)ADDR_RD:INSTD_LOGIC_VECTOR〔15DOWNTO0〕;讀地址信號(hào)DIN:INSTD_LOGIC_VECTOR〔7DOWNTO0〕;單片機(jī)寫(xiě)入數(shù)據(jù)READ_END:INSTD_LOGIC;讀一屏數(shù)據(jù)結(jié)束標(biāo)記D1,D2:BUFFERSTD_LOGIC_VECTOR〔7DOWNTO0〕;SRAM數(shù)據(jù)AD1,AD2:OUTSTD_LOGIC_VECTOR〔15DOWNTO0〕;SRAM地址WR1,WR2:OUTSTD_LOGIC;SRAM的寫(xiě)控制信號(hào)OE1,OE2:OUTSTD_LOGIC;SRAM的讀控制信號(hào)DOUT:OUTSTD_LOGIC_VECTOR〔7DOWNTO0〕〕;輸出數(shù)據(jù)ENDENTITYWRITEREAD_SEL;3.3讀地址發(fā)生器讀地址發(fā)生器主要產(chǎn)生外部緩存器SRAM1〔SRAM2〕的讀地址信號(hào),使系統(tǒng)能正確地從存儲(chǔ)器中讀取相應(yīng)的顯示數(shù)據(jù)。其地址最高位為0,其余地址分別為行地址〔hang[30]〕、列地址〔lie[60]〕、分區(qū)地址〔qu[30]〕15位有效地址信號(hào)。在16個(gè)脈沖周期內(nèi)讀出在SRAM1〔SRAM2〕中的16字節(jié)數(shù)據(jù),其局部VHDL源程序如下:ENTITYaddressISPORT〔RDCLK:INSTD_LOGIC;讀地址時(shí)鐘信號(hào)CLR,ADDR_EN:INSTD_LOGIC;清零及使能控制信號(hào)READ_END:OUTSTD_LOGIC;一屏數(shù)據(jù)讀完信號(hào)ADDR_RD:OUTSTD_LOGIC_VECTOR〔15DOWNTO0〕〕;產(chǎn)生的讀地址信號(hào)ENDENTITYaddress;3.4譯碼器譯碼器模塊主要是產(chǎn)生16路的分區(qū)信號(hào)〔低電平有效〕分別控制16個(gè)鎖存器,把16個(gè)分區(qū)的顯示數(shù)據(jù)分別鎖存在相應(yīng)的鎖存器中。3.5數(shù)據(jù)鎖存器組及移位存放器組模塊數(shù)據(jù)鎖存器組模塊由16個(gè)8位鎖存器組成鎖存器組,鎖存16個(gè)分區(qū)的數(shù)據(jù)。移位存放器組模塊由16個(gè)8位移位存放器組成,把各路鎖存器中8位并行數(shù)據(jù)轉(zhuǎn)換成同時(shí)輸出的16路串行數(shù)據(jù),驅(qū)動(dòng)LED顯示屏,實(shí)現(xiàn)數(shù)據(jù)的并串轉(zhuǎn)換。其生成的元件符號(hào)如圖6所示。其中,DATA_IN[70]為每個(gè)分區(qū)的8位并行數(shù)據(jù)輸入,SCLK為移位時(shí)鐘,CLR為清零信號(hào),LOAD為數(shù)據(jù)鎖存信號(hào),CS[150]為16分區(qū)的輸入信號(hào)〔接譯碼器的輸出〕,DATA_OUT[150]為16路的串行數(shù)據(jù)輸出。圖6并串轉(zhuǎn)換元件符號(hào)圖3.6脈沖發(fā)生器系統(tǒng)采用1/16的掃描方式,把數(shù)據(jù)分為16分區(qū),16分區(qū)數(shù)據(jù)同時(shí)傳送。假設(shè)刷新的頻率為60Hz〔即周期為16.67ms〕,每一行顯示的時(shí)間約為16.67ms/16=1.04ms。每行有1024位,那么移位脈沖周期為1.04/1024=102μs,即移位頻率為0.983MHz以上才能滿足要求。由于移位脈沖是數(shù)據(jù)讀取模塊時(shí)鐘的2分頻,因此系統(tǒng)的時(shí)鐘至少1.97MHz以上,本系統(tǒng)采用50MHz時(shí)鐘源。其時(shí)序圖如圖7所示。圖7時(shí)鐘產(chǎn)生時(shí)序圖其中,RDCLK為FPGA讀取數(shù)據(jù)時(shí)鐘;SCLK是串行輸出的移位時(shí)鐘,是RDCLK的2分頻;LOAD是數(shù)據(jù)鎖存信號(hào),每次讀完16個(gè)分區(qū)中的某個(gè)字節(jié)數(shù)據(jù)DATA后產(chǎn)生鎖存信號(hào),數(shù)據(jù)鎖存在數(shù)據(jù)鎖存器組中,其時(shí)鐘是RDCLK的16分頻。4FPGA控制模塊的仿真測(cè)試在QuartusII5.1中建立一個(gè)工程,并建立原理圖文件,把單片機(jī)與FPGA接口及數(shù)據(jù)讀寫(xiě)模塊、讀地址發(fā)生器、譯碼器、行地址發(fā)生器、數(shù)據(jù)鎖存器、移位存放器、脈沖發(fā)生器等單元模塊所生的模塊元件符號(hào)連接起來(lái),構(gòu)成總控制模塊邏輯圖并對(duì)其功能仿真。仿真結(jié)果如圖8所示,從存儲(chǔ)器中讀取16字節(jié)數(shù)據(jù),經(jīng)并串轉(zhuǎn)換

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論