基于DSP的LED大屏幕显示系统
目前采用的LED大屏幕显示系统的控制电路,大多由单个或多个CPU及复杂的外围电路组成,这种电路设计,单片机编程比较复杂,整个电路的调试比较麻烦,可靠性和实时性很难得到保证。针对这种情况,提出一种SD卡存储显示文件,由TMS320LF2407A和EPM240配合完成的大屏幕设计方案,使得动画的变换和处理与屏幕的显示控制完全分离,各模块任务分明,功能完善,充分发挥了DSP以及CPLD各自的优点,实现高性能的无闪烁显示。
1 总体设计
系统结构如图1所示,核心处理器采用TMS320LF2407A,外部扩展了网络接口芯片RTL8019AS、SD卡和双口RAM芯片。本系统中,DSP主要发挥其逻辑运算处理能力;网络通信接收文件功能、图形文字变换功能以及文件的读取保存功能都由TMS320LF2407A完成;而CPLD芯片EPM240的功能较单一,只负责从双口RAM中获得将要显示的数据,批量读取并送入由多个74LS595驱动的LED点阵阵列。换言之,EPM240负责实时动态刷新屏幕显示,保证刷新速度而不产生闪烁感觉(即刷新频率要达到100 Hz以上)。
本系统主要分为3个功能模块:
(1)以太网数据传送部分。PC机通过以太网将需显示的数据(可能是屏幕截图数据,也可能是文本文件等)以UDP数据报的形式发往本系统,RTL8019AS会自动将不是发往本地IP地址的数据包丢弃,主程序中查询RTL8019AS接收到新的数据包并读取入SD卡文件缓冲区,缓冲区填满时以文件形式写入SD卡FAT32文件系统中。
(2)DSP动画变换算法实现部分。TMS320LF2407A具有32 KB的外部RAM空间,图1中所示的双口RAM被扩展至此空间。首先DSP将这32 KB空间划分成2个区域(各16 KB),分别用作逻辑运算区和显示内存区(都在双口RAM中)。DSP读取SD卡中将要显示的文件数据并将其送入逻辑运算区,根据画面所需的动画要求做相应变换,变换后的点阵直接填充显示内存区,以便CPLD从该区读取显示数据。
(3)CPLD显示图形的刷新。利用CPLD速度快的特点,将显示内存区中的数据快速读入并发送给74LS595驱动扩展的LED阵列,由于功能的单一性,使显示具有很高的刷新速度,无闪烁等现象。
2 EPM240的主要任务
EPM240需从双口RAM的显示内存区中读入数据,所以在硬件电路上必须将双口RAM的一个端口与EPM240连接,在用VHDL语言描述电路时,采用状态机实现EPM240对双口RAM的控制与数据的读取。由于双口RAM的2个端口都可能同时对同一个单元操作,因此必须将双口RAM的BUSY引脚分别接至DSP和EPM240上,一边操作时,另一边必须等待操作结束,否则可能会造成数据错误。DSP在操作显示内存区时,采用逆序地址方向(地址从大到小),而EPM240采用正序地址方向操作,这样做的好处是修改一幅图像时,最大可能地避免发生同时操作同一单元的现象。
除了完成与双口RAM接口的工作外,EPM240还必须将读入的字节不断地发送给74LS595刷新硬件显示,只要采用VHDL语言描述出SPI总线接口协议即可。简而言之,CPLD在本系统中起数据的搬运作用(显示内存区->EPM240->LED显示)。
3 DSP实现图像的动画变换
常见的动画处理包括左右平移、上下平移、连续拉幕、扇入扇出等。基于上面提出的双缓冲区的设计模式,使得动画的实现变得清晰易行。动画变化原理如图2所示。
图2中假设用户采用的实际屏幕宽度为Width点,高度为Height点。算法的基本思想是假想有个和实际屏幕大小一致的视窗存在,并可根据需要按一定规律在逻辑运算区内移动。即落在视窗内的部分才能被实际屏幕显示(被送入显示内存区)。
例如,要实现图像的左右平移操作,实现算法前,需将显示文件的原始数据载入逻辑运算区,然后复位视窗的偏移坐标(OffX,OffY)为(0,0),每隔用户设定的时间间隔后,调整左右偏移量OffX累加SpeedDot(动画速度,用户设定),再将落入视窗内的数据部分映射到显示内存区中,由EPM240负责刷新显示。当OffX累加到达到Width时动画结束,此时可以将下一幅图像文件原始数据载入逻辑运算区进行类似的动画操作。再例如实现图像从右下角逐渐飞入屏幕,可将(OffX,OffY)初始设置成(-Width, -Height),显然此时无数据落入视窗,之后每隔时间间隔后,再进行如下映射操作即可:
OffX+=SpeedDot;
OffY+=SpeedDot*((float)Height/Width);
4 网络传输的实现
RTL8019AS和TMS320LF2407A间的连接如图3所示。采用以太网进行数据传输可以提高通信质量,具有通信速度快、传输数据量大等特点,而且接入简单,只需将RJ45连接头接入集线器即实现了网络的物理连接。
- 基于μC/OS2II的LED显示屏控制器(08-14)
- 基于μC/OS-II的多窗口显示屏控制器设计(01-23)
- DSP在LED大屏显示中的应用(03-14)
- DSP在LED显示中的应用(08-21)
- 基于单片机的彩灯设计方案(10-29)