林秀明,秦德茂,秦秋息
(1.廣西大學電氣工程學院,廣西 南寧 530004;2.廣西交通科學研究院,廣西 南寧 530007)
?
基于STM32實現(xiàn)多區(qū)域顯示的LED點陣屏的設(shè)計
林秀明1,2,秦德茂2,秦秋息2
(1.廣西大學電氣工程學院,廣西南寧530004;2.廣西交通科學研究院,廣西南寧530007)
林秀明(1983—),工程師,在讀碩士,主要從事交通行業(yè)電子產(chǎn)品的硬件開發(fā)工作;
秦德茂(1991—),助理工程師,主要從事交通行業(yè)電子產(chǎn)品硬件電路設(shè)計工作;
秦秋息(1988—),助理工程師,主要從事嵌入式系統(tǒng)移植及底層驅(qū)動程序設(shè)計工作。
摘要:文章介紹了基于STM32為主控芯片的LED點陣顯示屏的硬件電路及系統(tǒng)工作原理,并提出了一種使用C語言數(shù)據(jù)結(jié)構(gòu)體和鏈表的編程技術(shù),實現(xiàn)顯示屏多節(jié)目、多區(qū)域顯示功能的程序設(shè)計方法。
關(guān)鍵詞:STM32;LED點陣顯示屏;C語言;多區(qū)域顯示;設(shè)計
0引言
LED點陣顯示屏作為一種新型節(jié)能的廣告信息傳播媒體,可播放動態(tài)的文字[1]和圖像信息,具備了播放信息內(nèi)容豐富、顯示效果多樣可變、運行穩(wěn)定、耗電量低等優(yōu)點,在日常生活中有著非常廣泛的應用,然而針對不同的應用場合,用戶對顯示屏顯示內(nèi)容的要求也不同,除了單純顯示文字之外,可能還需要同時能夠顯示圖片、時鐘等信息。如設(shè)置在生產(chǎn)車間、項目施工現(xiàn)場等生產(chǎn)場所的LED顯示屏,顯示版面除了發(fā)布安全生產(chǎn)標語外,還可能需要發(fā)布生產(chǎn)倒計時、時鐘圖案、任務(wù)表格、氣象等信息。每種信息內(nèi)容、顯示效果及在顯示屏上的顯示區(qū)域的位置、大小均可以進行自由設(shè)置,自動更新。因此,設(shè)計一款能夠?qū)ζ聊贿M行多區(qū)域劃分,排版靈活的LED點陣顯示屏[2]具有非常現(xiàn)實的意義。
1LED點陣顯示屏的系統(tǒng)組成及電路工作原理介紹
LED點陣顯示屏[3]主要由電源供電系統(tǒng)、顯示屏單元板和顯示屏系統(tǒng)控制卡組成,如圖1所示。
圖1 LED點陣顯示屏結(jié)構(gòu)示意圖
供電系統(tǒng)主要負責給控制卡、顯示屏體進行供電,控制卡及顯示屏所需的供電電壓為DC 5 V,因此系統(tǒng)通常采用5 V的直流開關(guān)電源進行供電,電源的數(shù)量及功率可根據(jù)顯示屏的功率進行配置。
圖1中,顯示屏的屏體為若干數(shù)量的點陣顯示單元板拼接組成,這種模塊化的設(shè)計方式,可以靈活地對顯示屏幕的大小進行配置,能夠滿足不同的安裝使用環(huán)境,同時也大大簡化了顯示屏的生產(chǎn)、運輸及現(xiàn)場安裝、維護的難度。
顯示屏單元板集成了LED燈陣列及其驅(qū)動電路,驅(qū)動電路主要由LED點陣行掃描驅(qū)動電路及列驅(qū)動電路組成,行驅(qū)動電路主要是場效應管控制的LED點陣行開關(guān)電路,列驅(qū)動電路為帶數(shù)據(jù)輸出鎖存功能的串/并轉(zhuǎn)換功能芯片,如74HC595、MBI5024等芯片構(gòu)成的LED列驅(qū)動電路。其電路基本原理圖如圖2所示。
圖2 LED點陣顯示單元板基本原理圖
圖2中,DAT為串并轉(zhuǎn)換驅(qū)動芯片的數(shù)據(jù)輸入端,LED點陣列數(shù)據(jù)由此輸入,S為芯片數(shù)據(jù)移位控制時鐘輸入,L為數(shù)據(jù)鎖存時鐘輸入,OE為驅(qū)動芯片內(nèi)部寄存器數(shù)據(jù)輸出使能,控制LED點陣列數(shù)據(jù)從芯片內(nèi)部的寄存器到并行數(shù)據(jù)管腳的輸出,CSx(x為1~n,n一般≤16)為LED屏行選信號控制信號,通常為譯碼器的譯碼輸出。電路工作原理分析如下:
控制卡將顯示的數(shù)據(jù)流從DAT端輸入,并控制S移位時鐘使得數(shù)據(jù)流逐位向箭頭方向移動,當最先送出的數(shù)據(jù)位移動到該行的串并轉(zhuǎn)換驅(qū)動芯片數(shù)據(jù)末端時,控制卡在L端產(chǎn)生鎖存信號將數(shù)據(jù)流鎖存到串/并轉(zhuǎn)換驅(qū)動芯片的內(nèi)部寄存器中,最后通過控制使能信號OE,將數(shù)據(jù)流輸出至芯片外接LED燈的管腳上。此時,控制卡控制對應的行選驅(qū)動信號CSx(x為1~n)輸出低電平時,對應的行驅(qū)動場效應管導通,+5V電壓輸出到該行LED燈的正極上,則該行對應在驅(qū)動芯片端口上的數(shù)據(jù)為0的LED燈珠就會被點亮,為1的LED燈則被熄滅。同理,控制卡通過掃描改變行選信號CSx的狀態(tài)及DAT數(shù)據(jù)內(nèi)容,即可完成顯示屏每一行上的LED燈的掃描點亮。根據(jù)人類視覺的暫留特性可知,當每一行點亮時間間隔<0.1 s時,在屏幕上就會看到一幅完整的顯示圖像。
系統(tǒng)控制卡為基于STM32微控制器進行設(shè)計的,其外圍芯片擴展的電路屬于典型SPI總線、FSMC總線擴展電路,較為常見但連接的線路信號也較多,鑒于篇幅有限,本文使用電路原理框圖的方式來對系統(tǒng)控制卡的電路原理進行介紹,如圖3所示。
圖3 系統(tǒng)控制卡功能模塊框圖
圖3中,STM32F207ZGT6是32位ARM CortexTM-M3內(nèi)核的微控制器[3-4],主要負責接收并存儲上位機發(fā)送的節(jié)目數(shù)據(jù)并保存到片外Flash存儲器中,同時控制顯示單元板驅(qū)動電路,將顯示緩存上的數(shù)據(jù)信息輸出到屏幕上,完成節(jié)目的顯示。另外,屏幕分區(qū)顯示、顯示特效等排版功能的實現(xiàn)也是通過對STM32F207 ZGT6進行軟件編程,通過內(nèi)部定時刷新顯示緩存內(nèi)容來完成的。
SST25VF032B為SPI接口的32Mbit Flash存儲芯片[5],用于對顯示節(jié)目數(shù)據(jù)、顯示屏IP地址等掉電需要保存的數(shù)據(jù)進行存儲。IS61LV51216為8Mbit的高速SRAM芯片,通過MCU的FSMC總線進行連接,主要用于上位機數(shù)據(jù)的接收、顯示屏顯示緩存的劃分、顯示數(shù)據(jù)排版處理等軟件運行所需的數(shù)據(jù)緩存。
上位機通過UDP協(xié)議[6-7]與LED點陣顯示屏進行通訊[8],實現(xiàn)顯示屏配置參數(shù)、顯示內(nèi)容等數(shù)據(jù)信息的聯(lián)網(wǎng)更新及遠程控制功能[9]。通訊電路采用了NS公司的集成以太網(wǎng)控制芯片DP83848C設(shè)計,該芯片為10/100Mbit單路物理層以太網(wǎng)收發(fā)器件,支持MII和RMII的接口模式,具有體積小、功耗低、性能齊全的特點。
25M時鐘晶振電路及復位電路主要給主控MCU提供時鐘信號和上電復位信號,保證MCU的正常運行。電源供電電路為三端穩(wěn)壓芯片AMS1117-3.3 V給系統(tǒng)提供3.3 V電源。
2LED點陣顯示屏系統(tǒng)控制卡軟件設(shè)計
2.1.1LED屏節(jié)目數(shù)據(jù)結(jié)構(gòu)的設(shè)計
本方案設(shè)計中,系統(tǒng)控制卡具備多節(jié)目、多個區(qū)域顯示播放的功能,每個節(jié)目里可分別設(shè)置節(jié)目的播放時間,顯示區(qū)域分區(qū)數(shù)目及各區(qū)域內(nèi)的播放內(nèi)容、播放頁數(shù)、每個頁面的播放特效等信息。因此,上位機向LED屏發(fā)送的節(jié)目數(shù)據(jù)中應包括:節(jié)目號、節(jié)目播放時間、節(jié)目區(qū)域總數(shù)、區(qū)域號、區(qū)域位置信息、區(qū)域顯示頁數(shù)、區(qū)域各頁的顯示特技、區(qū)域顯示數(shù)據(jù)等信息。節(jié)目數(shù)據(jù)結(jié)構(gòu)如圖4所示。
圖4 節(jié)目數(shù)據(jù)結(jié)構(gòu)圖
2.1.2通訊數(shù)據(jù)幀結(jié)構(gòu)的定義
控制卡與上位機通信的過程中,主要有數(shù)據(jù)及命令類2類信息。數(shù)據(jù)類主要為顯示屏的節(jié)目信息、字體字庫數(shù)據(jù)等內(nèi)容。命令類主要用于對顯示屏進行參數(shù)的配置功能,如修改信息屏的IP地址、標識號、屏體像素大小、時間校時、亮度控制等命令。因此,數(shù)據(jù)幀結(jié)構(gòu)定義如下:
數(shù)據(jù)幀頭+信息屏標識+數(shù)據(jù)類型+數(shù)據(jù)幀總長度+數(shù)據(jù)內(nèi)容+數(shù)據(jù)幀尾
控制卡接收到上位機發(fā)送來的數(shù)據(jù)時,可通過對數(shù)據(jù)幀頭、信息屏標識、數(shù)據(jù)幀總長度及數(shù)據(jù)幀尾的判讀,完成數(shù)據(jù)的接收并根據(jù)數(shù)據(jù)類型選擇數(shù)據(jù)的處理方式。
系統(tǒng)軟件主要實現(xiàn)以下兩大功能:
(1)對上位機發(fā)送數(shù)據(jù)的接收及處理程序
主控MCU的軟件設(shè)計上采用嵌入式實時操作系統(tǒng)RT-Thread[10],搭配LWIP網(wǎng)絡(luò)微協(xié)議,實現(xiàn)數(shù)據(jù)穩(wěn)定傳輸。采用LWIP的socket[11]編程,通過UDP協(xié)議接收來自上位機的數(shù)據(jù),并根據(jù)協(xié)議定義完成數(shù)據(jù)的存儲及處理。根據(jù)3.1.1節(jié)的數(shù)據(jù)結(jié)構(gòu),通過在程序設(shè)計中定義一個節(jié)目的結(jié)構(gòu)體類型,用來存儲每個節(jié)目信息。程序中采用動態(tài)分配內(nèi)存的方式存儲數(shù)據(jù),可以適應不同個數(shù)的節(jié)目和區(qū)域節(jié)目單數(shù)據(jù)的接收和存儲,滿足多條節(jié)目單信息顯示的同時也提高了內(nèi)存使用效率。
以下是節(jié)目結(jié)構(gòu)體結(jié)構(gòu)及節(jié)目鏈表數(shù)據(jù)結(jié)構(gòu)如圖5所示。
圖5中,*data_file_head:指向文件窗鏈表頭指針;*data_ins_head:指向內(nèi)碼窗鏈表頭指針;*Display_string:指向內(nèi)碼窗字符串首地址;*Display_Dataxbytes:指向文件窗數(shù)據(jù)首地址。
圖5 節(jié)目鏈表數(shù)據(jù)結(jié)構(gòu)示意圖
節(jié)目顯示數(shù)據(jù)的接收處理過程如圖6所示,程序流程圖見圖7。
圖6 數(shù)據(jù)接收處理過程
(2)LED屏顯示掃描驅(qū)動程序
顯示驅(qū)動程序主要工作流程為:在RT-Thread系統(tǒng)中分配一塊RAM作為顯示緩存區(qū),顯存上的每個數(shù)據(jù)位與LED屏的每個像素進行一一對應,根據(jù)1.2節(jié)
介紹的單元板電路工作原理可知,通過LED顯示掃描輸出線程,定時對顯存上的數(shù)據(jù)進行掃描更新,并按單元板驅(qū)動電路邏輯要求輸出到單元板中,完成顯存信息輸出。具體軟件工作流程如圖7所示。
圖7 軟件設(shè)計工作流程圖
4結(jié)語
本設(shè)計方案已經(jīng)在廣西高速公路ETC車道LED點陣顯示屏中得到實際應用,系統(tǒng)軟件設(shè)計中采用數(shù)據(jù)結(jié)構(gòu)體及數(shù)據(jù)鏈表的編程方法,實現(xiàn)了對動態(tài)數(shù)據(jù)進行快速存儲與訪問,可為相關(guān)的動態(tài)數(shù)據(jù)處理提供一種可借鑒的設(shè)計思路。
參考文獻
[1]王海梅.取模軟件在LED顯示屏設(shè)計中的使用與分析[J].科技信息,2014(6):59.
[2]郝國法,楊姣.LED大屏幕控制電路設(shè)計方案研究[J].電視技術(shù),2005,10(11):94.
[3]汪嵐.智能LED信息顯示屏控制系統(tǒng)設(shè)計與應用[J].液晶與顯示,2011,26(5):657.
[4]楊明極,祝慶峰,李碩.基于STM32的嵌入式網(wǎng)絡(luò)控制器設(shè)計[J].測控技術(shù),2014.10:98-101.
[5]Silicon Storage Technology.S71327-00-000[DB/OL].
http://html.alldatasheet.com/html-pdf/191699/SST/SST25VF032B/58/1/SST25VF032B.html,2006-10:1.
[6]王鐵流,高嵩,袁海英.基于Cortex-M3內(nèi)核處理器的嵌入式Web服務(wù)器設(shè)計[J].電子產(chǎn)品世界,2009,16(3):41-43.
[7]王文良.嵌入式TCP/IP協(xié)議棧的研究與實現(xiàn)[D].哈爾濱:哈爾濱理工大學,2010.
[8]陳學泉,關(guān)宇東.嵌入式TCP/IP協(xié)議單片機技術(shù)在網(wǎng)絡(luò)通信中的應用[J].電子技術(shù)應用,2002,28(8):48-49.
[9]于春雪.基于STM32F107的高速以太網(wǎng)接口設(shè)計與應用[J].電聲技術(shù),2011,35(9):63-67.
[10]李琦,李梅.基于RT-Thread的工業(yè)遠程控制器設(shè)計[J].實驗室研究與探索,2013,32(9):61-64.
[11]劉駿,顏鋼鋒.基于Socket的網(wǎng)絡(luò)編程技術(shù)及其實現(xiàn)[J].江南大學學報(自然科學版),2004,3(3):249-251.
Design of LED Dot Matrix Screen Achieving Multi-zone Display Based on STM32
LIN Xiu-ming1,2,QIN De-mao2,QIN Qiu-xi2
(1.School of Electrical Engineering,Guangxi University,Nanning,Guangxi,530004; 2.Guangxi Transporta-tion Research Institute,Nanning,Guangxi,530007)
Abstract:This article introduced the hardware circuit and system work principles of LED dot matrix display based on STM32 as main controller chips,and proposed a programming design method which is a pro-gramming technology by using the C language data structures and list and can achieve multi-program display and multi-zone function display.
Keywords:STM32; LED dot matrix display; C language; Multi-zone display; Design
收稿日期:2015-04-06
文章編號:1673-4874(2015)05-0075-03
中圖分類號:U412.36+6
文獻標識碼:A
DOI:10.13282/j.cnki.wccst.2015.05.021
作者簡介