[关键词]:嵌入式 VGA接口 SM501
1.引言
在嵌入式产品中一般有LCD和VGA(视频图形阵列)接口两种显示方式,目前国内嵌入式开发平台对于图形显示方面大多数采用的是LCD液晶屏,通常LCD液晶屏显示最大分辨率只能支持800*600,即使采用VGA接口(通过转接板),也不能在高分辨率(1024*768*32)下平滑播放MPGE1、MPGEG4多媒体文件,对于一些特殊的行业应用中,就不能满足用户的需求,VGA从本质而言是个模拟接口,在数字化的潮流下已显得有点过时,但在很多工业场合中考虑到如下因素,一般都选择VGA作为显示方式:
1、工业级LCD的价格比较昂贵,各种LCD接口不一
2、作为多年的行业标准,VGA接口是所有显示设备的标准接口
本文在开发基于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 A是非UMA方式,它拥有最高性能,这种模式中系统内存和帧缓冲各自拥有不同的内存资源。SM501在其中扮演一个从设备的角色控制SDRAM,同时它也能扮演主设备来访问系统内存。
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线路:
图3 VGA接口电路图
同时SM501的一些配置管脚必须正常配置,否则SM501不能正常工作。主要需要配置的引脚如下:
局部SDRAM行地址大小. 当复位时候,由 GPIO6 and GPIO5决定,但是可以通过软件更改
GPIO7 决定是否复位分频器
GPIO12 的电平决定是否驱动MCS#引脚。
GPIO[15:13] 决定局部内存的大小(最小2MB,最大64MB)
GPIO31,GPIO29,决定主机的时钟输入源
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\"目录
2.在PLATFORM BUILDER 中导入VoyagerGX驱动feature的CEC文件
3.在生成的WINCE操作系统工程文件中加入该feature
4.在platform.reg和platform.bib文件中删除关于S3C2440A的片上LCD的驱动部分描述,并用SM501的驱动描述代替
5.编译
以上步骤Silicon Motion公司的文档中有更为详细的描述。需要注意的是如果要在启动WINCE中增加LOGO支持,则需要在WINCE的BOOTLOADER中增加相应关于SM501的代码。
4.总结
本系统经过较完善实验,得出以下结论:
基于S3C2440A+SM501的VGA接口图形系统实现了640×480@60Hz,并且可在最高达1024X768@85HZ下流畅的播放各种视频,无闪烁现象,满足系统需要。
参考文献
[1] 何宗键.WINDOWS CE嵌入式系统[M].北京:北京航空航天大学出版社,2006
[2] 汪兵,等.EVC高级编程及其应用开发[M].北京:中国水利水电出版社,2005
作者简介:
肖勇:男,四川大学制造科学与工程学院机械制造及自动化专业硕士研究生,研究方向:计算机数控技术
李翔龙:男,机械制造专业博士,四川大学制造学院副教授,研究生导师,研究方向:计算机监控及工业设备自动化、计算机数控技术
张勇:男,四川大学制造科学与工程学院机械制造及自动化专业硕士研究生,研究方向:计算机监控及工业设备自动化