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