嵌入式系统的VGA接口设计 |
[摘要]:本文简述了VGA接口及显像原理,并介绍基于ARM的嵌入式系统中使用SM501图形加速芯片完成VGA接口的具体方法。 [关键词]:嵌入式 VGA接口 SM501 1.引言 在嵌入式产品中一般有LCD和VGA(视频图形阵列)接口两种显示方式,目前国内嵌入式开发平台对于图形显示方面大多数采用的是LCD液晶屏,通常LCD液晶屏显示最大分辨率只能支持800*600,即使采用VGA接口(通过转接板),也不能在高分辨率(1024*768*32)下平滑播放MPGE1、MPGEG4多媒体文件,对于一些特殊的行业应用中,就不能满足用户的需求,VGA从本质而言是个模拟接口,在数字化的潮流下已显得有点过时,但在很多工业场合中考虑到如下因素,一般都选择VGA作为显示方式: 1、工业级LCD的价格比较昂贵,各种LCD接口不一 本文在开发基于S3C2440嵌入式平台的运动控制器的过程中,成功地利用台湾Silicon Motion公司的高性能2D图形加速芯片SM501,将S3C2440的高效率处理能力和SM501的图形加速能力相结合,通过MICROSOFT公司的WINDOWS CE 4.2操作系统使之能够驱动VGA接口的显示器。考虑到嵌入式系统的设计要求,本文只介绍其中带宽最低的显示规范640×480@60Hz。 2.原理图设计 SM501支持3种不同的系统配置。其中两种模式是Unified Memory Architecture(UMA)模式,即系统内存和帧缓冲共享存储器资源。图1显示这些可能的配置: Configuration B是UMA方式,系统内存和帧缓冲共享系统存储器资源,SM501作为从设备与主机连接。它也可以申请系统总线并以主设备的角色访问系统SDRAM,这种方式的性能有限,因为SM501和主机需要分时访问系统存储器。 Configuration C是UMA方式中较好的一种,这种模式下局部SDRAM包含系统内存和帧缓冲;SM501作为从设备与主机连接。当局部SDRAM在150MHZ时钟下运行时,Configuration C的带宽高于Configuration B的带宽。 ![]() 图1 SM501与主机硬件连接方式 根据以上的描述,本系统采用第3种方案,这样硬件连接最简单,同时性能满足要求。SM501和S3C2440的连线相对比较少。主要电路如下图: VGA接口的硬件设计如下,由于考虑到在使用过程中经常带电拔插VGA接口,因此需要增加保护电路,笔者使用通用的肖特基二极管对BAV99-A7连接到三根RGB线路: 同时SM501的一些配置管脚必须正常配置,否则SM501不能正常工作。主要需要配置的引脚如下: 局部SDRAM行地址大小. 当复位时候,由 GPIO6 and GPIO5决定,但是可以通过软件更改 GPIO7 决定是否复位分频器 3.SM501的软件设计 Silicon Motion公司提供SM501在WINDOWS CE下的软件动态链接库(包括ARM、MIPS、X86等CPU构架),并提供相应的源程序和应用文档。在三星提供基于S3C2440的WINDOWS CE 系统的BSP中,其显示设备默认是S3C2440A的片上LCD接口,因此需要去掉该默认设备,用SM501的动态链接库代替即可。在WINCE中使用SM501只需要做到如下几点: 1.拷贝SM501动态库二进制文件到"$(_WINCEROOT)\public\common\oak\DRIVERS\ DISPLAY \SMIVGX\"目录 以上步骤Silicon Motion公司的文档中有更为详细的描述。需要注意的是如果要在启动WINCE中增加LOGO支持,则需要在WINCE的BOOTLOADER中增加相应关于SM501的代码。 4.总结 本系统经过较完善实验,得出以下结论: 基于S3C2440A+SM501的VGA接口图形系统实现了640×480@60Hz,并且可在最高达1024X768@85HZ下流畅的播放各种视频,无闪烁现象,满足系统需要。 |