引言
信息技术的发展促进了平板显示(FPD)技术的不断进步,LCD(液晶)、PDP(等离子)以及LED(发光二极管)等显示新技术在显示屏幕领域得到广泛应用。其中,LCD(液晶)技术成为主流,其产品众多,市场机制也比较成熟。虽然LCD 技术已经取得巨大成功,但人们仍然没有停止对新技术的探索和研究,LED 显示技术就是近几年来出现的新技术,LED 技术以其独特的亮度高、功耗低、寿命长等特点而受到越来越多的关注。基于LED 技术的大屏幕显示屏已经广泛用于广场、机场、体育场馆和车站等公共场所,在大屏幕上显示文字、动画、图像以及视频等多媒体信息。LED 大屏幕控制系统在显示信息时,不需要经过计算机对数据进行处理,是直接读取存放在显示器缓冲区中的信息来显示的,当需要更新信息时,显示屏的数据采集模块向显示模块发送新数据。本文利用高速数据存储和处理的技术方法,设计了一种彩色异步LED 大屏幕显示屏控制系统。
1 系统设计
1.1 系统的总体框架
本文设计的LED 大屏幕显示屏控制系统总体框架如图1所示。
图1 LED大屏幕控制系统结构图
从图中可以看出,系统主要包括以下4 个组成部分:
1)上位机用户控制平台部分,主要用于对图像数据进行压缩和对显示信息的修改;
2)基于ARM 的屏幕通信接口部分,用于实现与上位机通信,接收上位机部分的图像数据和控制信号;
3)基于CPLD 和ARM的大屏幕主控制器部分,实现图像灰度调制和重构;
4)大屏幕显示驱动电路部分,是为大屏幕的LED 灯管提供驱动恒定的电流。
如图2 所示为系统的数据流图。
图2 LED大屏幕控制系统数据流图
1.2 系统硬件设计
目前有两种主流主处理器供显示屏控制系统使用,一种是ARM,另一种是ATMEL 公司生产的89055。因为ARM 不但运算速度快,还可以对各种数字信号进行实时处理,很适合LED 大屏幕控制系统的主处理器在运行过程中需要对大量数据进行搬移的特点,同时也为设计后期的软件编程留有充裕的时间空间。因此我们选定ARM 为本系统的主处理器。
1.2.1 通信模块设计
在异步LED 大屏幕控制系统中,可以在脱机状态显示不同的信息。因此,实现对大屏幕显示内容的实时更新和调整是LED 大屏幕控制系统设计中必须要进行的重要环节。对于LED 显示器与上位机的通信功能进行设计与研究,其目的是为了快速、可靠地获得调整后的显示内容。因此,本文设计的系统提供了3种通信方式,分别是以太网通信、串口通信和无线射频通信。这3种通信方式不但增强了通信的性能,而且方便了用户的使用。
1.2.2 显示控制模块设计
屏幕控制电路是LED 大屏幕控制系统中的一个重要组成部分,显示屏控制逻辑电路生成读写控制信号和访问显示缓冲区数据的地址,读取出来的显示数据通过显示驱动程序发送到LED 显示屏显示。显示控制模块主要由读/ 写地址产生器、计数器、读/ 写地址选择器、读/ 写选择器、读/ 写信号产生器、移位锁存器和同步控制器等部分组成。
要在LED 大屏幕上显示一幅完整的图形图像,CPLD 和ARM必须要协同一致工作,完成显示存储器中图形图像数据的读取、解压,图像显示效果的制作、灰度调制和生成显示屏的驱动逻辑等各个部分的功能。显示控制模块的硬件结构图如图3所示。
图3 LED 显示屏主控制器电路图
在控制电路中,数据总线将CPLD 与ARM 之间连接起来,S3C44B0X 通过芯片2 选通CPLD 中的数据缓冲区,所以ARM 输出数据的基地址为0x40000000。ARM 首先将FLASH 中保存的图像数据复制到SDRAM 中,经过相关处理后,调用不同的动态显示效果程序将SDRAM 中的图像数据循环写入CPLD 缓冲区,CPLD生成相应的时序转换,串行输出至LED 驱动电路。
2 LED 大屏幕控制系统软件设计与实现
考虑到系统硬件驱动程序的运行效率以及软件的开发周期,本系统采用C 语言作为软件的开发工具。
设计的应用程序要实现与显示屏硬件的连接功能,一要与系统底层的硬件驱动程序进行通信,二要为用户提供控制界面并可以接收用户输入的各种指令。为此,采用Visual C++ 作为系统应用程序的开发工具。通信应用程序使用MSComm ( MicrosoftCommunications Control) 控件来编写,MSComm 是微软公司为用户提供的简化Window、下串行的通信编程ActiveX 控件。MSComm控件通过外部设备的串行端口进行数据的传输和接收,可以为应用程序提供串行的通信功能。利用MSComm 控件进行串口的编程非常快捷、方便。MSComm 控件是基于事件驱动的,在一般情况下,在事件发生时必须要得到通知。在实际编程中,可以在OnComm事件处理函数中加入自己编写的处理代码,OnComm 事件处理函数还可以检查和处理程序在运行过程中出现通信错误。OnComm控件的最大优点是程序响应的时间非常短,可靠性较高。每个MSComm 控件于一个串行端口对应。如果应用程序需要访问多个串行端口,就要使用多MSComm 控件。MSComm 控件的行为是由其各种属性决定的。在VC++ 中可以通过一系列的成员函数设置这些属性,从而控制串行口的数据格式、波特率等特征。另外,在VC++ 中,MSComm 控件是作为CWND 类的派生类出现的,在系统初始化时必须创建这个窗口,并使用成员函数设置其属性,使它和下位机使用相同的通讯格式,否则是不能建立正确的串行通讯的。
3 结论
目前,现有的LED 大屏幕控制系统中,还有很多是采用8位或者16位单片机作为系统的主处理器,系统存在运算速度慢、存储空间较小、通信方式单一以及数据传输速度慢等缺点。针对上述存在的问题,本文设计了一种新的LED 大屏幕控制系统,系统采用ARM 作为主处理器,结合可编程逻辑器件设计了系统的驱动电路,实现了异步LED大屏幕的彩色图像、文字和视频等的显示。