[
摘要]:本文簡述了VGA接口及顯像原理,并介紹基于ARM的嵌入式系統(tǒng)中使用SM501圖形加速芯片完成VGA接口的具體方法。
[
關(guān)鍵詞]:嵌入式 VGA接口 SM501
1.引言
在嵌入式產(chǎn)品中一般有LCD和VGA(視頻圖形陣列)接口兩種顯示方式,目前國內(nèi)嵌入式開發(fā)平臺對于圖形顯示方面大多數(shù)采用的是LCD液晶屏,通常LCD液晶屏顯示最大分辨率只能支持800*600,即使采用VGA接口(通過轉(zhuǎn)接板),也不能在高分辨率(1024*768*32)下平滑播放MPGE1、MPGEG4多媒體文件,對于一些特殊的行業(yè)應用中,就不能滿足用戶的需求,VGA從本質(zhì)而言是個模擬接口,在數(shù)字化的潮流下已顯得有點過時,但在很多工業(yè)場合中考慮到如下因素,一般都選擇VGA作為顯示方式:
1、工業(yè)級LCD的價格比較昂貴,各種LCD接口不一
2、作為多年的行業(yè)標準,VGA接口是所有顯示設(shè)備的標準接口
本文在開發(fā)基于S3C2440嵌入式平臺的運動控制器的過程中,成功地利用臺灣Silicon Motion公司的高性能2D圖形加速芯片SM501,將S3C2440的高效率處理能力和SM501的圖形加速能力相結(jié)合,通過MICROSOFT公司的WINDOWS CE 4.2操作系統(tǒng)使之能夠驅(qū)動VGA接口的顯示器??紤]到嵌入式系統(tǒng)的設(shè)計要求,本文只介紹其中帶寬最低的顯示規(guī)范640×480@60Hz。
2.原理圖設(shè)計
SM501支持3種不同的系統(tǒng)配置。其中兩種模式是Unified Memory Architecture(UMA)模式,即系統(tǒng)內(nèi)存和幀緩沖共享存儲器資源。圖1顯示這些可能的配置:
Configuration A是非UMA方式,它擁有最高性能,這種模式中系統(tǒng)內(nèi)存和幀緩沖各自擁有不同的內(nèi)存資源。SM501在其中扮演一個從設(shè)備的角色控制SDRAM,同時它也能扮演主設(shè)備來訪問系統(tǒng)內(nèi)存。
Configuration B是UMA方式,系統(tǒng)內(nèi)存和幀緩沖共享系統(tǒng)存儲器資源,SM501作為從設(shè)備與主機連接。它也可以申請系統(tǒng)總線并以主設(shè)備的角色訪問系統(tǒng)SDRAM,這種方式的性能有限,因為SM501和主機需要分時訪問系統(tǒng)存儲器。
Configuration C是UMA方式中較好的一種,這種模式下局部SDRAM包含系統(tǒng)內(nèi)存和幀緩沖;SM501作為從設(shè)備與主機連接。當局部SDRAM在150MHZ時鐘下運行時,Configuration C的帶寬高于Configuration B的帶寬。
[align=center]

圖1 SM501與主機硬件連接方式[/align]
根據(jù)以上的描述,本系統(tǒng)采用第3種方案,這樣硬件連接最簡單,同時性能滿足要求。SM501和S3C2440的連線相對比較少。主要電路如下圖:
VGA接口的硬件設(shè)計如下,由于考慮到在使用過程中經(jīng)常帶電拔插VGA接口,因此需要增加保護電路,筆者使用通用的肖特基二極管對BAV99-A7連接到三根RGB線路:
[align=center]

圖3 VGA接口電路圖[/align]
同時SM501的一些配置管腳必須正常配置,否則SM501不能正常工作。主要需要配置的引腳如下:
局部SDRAM行地址大小. 當復位時候,由 GPIO6 and GPIO5決定,但是可以通過軟件更改
GPIO7 決定是否復位分頻器
GPIO12 的電平?jīng)Q定是否驅(qū)動MCS#引腳。
GPIO[15:13] 決定局部內(nèi)存的大小(最小2MB,最大64MB)
GPIO31,GPIO29,決定主機的時鐘輸入源
3.SM501的軟件設(shè)計
Silicon Motion公司提供SM501在WINDOWS CE下的軟件動態(tài)鏈接庫(包括ARM、MIPS、X86等CPU構(gòu)架),并提供相應的源程序和應用文檔。在三星提供基于S3C2440的WINDOWS CE 系統(tǒng)的BSP中,其顯示設(shè)備默認是S3C2440A的片上LCD接口,因此需要去掉該默認設(shè)備,用SM501的動態(tài)鏈接庫代替即可。在WINCE中使用SM501只需要做到如下幾點:
1.拷貝SM501動態(tài)庫二進制文件到"$(_WINCEROOT)\public\common\oak\DRIVERS\ DISPLAY \SMIVGX\"目錄
2.在PLATFORM BUILDER 中導入VoyagerGX驅(qū)動feature的CEC文件
3.在生成的WINCE操作系統(tǒng)工程文件中加入該feature
4.在platform.reg和platform.bib文件中刪除關(guān)于S3C2440A的片上LCD的驅(qū)動部分描述,并用SM501的驅(qū)動描述代替
5.編譯
以上步驟Silicon Motion公司的文檔中有更為詳細的描述。需要注意的是如果要在啟動WINCE中增加LOGO支持,則需要在WINCE的BOOTLOADER中增加相應關(guān)于SM501的代碼。
4.總結(jié)
本系統(tǒng)經(jīng)過較完善實驗,得出以下結(jié)論:
基于S3C2440A+SM501的VGA接口圖形系統(tǒng)實現(xiàn)了640×480@60Hz,并且可在最高達1024X768@85HZ下流暢的播放各種視頻,無閃爍現(xiàn)象,滿足系統(tǒng)需要。
參考文獻
[1] 何宗鍵.WINDOWS CE嵌入式系統(tǒng)[M].北京:北京航空航天大學出版社,2006
[2] 汪兵,等.EVC高級編程及其應用開發(fā)[M].北京:中國水利水電出版社,2005
作者簡介:
肖勇:男,四川大學制造科學與工程學院機械制造及自動化專業(yè)碩士研究生,研究方向:計算機數(shù)控技術(shù)
李翔龍:男,機械制造專業(yè)博士,四川大學制造學院副教授,研究生導師,研究方向:計算機監(jiān)控及工業(yè)設(shè)備自動化、計算機數(shù)控技術(shù)
張勇:男,四川大學制造科學與工程學院機械制造及自動化專業(yè)碩士研究生,研究方向:計算機監(jiān)控及工業(yè)設(shè)備自動化