[摘要] 介绍一种应用广泛的LED大屏幕异步控制器的设计方案。该系统采用高性能32位ARM微处理器为其控制核心,并且基于uc/OS-II进行软件设计。可实现单屏幕多窗口任意位置的显示www.cechina.cn,使得屏幕显示变得丰富灵活。
[关键词] LED大屏幕; 多窗口显示; ARM微处理器; 异步控制器
1 引言:
以往的LED异步控制器只能把一个屏幕作为一个完整的区域来进行显示,或者简单的加上时间区域或游走字幕区域,样对于用户来讲往往缺乏足够的灵活性,尤其在屏幕较大的时候。针对以上情况,本文提出了一款基于32位高性能ARM处理器和uc/OS-II的设计方案。它充分利用了uc/OS-II高效的多任务管理功能和ARM处理器强大的陨算能力,实现了单屏幕多窗口的任意位置显示,使得显示内容变得更加丰富CONTROL ENGINEERING China版权所有,显示方式变得更加灵活。
2 LED控制系统的工作原理:
典型的LED异步控制系统主要由PC应用软件、通信模块、数据处理模块、扫描控制模块、驱动模块和LED屏几部分组成,如图1所示。
首先,PC应用软件将文本或图片转化为具有特定格式的点阵信息。然后,通过通信模块将此点阵信息发送给数据处理模块。数据处理模块对这些点阵信息进行各种特技处理www.cechina.cn,最后通过扫描控制模块和驱动模块将画面在LED屏上进行正确显示。本文所指的LED异步控制器包括通信模块、数据处理模块和扫描控制模块三部分。
3 控制器软件部分的设计:
本控制器的硬件结构如图2所示。数据处理模块由MCU,一片SRAM和一片FLASH存储器组成。MCU选用PHILIPS的基于32位ARM内核的LPC2214处理器,它有着丰富的外围接口资源和强大的陨算能力,整个控制器的核心。SRAM作为MCU进行特技处理时的缓存使用。FLASH存储器用于存储点阵信息和一些必要的数。
扫描控制模块由CPLD和显存组成。显存为一片SRAM,它用于保存当前显示的一帧点阵信息。CPLD通过地址总线和16位数据总线与MCU相连, 它把从MCU接收到的16位数据按指定地址写入显存,然后再按一定的寻址方式从显存中读出点阵信息进行扫描。MCU只能通过CPLD对显存进行以字(2byte)为单位的写操作。
通信模块包括以太网模块和串口通信模块,用于实现PC与控制器之间的RS232、RS485以及工业以太网通信。
4 控制器软件部分的设计:
为了实现单屏幕、多窗口任意位置的显示www.cechina.cn,软件部分我们基于uc/OS-II进行设计,这样可以充分利用操作系统高效的任务调度算法,将每个窗口的显示都交由单个任务来完成,从而极大地提高系统的陨行速度和可靠性,并且使得程序的开发和扩展变得更加方便。
在进行具体的程序设计之前,首先要确定数据的组织方案。因为好的数据组织方案控制工程网版权所有,对于程序编写来说往往可以达到事半功倍的效果。
4.1 显存的数据组织方案:
对于双色屏,一个像素点需要红、绿两位数据来描述。为了便于处理CONTROL ENGINEERING China版权所有,我们将横向连续的8个像素点组成一个字(2byte)来进行存储,其中一个字节为红数据,一个字节为绿数据。数据存储顺序为从左到右,从上到下。如图3所示,假如屏幕宽度为160个像素点,显存起始地址为0x83000000,则屏幕第一行的前8个像素点映射到显存中地址为0x83000000和0x83000001的两个字节,第二行的前8个像素点映射到显存中地址为0x83000028和0x83000029的两个字节,依此类推。
4.2 点阵信息转化规则:
由于窗口大小可以任意设置,窗口的位置可以任意摆放。所以对于单个窗口而言,它在显存中的映射可能并非是字(2byte)对齐的。以图4为例,在一个大小为160(宽)×96(高)的屏幕上开设一个左上角坐标为(20,16),大小为86×47的窗口,则此窗口第一行的前4个像素点在显存中的映射为地址是0x83000282和0x83000283的两个字节的低4位,所以这个窗口在显存中的映射并不是字对齐的。由于MCU只能以字(2byte)为单位对显存进行操作,所以PC软件在对该窗口进行