找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

单片机显示数据的硬件加速如何实现

[复制链接]
admin 发表于 2012-9-2 07:20:20 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
使用以下程序测试一幅图片的显示速度。


IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE,0x00); //LED OFF


Flash_photo_display(0,0); //送第0幅图片


IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE,0xff); //LED ON


用示波器观察LED管脚输出的低脉冲时间,即可得出显示一幅图片运行的时间。


for(y=0;y<480;y++)


{ for(x=0;x<800;x++)


{//送显示数据


IOWR_16DIRECT(MCULCD_CTRL_0_BASE,((y<<11)+(x<<1)),0x001f);


}


}


上面这段程序执行的LED低脉冲清屏的时间大约需要575ms。这个显示的大部分时间是消耗在了软件变量的变化读写时间上,纯粹硬件接口层(显示控制器外设)的写时间(46ms)占的比例很小。因此软件程序或者说处理器性能将是优化的重点。


粗略的算一下从FLASH读一整幅图片的理论最短时间:


(25us+25ns*2048byte)*375page = 28.575ms。 而实际上在硬件层度FLASH每个字节的周期是80ns,那么理论时间应该是:(25us+80ns*2048byte)*375page = 70.815ms。那么实际上,我们在硬件优化后显示一幅图片的时间完全取决于硬件外设本身,基本和软件以及处理器性能没有关系了。硬件加速真的这么神吗?真的这么管用吗?在这个测试中,平时我们不仅高估了软件(抑或说是处理器)的性能,而且大大低估了硬件的性能。最后,简单的说一下这个硬件加速系统是如何工作的。如图4所示,是这个系统优化之前的一个简单系统架构,FLASH的读写控制完全交给了CPU,而CPU的每次执行都是依赖于RAM上的程序和变量的,然后CPU还需要把读出来的数据送给LCD Controller。


再来看硬件加速后的系统框图,如图5所示。CPU负责FLASH的控制管理,而FLASH读出来的数据不需要通过CPU,直接送给LCD Controller,这期间省下来的时间使得系统性能发生了翻天覆地的改变,也使得系统的最优化成为可能(图片显示的速度瓶颈最终在于FLASH这个外设)。

以上是使用灵活的FPGA实现显示数据的硬件加速,普通的ASIC如32位单片机ARM或者一般的显示芯片无法做到,当然以后可能还有更好的方法,因为你使用的是FPGA,不但控制着应用也可以自己优化你的硬件,这就是FPGA的强大优势。


我们采用的大规模可编程控制器(FPGA)来做彩色屏的控制器,它有如下优势:


A、设置灵活,满足不同行业的客户要求


B、支持高清分辨率3840*2400以下各种标准和非标分辨率


C、内部128MB FLASH,可以将photoshop做好的漂亮界面图片预先内置存储,使用时通过串口调用,8位单片机也可以做出漂亮的UI


D、小图片独立存储调用显示方便,视频层、图片层、字符层多层显示更容易控制,图片视频画中画


D、目前主要是串口、并口;以后会有485、422、SPI、wi-fi、ZIGBEE、GPRS、CAN接口等各种通讯接口的扩展,欢迎提出定制


E、系统内嵌32位处理器,内部32位总线硬件加速,换图片速度极快,可以实现动画界面,如仪表指针动画


F、内部集成触摸屏控制器,直接通过串口返回坐标值,误差小余1.5%


F、丰富的用户指令集,内部可自由定制多国语言软字库


lcdsooc qq:410965574 e-mail lcdsoc@163.com

*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 06:31 , Processed in 0.057998 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表