APP下载

基于STM32实现多区域显示的LED点阵屏的设计

2015-03-14林秀明秦德茂秦秋息

西部交通科技 2015年5期
关键词:C语言设计

林秀明,秦德茂,秦秋息

(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点阵显示屏结构示意图

1.1 电源供电系统

供电系统主要负责给控制卡、显示屏体进行供电,控制卡及显示屏所需的供电电压为DC 5 V,因此系统通常采用5 V的直流开关电源进行供电,电源的数量及功率可根据显示屏的功率进行配置。

1.2 显示单元板电路原理

图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时,在屏幕上就会看到一幅完整的显示图像。

1.3 显示屏系统控制卡的电路基本原理

系统控制卡为基于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 系统控制卡与上位机通信协议的设计

2.1.1LED屏节目数据结构的设计

本方案设计中,系统控制卡具备多节目、多个区域显示播放的功能,每个节目里可分别设置节目的播放时间,显示区域分区数目及各区域内的播放内容、播放页数、每个页面的播放特效等信息。因此,上位机向LED屏发送的节目数据中应包括:节目号、节目播放时间、节目区域总数、区域号、区域位置信息、区域显示页数、区域各页的显示特技、区域显示数据等信息。节目数据结构如图4所示。

图4 节目数据结构图

2.1.2通讯数据帧结构的定义

控制卡与上位机通信的过程中,主要有数据及命令类2类信息。数据类主要为显示屏的节目信息、字体字库数据等内容。命令类主要用于对显示屏进行参数的配置功能,如修改信息屏的IP地址、标识号、屏体像素大小、时间校时、亮度控制等命令。因此,数据帧结构定义如下:

数据帧头+信息屏标识+数据类型+数据帧总长度+数据内容+数据帧尾

控制卡接收到上位机发送来的数据时,可通过对数据帧头、信息屏标识、数据帧总长度及数据帧尾的判读,完成数据的接收并根据数据类型选择数据的处理方式。

2.2 软件设计

系统软件主要实现以下两大功能:

(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

作者简介

猜你喜欢

C语言设计
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
基于C语言的计算机软件编程
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
高职高专院校C语言程序设计教学改革探索
设计之味