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