林秀明,秦德茂,秦秋息
(1.廣西大學電氣工程學院,廣西 南寧 530004;2.廣西交通科學研究院,廣西 南寧 530007)
?
基于STM32實現多區域顯示的LED點陣屏的設計
林秀明1,2,秦德茂2,秦秋息2
(1.廣西大學電氣工程學院,廣西南寧530004;2.廣西交通科學研究院,廣西南寧530007)
林秀明(1983—),工程師,在讀碩士,主要從事交通行業電子產品的硬件開發工作;
秦德茂(1991—),助理工程師,主要從事交通行業電子產品硬件電路設計工作;
秦秋息(1988—),助理工程師,主要從事嵌入式系統移植及底層驅動程序設計工作。
摘要:文章介紹了基于STM32為主控芯片的LED點陣顯示屏的硬件電路及系統工作原理,并提出了一種使用C語言數據結構體和鏈表的編程技術,實現顯示屏多節目、多區域顯示功能的程序設計方法。
關鍵詞:STM32;LED點陣顯示屏;C語言;多區域顯示;設計
0引言
LED點陣顯示屏作為一種新型節能的廣告信息傳播媒體,可播放動態的文字[1]和圖像信息,具備了播放信息內容豐富、顯示效果多樣可變、運行穩定、耗電量低等優點,在日常生活中有著非常廣泛的應用,然而針對不同的應用場合,用戶對顯示屏顯示內容的要求也不同,除了單純顯示文字之外,可能還需要同時能夠顯示圖片、時鐘等信息。如設置在生產車間、項目施工現場等生產場所的LED顯示屏,顯示版面除了發布安全生產標語外,還可能需要發布生產倒計時、時鐘圖案、任務表格、氣象等信息。每種信息內容、顯示效果及在顯示屏上的顯示區域的位置、大小均可以進行自由設置,自動更新。因此,設計一款能夠對屏幕進行多區域劃分,排版靈活的LED點陣顯示屏[2]具有非常現實的意義。
1LED點陣顯示屏的系統組成及電路工作原理介紹
LED點陣顯示屏[3]主要由電源供電系統、顯示屏單元板和顯示屏系統控制卡組成,如圖1所示。
圖1 LED點陣顯示屏結構示意圖
供電系統主要負責給控制卡、顯示屏體進行供電,控制卡及顯示屏所需的供電電壓為DC 5 V,因此系統通常采用5 V的直流開關電源進行供電,電源的數量及功率可根據顯示屏的功率進行配置。
圖1中,顯示屏的屏體為若干數量的點陣顯示單元板拼接組成,這種模塊化的設計方式,可以靈活地對顯示屏幕的大小進行配置,能夠滿足不同的安裝使用環境,同時也大大簡化了顯示屏的生產、運輸及現場安裝、維護的難度。
顯示屏單元板集成了LED燈陣列及其驅動電路,驅動電路主要由LED點陣行掃描驅動電路及列驅動電路組成,行驅動電路主要是場效應管控制的LED點陣行開關電路,列驅動電路為帶數據輸出鎖存功能的串/并轉換功能芯片,如74HC595、MBI5024等芯片構成的LED列驅動電路。其電路基本原理圖如圖2所示。
圖2 LED點陣顯示單元板基本原理圖
圖2中,DAT為串并轉換驅動芯片的數據輸入端,LED點陣列數據由此輸入,S為芯片數據移位控制時鐘輸入,L為數據鎖存時鐘輸入,OE為驅動芯片內部寄存器數據輸出使能,控制LED點陣列數據從芯片內部的寄存器到并行數據管腳的輸出,CSx(x為1~n,n一般≤16)為LED屏行選信號控制信號,通常為譯碼器的譯碼輸出。電路工作原理分析如下:
控制卡將顯示的數據流從DAT端輸入,并控制S移位時鐘使得數據流逐位向箭頭方向移動,當最先送出的數據位移動到該行的串并轉換驅動芯片數據末端時,控制卡在L端產生鎖存信號將數據流鎖存到串/并轉換驅動芯片的內部寄存器中,最后通過控制使能信號OE,將數據流輸出至芯片外接LED燈的管腳上。此時,控制卡控制對應的行選驅動信號CSx(x為1~n)輸出低電平時,對應的行驅動場效應管導通,+5V電壓輸出到該行LED燈的正極上,則該行對應在驅動芯片端口上的數據為0的LED燈珠就會被點亮,為1的LED燈則被熄滅。同理,控制卡通過掃描改變行選信號CSx的狀態及DAT數據內容,即可完成顯示屏每一行上的LED燈的掃描點亮。根據人類視覺的暫留特性可知,當每一行點亮時間間隔<0.1 s時,在屏幕上就會看到一幅完整的顯示圖像。
系統控制卡為基于STM32微控制器進行設計的,其外圍芯片擴展的電路屬于典型SPI總線、FSMC總線擴展電路,較為常見但連接的線路信號也較多,鑒于篇幅有限,本文使用電路原理框圖的方式來對系統控制卡的電路原理進行介紹,如圖3所示。
圖3 系統控制卡功能模塊框圖
圖3中,STM32F207ZGT6是32位ARM CortexTM-M3內核的微控制器[3-4],主要負責接收并存儲上位機發送的節目數據并保存到片外Flash存儲器中,同時控制顯示單元板驅動電路,將顯示緩存上的數據信息輸出到屏幕上,完成節目的顯示。另外,屏幕分區顯示、顯示特效等排版功能的實現也是通過對STM32F207 ZGT6進行軟件編程,通過內部定時刷新顯示緩存內容來完成的。
SST25VF032B為SPI接口的32Mbit Flash存儲芯片[5],用于對顯示節目數據、顯示屏IP地址等掉電需要保存的數據進行存儲。IS61LV51216為8Mbit的高速SRAM芯片,通過MCU的FSMC總線進行連接,主要用于上位機數據的接收、顯示屏顯示緩存的劃分、顯示數據排版處理等軟件運行所需的數據緩存。
上位機通過UDP協議[6-7]與LED點陣顯示屏進行通訊[8],實現顯示屏配置參數、顯示內容等數據信息的聯網更新及遠程控制功能[9]。通訊電路采用了NS公司的集成以太網控制芯片DP83848C設計,該芯片為10/100Mbit單路物理層以太網收發器件,支持MII和RMII的接口模式,具有體積小、功耗低、性能齊全的特點。
25M時鐘晶振電路及復位電路主要給主控MCU提供時鐘信號和上電復位信號,保證MCU的正常運行。電源供電電路為三端穩壓芯片AMS1117-3.3 V給系統提供3.3 V電源。
2LED點陣顯示屏系統控制卡軟件設計
2.1.1LED屏節目數據結構的設計
本方案設計中,系統控制卡具備多節目、多個區域顯示播放的功能,每個節目里可分別設置節目的播放時間,顯示區域分區數目及各區域內的播放內容、播放頁數、每個頁面的播放特效等信息。因此,上位機向LED屏發送的節目數據中應包括:節目號、節目播放時間、節目區域總數、區域號、區域位置信息、區域顯示頁數、區域各頁的顯示特技、區域顯示數據等信息。節目數據結構如圖4所示。
圖4 節目數據結構圖
2.1.2通訊數據幀結構的定義
控制卡與上位機通信的過程中,主要有數據及命令類2類信息。數據類主要為顯示屏的節目信息、字體字庫數據等內容。命令類主要用于對顯示屏進行參數的配置功能,如修改信息屏的IP地址、標識號、屏體像素大小、時間校時、亮度控制等命令。因此,數據幀結構定義如下:
數據幀頭+信息屏標識+數據類型+數據幀總長度+數據內容+數據幀尾
控制卡接收到上位機發送來的數據時,可通過對數據幀頭、信息屏標識、數據幀總長度及數據幀尾的判讀,完成數據的接收并根據數據類型選擇數據的處理方式。
系統軟件主要實現以下兩大功能:
(1)對上位機發送數據的接收及處理程序
主控MCU的軟件設計上采用嵌入式實時操作系統RT-Thread[10],搭配LWIP網絡微協議,實現數據穩定傳輸。采用LWIP的socket[11]編程,通過UDP協議接收來自上位機的數據,并根據協議定義完成數據的存儲及處理。根據3.1.1節的數據結構,通過在程序設計中定義一個節目的結構體類型,用來存儲每個節目信息。程序中采用動態分配內存的方式存儲數據,可以適應不同個數的節目和區域節目單數據的接收和存儲,滿足多條節目單信息顯示的同時也提高了內存使用效率。
以下是節目結構體結構及節目鏈表數據結構如圖5所示。
圖5中,*data_file_head:指向文件窗鏈表頭指針;*data_ins_head:指向內碼窗鏈表頭指針;*Display_string:指向內碼窗字符串首地址;*Display_Dataxbytes:指向文件窗數據首地址。
圖5 節目鏈表數據結構示意圖
節目顯示數據的接收處理過程如圖6所示,程序流程圖見圖7。
圖6 數據接收處理過程
(2)LED屏顯示掃描驅動程序
顯示驅動程序主要工作流程為:在RT-Thread系統中分配一塊RAM作為顯示緩存區,顯存上的每個數據位與LED屏的每個像素進行一一對應,根據1.2節
介紹的單元板電路工作原理可知,通過LED顯示掃描輸出線程,定時對顯存上的數據進行掃描更新,并按單元板驅動電路邏輯要求輸出到單元板中,完成顯存信息輸出。具體軟件工作流程如圖7所示。
圖7 軟件設計工作流程圖
4結語
本設計方案已經在廣西高速公路ETC車道LED點陣顯示屏中得到實際應用,系統軟件設計中采用數據結構體及數據鏈表的編程方法,實現了對動態數據進行快速存儲與訪問,可為相關的動態數據處理提供一種可借鑒的設計思路。
參考文獻
[1]王海梅.取模軟件在LED顯示屏設計中的使用與分析[J].科技信息,2014(6):59.
[2]郝國法,楊姣.LED大屏幕控制電路設計方案研究[J].電視技術,2005,10(11):94.
[3]汪嵐.智能LED信息顯示屏控制系統設計與應用[J].液晶與顯示,2011,26(5):657.
[4]楊明極,祝慶峰,李碩.基于STM32的嵌入式網絡控制器設計[J].測控技術,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內核處理器的嵌入式Web服務器設計[J].電子產品世界,2009,16(3):41-43.
[7]王文良.嵌入式TCP/IP協議棧的研究與實現[D].哈爾濱:哈爾濱理工大學,2010.
[8]陳學泉,關宇東.嵌入式TCP/IP協議單片機技術在網絡通信中的應用[J].電子技術應用,2002,28(8):48-49.
[9]于春雪.基于STM32F107的高速以太網接口設計與應用[J].電聲技術,2011,35(9):63-67.
[10]李琦,李梅.基于RT-Thread的工業遠程控制器設計[J].實驗室研究與探索,2013,32(9):61-64.
[11]劉駿,顏鋼鋒.基于Socket的網絡編程技術及其實現[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
作者簡介