基于ARM的大型LED点阵显示系统的设计
扫描二维码
随时随地手机看文章
摘 要: 介绍一种基于ARM的大型LED点阵显示系统的设计方案。该系统使用ARM芯片内部的DMA控制器进行数据的传输和控制,节省了处理器取指和译指时间,从而能够在连续的读写操作中完成数据的传输,提高了数据传输的速度和效率。
大型LED 显示系统是随着计算机及相关微电子、光电子技术的迅猛发展而形成的一种电子广告媒体,它利用发光二极管构成的点阵模块或像素单元组成大面积显示屏幕,主要用于显示字符、图像等信息。它采用低电压扫描驱动,具有: 耗电少、寿命长、成本低、亮度高、故障少、视角大、可视距离远等优点。随着LED材料技术和工艺的提升,大型LED显示系统以突出的优势成为平板显示的主流产品之一,广泛应用在如证券交易,机场航班,港口,车站等场合,在信息显示领域得到广泛应用。
1 系统结构与原理
大型LED显示系统一般分为显示驱动模块和主控板两部分。
1.1 显示模块
大型LED显示系统是利用人眼视觉特点采用逐行扫描和列驱动方式以节省硬件开支,本系统采用1 /16逐行扫描方式,所以整个显示屏被分为16 行同名行,显示模块原理图如图1所示。
显示模块原理图
图1 显示模块原理图。
每个显示模块为1个64 ×32的小点阵屏,分为两部分,上下各16 行,每部分有8 组列数据锁存器。上下两部分复用1个4~16译码器U3,选通驱动1 /16逐行扫描显示,并需要16组列驱动锁存器锁存列显示数据。采用并行总线数据传输方式时,需要1个4~16译码器U2选通使能列锁存器。在点阵数据刷新时,需要使用两级锁存器锁存列显示数据,否则会出现显示拖尾现象。本次正在显示的数据存在第二级锁存器中,主控板对屏端第一级锁存器写下一行要显示的数据进行列数据刷新,当下一行要显示的数据传输完毕后,一起锁存到第二级锁存器输出并选通驱动下一行显示。采用并行总线方式下二级锁存器仍比数据串行传输再转成并行输出的方案经济。
显示模块与模块之间横向级联时,运用错位级联的思想,使其具有良好的通用性和可嵌入性。选通线每到一级时就会错位一次并传到下一级,总是使第一根选通线BLK_EN0作第一级列锁存器译码器的使能控制线,n根选通线就能依次选通n级横向级联模块,这样就可以用相同的显示模块任意组合成横向级联的条屏。
运用错位级联思想,使横向级联的显示模块上的第一级锁存器的译码器U2 能够依次选通,该译码器又能依次选通第一级列数据锁存器,这样横向级联屏上的第一级列数据锁存器就能看成一段连续的存储单元,这是使用DMA 并行数据传输控制的基础。[!--empirenews.page--]
1.2 主控电路与LED屏的接口设计
本显示系统选用基于ARM7TDM I内核并带有内部DMA控制器的S3C44B0X作主控制器,使其工作在ARM状态,并使用16位总线。由于把LED屏虚拟的视为一段连续的存储单元,故为其分配地址空间0x2000000~0x4000000。
主控板与LED屏接口电路原理图如图2所示。
一个大型LED显示屏的结构可分为纵向级联和横向级联,这种结构类似于一个三维数组。假设一个三维数组LED [ i ] [ j] [ k ] ,其中:
i = 0,1,2,……,m 表示LED屏纵向级联级的序号。
j = 0,1,2,……,n 表示LED屏横向级联级的序号。
k = 0,1,2,……,16 表示显示模块上16 个第一级列数据锁存器的序号。
由于系统使用16位并行总线数据传输方式,并将LED屏视为一段连续的存储单元,故使用A [ 4∶1 ]
作显示模块上选通第一级列数据锁存器译码器(图1中U2) 的译码输入,即为三维数组的k变量; 使用A [ 8 ∶5 ] 作选通横向级联显示模块的译码器(图2中U14) 译码输入,即为三维数组的j变量;由于LED 屏要具有良好的灵活性,又由于采用DMA传输数据要求点阵码存放顺序的技术要求,纵向级联级选通不满足使用地址总线译码选通的条件,所以使用 S3C44B0X的PG [ 2∶0 ] 作纵向级联级选通译码器的译码输入,即三维数组的i变量。
主控板与LED显示屏接口电路原理图
图2 主控板与LED显示屏接口电路原理图。[!--empirenews.page--]
由于地址和数据总线上的状态不断变化,所以在对LED屏进行写操作时,地址和数据信号应进行锁存,主控板上分别使用U2、U3和U4锁存对 LED写操作时的地址和数据总线的状态。LED屏分配首址为0x2000000,当对其进行写操作时,S3C44B0X的nGCSl和nWE脚会出现可编程控制时延的有效低电平。nGCSl经一个非门作U2、U3和U4的锁存使能控制信号,保证仅在对LED屏访问时,地址和数据总线上的信号才被锁存。 nWE经一个非门作屏端第一级列数据锁存器(图1中U4~U19) 的锁存使能控制信号,保证只有当刷新数据稳定出现在列数据锁存其输入端时才被锁存。S3C44B0X的PC I0作所有屏端第二级锁存器(图1中U20~U35) 的锁存使能控制信号线; S3C44BOX的PC [ 3∶0 ] 作16行驱动译码器(图1中U3) 的译码输入。由于数据传输时只需要主控板对LED屏输出控制,不需要信号反馈,所以接口电路采用廉价的5V供电的HCT电路芯片方案,就可满足主控芯片313V到LED屏5V的逻辑电平转换。
在DMA传输数据时,更关心的是DMA的写操作,时序如图3所示。t1时刻DMA写操作开始,地址和数据总线上出现LED屏相应位置的地址和刷新数据; t2时刻nGCS1引脚出现有效低电平,地址和数据总线上的数据被锁存到U2~U4并输出; t3时刻nWE引脚出现有效低电平,U2~U4的输出数据被锁存到屏端第一级列数据锁存器并输出。这样主控制器就完成了一次列数据的刷新。
DMA的写操作时序图
图3 DMA的写操作时序图。
2 软件设计
2.1 LED屏显示程序设计
由于使用了S3C44B0X内部DMA控制器进行数据的传输与控制,显示程序得到很大简化,程序流程如图4所示。点阵码的传输全由DMA 控制器完成,只需在启动DMA数据传输前将点阵码的首址、LED屏的首址及传输数据量的值分别赋给相应的控制字后,启动DMA 操作即可。完成所有本同名行点阵码传输后,将刷新的数据锁存到第二级列数据锁存器输出,并驱动本同名行显示。这样循环显示16行同名行后就完成了一帧点阵显示。
[!--empirenews.page--]
显示程序流程图
图4 显示程序流程图。
2.2 点阵排序
由于LED 显示模块的电路结构以及使用了16位并行总线和DMA 数据传输技术,在显示时点阵码的排放顺序,需要满足如下要求:
(1) 16 位并行总线一次数据传输,即一次DMA写操作传输两个字节的点阵码,低位和高位字节分别传送到两相邻的纵向级联模块的同名行和同名列数据锁存器中,因此相邻的纵向级联模块的同名行和同名列点阵码应连续存放。
(2) 由于显示模块的第一级列数据锁存器译码选通电路结构和DMA 数据传输要求,对同一显示模块的上下两部分的同名行点阵应按列数据锁存器的选通顺序依次连续存放。
(3) 两相邻的纵向级联级的一系列横向级联级应按(1) 和(2) 原则进行点阵码排序。
(4) 各纵向级联级依次按(1) 、(2) 、(3) 原则进行点阵码排序。
(5) 16行扫描显示方式下,一个大型LED 屏分为16 行同名行,每一同名行按照( 1) 、( 2) 、(3) 、(4) 原则进行点阵排序。
以一个128 ×64的点阵屏第一行同名行的数据排序为例,如图5所示,第一行同名行的点阵码的存放顺序应依次为: a,b,……z,A,B,……Z,……。
128 ×64点阵屏第一行同名行的数据排序图
图5 128 ×64点阵屏第一行同名行的数据排序图。
3 结论
使用并行总线DMA 数据传输技术简化了LED显示系统的软硬件设计,降低了系统成本,取得了很好的显示质量,在2211184MHz的系统时钟下,512 ×256 (8m2 ) 单色点阵屏显示帧频达到250Hz,平均120ns传送1个字节,达到了使用单CPU系统代替多机系统控制LED显示系统的目的。但为了使上一代的显示驱动板仍能够使用,点阵码需要排序,显示时只能使用页面方式显示,这样在多页动态滚屏显示时需要大容量的存储器。对于512 ×256单色点阵屏需要数十兆的容量,使用32 位ARM7TDMl内核先进控制器S3C44B0X和廉价的大容量SDRAM存储器可以使该问题得到很好的解决。若使用针对DMA控制显示设计的显示驱动板显示时,点阵码就不需要排序,一片数百KB 的SRAM就能满足系统要求了。