徐振方 孟艳花 王艳
(河南工业大学电气工程学院,河南郑州 450007)
LED显示屏是八十年代后期在全球迅速发展起来的新型信息传播媒体,是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的大型显示系统。它以其色彩鲜艳、动态范围广、亮度高、寿命长、工作性能稳定而日渐成为显示媒体中的佼佼者,广泛应用于广告、证券、信息传播、新闻发布等方面,是目前国际上较为先进的宣传显示媒体[1]。本文提出了一种主从式单片机的LED显示屏解决方案,该设计方案利用 AVR单片机自身的FLASH ROM和 RAM,外部无需任何存储电路,电路结构简单。
AVR单片机是增强型内置 FLASH的 RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛 (Harward)结构,达到一个时钟周期可以执行一条指令,绝大部分指令都为单周期指令。支持在系统编程ISP,其中 MEGA系列还支持在应用编程 IAP。内置的FLASH程序存储器可擦写1000次以上,给用户的开发生产和维护带来方便。可擦写10万次E PROM,为掉电后数据的保存带来方便[2,3]。AVR单片机有丰富的片内资源,如 RTC、WATCHDOG、A/D转 换 器、PWM 、USART、SPI、TWI接口等,I/O口功能强、驱动能力强。
本设计采用AVR系列单片机ATMEGA16作为主控制器,以DS1302时钟芯片和16M的外置晶振提供准确时间标准、很方便的现实和校准时间。ATMEGA32的内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。[4]采用74HC245存储器作为信号功率放大。通过2片74HC595移位寄存器实现对数据的播放格式,ATMEGA32卡内带32MFLASH,用户可用专用上位机软件对要显示的内容按照预定的显示格式进行编辑后,通过RS485或RS232接口,向显示屏控制卡发送。发送结束后,控制卡可以脱开计算机,自动按照用户设定的模式显示所输入的内容,从而通过LED显示屏来显示你所需要的内容。直到下一次数据更新,所显示的内容一直保持。
LED点阵显示系统由计算机、RS-232通讯电路、控制电路和LED点阵显示电路构成,结构框图如图1所示。
图1 系统结构框图
上位机完成把图像和文字转换成为显示屏的显示码,并且把显示信息发通过RS232送到控制电路上。控制电路选用具有32KB片内FLASH ROM和2 KB片内RAM的AT2mega32单片机,没有外挂存储器。如果要存储更多的显示信息,可以选用具有64 KB片内 FLASH ROM的 AT2mega64或者具有128 kB片内 FLASH ROM的 AT2mega128,也可以外挂存储器来增大存储能力。[5、6]控制电路主要完成对显示数据的滚动和分割处理,然后通过异步串行口发送到每个单元板中。每块单元板用16×32单色点阵块拼成的点阵屏,控制电路更新显示单元板的显示内容时,对所有单元板按地址逐个发送显示数据,更新完所有子模块数据后,再发送一个特殊的地址字0xFF作为控制字,使所单元板同时更新显示数据,这样可以避免当屏幕较大,单元板数量较多时各子模块画面更新不同步的问题。对本设计中完成的2×10个单元板而言,由于通讯速率限制,画面更新速度最高可达56800/(129×24+1)=18134帧/s,由于主控制电路还要完成全屏数据的分割和显示内容的移动控制,所以其实际帧数低于上述值,不过用于普通的图片显示已经可以达到要求。
Atmega32是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,Atmega32的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。[7]
Atmega32有32K字节的系统内可编程Flash(具有同时读写的能力,即 RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器 (T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。[8]
单元显示驱动电路由RS232转换电路、子模块地址标识电路和点阵驱动电路组成。RS232转换电路和主机板中一样,同样采用 MAX485作电平转换。[9]由于采用单片机的异步串行口进行多机通信进行数据传输,单元模块应该有和其位置相对应的地址标识地址标识电路采用8位并进串出芯片74HC595和8位拨码开关组成,因此本系统最多可以容纳255个子模块 (地址0xFF作为更新子模块显示的控制字)。
LED点阵采用动态扫描法进行驱动,并且实现16阶灰度显示,为了节省单片机程序中扫描程序的时间消耗,提高扫描速度,显示数据采用并行输出的方法。驱动电路采用译码器 74HC138和74HC245,分别实现行选和位选。
系统软件设计包括上位机软件的设计、下位机程序设计两部分。
上位机软件完成图像和文字的编辑,通过计算机串行接口把显示数据传送到控制卡上。控制卡接收上位机的数据并通过内部Boot Loader区的程序进行FLASH ROM内显示数据的自更新。[10]控制卡把显示数据进行分割处理后发送给每个单元板,并且完成显示数据不同方式处理。
下位机软件设计分为两大功能块:显示部分和通信部分。显示部分采用动态扫描的方式,实现对显示屏要显示的汉字、图象、字符等数据信息进行传输控制以及显示等功能。与PC机的实时通信部分主要是利用单片机串口中断接收和发送数据信息,实现与计算机的实时数据信息传输。程序可以实现与计算机的通信,可非常方便地任意修改所要显示的汉字、图像等;并使显示屏可按你选择显示方式进行汉字或表格显示。设计程序的流程图如图2所示。
图2 系统程序流程图
软件系统采用模块化结构,包括主程序、显示子程序和串口中断服务程序。主程序为顺序结构,完成堆栈、中断、串口的初始化设置后,循环调用显示子程序,以及响应串行接收或发送中断指令;显示子程序从显示缓冲区取出字模,输出行选通信号至P0口并通过一个通用逻辑阵列74HC00D输出,配合列扫描信号,进行动态扫描显示;中断服务程序串口接收PC机发送的汉字机内码数据,实现与计算机实时通信。[11,12]程序各部分的功能,由各个模块分别实现。程序模块有:串口初始化模块、数据输入模块、汉字首地址计算模块、取字模块、显示模块和移动模块。系统显示流程图如图3所示。
图3 系统显示流程图
上位机软件使用可视化编程工具Visual Basic.NET开发,主要完成图像的取点、线性补偿和点阵数据生成。首先将图像文件转换为96×64分辨率、256阶色深的单色灰度图像,由于使用占空比驱动的LED其占空比/亮度为对数特性,所以需加入指数特性调整为线性之后才能交付显示系统进行显示。通过 MSComm控件实现 PC机与单元板的通信。系统主界面如图4所示。
图4 上位机主界面
本系统设计着重于对单色屏的研究,对于灰度不同的真彩色LED显示屏的设计以及设备的驱动,有待于进一步的学习探讨。而且本设计所用的控制卡只能控制显示屏的单色显示,如果能显示双色,甚至三色那就更方便了。LED显示屏可以显示变化的数字、文字、图形图像,不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。LED甚至可以在信息指示灯、大屏幕显示、液晶显示 (LCD)的背照明等新技术中应用。它是未来智能交通系统的显示手段之一。
由于LED显示屏的分析、设计与实际应用环境及应用目的有很大关系,所以对其控制系统的要求也是不同的。如果显示屏的面积要求很大,屏幕显示的信息量超大,那么要传输的数据量也随之增大,如何设计出更理想的字模保存方法以及数据传输时的压缩算法需要进一步的研究和探讨。
[1]谢宋和.单片机在LED显示屏中的应用 [J].电子与自动化,1998,19(4):23~29
[2]李爱国.模块化LED电子大屏幕的设计与实现 [J].计算机应用研究,1998,01(3):17~21
[3]褚昌晨.LED显示屏系统原理及工程技术 [M].成都:电子科技大学出版社,2000
[4]马黎.单片机控制的汉字点阵大屏幕显示 [J].计算机应用研究,1999,13(3):11~16
[5]张晓东.如何解决LED应用中的一些难题 [J].计算机应用研究,1998,13(3):26~30
[6]LarryA.Coldren,Scottw.Corzine[M].Diode Lasers and Photonic Integrated Circuits,北京:北京邮电大学出版社,2006
[7]邬宽明.单片机外围器件实用手册 [J].北京:北京航空航天大学出版社,1998,16(3):16~20
[8]梁纯.基于MCS-51单片机的LED点阵图文显示屏设计 [J].工矿自动化,2005,11(1):07~21
[9]谢宋和.单片机在LED显示屏中的应用 [J].电子与自动化,1998,17(2):01~29
[10]李爱国.模块化 LED电子大屏幕的设计与实现 [J].计算机应用研究,1998,37(9):11~30
[11]Kwangyong Lee,Chaedeok Lim A.Design and Implemen tation of a Remote Debugging Environment for Embed dedInterne Software [J].LectureNotes in Computer Science,2003
[12]Denise Ombres,Jack Rosenzweig.TMS320VC5471/TMS 320 VC5470 Inter Processor.Application Report SPRA818[J].2002