DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[待整理] 基于CPLD和ARM的异步LED显示屏控制系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 14:54:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于LED技术的大屏幕显示屏已经广泛用于广场、机场、体育场馆和车站等公共场所,在大屏幕上显示文字、动画、图像以及视频等多媒体信息。LED大屏幕控制系统在显示信息时,不需要经过计算机对数据进行处理,是直接读取存放在显示器缓冲区中的信息来显示的,当需要更新信息时,显示屏的数据采集模块向显示模块发送新数据。本文利用高速数据存储和处理的技术方法,设计了一种彩色异步LED大屏幕显示屏控制系统。

  1系统设计
  1.1系统的总体框架
  本文设计的LED大屏幕显示屏控制系统总体框架如图1所示。 

图1LED大屏幕控制系统结构图

从图中可以看出,系统主要包括以下4个组成部分:
  1)上位机用户控制平台部分,主要用于对图像数据进行压缩和对显示信息的修改;
  2)基于ARM的屏幕通信接口部分,用于实现与上位机通信,接收上位机部分的图像数据和控制信号;
  3)基于CPLD和ARM的大屏幕主控制器部分,实现图像灰度调制和重构;
  4)大屏幕显示驱动电路部分,是为大屏幕的LED灯管提供驱动恒定的电流。
  如图2所示为系统的数据流图。  

图2LED大屏幕控制系统数据流图

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所示。 

图3LED显示屏主控制器电路图

在控制电路中,数据总线将CPLD与ARM之间连接起来,S3C44B0X通过芯片2选通CPLD中的数据缓冲区,所以ARM输出数据的基地址为0x40000000。ARM首先将FLASH中保存的图像数据复制到SDRAM中,经过相关处理后,调用不同的动态显示效果程序将SDRAM中的图像数据循环写入CPLD缓冲区,CPLD生成相应的时序转换,串行输出至LED驱动电路。
  2LED大屏幕控制系统软件设计与实现
  考虑到系统硬件驱动程序的运行效率以及软件的开发周期,本系统采用C语言作为软件的开发工具。
  设计的应用程序要实现与显示屏硬件的连接功能,一要与系统底层的硬件驱动程序进行通信,二要为用户提供控制界面并可以接收用户输入的各种指令。为此,采用VisualC++作为系统应用程序的开发工具。通信应用程序使用MSComm(MicrosoftCommunicationsControl)控件来编写,MSComm是微软公司为用户提供的简化Window、下串行的通信编程ActiveX控件。MSComm控件通过外部设备的串行端口进行数据的传输和接收,可以为应用程序提供串行的通信功能。利用MSComm控件进行串口的编程非常快捷、方便。MSComm控件是基于事件驱动的,在一般情况下,在事件发生时必须要得到通知。在实际编程中,可以在OnComm事件处理函数中加入自己编写的处理代码,OnComm事件处理函数还可以检查和处理程序在运行过程中出现通信错误。OnComm控件的最大优点是程序响应的时间非常短,可靠性较高。每个MSComm控件于一个串行端口对应。如果应用程序需要访问多个串行端口,就要使用多MSComm控件。MSComm控件的行为是由其各种属性决定的。在VC++中可以通过一系列的成员函数设置这些属性,从而控制串行口的数据格式、波特率等特征。另外,在VC++中,MSComm控件是作为CWND类的派生类出现的,在系统初始化时必须创建这个窗口,并使用成员函数设置其属性,使它和下位机使用相同的通讯格式,否则是不能建立正确的串行通讯的。
  3结论
  目前,现有的LED大屏幕控制系统中,还有很多是采用8位或者16位单片机作为系统的主处理器,系统存在运算速度慢、存储空间较小、通信方式单一以及数据传输速度慢等缺点。针对上述存在的问题,本文设计了一种新的LED大屏幕控制系统,系统采用ARM作为主处理器,结合可编程逻辑器件设计了系统的驱动电路,实现了异步LED大屏幕的彩色图像、文字和视频等的显示。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-10 11:04 , 耗时 0.352581 秒, 21 个查询请求 , Gzip 开启.

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

桂公网安备 45031202000115号

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

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

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

QQ:28000622;Email:libyoufer@sina.com

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

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