摘 要: 设计了一种彩色点阵LED大屏幕的控制器,该控制器采用单片机读取存储在SD上的点阵数据文件,按帧串行地输出到LED控制芯片并刷新LED屏幕显示。该控制器能够存储并动态显示灵活多样的文字或者动画,具有性价比高、体积小等优点。
关键词: 点阵LED屏幕;控制器;ATmega644
0 引言
随着国民经济的发展,商品的广告以多种多样的方式呈现在消费者面前。其中,户外的点阵LED式广告牌越来越受到商家的欢迎,其样式多种多样,可任意显示各种文字和图形,并具有高亮度、防水、节能、寿命长等优点,用途越来越广泛[1-3]。
点阵LED屏幕控制器负责对LED显示内容进行控制和实时更新,是LED屏幕工作的必需部分。LED控制器的工作原理、显示内容存储或获取方式、刷新速度等因素都关系到LED广告牌的显示效果和工作的便利性[4-5]。考虑到目前点阵LED屏幕控制器市场存在较多问题,本文基于单片机、彩色点阵LED驱动控制芯片和SD卡,设计了一种彩色点阵LED屏幕控制器。设计的彩色点阵LED屏幕控制器能够选择并循环显示存储在SD卡上的点阵数据文件,能调节显示速度,并能够根据需求并联工作,实现对更大规模的点阵LED的控制,具有调节和更换显示内容方便、结构简单、可扩展、可靠性高等优点。
1 系统概述
彩色点阵LED屏幕控制器主要由单片机、SD卡、电源及相应的输出电路组成。另外在点阵LED驱动部分,采用与LED集成在一起的控制芯片进行控制,专用的横流电源为其供电。其结构框图如图1所示。
单片机主要负责读取SD卡内存储的点阵数据,读取完一帧数据后,通过驱动电路串行地发送给LED控制芯片。此LED控制芯片能够接收并存储9 B的点阵数据,分别对应相邻3个像素点的RGB亮度数据。当单片机发送过来的数据超过9 B时,LED控制芯片会把数据串行地发送给相邻的下一级控制芯片,直至所有的控制芯片都接收到点阵数据,就可以进行一次显示。
2 硬件设计
在彩色点阵LED控制器的硬件上,主要设计了基于ATmega644单片机、SD卡最小系统及其驱动电路等。而在LED控制芯片上则选用Titan Micro公司生产的TM1809的具有9通道LED驱动控制专用芯片。
以下将分别介绍ATmega644单片机及SD卡最小系统、驱动电路和LED控制电路。
2.1 ATmega644最小系统
ATmega644单片机是美国ATMEL公司生产的8位RISC结构的单片机,具有64 KB的闪存、4 KB的内存,最高运行频率为20 MHz。该单片机的指令为单周期指令,执行效率很高,支持在线下载。ATmega644单片机及SD卡最小系统的原理图如图2所示。
ATMega644单片机最小系统由5 V供电电源、晶振、复位电路和程序在线下载电路组成。ATMega644的复位电路由电阻、电容、二极管和一个微动开关组成,能起到延时启动,按下开关瞬时重启的作用。单片机系统的晶振采用的是11.059 2 MHz的晶振,也可根据需要更换为20 MHz的晶振以提高运行速度。与ISP在线下载电路相连的是单片机的SPI接口和复位接口。单片机的供电电源为5 V,还需要额外的电源芯片转换为3.3 V电源供给SD使用。
SD与单片机相连接的电路也是SPI接口,可以用单片机的SPI接口方便地与SD卡进行数据的读写操作。单片机的在线编程接口和SD卡与单片机通信用到的都是SPI接口,但是由于在线编程是SPI接口与复位接口配合使用的,因此并不会产生冲突。另外,由于单片机接口与SD卡接口的电源电压分别为5 V和3.3 V,并不兼容,因此在线路上串接有100 Ω的电阻,以达到可靠通信的目的。另外在靠近SD卡端的所有数据线上都加上了上拉电阻,以提高通信的可靠性。
2.2 驱动电路
由于单片机接口的负载能力有限,很难驱动距离较远的芯片,因而需要提高其驱动能力后再连接后续电路,以便达到信号可靠传输的目的。本文采用的驱动电路原理图如图3所示。
该驱动电路采用的芯片为74HC245,是一种三态输出、八路信号收发器,其接口的输入、输出电流能够达到35 mA,在设计中,采取两路收发器共同发送同一个信号,其最大能够输出或输入70 mA的电流,保证了信号的可靠传输。由于该电路的信号传输是单向的,由单片机到LED控制电路,因此74HC245方向控制端接高电平,数据传输方向由端口A到B。
2.3 LED控制电路
LED控制芯片上则选用的是Titan Micro公司生产的TM1809,该芯片内部集成有MCU数字接口、数据锁存器、LED高压驱动等电路,通过外围MCU控制实现该芯片的每路单独辉度、级联控制实现户外大屏的彩色点阵发光控制。该芯片共有9个输出端口,能够连接9个LED,实现控制3个RGB像素的24位色彩控制。通过多级串联,完全能够实现对彩色点阵LED显示屏的控制。LED控制电路原理图如图4所示。
在图4中,TM1809的14脚为串行数据输入脚,连接单片机驱动电路上的DAT1脚;其第3脚为串行数据输出脚,连接下一级TM1809的14脚,按照这种连接方式实现级联控制。在接收点阵数据时,每一级芯片接收完9 B的点阵数据后会自动把数据串行地发送给下一级控制芯片。
3 软件设计
LED控制器的正常运行需要编写相应的单片机软件。本文设计的LED控制器中,单片机的主要功能是通过SPI接口初始化和读取SD卡内的数据,并通过单片机端口串行地把数据发送给TM1809,直到发送完整帧的数据,然后控制TM1809输出当前帧数据给LED显示,接下来再处理下一帧数据。
设计单片机软件的难点在于SD卡数据的读取和驱动TM1809。其中,SD卡中存储数据文件用到的是FAT32文件系统,需要单片机软件根据FAT表的信息判断文件存储的位置、帧大小、每扇区帧数等信息,以便完整地读取所需要的文件内容。
由于单片机向TM1809发送数据采用的是单线串行发送,因此需要准确地控制数据时序。TM1809对数字“0”的规定为600 ns的高电平,紧接着1 200 ns的低电平;对数字“1”的规定为1 200 ns的高电平,紧接着600 ns的低电平;10 μs以上的持续低电平为复位信号。当发送完一帧数据后,紧接着发送一个复位信号,TM1809会将当前存储的数据发送到LED显示。
单片机程序的流程图如图5所示。单片机上电后首先进行端口、SPI接口和SD卡的初始化工作,这些工作完成后将读取SD卡起始帧的数据,并以此判断分区格式、分区表的位置等信息。读取分区表内容,根据拨码开关决定所需读取数据的文件名,并由分区表判断此文件起始帧的位置。接下来就可以读取数据文件的第一帧,其第一帧并不是点阵数据,而是点阵数据的行数、列数、帧数等信息,第二帧才是点阵数据,读取后发送给TM1809显示。在接续读取和发送点阵数据之前要判断拨码开关是否变化,变化意味着要切换显示文件;还要判断是否是最后一帧数据,如果都不是,则接续读取下一帧数据。
除此之外,本文还设计了点阵数据文件的存储格式。点阵数据文件在SD卡中以512 B为单位进行存储。其第一个512 B存储的数据为点阵数据的行数、列数、帧数等数据,不足512 B的空间将以0xFF补满。从第二个512 B开始将是点阵数据,若一帧点阵数据不足512 B,同样以0xFF补满,超出512 B将占用第二个直至更多个512 B,不足512 B的空间将以0xFF补满。
4 结论
本文设计了一种彩色点阵LED屏幕控制器,该控制器通过单片机读取SD卡中的点阵数据,串行地发送到LED控制芯片中,刷新LED显示动态图像。同时,该控制器能够通过拨码开关调节显示内容和显示速度,并能够通过并行连接多个控制器同步工作实现更大规模的显示屏控制;并具有性价比高、体积小等优点。
参考文献
[1] 王有乾,佘焱,姜建国.LED大屏幕异步控制器多窗口显示的实现[J].微计算机信息,2007,23(20):104-106.
[2] 田秀伟,郑喜凤,丁铁夫.基于SOPC的LED显示屏控制器设计[J].液晶与显示,2007,22(6):737-741.
[3] 吕常智,范迪.基于CPLD的LED点阵显示控制器[J].微计算机信息,2006,22(32):218-219,233.
[4] 梁志明,李斌.基于FPGA的大屏幕全彩LED扫描控制器设计[J].液晶与显示,2007,22(4):477-481.
[5] 陈雁,安建平,徐绍剑.基于FPGA的全彩色大屏幕LED控制器设计[J].电子器件,2007,30(6):2155-2158.