国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的LED點(diǎn)陣顯示控制方法

2019-04-28 12:24蔣中榮甘俊杰歐偉明
現(xiàn)代電子技術(shù) 2019年24期
關(guān)鍵詞:硬件設(shè)計(jì)

蔣中榮 甘俊杰 歐偉明

摘 要:為了研制基于FPGA的LED點(diǎn)陣顯示系統(tǒng),文中論述顯示系統(tǒng)的硬件設(shè)計(jì)方案,給出16x16 LED點(diǎn)陣與FPGA芯片的接口電路,詳細(xì)介紹FPGA的基于IP核的設(shè)計(jì)方法。顯示數(shù)據(jù)存放在FPGA片內(nèi),其內(nèi)部的控制邏輯單元與ROM存儲(chǔ)器分別進(jìn)行設(shè)計(jì),很方便地實(shí)現(xiàn)了22個(gè)字符的左移動(dòng)態(tài)掃描顯示。充分利用了FPGA運(yùn)行速度快、I/O引腳多、設(shè)計(jì)靈活的特點(diǎn),該文提出的LED點(diǎn)陣顯示控制方法具有較好的實(shí)際應(yīng)用價(jià)值。

關(guān)鍵詞:LED;點(diǎn)陣顯示;硬件設(shè)計(jì);動(dòng)態(tài)掃描;存儲(chǔ)機(jī)制;硬件調(diào)試

中圖分類號(hào):TN873.3-34

文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1004-373X(2019)24-0016-04

0 引言

隨著科學(xué)技術(shù)的發(fā)展進(jìn)步,現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)作為嵌入式的一種,被廣泛應(yīng)用于各個(gè)領(lǐng)域[1-2]。FPGA擁有豐富的硬件資源,具有較強(qiáng)的可重配置能力和靈活的設(shè)計(jì)方式,已經(jīng)成為嵌入式系統(tǒng)設(shè)計(jì)的主流硬件平臺(tái)之一。與數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)相比,F(xiàn)PGA能夠?qū)崿F(xiàn)數(shù)字信號(hào)處理算法硬件流水或復(fù)雜的數(shù)字控制,可以滿足高速數(shù)字控制和硬件系統(tǒng)高度集成化的需求;與單片機(jī)( Micro-Controller Unit,MCU)或者是ARM相比[3-4],F(xiàn)PGA具有更豐富的I/0引腳和更高速的性能,并且FPGA是純硬件電路實(shí)現(xiàn),工作時(shí)沒(méi)有CPU程序運(yùn)行,從而可以提高系統(tǒng)可靠性和工作速度。

LED點(diǎn)陣顯示屏是隨著計(jì)算機(jī)技術(shù)、半導(dǎo)體微電子技術(shù)、光電子技術(shù)的迅猛發(fā)展而形成的一種新型信息顯示媒體,它利用發(fā)光二極管構(gòu)成的點(diǎn)陣模塊或像素單元組成可變面積的顯示屏幕,以可靠性高、使用壽命長(zhǎng)、環(huán)境適應(yīng)能力強(qiáng)、性價(jià)比高、使用成本低等特點(diǎn),迅速成長(zhǎng)為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用[5-10l。近幾年有關(guān)LED點(diǎn)陣顯示屏的研究論文,主要基于MCU和ARM實(shí)現(xiàn)[3-4],存在運(yùn)行速度慢、控制單元與LED點(diǎn)陣顯示屏的接口電路復(fù)雜等不足。本文研究基于FPGA的LED點(diǎn)陣顯示控制方法,充分利用FPGA運(yùn)行速度快、I/0引腳多、設(shè)計(jì)靈活的特點(diǎn),以FPGA控制16x16 LED點(diǎn)陣實(shí)現(xiàn)左移字符串顯示為例,介紹系統(tǒng)的整體結(jié)構(gòu)、FPGA芯片與LED點(diǎn)陣的接口電路、FPGA基于IP核的設(shè)計(jì)方法。

1 系統(tǒng)硬件設(shè)計(jì)方案

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

基于FPGA的LED點(diǎn)陣字符和圖像顯示系統(tǒng),由FPGA和LED點(diǎn)陣兩部分組成,如圖1所示。FPGA向LED點(diǎn)陣發(fā)送顯示數(shù)據(jù)和掃描信號(hào),控制LED點(diǎn)陣的工作,實(shí)現(xiàn)字符和圖像的顯示。

FPGA芯片內(nèi)部由3個(gè)單元電路組成:時(shí)鐘邏輯單元產(chǎn)生起同步作用的系統(tǒng)時(shí)鐘脈沖信號(hào);存儲(chǔ)器ROM單元用于存放顯示數(shù)據(jù),是基于FPGA的IP核而實(shí)現(xiàn)的,其中的顯示數(shù)據(jù)決定于所顯示的內(nèi)容,顯示內(nèi)容包括字符或者圖像;控制邏輯單元產(chǎn)生讀取存儲(chǔ)器ROM的地址信號(hào)和控制LED點(diǎn)陣的掃描信號(hào),是基于FPGA的文本設(shè)計(jì)輸入方法實(shí)現(xiàn)的,如何完成其設(shè)計(jì)取決于LED點(diǎn)陣的顯示內(nèi)容和顯示方式,LED點(diǎn)陣的顯示方式分為靜態(tài)顯示和移動(dòng)顯示。

1.2 FPGA與LED點(diǎn)陣的接口電路

一般而言,LED點(diǎn)陣采用低電壓掃描控制方式來(lái)完成顯示,為了敘述的方便,本文采用16x16 LED點(diǎn)陣,并且采用列掃描控制方式。FPGA芯片與16x16 LED點(diǎn)陣的接口電路如圖2所示,U1是FPGA芯片,其型號(hào)為EPIK30TC144;U2-U3是8 bit總線驅(qū)動(dòng)器,其型號(hào)為74HC245;16x16 LED點(diǎn)陣是由4塊8x8 LED點(diǎn)陣模塊拼接而成的。需要說(shuō)明一下,本文選用的8x8 LED點(diǎn)陣模塊是行共陽(yáng)、列共陰的。

由圖2可知,接口電路由4片總線驅(qū)動(dòng)器U2-U5組成,其中,U2和U3接收FPGA提供的行顯示數(shù)據(jù)Line[15:0],并控制16x16 LED點(diǎn)陣的16行,行顯示數(shù)據(jù)是高電平有效;U4和U5接收FPGA提供的列掃描信號(hào)Scan[15:0],并控制16x16 LED點(diǎn)陣的16列,列掃描信號(hào)是低電平有效。

芯片U2和U3的每一個(gè)輸出引腳,最多提供1個(gè)發(fā)光二極管的陽(yáng)極電流,所以U2和U3的驅(qū)動(dòng)能力是足夠的。芯片U4和U5的每一個(gè)輸出引腳,最多提供16個(gè)發(fā)光二極管的陰極電流之和,U4和U5的驅(qū)動(dòng)能力也是足夠的,但是當(dāng)LED點(diǎn)陣顯示屏增大時(shí),需要提供的最大陰極電流之和隨之增大,這時(shí)U4和U5的驅(qū)動(dòng)能力不足,這種情況下可以在U4和U5的輸出端添加達(dá)林頓晶體管來(lái)滿

圖2所示接口電路的特點(diǎn)是,在每一個(gè)時(shí)鐘周期,在FPGA提供列掃描信號(hào)Scan[15:0]的同時(shí),行顯示數(shù)據(jù)Line[15:0]也送到了LED點(diǎn)陣的行引腳,無(wú)論是行顯示數(shù)據(jù),還是列掃描信號(hào),F(xiàn)PGA是直接送達(dá)LED點(diǎn)陣引腳的,不需要FPGA外部芯片進(jìn)行串并轉(zhuǎn)換和地址譯碼,因此,充分發(fā)揮了FPGA芯片的運(yùn)行速度快和1/0引腳多的特點(diǎn),即使LED點(diǎn)陣顯示屏增大時(shí),接口電路也只是增加8 bit總線驅(qū)動(dòng)器和達(dá)林頓晶體管,從而簡(jiǎn)化了接口電路,完全能夠保證LED點(diǎn)陣顯示屏的刷新率和顯示亮度。

2 FPGA片內(nèi)邏輯電路的設(shè)計(jì)

2.1 FPGA芯片內(nèi)部電路框圖

由圖1可知,F(xiàn)PGA芯片內(nèi)部由3個(gè)單元電路組成:時(shí)鐘邏輯單元、存儲(chǔ)器ROM單元和控制邏輯單元。FPGA片內(nèi)邏輯電路的設(shè)計(jì),是在FPGA開(kāi)發(fā)環(huán)境Quar-tusⅡ下完成的,時(shí)鐘邏輯單元的設(shè)計(jì)很簡(jiǎn)單,下面主要介紹控制邏輯單元、存儲(chǔ)器ROM單元的設(shè)計(jì)方法。

2.2 控制邏輯單元設(shè)計(jì)方法

如何完成控制邏輯單元的設(shè)計(jì),取決于LED點(diǎn)陣的顯示內(nèi)容和顯示方式,為了敘述的方便,擬定顯示內(nèi)容為字符串,顯示方式為左移動(dòng)態(tài)掃描顯示方式。因此,控制邏輯單元的功能是:產(chǎn)生讀取存儲(chǔ)器ROM的地址信號(hào);產(chǎn)生LED點(diǎn)陣的列掃描信號(hào)。使用FPGA的VHDL硬件描述語(yǔ)言文本設(shè)計(jì)輸入方法,完成控制邏輯單元的設(shè)計(jì),VHDL程序關(guān)鍵代碼如下:

Entity ControILogic is

Port(

clk:in std_logic;

//1 kHz,同步時(shí)鐘信號(hào)

ROM_Addr: out std_logic_vector(9 downto O) ;

//ROM地址信號(hào)

Scan : out std_logic_vector( 15 downto O )

//LED點(diǎn)陣列掃描信n號(hào) );End Entity ControlLogic ;Architecture Artl of ControlLogic is Signal counter : std_logic_vector( 3 downto O) : = B"II11" ; Signal f_slow : std_logic ; Signal x: natural range O t0 287 := O; Signal y: natural range O t0 271 := O;

//271=287-16 , y控制左移Begin ROM_Addr <= conv_std_logic_vector( x , 10) ;

//存儲(chǔ)器 ROM的地址信號(hào)pl : Process ( clk) Begin if rising_edge(clk) then

if counter = B"OOOO" then

counter <= B"11lI";

else

counter <= counter- I ;

end if; end if; End Process pl ;p2 : Process( clk)

//256分頻器 Variable tmp: natural range O t0 255; Begin if rising_edge( clk) then

if (tmp=10#255#) then

tmp := O;

else

tmp := tmp +1;

end if; end if; End Process p2 ;p3 :

Process ( f_slow )

//y控制左移 Begin if rising_edge ( f_slow ) then

if (y=10#271#) then

else

end if; end if; End Process p3 ;p4 : Process ( counter)

//產(chǎn)生列掃描信n號(hào) Begin Scan <= ( others => ' I ' ) ; case counter is

when B"0000" => Scan(0) <= 'O' ;

when B"0001I" => Scan( 1) <= 'O' ;

when B"O010"=> Scan(2)<='O';

when B"0011"=>Scan(3)<='0':

when B"0100"=>Scan(4) <='O':

when B"0101"=>Scan(5)<='O':

when B"0110"=>Scan(6)<='O';

when B."0111"=>Scan(7)<='0':

when B"1000"=>Scan(8)<='0':

when B"1001"=>Scan(9)<='0';

when B"1010"=>Scan(10)<='0':

when B."1011""=>Scan(11)<='O,:

when B"1100『t=>Scan(12)<='0,;

when B"1101"=> Scan( 13)<='0':

when B"111101t=>Scan(14)<='0';

when B"1111.t=>Scan( 15)<='0':

when others=>Scan<=(others=>1):

end case:

End Process p4;

End Artl;

2.3 創(chuàng)建只讀存儲(chǔ)器初始化數(shù)據(jù)文件

在FPGA芯片內(nèi)部開(kāi)發(fā)的存儲(chǔ)器ROM單元用于存放顯示數(shù)據(jù),其中的顯示數(shù)據(jù)決定于所顯示的內(nèi)容,首先根據(jù)顯示內(nèi)容變換成顯示數(shù)據(jù),再由顯示數(shù)據(jù)創(chuàng)建只讀存儲(chǔ)器的初始化數(shù)據(jù)文件。

顯示內(nèi)容變換成顯示數(shù)據(jù)的過(guò)程,是在取字模數(shù)據(jù)軟件中完成的。例如,取字模數(shù)據(jù)的軟件有“PC-toLCD2002完美版”,其是一個(gè)綠色軟件。文章前面已述及,顯示內(nèi)容為字符串“歐偉明指導(dǎo)數(shù)字系統(tǒng)設(shè)計(jì)2018年11月28日”,在取字模數(shù)據(jù)的軟件PCtoLCD2002完美版中,可以很方便地獲取字符串對(duì)應(yīng)的字模數(shù)據(jù)(即顯示數(shù)據(jù)),當(dāng)然也可以很方便地獲取顯示內(nèi)容為圖像的字模數(shù)據(jù)。

根據(jù)得到的字模數(shù)據(jù)(即顯示數(shù)據(jù)),在開(kāi)發(fā)環(huán)境QuartusⅡ中,就可以創(chuàng)建只讀存儲(chǔ)器的初始化數(shù)據(jù)文件ROM_data.mif.只要將字模數(shù)據(jù)拷貝到ROM_data.mif文件中即可。

2.4 創(chuàng)建只讀存儲(chǔ)器

本文在FPGA芯片內(nèi)部實(shí)現(xiàn)存儲(chǔ)器ROM單元的設(shè)計(jì),是基于FPGA的免費(fèi)IP核而實(shí)現(xiàn)的。在開(kāi)發(fā)環(huán)境QuartusⅡ中,利用開(kāi)發(fā)商提供的免費(fèi)IP核,設(shè)計(jì)了一個(gè)包含1 024個(gè)字,字長(zhǎng)為16 bit的只讀存儲(chǔ)器ROM_1024_ 16。需要提醒的是,在設(shè)計(jì)過(guò)程中,要選中前面已經(jīng)創(chuàng)建好的只讀存儲(chǔ)器初始化數(shù)據(jù)文件ROM_data.mif這樣就很方便地在FPGA芯片中,完成了存儲(chǔ)單元中存放有顯示數(shù)據(jù)的只讀存儲(chǔ)器ROM_1024_16的設(shè)計(jì)。

3 硬件調(diào)試結(jié)果

為了驗(yàn)證本文所討論的LED點(diǎn)陣顯示系統(tǒng)實(shí)際效果,本文按照?qǐng)D2所示電路,制作了基于FPGA的16x16LED點(diǎn)陣顯示系統(tǒng),實(shí)現(xiàn)了在16x16 LED點(diǎn)陣上,向左移動(dòng)顯示由22個(gè)字符組成的字符串“歐偉明指導(dǎo)數(shù)字系統(tǒng)設(shè)計(jì)2018年11月28日”。調(diào)試結(jié)果表明,LED點(diǎn)陣顯示穩(wěn)定、清晰、亮度適中、無(wú)閃爍感,如果改變控制邏輯單元的時(shí)鐘脈沖頻率,就可以改變字符串向左移動(dòng)顯示的速度。硬件調(diào)試效果如圖3所示。

3.1 硬件系統(tǒng)結(jié)構(gòu)特點(diǎn)

對(duì)于采用MCU或ARM的LED點(diǎn)陣顯示系統(tǒng)而言[3-4],由MCU或ARM發(fā)送的顯示數(shù)據(jù)一般是串行傳送給具有鎖存功能的移位寄存器,比如8 bit的移位寄存器74HC595,如果要將一個(gè)8 bit的顯示數(shù)據(jù)送到74HC595芯片,就需要8個(gè)時(shí)鐘周期。然而一屏完整的顯示數(shù)據(jù)往往是遠(yuǎn)大于8 bit,所以就需要更多的時(shí)鐘周期;而且移位寄存器中的顯示數(shù)據(jù)送達(dá)LED點(diǎn)陣,是在鎖存時(shí)鐘脈沖信號(hào)控制下完成的,所以還需要一個(gè)時(shí)鐘周期,因此,這樣嚴(yán)重制約了系統(tǒng)的整體工作速度,并影響LED點(diǎn)陣顯示屏的刷新率和顯示亮度。本研究的硬件系統(tǒng)主要由FPGA,LED點(diǎn)陣及其驅(qū)動(dòng)器74HC245組成,結(jié)構(gòu)非常簡(jiǎn)單。由于采用FPGA芯片,一屏完整的顯示數(shù)據(jù)并行地由FPGA發(fā)送給驅(qū)動(dòng)器74HC245,經(jīng)其驅(qū)動(dòng)后送達(dá)LED點(diǎn)陣,只需要一個(gè)時(shí)鐘周期。

3.2 FPGA的設(shè)計(jì)靈活性

系統(tǒng)中的FPGA芯片內(nèi)部電路結(jié)構(gòu)清晰且結(jié)構(gòu)簡(jiǎn)單,F(xiàn)PGA芯片內(nèi)部電路的設(shè)計(jì),是在開(kāi)發(fā)環(huán)境QuartusⅡ下完成的,控制邏輯單元的設(shè)計(jì)采用VHDL硬件描述語(yǔ)言,可以利用VHDL語(yǔ)言很強(qiáng)的行為描述能力,從而實(shí)現(xiàn)復(fù)雜的數(shù)字控制算法。存儲(chǔ)器ROM單元的設(shè)計(jì)采用基于FPGA的IP核設(shè)計(jì)方法,這樣可以簡(jiǎn)化設(shè)計(jì)過(guò)程,很容易獲得任意字長(zhǎng)、包括任意多個(gè)字的只讀存儲(chǔ)器,并將顯示數(shù)據(jù)以初始化文件的方式融合到存儲(chǔ)器ROM單元的創(chuàng)建過(guò)程中。另外,設(shè)計(jì)完成后,F(xiàn)PGA是純硬件電路,工作時(shí)沒(méi)有CPU程序運(yùn)行,從而可以提高系統(tǒng)可靠性和穩(wěn)定性。

4 結(jié)論

本文以16x16 LED點(diǎn)陣為例,論述了基于FPGA的LED點(diǎn)陣顯示控制方法。實(shí)驗(yàn)結(jié)果對(duì)于本技術(shù)領(lǐng)域的技術(shù)人員而言,很容易將這種控制方法用于更大的LED點(diǎn)陣。實(shí)驗(yàn)結(jié)果表明本文介紹的基于FPGA的LED點(diǎn)陣顯示控制方法,充分利用了FPGA運(yùn)行速度快、1/0引腳多、設(shè)計(jì)靈活的特點(diǎn),具有較好的實(shí)際應(yīng)用價(jià)值。

注:本文通訊作者為歐偉明。

參考文獻(xiàn)

[1]歐偉明,聶輝,李圣清.基于FPGA的機(jī)械抖動(dòng)測(cè)量方法[J]核電子學(xué)與探測(cè)技術(shù),2014,34(8):998-1001.

OU Weiming, NIE Hui, LI Shengqing. Measurement methodof mechanical dither based on FPGA [J]. Nuclear electronics&detection technology, 2014. 34(8): 998-1001.

[2]李銳,田帆,鄧賢君,等.基于FPGA的全數(shù)字延時(shí)鎖相環(huán)的設(shè)計(jì)[J]現(xiàn)代電子技術(shù),2019,42(6):69-75.

LI Rui, TIAN Fan. DENG Xianjun, et al.Design of all-digitaldelay-locked loop based on FPGA [J]. Modern electronics tech-nique, 2019, 42(6): 69-75.

[3]歐偉明,劉歡,李圣清.燃弧時(shí)間傳感器的研制[J]電子測(cè)量與儀器學(xué)報(bào),2014,28(4):441-446.

OU Weiming, LIU Huan. LI Shengqing. Development of anarc time sensor [J]. Journal of electronic measurement and in-strument. 2014. 28(4): 441-446.

[4]張學(xué)成.基于電力線載波模塊的LED點(diǎn)陣圖文顯示系統(tǒng)[J]液晶與顯示,2011,26(3):350-353.

ZHANG Xuecheng. LED dot matrix graphics and text displaysystem based on power line carrier module [J]. Chinese journalof liquid crystals and displays, 2011. 26(3): 350-353.

[5]鄭爭(zhēng)兵.基于FPGA的圖形點(diǎn)陣液晶顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]液晶與顯示,2013,28(3):403-407.

ZHENG Zhengbing. Design and implementation of graphic dotmatrix LCD display system based on FPGA [J]. Chinese journalof liquid crystals and displays, 2013, 28(3): 403-407.

[6]朱曉青,馬定寰,李圣清,等,于BP神經(jīng)網(wǎng)絡(luò)的微電網(wǎng)蓄電池荷電狀態(tài)估計(jì)[J].電子測(cè)量與儀器學(xué)報(bào),2017,31(12):2042-2048.

ZHU Xiaoqing, MA Dinghuan, LI Shengqing, et al.Estima-tion of state of charge for micro-grid battery based on BP neu-ral network[J].Journal of electronic measurement and instru-ment, 2017. 31(12): 2042-2048.

[7]袁謙,黃波,張多英,等,基于FPGA的可見(jiàn)光波段便攜式光譜儀的設(shè)計(jì)[J],現(xiàn)代電子技術(shù),2019.42(6):100-104.

YUAN Qian, HUANG Bo. ZHANG Duoying,et al.Design ofFPGA - based portable spectrometer working in visible lightband [J]. Modern electronics technique, 2019, 42 (6): 100-104.

[8]劉歡.基于FPGA的多路溫度開(kāi)關(guān)檢測(cè)系統(tǒng)的設(shè)計(jì)[D].株洲:湖南工業(yè)大學(xué),2015.

LIU Huan. Design of multichannel temperature switch detec-tion svstem based on FPGA [D]. Zhuzhou: Hunan University ofTechnology, 2015.

[9]歐偉明,聶輝,張婷,電氣開(kāi)關(guān)接點(diǎn)機(jī)械抖動(dòng)次數(shù)的測(cè)量[J]電子測(cè)量與儀器學(xué)報(bào),2014,28( 11):1268-1273.

OU Weiming, NIE Hui, ZHANG Ting. Measurement of themechanical dithering number of electric switch contact [J]. Jour-nal of electronic measurement and instrument, 2014, 28( 11):1268-1273.

[10]歐偉明,凌云,李圣清.基于同步串行通信的汽車TPMS低功耗設(shè)計(jì)[J]汽車安全與節(jié)能學(xué)報(bào),2018,9(4):427-432.

OU Weiming, LING Yun. LI Shengqing. Low power consump-tion design of automobile TPMS based on synchronous serialcommunication [J]. Journal of automotive safety and energy,2018. 9(4):427-432.

作者簡(jiǎn)介:蔣中榮(1964-),男,副教授,主要研究方向?yàn)镻LC控制技術(shù)與嵌入式系統(tǒng)應(yīng)用。

歐偉明(1962-),男,碩士,教授,碩士生導(dǎo)師,主要研究方向?yàn)樾盘?hào)處理、嵌入式系統(tǒng)。

猜你喜歡
硬件設(shè)計(jì)
機(jī)場(chǎng)行李系統(tǒng)輸送線PLC硬件和程序設(shè)計(jì)
電力參數(shù)監(jiān)測(cè)系統(tǒng)研究
基于中藥自動(dòng)配藥PLC系統(tǒng)的設(shè)計(jì)方案的研究
宿松县| 新民市| 阿巴嘎旗| 石柱| 景谷| 崇州市| 北流市| 荆门市| 崇礼县| 微山县| 新和县| 防城港市| 法库县| 卢氏县| 筠连县| 乡宁县| 那曲县| 江阴市| 兖州市| 石棉县| 四子王旗| 静安区| 乌拉特前旗| 云霄县| 开封县| 中牟县| 安阳县| 汝城县| 鹤山市| 文成县| 达日县| 新源县| 柳江县| 东辽县| 嘉黎县| 亳州市| 鹤岗市| 穆棱市| 福清市| 江永县| 汉寿县|