《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種基于MCU+FPGA的LED大屏幕控制系統(tǒng)的設(shè)計
一種基于MCU+FPGA的LED大屏幕控制系統(tǒng)的設(shè)計
摘要: 引言只要在現(xiàn)在的市場上走一圈就會發(fā)現(xiàn),大部分的中小規(guī)模LED顯示系統(tǒng),采用的是傳統(tǒng)的單片機作為主控芯片。但是內(nèi)部資源較少、運行速度較慢的單片機,很難滿足LED大屏幕的顯示屏,因為系統(tǒng)要求數(shù)據(jù)傳輸量大,掃描速度要快。以FPGA作為控制器,一方面,F(xiàn)PGA采用軟件編程實現(xiàn)硬件功能,可以有效提高運行速度;另一方面,它的引腳資源豐富,可擴展性強。因此,用單片F(xiàn)PGA和簡單的外圍電路就可以實現(xiàn)大屏幕LED顯示屏的控制,具有集成度高、穩(wěn)定性好、設(shè)計靈活和效率高等優(yōu)點。1系統(tǒng)總體結(jié)構(gòu)LED大屏幕顯示系統(tǒng)由上位機(PC機)、單片機系統(tǒng)、FPGA控制器、LED顯示屏的行列驅(qū)動電路等模塊組成,如圖1所示。上位機負責漢字、字符等數(shù)據(jù)的采集與發(fā)送。單片機系統(tǒng)與上位機之間以異步串行通信工作方式,通過串行端口從上位機獲得已完成格式轉(zhuǎn)換的待顯示的圖形點陣數(shù)據(jù),并將其存入EEPROM存儲器。之后通過FPGA控制器,將存儲器的顯示數(shù)據(jù)還原到LED顯示屏。掃描控制電路采用可編程邏輯芯片CycloneEP1C6,利用VHDL語言編程實現(xiàn),采用1/16掃描方式,刷新頻率在60Hz以上。本文著重介紹256×1024的單色圖文顯示屏的FPGA控制模塊。
Abstract:
Key words :

  引言

  只要在現(xiàn)在的市場上走一圈就會發(fā)現(xiàn),大部分的中小規(guī)模 LED 顯示系統(tǒng),采用的是傳統(tǒng)的單片機作為主控芯片。但是內(nèi)部資源較少、運行速度較慢的單片機,很難滿足LED大屏幕的顯示屏,因為系統(tǒng)要求數(shù)據(jù)傳輸量大,掃描速度要快。以FPGA作為控制器,一方面,F(xiàn)PGA采用軟件編程實現(xiàn)硬件功能,可以有效提高運行速度;另一方面,它的引腳資源豐富,可擴展性強。因此,用單片F(xiàn)PGA和簡單的外圍電路就可以實現(xiàn)大屏幕LED顯示屏的控制,具有集成度高、穩(wěn)定性好、設(shè)計靈活和效率高等優(yōu)點。

  1  系統(tǒng)總體結(jié)構(gòu)

  LED大屏幕顯示系統(tǒng)由上位機(PC機)、單片機系統(tǒng)、FPGA控制器、LED顯示屏的行列驅(qū)動電路等模塊組成,如圖1所示。上位機負責漢字、字符等數(shù)據(jù)的采集與發(fā)送。單片機系統(tǒng)與上位機之間以異步串行通信工作方式,通過串行端口從上位機獲得已完成格式轉(zhuǎn)換的待顯示的圖形點陣數(shù)據(jù),并將其存入EEPROM存儲器。之后通過FPGA控制器,將存儲器的顯示數(shù)據(jù)還原到LED顯示屏。掃描控制電路采用可編程邏輯芯片Cyclone EP1C6,利用VHDL語言編程實現(xiàn),采用1/16掃描方式,刷新頻率在60 Hz以上。本文著重介紹256×1024的單色圖文顯示屏的FPGA控制模塊。

系統(tǒng)總體結(jié)構(gòu)框圖

  圖1  系統(tǒng)總體結(jié)構(gòu)框圖

  2  LED顯示屏基本工作原理

  對大屏幕LED顯示屏來說,列顯示數(shù)據(jù)通常采用的是串行傳輸方式,行采用1/16的掃描方式。圖2為16×32點陣屏單元模塊的基本結(jié)構(gòu),列驅(qū)動電路采用4個74HC595級聯(lián)而成。在移位脈沖SRCLK的作用下,串行數(shù)據(jù)從74HC595的數(shù)據(jù)端口SER一位一位地輸入,當一行的所有32列數(shù)據(jù)傳送完后,輸出鎖存信號RCLK并選通行信號Y0,則第1行的各列數(shù)據(jù)就可按要求顯示。按同樣的方法顯示其余各行,當16行數(shù)據(jù)掃描一遍(即完成一個周期)后,再從第1行開始下一個周期的掃描。只要掃描的周期小于20 ms,顯示屏就不閃爍。

16×32點陣屏基本結(jié)構(gòu)

  圖2  16×32點陣屏基本結(jié)構(gòu)

  256×1024大屏幕顯示屏由16×32個的16×32點陣屏級聯(lián)而成。為了縮短控制系統(tǒng)到屏體的信號傳輸時間,將顯示數(shù)據(jù)分為16個區(qū),每個區(qū)由16×1024點陣組成,每行數(shù)據(jù)為1024/8=128字節(jié),顯示屏的像素信號由LED顯示屏的右側(cè)向左側(cè)傳輸移位,把16個分區(qū)的數(shù)據(jù)存在同一塊存儲器。一屏的顯示數(shù)據(jù)為32 KB,要準確讀出16個分區(qū)的數(shù)據(jù),其存儲器的讀地址由16位組成,由于數(shù)據(jù)只有32 KB,因此最高可置為0。其余15位地址從高到低依次為:行地址(4位)、列地址(7位)、分區(qū)地址(4位)。4位分區(qū)地址的譯碼信號(Y0~Y15)作為鎖存器的鎖存脈沖,在16個讀地址發(fā)生周期內(nèi),依次將第1~16分區(qū)的第1字節(jié)數(shù)據(jù)鎖存到相應(yīng)的鎖存器,然后在移位鎖存信號上升沿將該16字節(jié)數(shù)據(jù)同時鎖存入16個8位并轉(zhuǎn)串移位寄存器組中。在下一個16個讀地址發(fā)生時鐘周期,一方面,并轉(zhuǎn)串移位寄存器將8位數(shù)據(jù)移位串行輸出,移位時鐘為讀地址發(fā)生時鐘的二分頻;另一方面,依次將16個分區(qū)的第2字節(jié)數(shù)據(jù)讀出并鎖入相應(yīng)的鎖存器,按照這種規(guī)律將所有分區(qū)的第一行數(shù)據(jù)依次全部讀出后,在數(shù)據(jù)有效脈沖信號的上升沿將所有串行移位數(shù)據(jù)輸出,驅(qū)動LED顯示。接下來,移位輸出第2行的數(shù)據(jù),在此期間第1行保持顯示;第2行全部移入后,驅(qū)動第2行顯示,同時移入第3行……按照這種各分區(qū)分行掃描的方式完成整個LED大屏幕的掃描顯示。

  3  基于FPGA顯示屏控制器的設(shè)計

  3.1  FPGA控制模塊總體方案

  如圖3所示,F(xiàn)PGA控制模塊主要由單片機與FPGA接口及數(shù)據(jù)讀寫模塊、讀地址發(fā)生器、譯碼器、行地址發(fā)生器、數(shù)據(jù)鎖存器組、移位寄存器組、脈沖發(fā)生器等模塊組成。

 FPGA控制模塊總體結(jié)構(gòu)框圖

  圖3  FPGA控制模塊總體結(jié)構(gòu)框圖

  讀地址發(fā)生器主要產(chǎn)生讀地址信號,地址信號送往MCU接口及數(shù)據(jù)讀寫模塊,讀取外部SRAM1或SRAM2中已處理好的LED顯示屏數(shù)據(jù),并把數(shù)據(jù)按分區(qū)方式送到數(shù)據(jù)鎖存器組鎖存。鎖存器輸出16分區(qū)數(shù)據(jù),通過移位寄存器組實現(xiàn)并串轉(zhuǎn)換得到顯示屏所需要的串行數(shù)據(jù),并送往LED顯示屏列驅(qū)動電路。脈沖發(fā)生器為各模塊提供相應(yīng)的同步時鐘,行地址發(fā)生器產(chǎn)生相應(yīng)的行信號送往顯示屏的行驅(qū)動電路。

  3.2  單片機與FPGA接口及數(shù)據(jù)讀寫模塊

  單片機與FPGA接口及數(shù)據(jù)讀寫模塊結(jié)構(gòu)如圖4所示。單片機從EEPROM中讀取數(shù)據(jù)并根據(jù)顯示要求進行處理后,通過接口及數(shù)據(jù)讀寫模塊把數(shù)據(jù)送往數(shù)據(jù)緩沖器SRAM1或SRAM2。為提高數(shù)據(jù)的傳輸速度,保證顯示效果的連續(xù)性,在系統(tǒng)中采用雙體切換技術(shù)來完成數(shù)據(jù)存儲過程。也就是說,采用雙SRAM存儲結(jié)構(gòu),兩套完全獨立的讀、寫地址線和數(shù)據(jù)線輪流切換進行讀寫。工作時,F(xiàn)PGA在一個特定的時間只從兩塊SRAM中的一塊讀取顯示的數(shù)據(jù)進行顯示,同時另外一塊SRAM與MCU進行數(shù)據(jù)交換。MCU會寫入新的數(shù)據(jù),依次交替工作,可實現(xiàn)左移、上移、雙屏等顯示模式。如果顯示的內(nèi)容不改變,即一塊SRAM里的數(shù)據(jù)不變時,MCU不需要給另外一塊SRAM寫數(shù)據(jù)。

單片機與FPGA接口及數(shù)據(jù)讀寫模塊結(jié)構(gòu)框圖

  圖4  單片機與FPGA接口及數(shù)據(jù)讀寫模塊結(jié)構(gòu)框圖

數(shù)據(jù)讀寫狀態(tài)轉(zhuǎn)換圖

  圖5  數(shù)據(jù)讀寫狀態(tài)轉(zhuǎn)換圖

  該模塊采用VHDL有限狀態(tài)機來實現(xiàn),整個控制分為4個狀態(tài),其狀態(tài)轉(zhuǎn)換圖如圖5所示。其工作過程如下:系統(tǒng)開機進入初始狀態(tài)ST0,單片機的寫入使能端E為低電平,單片機從EEPROM中讀取數(shù)據(jù)并把數(shù)據(jù)寫入到SRAM1,同時FPGA讀取SRAM2中的數(shù)據(jù);當單片機數(shù)據(jù)寫完一屏數(shù)據(jù)后E變?yōu)楦唠娖剑擣PGA從SRAM2中讀完數(shù)據(jù)、結(jié)束信號READ_END為低電平時,進入ST1狀態(tài)。

  在ST1狀態(tài)下,若沒有新的數(shù)據(jù)寫入則E保持高電平,F(xiàn)PGA讀取SRAM1的數(shù)據(jù),為靜態(tài)顯示;只有當單片機的讀入控制信號E為低電平且READ_END為低電平時,進入ST2狀態(tài)。在ST2狀態(tài)下,單片機把數(shù)據(jù)寫入SRAM2,同時FPGA讀取SRAM1的數(shù)據(jù),單片機數(shù)據(jù)寫完后E變?yōu)楦唠娖剑擣PGA一屏數(shù)據(jù)讀完后READ_END為低電平,進入ST3狀態(tài)。在ST3狀態(tài)下,如果沒有新數(shù)據(jù)寫入E為高電平,F(xiàn)PGA讀取SRAM2中的數(shù)據(jù)。當單片機有新的數(shù)據(jù)寫入時E變?yōu)榈碗娖剑擣PGA一屏數(shù)據(jù)讀完后READ_END為低電平時,重新進入ST0狀態(tài)。通過這種周而復始的交替工作完成數(shù)據(jù)的寫入與讀取,其端口程序如下:

  ENTITY WRITEREAD_SEL IS

  PORT(

  REST:IN STD_LOGIC;

  CLK:IN STD_LOGIC;

  E:IN STD_LOGIC; 單片機寫入標記

  WR:IN STD_LOGIC;單片機寫控制信號

  ADDR_WR:IN STD_LOGIC_VECTOR(15 DOWNTO 0);單片機寫地址信號

  ADDR_RD:IN STD_LOGIC_VECTOR(15 DOWNTO 0);讀地址信號

  DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);單片機寫入數(shù)據(jù)

  READ_END:IN STD_LOGIC;讀一屏數(shù)據(jù)結(jié)束標記

  D1,D2:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);SRAM數(shù)據(jù)

  AD1,AD2:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);SRAM地址

  WR1,WR2:OUT STD_LOGIC;SRAM的寫控制信號

  OE1,OE2:OUT STD_LOGIC; SRAM的讀控制信號

  DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));輸出數(shù)據(jù)

  END ENTITY WRITEREAD_SEL;

  3.3  讀地址發(fā)生器

  讀地址發(fā)生器主要產(chǎn)生外部緩存器SRAM1(SRAM2)的讀地址信號,使系統(tǒng)能正確地從存儲器中讀取相應(yīng)的顯示數(shù)據(jù)。其地址最高位為0,其余地址分別為行地址(hang[30])、列地址(lie[60])、分區(qū)地址(qu[30])15位有效地址信號。在16個脈沖周期內(nèi)讀出在SRAM1(SRAM2)中的16字節(jié)數(shù)據(jù),其部分VHDL源程序如下:

  ENTITY addressIS

  PORT(

  RDCLK:IN STD_LOGIC;讀地址時鐘信號

  CLR,ADDR_EN:IN STD_LOGIC;清零及使能控制信號

  READ_END:OUT STD_LOGIC;一屏數(shù)據(jù)讀完信號

  ADDR_RD:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));產(chǎn)生的讀地址信號

  END ENTITY address;

  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[70]為每個分區(qū)的8位并行數(shù)據(jù)輸入,SCLK為移位時鐘,CLR為清零信號,LOAD為數(shù)據(jù)鎖存信號,CS[150]為16分區(qū)的輸入信號(接譯碼器的輸出),DATA_OUT[150]為16路的串行數(shù)據(jù)輸出。

并串轉(zhuǎn)換元件符號圖

  圖6  并串轉(zhuǎn)換元件符號圖

  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所示。

時鐘產(chǎn)生時序圖

圖7  時鐘產(chǎn)生時序圖

  其中,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ù)。從波形圖分析,功能正確,且各輸出端口信號均符合時序要求。

FPGA控制模塊仿真圖
 

  圖8  FPGA控制模塊仿真圖

  5 結(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)用。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产日韩欧美不卡| 亚洲精品久久视频| 欧美精品一区二区高清在线观看| 欧美制服丝袜| 午夜精品福利在线观看| 亚洲一区二区在线视频| av成人激情| 一个色综合导航| 日韩一级在线| 99精品久久| aa亚洲婷婷| 夜夜嗨av一区二区三区四季av| 亚洲免费大片| 夜夜嗨av一区二区三区网页| 夜夜嗨av一区二区三区网页 | 亚洲激情av在线| 久久激情中文| 亚洲高清资源综合久久精品| 久久国产精品高清| 亚洲电影有码| 亚洲啪啪91| 亚洲精品视频在线观看网站 | 欧美一区二区三区男人的天堂 | 狠狠入ady亚洲精品经典电影| 国产一区二区在线免费观看| 韩国精品主播一区二区在线观看| 国产综合色产| 在线免费观看一区二区三区| 亚洲国产婷婷| 一区二区三区高清在线 | 午夜视频一区在线观看| 久久国产精品亚洲77777| 亚洲高清二区| 日韩视频中文字幕| 亚洲香蕉在线观看| 欧美在现视频| 麻豆精品视频| 欧美三级日本三级少妇99| 国产精品丝袜白浆摸在线| 国产一区三区三区| 91久久精品一区二区三区| 在线视频欧美一区| 午夜精品久久久久久久99樱桃| 久久成人亚洲| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美视频| 老司机免费视频一区二区| 欧美日韩成人| 国产一区av在线| 亚洲人午夜精品| 亚洲免费中文字幕| 亚洲国产清纯| 亚洲一区二区三区在线播放| 久久精品一区二区三区不卡| 欧美成人性生活| 国产精品久久久久高潮| 国产综合精品一区| 日韩视频在线永久播放| 午夜精品影院| 99热精品在线| 久久久精品国产99久久精品芒果| 欧美人成网站| 国产午夜精品久久| 亚洲美女av在线播放| 欧美一二三区精品| 一区二区日韩| 久久久久久久成人| 欧美日韩中文| 红桃视频国产一区| 在线亚洲电影| 亚洲精品国产精品国自产观看浪潮 | 伊人久久综合| 亚洲综合日韩在线| 亚洲欧洲一级| 久久国内精品视频| 欧美视频中文在线看| 在线观看欧美视频| 亚洲欧美日韩一区二区在线| 亚洲毛片在线| 久久久久99| 国产精品久久久久久福利一牛影视 | 在线精品国精品国产尤物884a| 亚洲天堂网在线观看| 日韩午夜一区| 久热精品视频在线| 国产欧美日韩综合| 一本色道久久综合| 亚洲精品久久久久久久久久久| 久久se精品一区精品二区| 欧美网站大全在线观看| 亚洲国产精品一区二区三区| 欧美一级专区| 午夜在线视频观看日韩17c| 欧美日本国产一区| 亚洲第一在线| 午夜在线不卡| 欧美一级黄色网| 欧美色视频一区| 亚洲毛片在线观看| 日韩一区二区久久| 欧美 日韩 国产 一区| 今天的高清视频免费播放成人 | 国产日韩精品在线观看| 亚洲午夜精品一区二区| 亚洲网在线观看| 欧美成人午夜激情视频| 在线成人欧美| 亚洲二区三区四区| 久久青青草原一区二区| 国产亚洲免费的视频看| 午夜一区二区三视频在线观看| 性伦欧美刺激片在线观看| 国产精品视频网| 亚洲欧美综合| 久久爱www.| 国产私拍一区| 欧美在线国产精品| 久久国产精品久久久久久电车| 国产精品一卡二| 亚洲欧美日韩在线| 久久岛国电影| 国产主播精品| 欧美自拍偷拍| 久久综合电影一区| 尤物视频一区二区| 91久久精品美女| 欧美激情91| 一片黄亚洲嫩模| 欧美亚洲免费在线| 国产日韩av一区二区| 久久国产色av| 欧美成人免费va影院高清| 亚洲激情在线观看| 一二三区精品| 国产精品久久久一区麻豆最新章节| 一区二区三区欧美视频| 午夜精品久久久久久久蜜桃app| 国产精品色网| 久久国产精品黑丝| 欧美激情亚洲综合一区| 亚洲精品中文字幕有码专区| 亚洲视频一二区| 国产欧美视频一区二区| 久久国产精品一区二区| 欧美激情国产日韩| 中文无字幕一区二区三区| 午夜精品久久久久久久99水蜜桃| 国产亚洲精品一区二区| 亚洲人精品午夜在线观看| 欧美三级在线播放| 欧美亚洲日本国产| 老司机午夜精品视频| 日韩视频精品| 久久精品国产视频| 亚洲电影激情视频网站| 亚洲一区二区三区成人在线视频精品| 国产精品视频大全| 91久久久国产精品| 国产精品wwwwww| 久久精品91久久久久久再现| 欧美极品在线视频| 亚洲欧美一区二区三区在线 | 欧美精品福利视频| 亚洲欧美激情诱惑| 欧美成人综合一区| 亚洲你懂的在线视频| 欧美成ee人免费视频| 亚洲婷婷综合色高清在线| 久久综合狠狠综合久久综青草 | 亚洲一区二区三区中文字幕| 久久人人爽人人爽爽久久| 亚洲免费观看高清在线观看| 欧美一级理论片| 亚洲国产精品电影| 性欧美在线看片a免费观看| 在线看国产一区| 性欧美1819性猛交| 亚洲精品美女免费| 久久久久综合| 亚洲视频axxx| 欧美承认网站| 欧美一区二区三区另类| 欧美日韩一区二区三区高清| 久久精品国产91精品亚洲| 欧美三级视频| 亚洲精品国产拍免费91在线| 国产精品亚洲综合久久| 一本久久a久久精品亚洲| 精品1区2区3区4区| 亚洲欧美日韩天堂一区二区| 亚洲国产合集| 久久久成人网| 亚洲制服欧美中文字幕中文字幕| 欧美国产日韩亚洲一区| 欧美一区二区三区电影在线观看| 欧美视频免费在线| 日韩小视频在线观看专区| 国产午夜精品在线| 亚洲女ⅴideoshd黑人| 亚洲国产91精品在线观看|