产品 求购 供应 文章 问题

0431-81702023
LED
大屏幕LED显示控制系统的设计

大屏幕LED显示控制系统的设计

赵才荣1,2,丁铁夫1,郑喜凤1,刘高霞1,2

(1.中国科学院长春光学精密机械与物理研究所,吉林长春 130033,E2mail:zhaocairong@126.com;2.中国科学院研究生院,北京 100039)

 :根据LED显示模块结构特点,结合CPLD技术实现LED屏的动态扫描显示,设计了一种大屏幕LED显示控制系统。该系统以DSP芯片TMS320LF2407为控制核心,完成与PC机的通讯;在可编程逻辑器件EP1K30辅助下,同时完成数据存储与更新、显示画面的刷新、动画处理、循环显示等。利用VisualC++,编写了上位机的用户界面程序以及与下位机的串行通信程序。该系统能脱机和连续长期运行,成本较低。

  :LED显示;动态扫描显示;串口通信

  

近年来,平板显示(FPD)技术不断进步,LCDPDP以及LED等显示技术频频亮相于各媒体。其中,LCD呼声极高而且市场机制较为成熟。尽管如此,业界依然没有放弃对于新兴技术的探索和关注,作为后起之秀的LED显示技术则依靠其独特的低功耗、高亮度、长寿命等优势而倍受业界关注。大屏幕LED显示屏现已广泛用于体育场馆、机场、车站等场所,用以显示文字、图形、动画及动态视频影像等多媒体信息[1]。该LED显示屏控制系统显示信息时,不经过计算机进行数据的整合和格式的转换,显示部分直接从显示缓冲区中读取已存放好的信息,当需要更新时,数据采集部分再向显示部分发送新数据。本文利用数据采集,高速数据存储、处理的技术和方法,采用大容量闪速存储器和通信模块实现数据的存储和更新,设计了一种大屏幕LED显示控制系统。

系统的组成和工作原理

目前FPGA/CPLD芯片内部的资源越来越多,速度越来越快,开发的软件功能也更加完善,使其应用逐步扩大。人们普遍认为,今后的许多电子系统,将以CPU+RAM+CPLD/FPGA的结构为特征,我们采用的就是这样结构的DSP+RAM+PLD来设计脱机LED显示控制系统。它主要由控制系统和显示屏两部分组成,显示屏又主要由若干个LED显示驱动模块拼接而成,屏体设计时,尽量要选择相同的电路,避免由电路参数不同影响显示效果[2]。显示控制系统的设计与制造对整个LED大屏幕显示系统有着至关重要的影响和作用。结合LED大屏幕显示的基本原理,该系统的总体方案如图1所示。通信模块和信息存储器主要完成显示信息的存储和更新;汉字库用于存储各种字体的国标汉字,采用查表的方式调用需要显示的汉字点阵数据,数据/程序存储器用于数据缓存以及系统调试时的程序存储;可编程逻辑器件产生显示控制逻辑、访问显示缓冲区的读写控制逻辑以及各个模块之间进行切换的控制逻辑,将显示数据从显示存储器内读出并写入相应的显示驱动器进行动态显示。从PLD出来的RGB串行数据流若直接送LED显示屏,则速率太高而使得无法处理,根据设计经验,利用移位寄存器将串行数据转换成16路并行数据在硬件上比较容易实现。

具体硬件设计方案

3.1 CPU选型

在设计过程中考虑了两种CPU。第一种是ATMEL公司生产的89C55:它的优点是价格较低,缺点就是通用I/O口少,速度不够快,给后期的软件设计带来比较大的压力;第二种是TI公司生产的TMS320LF2407,它的特点具体如下:

(1)采用高性能静态CMOS技术,使得供电电压降为3.3V,减小了控制器的功耗;30MIPS的执行速度使指令周期缩短到33ns(30MHz),从而提高了控制器的实时控制能力。

(2)片内有高达32K字的FLASH程序存储器,高达2.5K字的数据/程序RAM,544字双口RAM(DARAM)2K字的单口RAM(SARAM)

(3)可扩展的外部存储器(LF2407)总共192K字空间:64K字程序存储器空间、64K字数据存储器空间和64KI/O寻址空间。

(4)串行通信接口(SCI)模块。

(5)高达40个可单独编程或复用的通用输入/输出引脚(GPIO)

综合上述特点,TMS320LF2407A运算速度快,可以实时进行各种数字信号处理算法,比较适合脱机LED显示控制系统的CPU在运行过程中要进行大量数据搬移的特点,也为后期软件编程留下了较大的时间空间;TMS320LF2407有着丰富的外设资源,可以大大简化外围电路中的扩展部分,降低了系统的复杂度,所以选定TMS3202LF2407A为该系统的CPU3.2 总体设计

该系统主要由以下5个模块组成:主控模块、时序控制模块、存储器模块、电源模块以及通信模块。主控模块的核心器件是TI公司的TMS3202LF2407;时序控制电路模块的核心器件是AL2TERA公司的PLDEP1K30,除产生LED显示需要的时序外,在内部还实现了页选地址的锁存,产生FLASHRAM的片选以及对本地电路的使能等控制逻辑;存储器模块分为4部分:程序、数据存储器,汉字库存储器,显示缓存和显示信息储存器,主要器件是AM29F016DRAM;通信模块主要器件为ALTERA公司的MAX232,通过异步串口实现数据的存储和更新。脱机LED大屏幕显示控制系统的硬件接口电路如图2所示。

3.2.1 电源模块的设计

在系统中,TMS320LF2407EP1K30都要求3.3V2.5V供电。利用TPS76325为芯片提供稳定高质量的2.5V电压;TPS7333Q为低压差线性稳压电路,有较高的电源噪声抑制能力,采用它一方面为芯片提供3.3V供电电压,另一方面相当于一个电子有源滤波器,可以提供较高的供电质量。对于电源退藕电容并非容量越大越好[3],容量较大的电解电容提供电压稳定作用,小电容提供电路的瞬时供电响应。电解电容体积较大,但也应该尽量靠近芯片相应的电源引脚;10100nF小容量退藕电容放置在芯片的引脚下面,经过孔到电路板背面,尽量缩短连接长度。在线路板空间允许的情况下尽量多地并排放置一些退藕电容,同时电源滤波电感应尽量远离芯片放置。

3.2.2 通信模块设计

TMS320LF2407A提供了串行通讯接口SCI模块,支持CPU与其他使用标准格式的异步外设之间的数字通信。通过ALTERA公司MAX232芯片的电平转换,就可以同PC机实现数字通信,从而实现系统上数据的存储和更新。

SCI接收器和发送器是双缓冲的,每一个都有它自己单独的使能和中断标志位,两者都可独立工作,或者在全双工的方式下同时工作[4]SCI模块通过SCIRXD引脚接收数据,通过SCITXD引脚发送数据,在不使用SCI模块的时候,这两个引脚可以被配置为通用I/O口。为确保数据的完整,SCI对接受到的数据进行间断检测、奇偶校验、超时和帧出错校验。为了实现串行通讯,首先需要在DSP主程序中对SCI的控制寄存器进行正确的初始化。本系统为单机通信,采用空闲线多处理器模式,不使用SLEEP;数据在定时器中断子程序中发送,SCI接收中断子程序中接收数据;采用的通讯格式为9600波特率,8位数据位,1位停止位,无奇偶校验。

3.2.3 显示控制模块设计

3.2.3.1 显示控制电路的组成及工作原理

显示控制电路是脱机LED显示控制系统中的重要组成部分,显示控制逻辑电路产生访问显示缓冲区数据的地址和读写控制信号,读出显示数据经显示驱动部分送LED显示屏显示。它主要由计数器、读/写地址产生器、读/写地址选择器、读/写信号产生器、读/写选择器、同步控制器、移位锁存器等组成。

预期驱动的LED显示屏最大为258行×1024列的室内显示屏。针对LED显示屏点阵结构的特点,扫描电路采用逐行输出数据和逐行选通显示的过程,称为行扫描。由于大屏结构复杂,显示速度较高,为了便于大屏的控制,将整个大屏分成若干扫描单元。根据设计的LED显示屏每个周期扫描8行的扫描方式,8行×1024列为一个扫描单元,整屏共有258/8=16个扫描单元。在统一的时序控制下,每个扫描单元独立完成LED的扫描显示,各个单元的扫描同步完成。为了设计的方便,我们把两个扫描单元看成一个单元,同步信号中只要把行扫描信号改成四位即可,通过LED模块的38译码器转换乘16个行扫描信号。扫描显示的控制时序如图3所示[5]

3.2.3.2 显示控制电路的实现

其电路原理图如图4所示。在图中,DSP能提供16位数据线、16位地址线,通用的I/O口信号作为控制信号。写地址产生器产生写显示存储器的写入地址[6],读地址产生器产生存储器的读出地址,根据读写转换开关中的地址选择器、读写信号产生器、读写选择器来决定是把写数据及写地址同存储器连接还是把读数据及读地址同存储器连接。考虑到该屏用于文字显示居多,显示控制电路设计成无灰度显示模式。数据按时序写入显示存储器,系统采用的晶振为40MHz,移位频率为40MHz/2=20MHz,读出的红、绿两条的串行数据流速度高达20Mbit/s,若串行数据流直接送往显示屏,则速率太高而使得无法处理。根据大屏采用的8行扫描方式,整个大屏分为16个扫描单元,串行数据流通过移位锁存器实现串并转换,这样处理的数据速率为20/16=1.25Mbit/s,可供扫描显示用。需要注意的是[7]:当时序写入显示存储器后,不能按原地址顺序读出。要控制读出时序,让地址跳动地读出数据,即读出顺序为第1扫描单元的第1个字节,2个单元的第1字节,……,16个单元的第1个字节;再读出116单元的第2个字节;然后读出116单元的第3个字节;按此顺序读出,直至读完为止,这些操作都由读地址产生器完成。同步控制器同时产生时钟信号、锁存信号及行扫描信号。显示驱动部分一般选用串行移位数字器件,由于每个LED显示屏体由若干个模块组成,本系统中屏体的模块为16行×64,模块之间信号级联。每个模块行驱动电路同时驱动64列的LED发光器件[8],按每个LED器件电流20mA计算,64LED同时发光时就需要64×20=1280mA的驱动电流。因此需要用功率管驱动,TP122

控制系统软件设计

4.1 硬件驱动程序设计

考虑到硬件驱动程序的效率和开发周期,C语言作为开发工具。硬件驱动程序主要分3:(1)串行通信程序;(2)对闪速存储器的操作程序;(3)实时动态显示程序,这是硬件驱动程序的主要部分。画面的实时动态处理即显示方式以子程序方式编写,有多少种显示方式即有多少个显示子程序。显示方式具体有画面左移、上移、开幕、覆盖、闪烁等十几种显示方式。下面仅以最常见的上移显示为例来具体说明。为便于说明,我们将画面显示数据处理RAM暂存区形象直观化,并按屏面信息字节数划出等同的Ⅰ区和Ⅱ区作为画面显示数据处理暂存区,即双信暂存区。每区划分成N行、n列。程序开始先将画面数据存储区的数据按要求顺序传送到Ⅰ区,并置Ⅱ区RAM为全“0(即清显示)。将Ⅰ区第1行数据传送至Ⅱ区第N,然后将Ⅱ区数据按一定顺序(即完成画面刷新要求的数据顺序)传至RAM显示缓冲区送显。之后,将Ⅰ区第1行传至Ⅱ区第(N-1),Ⅰ区第2行传至Ⅱ区第N,然后将Ⅱ区数据按一定顺序传至显示缓冲区送显。依此类推,便形成屏幕上移的动态效果显示。

4.2 应用程序设计

应用程序要实现连接功能,一是提供用户界面并接收用户输入的指令,二是与底层硬件驱动程序的通信,为此用VisualC++作为应用程序的开发工具。通信程序编写使用MSComm(Mi2crosoftCommunicationsControl)控件,Mi2crosoft公司提供的简化Windows下串行通信编程ActiveX控件。MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能[4]MSComm控件在串口编程时非常方便。MSComm控件是事件驱动的,在许多情况下,在事件发生时需要得到通知。在编程过程中,可以在OnComm事件处理函数中加入自己的处理代码,OnComm事件还可以检查和处理通讯错误,OnComm消息的处理如图5所示,这种方法的优点是程序响应及时,可靠性高。每个MSComm控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多MSComm控件。MSComm控件的行为是由其各种属性决定的。

VC++中可以通过一系列的成员函数设置这些属性,从而控制串行口的数据格式、波特率等特征。必须注意的是:VC++,MSComm是作为CWND类的派生类出现的,在系统初始化时必须创建这个窗口,并使用成员函数设置其属性,使它和下位机使用相同的通讯格式,否则是不能建立正确的串行通讯的.

  

通过硬件设计和软件的辅助设计,该控制系统基本上实现了室内LED显示屏的脱机图文显示,基本显示效果初步实现,但就丰富显示效果、上位机的用户界面人性化等细节方面需进一步研究和完善。如室外显示屏,只要对系统中显示控制部分稍微改动即可应用。在改用隔行扫描动态显示方式,LED显示模块做相应的简单改动前提下,该系统成功地用于高速公路上的室外脱机LED显示屏,基本上取得了预期效果。