嵌入式大屏幕LED显示屏的设计与实现_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式大屏幕led显示屏的设计与实现显示屏的应用已经比较普遍,而且随着应用的普及,更多新式的led显示屏会应用在更多的场合,所以讨论大屏幕点阵led的显示很有实际意义。但是现在市场上的多种led显示屏在显示性能上良莠不齐,并且大多需要上位机对显示过程举行实时控制。本文提出一种优化的高性能高牢靠性的嵌入式大屏幕led显示系统,只需要用1片和2片sram就可以实现大屏幕led显示的驱动和内容更换,可以说其性能已经大有充实。本设计可以应对多种大屏幕显示的场合。2 系统硬件设计与实现硬件衔接的方式多种并且灵便,其衔接方式挺直影响到显示的性能。下面给出的硬件衔接方式是最优的方式,能够达到高性能的显示,并

2、且使软件编写变得容易。每个88的led点阵块称为最小模块。每16个88的led点阵块为一个基模块,一个基模块横向有8个,纵向有2个最小模块,1所示。图中每个小方格代表一个最小模块。每个最小模块控制信号为8个行信号h1h8和8个数据信号r1r8。行信号接一个38译码器74hc138的输出,他的输入为hangq2.0;而列信号给详细这一行的数据信号接的是一个74hc595的输出,2所示。74hc595是移位锁存芯片,他内部有一个移位寄存器,还有一个数据移入引脚(ds)、一个数据移出引脚(q8)、8个数据输出引脚(q1q8),另外还有脉冲信号(clk)和数据锁存信号(st)。他的工作原理是当脉冲信号

3、作用时将移入引脚的数据移入芯片内部的移位寄存器,当移满8位数据以后,第8位的数据就会浮现在数据移出引脚上,再给一个脉冲信号,这一位数据就会被移出同时也有新的数据移入。当数据锁存信号有效时,芯片内部的的移位寄存器就将8位数据就锁存到8个数据输出引脚上,从而实现数据输出。对于一个最小模块,当数据信号r有效后,时钟信号tsck就将该数据移入74hc595的内部寄存器,内部寄存器的8位所有移满数据后,锁存信号tlock有效,就能将移满的数据所有送到8个数据信号r1r8上。这个时候,再用hangq2.0选中其中的某一行信号,行锁存信号tleden有效后,就可以在这个88的点阵列上实现数据显示。由于在一个

4、特定的时光只能在这个88的led点阵块上显示其中的一行,所以将第一行到第8行依次循环显示,只要速度足够快,人眼看起来就是延续的。对于一个基模块,由于每个最小模块都有一个74hc595移位锁存芯片,只要将各个最小模块的74hc595串联起来,也就是将前一个74hc595的数据移出引脚接到下一个74hc595的数据移入引脚上,而74hc595的脉冲信号和数据锁存信号都接同一个信号,就可以实现一个基模块的数据显示。与最小模块一样,在一个特定的时光只能显示基模块中的全部最小模块的某一行。只要在8行依次显示的过程中速度足够快,人眼就看不出闪耀。这样就实现了上面16个基模块连在一起。数据及控制信号从右边进

5、入,从左边输出。一个基模块为6416的led点阵块,本设计中的显示规模为512512点阵,所以要将横向有8个,竖向有32个最小模块衔接起来。而在实际的设计中分为上半屏和下半屏显示,分离为512256。当数据装满上半屏后再装下半屏,数据锁存信号和行锁存信号最后给出,从而实现整屏的最小模块的某一行显示。固然要实现整屏数据的显示,惟独循环显示整屏中最小模块的8行。在上半屏显示中,又将其分为8个51232的块,这样的块叫单独显示模块,也就是说将横向的2行基模块看成一个单独的模块并用单独的一组信号举行控制,上半屏就要8组信号控制。这8组信号除了数据信号r不同外,其他的信号都是一样的。也就是说,在上半屏显

6、示中8条数据线同时给上半屏的8个单独显示模块串打数据,固然只是给单独显示模块中的最小模块的某一行打满数据,然后再给下半屏打入数据。所以下半屏的状况与上半屏基本一样,除了8组数据信号r不同外,还有时钟信号也不一样。输入数据时,上半屏的时钟信号首先有效,按照基模块的理论要输入2048个脉冲以后上半屏的数据才被灌满;然后下半屏的数据才有效,从而输入下半屏的数据,状况与上半屏彻低一样。在显示控制方面,用法一块ara公司的fpga芯片,型号为epf10k20tc1444,另外还用法了2块sram芯片,每块的容量为128kb,他们都用来存放显示的数据(见图3)。工作时,fpga在一个特定的时光只从2块sr

7、am的其中一块取出显示的数据举行显示,而同时另外一块sram与mpu举行数据交换,mpu会写入新的数据,以便fpga在下一个时光段显示这块sram的数据,以此交替的工作。假如显示的图像不转变,即一块sram里的数据不变时,mpu就不需要给另一块sram写数据,这时该嵌入式显示模块就可以自立于mpu工作。一帧的数据大小为32kb,远小于sram的容量,所以可以在编写程序的时候加入一些显示的技巧,比如从上往下显示等。由以上所知,fpga有2个基本作用,一个是从一块sram中取出数据并显示在显示屏上;另外一个是将mpu给的数据写到另一块sram中。3 软件设计软件设计要按照硬件的衔接状况编写,主要分

8、为显示部分和写ram部分(见图4)。在扫描显示中,首先上半屏的8组控制信号的时钟脉冲信号有效,并且在这个过程中,8组控制信号的数据信号r有效,所以就可以先将上半屏的8个单独显示模块中的最小模块的某一行灌满数据。然后用同样的办法将下半屏的8个单独显示模块中的最小模块的某一行灌满数据,固然上半屏和下半屏灌满的都是最小模块的相同的一行。最后数据锁存信号和行锁存信号有效,使其显示。在这个过程中要注重的是数据信号r,由于要显示整屏的数据,在软件编写的过程中要将某个位置显示的数据精确的显示在该位置,就要从内存中精确的取出这个数据。每一帧显示的数据大小为32768b,对于2块ram交替工作的状况是彻低符合要

9、求的。并且sram的存取速度快,换帧的时候也能够很好地显示出预期的数据。程序中用一个ram挑选模块,用来挑选某个时光是读出哪一块ram,还是写入哪一块ram。fpga与存储器联接的信号为am1a16.0, ram1d7.0, ram1rd, ram1 wr; ram2a16.0, ram2d7.0, ram2rd, ram2wr。当fpga从ram1取出数据举行显示时,其中有关ram1的信号就有效;同时就给ram2写数据。程序中还用到4个内部变量rt7.07.0,gt7.07.0,rs7.07.0和gs7.07.0分离代表4个数组,每个数组里有8个字节。程序中用到1个全局时钟clk,他用来驱动

10、1个内部全局信号counter_temp,他是1个15位的矢量。tsck和tnsck信号将8个clk时钟周期作为他们的1个时钟周期,也就是说8个clk时光送出1位数据。fpga读ram的时序为:首先地址信号浮现在ramxa16.0上,然后ramxrd,ramxwr分离置为低电平和高电平,经过1215ns,读出的数据就会浮现在ramxd7.0上以便fpga读这个数来显示。fpga写ram的时序是外部mpu信号控制,首先地址信号浮现在ram2a16.0上,然后ramrd, ramwr分离置为高电平和低电平,写的数据浮现在ram2d7.0上。经过很短的时光,数据就写入了。程序设定fpga中的ram1

11、d和ram2d为双向口,可写可读。在内部要设相应的缓冲器。由于写ram是mpu写给ram,mpu要指明写的地址和数据,所以在程序中要有地址和数据输入口。实际设计中为了削减fp2ga的端口,设计成低地址和数据复用线ad7.0,用一个信号ale挑选;当其为低电平常,ad7.0有效的数据是地址,为高电平常为要写入ram中的数据。静态图像显示过程中为了使眼睛看上去不闪耀,就要使一帧图像在一秒内起码显示50次,即使一帧图像在最多20ms显示完。要达到这个要求,就要使一个最小模块的8行在最多20ms内完成一个循环显示。由于是上半屏与下半屏分开传输数据,所以要求在最多1.25ms内传完半屏数据,时钟周期需要在0.6s以下,而选用的fpga的时钟频率可以达到50mhz以上,彻低符合显示的要求。4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论