基于ARM与FPGA的大屏幕显示器控制系统设计
LED之家 于2010-01-24 07:43:49 http://www.ledjia.com/ledhangye/viewarticle.php?id=6240
文章摘要:随着计算机和半导体技术的发展,LED大屏幕显示系统成为集计算机控制、视频、光电子、微电子、通信、数字图像处理技术为一体的显示设备。目前LED大屏幕显示器向更高亮度、更高耐气候性、更高的发光均匀性、更大屏幕化、更高的可靠性方向发展。LED显示屏产业正成为我国电子信息产业的重要组成部分。大屏幕显示技
当显示屏做得越大,即屏幕的点阵越多,向显示屏发送的数据就越多,数据传输与控制的时间也会增加,完成一屏扫描的时间会越长。因此,在设计中必须考虑这个因素。满足这一要求,关键在于提高程序的执行速度,可以选择更快的CPU或数字信号处理芯片ARM。本设计采用基于ARM的32位嵌入式RISC为处理器,S3C4510B是完全可以胜任的,该微处理器的速度较高,而且存储容量较大。 上位机通过串口经过RS232/RS485转换器将指令集发送给ARM微处理器,ARM微处理器把接收到的指令集放入外部的FLASH中保存,断电后内容不丢失,同时ARM外部扩展两片SRAM用于存放快速运算的数据,光传感器和温度传感器用来测量外界的光和温度,以便随着光线的强弱改变显示屏的亮度,在显示屏上显示出外界温度。FPGA完成对LED屏的扫描驱动过程,其内部固化的数字逻辑负责产生屏幕显示控制信号(串行移位时钟、行锁存信号、行选信号等),其外部配置的两片SRAM用于分时读取灰度数据。同时,FPGA从SRAM中读取灰度数据信号,并将其转换成上屏数据后串行输出到相应的颜色的信号数据总线上。FPGA外部扩展的两片SRAM组成了数据缓冲、切换区,采用乒乓逻辑,某一时刻向一片存储器写入数据,另一片被FPGA逻辑读取数据转换后送人显示屏,二者轮流切换,保证了数据的高速上屏和显示的连续性。ARM外部配置大容量的SRAM和FLASH存储器,与传统的显示屏控制电路相比较,可以支持更大的显示区域、存储更多的显示内容、获得更好的显示效果。 2.2扫描驱动电路设计 LED显示屏的扫描驱动电路部分是由FPGA来实现的,如图3所示。 扫描驱动电路主要完成灰度数据的读取和发送、上屏灰度数据的产生、移位时钟的产生、亮度信号的控制、4个分区锁存信号的产生、通知ARM发送数据等功能。这些功能均在一片FPGA中完成,这样使显示控制电路板的体积减小,而且由于FPGA功能用硬件描述语言VHDL编程实现,即可以通过使用VHDL语言编程,来验证系统方案的可行性及正确性,然后再用FPGA硬件来实现,从而可以大大缩短开发周期,使设计灵活、修改方便,同时FPGA由于高集成度、高速高可靠性、开发周期短的特点,从而大大改善电路性能。 这种设计的实现需要FPGA提供大量的I/O引脚,其中I/O引脚包括(1)系统总线接口:数据总线8根,控制信号线5根,亮度信号线3根,输入线1根,复位信号线1根,共18根;(2)双体SRAM总线接口:地址总线15根,数据总线8根,读写控制信号2根,共50根;(3)显示控制信号输出接口:移位时钟信号1根,行锁存信号1根,行选4根;(4)显示像素数据输出接口:红、绿、蓝共3根。共计18+50+6+3=77个I/O口。为了可以使LED显示屏的尺寸增加1倍,即所需的I/O口增多,同时考用VHDL语言描述的内部功能逻辑所需的宏单元数量,需要选择256个宏单芯片,在此FPGA选用32位的PolarPro QLlP300芯片。 2.3静态存储器SRAM的选择 外部扩展的两片SRAM,要求能满足上屏数据读取速度的要求,考虑到存储数据的宽度和容量,本设计选用ISSI(Integrated Silicon Solution Inc.)公司的IS61C1024芯片。该芯片存储容量为128 kB,8位数据宽度,最高读写速度为25 ns,电源电压为5 V,具有最高40 MHz的读写频率,可进行高速异步读写操作,无须等待时间,其容量满足一屏文字和图像数据信息的存储要求,两片SRAM采用双体切换技术来完成数据的存储和读取过程。 3 系统软件设计 3.1 ARM软件设计 根据该系统的设计需求,将软件划分如下几个模块分别形成独立的程序文件:启动代码模块、串口模块、时钟模块、温度和亮度传感器模块、FLASH管理模块、下载管理模块和显示模块。启动代码用于初始化系统配置、初始化各个处理器模式下的栈空间,初始化目标板,引导C程序运行,用汇编语言编写;串口模块实现串口的发送、接收等基本功能;时钟模块实现RTC时间的设置与读取等基本功能;温度和亮度传感器模块实现温度和亮度控制;Flash管理模块实现外部FLASH擦除、存储、分配的管理,将显示指令和显示信息进行存储;下载管理模块负责与上位机通讯,下载显示指令和信息;显示模块负责显示指令的解析以及显示信息的提取,显示效果的处理,包括出场模式和表演模式以及各种字体字形的产生,同时负责送灰度数据给FPGA,本设计以启动代码为例阐述源代码的编写。 通常将启动代码划分为5个文件:startup.s、IRQ.s、stack.s、heap.s和target.c。startup.s包含中断向量表和系统初始化代码;IRQ.s包含中断服务程序与C程序的接口代码;stack.s和heap.s保存C语言使用的堆和栈的开始位置;target.c包含目标板特殊的代码,包括异常处理程序和目标板初始化程序。下面给出几个关键的初始化程序段供参考。 1.中断向量表 2.系统初始化代码 ResetInit 3.初始化CPU堆栈Initstack(源代码略) 3.2 FPGA内部的功能模块 图4为FPGA内部的功能模块图。FPGA将ARM传送过来的信号包括灰度数据(DATA)、系统时钟(CLK)、帧同步信号(VSYNC)、行同步信号(HSYNC)、片选信号(CS2)和写信号(WRITE)送入存储器切换电路,存储器切换电路将图像数据(DAIA)分时送到静态存储器SRAM1和静态存储器SKAM2进行存储。SRAM1和SRAM2工作在交替读写状态,即向一片SRAM写人数据的同时,从另一片SRAM中读出数据;静态存储器的读写状态由系统时钟、帧同步、行同步以及片选信号来控制。读地址发生器用于计算所需数据信息在存储器中存储的地址,以便保证LED大屏幕的正确显示,它是由移位时钟来控制产生15位读地址信号,移位时钟信号的工作频率为4 MHz。读地址发生器产生的读地址信号在移位时钟的作用下,产生4个分区锁存信号,4个分区的显示数据同时送人屏体,只有当锁存信号有效时,才点亮显示屏。从SRAM读出的灰度数据DAIA送入灰度值发生器,并根据屏体显示结构进行数据重组,转化成LED显示屏要求的上屏数据信号(红、绿、蓝灰度数据)。三色的上屏数据送入串行发送数据寄存器,并在移位时钟的作用下串行发送至屏体。在将一片SRAM中的数据转换后上屏的同时,通知微处理器发送下一屏数据。此外,ARM还发送两位亮度控制信号COMM0、COMM1和亮度数据信号COMM2。串行发送的亮度数据信号进入8位串并转换电路,在COMM0、COMM1的控制下,产生亮度信号。
4 仿真及系统验证 使用ModelSim仿真用VHDL编写的扫描驱动电路波形如图5。从图5可知,从ARM接收到的数据data(01010101)存入到外部扩展的存储器SRAM2,m2ma是存储器2的地址线,它根据控制信号(tp1,tp2,cs2,swite)的控制作用连续增加;cm2d是存储器2的数据线,将data数据存入,则cm2d为01010101,同时从存储器1中读出数据,转换后送给red0、ged0、bed0,从而验证驱动电路的正确性。 经硬件设计和软件编码与调试后,将ARM软件源代码通过ISP下载到ARM中的FLASH后复位运行,系统验证了该设计的可靠性和正确性。 5 结论 本设计采用32位ARM嵌入式微处理器S3C4510B和32位FPGA扫描驱动电路芯片PolarProQLlP300,选用IS61C1024静态RAM作为缓存器,组成由多块大屏幕LED显示器构成的显示系统,选用ARM+RAM+FPGA设计方案,从而解决了系统的运行速度、寻址能力和功耗等问题,从而支持更大可视区域的稳定显示,存储更多的显示内容。 本文来源:《半导体技术》 作者:吉首大学 陈炳权相关词语: LED屏 大屏幕 开发 引脚 芯片 电源 驱动电路 模块 光电 传感器 点阵 微电子 实现 可靠性 LED显示屏 像素 问题 应用 通知 | |