中心議題:
- 基于STM32的全彩LED顯示屏系統(tǒng)的設(shè)計(jì)
解決方案:
- 系統(tǒng)總體方案設(shè)計(jì)
- 系統(tǒng)硬件設(shè)計(jì)
- 系統(tǒng)軟件設(shè)計(jì)
LED顯示屏作為一種新的顯示器件,近年來(lái)得到了廣泛的應(yīng)用。隨著技術(shù)的不斷更新,LED顯示屏正朝著全彩化的方向發(fā)展。設(shè)計(jì)了一種LED顯示屏控制系統(tǒng),該系統(tǒng)以ARMCortex-M3內(nèi)核芯片STM32F103ZET6作為控制中心,以可編程邏輯器件EP1C6完成數(shù)據(jù)的刷新,通過(guò)以太網(wǎng)通信。系統(tǒng)可支持256級(jí)灰度全彩LED顯示屏的圖像、動(dòng)畫的顯示,同時(shí)能夠方便地進(jìn)行遠(yuǎn)程控制。
LED顯示屏是利用LED點(diǎn)陣模塊或像素單元組成的一種現(xiàn)代平面顯示屏幕,具有發(fā)光效率高、使用壽命長(zhǎng)、視角范圍大、色彩豐富以及對(duì)室內(nèi)外環(huán)境適應(yīng)能力強(qiáng)等優(yōu)點(diǎn)。20世紀(jì)80年代后期,它在全世界迅速發(fā)展起來(lái),并很快成為大屏幕平板顯示的代表性主流產(chǎn)品;近年來(lái),隨著藍(lán)色LED產(chǎn)品價(jià)格的快速下降,全彩色LED顯示屏的價(jià)格逐步降低,市場(chǎng)需求急劇增長(zhǎng),應(yīng)用日益普遍。目前的LED顯示屏控制系統(tǒng)多采用ARM處理器來(lái)完成整個(gè)系統(tǒng)的功能,這種控制系統(tǒng)在數(shù)據(jù)處理速度上存在很大的局限,影響顯示效果的連續(xù)性?;诖?,在分析了STM32微處理器總線結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,提出了STM32+FPGA的控制系統(tǒng)方案,該方案充分了利用STM32微處理器的靈活的儲(chǔ)器控制技術(shù)和可編程邏輯器件的靈活性,提高了系統(tǒng)數(shù)據(jù)處理的速度,而且簡(jiǎn)化了電路結(jié)構(gòu),方便調(diào)試。
1 、系統(tǒng)總體方案設(shè)計(jì)
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)采用新一代的32bitRISC處理器STM32作為主控芯片,通過(guò)以太網(wǎng)傳輸數(shù)據(jù),以FLASH作為存儲(chǔ)模塊,由FPGA完成對(duì)LED顯示屏的高速掃描刷新。系統(tǒng)工作時(shí),利用上位機(jī)編輯顯示信息,通過(guò)以太網(wǎng)接口將顯示信息傳輸給微處理器,微處理器接收數(shù)據(jù)信息后寫入FLASH存儲(chǔ)器。在顯示時(shí),微處理器讀取FLASH中的數(shù)據(jù),通過(guò)總線將數(shù)據(jù)以并行方式發(fā)送給FPGA,FPGA處理后將數(shù)據(jù)傳輸?shù)絃ED顯示屏顯示。
2 、系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)選用ST公司新推出的32位微處理器STM32F103ZET6作為主控芯片,STM32F103ZET6使用了先進(jìn)架構(gòu)的ARMCortex-M3內(nèi)核,其靈活的靜態(tài)存儲(chǔ)器控制器使得它能很方便的和許多存儲(chǔ)器和外設(shè)連接,同時(shí)STM32片上外設(shè)豐富,可以簡(jiǎn)化系統(tǒng)外圍電路的設(shè)計(jì)。
2.1 FLASH存儲(chǔ)器電路設(shè)計(jì)
FLASH采用的是三星公司的K9F1G16U0M,它是一種NAND型FLASH,存儲(chǔ)容量為64M16位,工作電壓3.3V,系統(tǒng)中STM32F103ZET6與K9F1G16U0M的連接如圖2所示。FLASH存儲(chǔ)器的IO0~IO7和FMSC數(shù)據(jù)總線的低8位相連,STM32處理器通過(guò)FSMC訪問(wèn)存儲(chǔ)器;FLASH存儲(chǔ)器的片選信號(hào)nCE和FSMC的FSMC_NCE2相連接,這樣存儲(chǔ)器的地址空間為0x70000000~077FFFFFFFF;FLASH存儲(chǔ)器的R/nB連接至STM32處理器的FSMC_NWAIT管腳,處理器將R/nB作為一個(gè)中斷源使用,因此可以在存儲(chǔ)器的等待周期內(nèi)執(zhí)行其他的任務(wù)。
圖2 NANDFLASH與STM32F103ZET6連接圖[page]
2.2 以太網(wǎng)接口電路設(shè)計(jì)
采用以太網(wǎng)接口代替?zhèn)鹘y(tǒng)的串口,加快了數(shù)據(jù)傳輸?shù)乃俣?,同時(shí)可以實(shí)現(xiàn)遠(yuǎn)程控制。由于STM32F103ZET6片內(nèi)沒有集成以太網(wǎng)MAC和PHY功能,但其FSMC支持?jǐn)U展以太網(wǎng)控制芯片,本系統(tǒng)在FSMC上擴(kuò)展一片DAVICOM公司的DM9000A芯片對(duì)STM32F103ZET6進(jìn)行以太網(wǎng)擴(kuò)展,DM9000A與STM32F103ZET6的連接如圖3所示。
圖3 DM9000A與STM32F103ZET6連接圖
STM32F103ZET6通過(guò)FSMC訪問(wèn)DM9000A,對(duì)于STM32F103ZET6來(lái)說(shuō),DM9000A就是一個(gè)靜態(tài)存儲(chǔ)器外設(shè)。DM9000A采用16位模式,數(shù)據(jù)線SD0~SD15直接與FMSC數(shù)據(jù)線低16位FSMC_D0~FSMC_D15相連;DM9000A片選信號(hào)線nCS連接至FSMC片選信號(hào)FSMC_NE4,這樣DM9000A端口地址為0x6c000000;DM9000A的中斷信號(hào)線INT可直接連接至STM32F103ZET6的IO口,在程序中激活處理器IO口的中斷復(fù)用功能,STM32以中斷方式接收網(wǎng)卡數(shù)據(jù)。
2.3 掃描驅(qū)動(dòng)電路設(shè)計(jì)
掃描驅(qū)動(dòng)電路是整個(gè)控制系統(tǒng)的重要組成部分,系統(tǒng)中它由一塊FPGA和雙體RAM組成,其結(jié)構(gòu)如圖4所示,主要完成灰度數(shù)據(jù)讀取、上屏數(shù)據(jù)的產(chǎn)生與傳輸、移位和鎖存時(shí)鐘的產(chǎn)生、行選信號(hào)的產(chǎn)生、灰度控制信號(hào)的產(chǎn)生等功能。
圖4 掃描驅(qū)動(dòng)電路結(jié)構(gòu)圖
掃描驅(qū)動(dòng)輸出信號(hào)的仿真波形如圖5所示,其中en是灰度控制信號(hào),用來(lái)控制顯示時(shí)間,產(chǎn)生灰度效果;row_sel是行選信號(hào),顯示時(shí)用于確定點(diǎn)亮哪一行;sck是移位時(shí)鐘,lck是鎖存時(shí)鐘,ds_red、ds_blue、ds_green是上屏紅、藍(lán)、綠數(shù)據(jù)的輸入端。仿真時(shí)紅、藍(lán)、綠顯示數(shù)據(jù)分別設(shè)定為01交錯(cuò)、全1、全0??梢钥吹?,在移位時(shí)鐘的作用下數(shù)據(jù)移位正確,移位完成后,lck變?yōu)楦唠娖?,將?shù)據(jù)鎖存輸出到LED屏上顯示。
圖5 輸出信號(hào)的仿真波形
3 、系統(tǒng)軟件設(shè)計(jì)
整個(gè)系統(tǒng)的軟件包括3個(gè)部分:上位機(jī)應(yīng)用軟件、微處理器控制軟件和FPGA控制軟件。3個(gè)部分協(xié)同工作,實(shí)現(xiàn)對(duì)LED顯示屏的控制。
3.1 上位機(jī)應(yīng)用軟件
上位機(jī)應(yīng)用軟件用于人機(jī)交互,是控制系統(tǒng)對(duì)用戶的接口,要求界面友好、操作簡(jiǎn)單。軟件采用VisualC++編寫,完成的主要功能包括:圖像文字信息的編輯、圖像的解碼以及根據(jù)通信協(xié)議將數(shù)據(jù)發(fā)送給下位機(jī)。[page]
3.2 微處理器控制軟件
微處理器在整個(gè)系統(tǒng)中起著核心調(diào)度的作用,它控制著系統(tǒng)各功能模塊的工作狀態(tài),程序包括TCP/IP協(xié)議棧的移植、DM9000A網(wǎng)卡驅(qū)動(dòng)程序等,完成的主要功能有:硬件初始化,上位機(jī)與下位機(jī)的以太網(wǎng)通信,顯示模式算法設(shè)計(jì)等。
3.3 FPGA控制軟件
FPGA控制軟件的設(shè)計(jì)是在QuartusII環(huán)境下完成的,采用硬件描述語(yǔ)言Verilog編寫。主要功能是根據(jù)微處理器的控制,對(duì)存儲(chǔ)器進(jìn)行切換,實(shí)現(xiàn)乒乓操作;完成圖像數(shù)據(jù)的重構(gòu),把數(shù)據(jù)轉(zhuǎn)換為能直接用于LED掃描顯示的含有灰度信息的0和1組成的編碼系列,并根據(jù)顯示屏驅(qū)動(dòng)芯片的時(shí)序,將編碼系列傳輸?shù)斤@示屏上顯示。
4 、總結(jié)
本設(shè)計(jì)采用32位嵌入式微處理器STM32F103ZET6和可編程邏輯器件EP1C6Q240C8設(shè)計(jì)了全彩色LED顯示屏控制系統(tǒng),并在實(shí)驗(yàn)室驗(yàn)證,實(shí)現(xiàn)了LED顯示屏的彩色顯示,圖6(a)為一幅實(shí)際圖像,圖6(b)是在顯示屏上的顯示效果。
圖6 圖像的灰度顯示
實(shí)驗(yàn)結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,顯示畫面清晰、流暢。系統(tǒng)該系統(tǒng)能滿足異步全彩色LED顯示屏高處理速度,大容量數(shù)據(jù)存儲(chǔ)的要求,支持256灰度級(jí)全彩圖像、動(dòng)畫的顯示,同時(shí)通過(guò)改變FPGA內(nèi)部的硬件邏輯可方便地對(duì)系統(tǒng)進(jìn)行升級(jí),結(jié)構(gòu)簡(jiǎn)單、可靠性高,可替代市場(chǎng)上同類設(shè)計(jì)產(chǎn)品,應(yīng)用前景廣泛。