DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 108|回复: 0
打印 上一主题 下一主题

基于DSP的LED大屏幕显示系统

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-25 09:50:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前采用的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连接头接入集线器即实现了网络的物理连接。




以太网主要有2种通信协议:TCP与UDP协议。TCP协议提供的是可靠的传输服务,可以确保数据不丢失,但它的实现较为复杂,任务也比较繁重,系统RAM的消耗也较大;UDP协议提供的是不可靠传输服务,最大可能地将数据传输到目的地。可靠的数据传输只能由高层(一般是应用层)负责校验和发起,传输快、运算量小、算法简单易行。
   对于本系统而言,大屏幕点阵的变换与文件系统的操作等任务已较为繁重,而且一般只是在设置显示图像和动画时才进行以太网传输,丢包的可能性并不大,所以采用UDP协议。发送时,只需将要传输的数据逐层地向低层发送,经过每层时都在前面加上本层的头部(有的还加有尾部),在头部中包含有相关的传输信息,最后通过物理层(RTL8019AS的驱动层)将最终封装好的数据帧发送到网络中。接收正好是发送的逆过程,只需将头部逐层剥离(剥离时要校验是否正确,否则丢弃),最后获得被封装的数据。DSP在收到正确的数据后,将其以文件形式保存到SD卡中。本模块应用层流程图如4所示。




5   大屏阵列的构成
   显示面板由32×16点阵构成最小单位,JP1是输入信号,当有多个单位级连成大屏时,只需将前个单位的JP2口与后一单位的JP1口连接即可。第一块单位板的JP1口连接到控制板,由CPLD扫描显示。采用1/16扫描方式,行信号由74HC154译码后输出,并经过APM4953(内部是2个P沟道的MOS管)增强驱动能力;列信号由74HC595级连构成,提供列线的灌入电流。由于级连时消耗电流较大,因此为每块单位板设置电源模块等,限于篇幅,这些图并未给出。控制时,CPLD先通过列数据端口串行地发送当前行的数据,然后选中当前行进行显示,暂留时间后对下一行进行同样操作。本电路接口十分简单,扩展大屏也十分方便。
   本方案采用以太网通信,大大提高了数据传输速度和传输的可靠性;充分利用DSP的运算优势,进行动画的实时变换处理,将变换与显示控制完全分离;CPLD的运用可以大大提高硬件的控制速度,快速刷新屏幕,稳定可靠,扫描频率高。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-17 02:09 , 耗时 0.082040 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表