一、引言
近年來,從手持消費(fèi)電子到工業(yè)控制系統(tǒng),嵌入式處理器的應(yīng)用已經(jīng)深入到人們工作和生活的方方面面。在某些應(yīng)用領(lǐng)域,系統(tǒng)需要提供如1 280×1 024這類高分辨率的顯示界面,而多數(shù)嵌入式處理器不能支持,或者在高分辨率下提供的顯示效果不好。
通常,一個(gè)帶有LCD顯示器的ARM系統(tǒng)如圖1所示。
圖1 帶有LCD顯示器的ARM系統(tǒng)框圖
在該系統(tǒng)中,ARM處理器將LCD顯示器的數(shù)據(jù)存放于SDRAM中的LCD幀緩沖區(qū)中,由處理器中的LCD控制器提取LCD幀緩沖區(qū)中的數(shù)據(jù)并輸送給LCD顯示器。一個(gè)LCD控制器的時(shí)鐘信號(hào)有3種:FRAMESYNC (場(chǎng)同步)、LINESYNC(行同步)和LCD_DCLK(數(shù)據(jù)時(shí)鐘)。在LCD_DCLK的作用下,LCD控制器將LCD數(shù)據(jù)信號(hào)并行輸出到LCD顯示器。顯然,一個(gè)LCD_DCLK時(shí)鐘只能輸送一個(gè)像素點(diǎn)的數(shù)據(jù)。根據(jù)文獻(xiàn),TFT LCD的刷新頻率一般在60 Hz,因此,一個(gè)具有M×N像素點(diǎn)的LCD顯示器,在1 s的時(shí)間中,要求LCD控制器傳送像素點(diǎn)總數(shù)為(M×N×60),即LCD控制器的LCD_DCLK的頻率必須大于(M×N×60) Hz,以便保證LCD顯示器的正常顯示。因此,嵌入式處理器芯片LCD控制器支持的最大分辨率與LCD_DCLK時(shí)鐘頻率有關(guān);然而LCD_DCLK是從處理器系統(tǒng)的AHB總線時(shí)鐘HCLK通過分頻計(jì)算得出的,所以,LCD控制器支持的最大分辨率與系統(tǒng)HCLK有關(guān)。為確保嵌入式處理器系統(tǒng)處在良好的工作狀態(tài),一般不使用最大分辨率進(jìn)行顯示。以Samsung公司的S3C2410為例,在TFT LCD模式下,典型的實(shí)際支持的最大分辨率為640×480。另外,受到ARM處理器LCD幀緩沖區(qū)大小的影響,在達(dá)到最大分辨率時(shí),LCD數(shù)據(jù)的位寬度降低,這使得顯示效果變差。
如何才能使嵌入式處理器應(yīng)用在高分辨率的場(chǎng)合呢?SM501圖形加速芯片的出現(xiàn)很好地解決了這個(gè)問題。
二、SM501圖形加速芯片簡介 SM501是一款便攜式多媒體協(xié)處理器芯片,專門為嵌入式工業(yè)提供補(bǔ)充功能,具有視頻和2D能力。為了降低系統(tǒng)的成本,它支持多種輸入/輸出接口,包括模擬RGB、數(shù)字LCD屏接口、8位并行接口、USB、 UART、 IrDA、 Zoom Video、 AC97或I2S、 SSP、PWM和I2C,同時(shí)它還帶有GPIO,便于與外部器件連接。SM501的2D引擎包括一個(gè)前端色彩空間轉(zhuǎn)換器,支持4∶1和1∶8的比例。視頻引擎支持在每個(gè)像素點(diǎn)8位、16位或32位數(shù)據(jù)寬度時(shí)2個(gè)不同的視頻輸出(雙顯示屏),為每個(gè)視頻輸出提供三色硬件指針。LCD視頻流水線支持一個(gè)黑點(diǎn)YUV色彩空間轉(zhuǎn)換,比例為4∶1和1∶212。放大視頻(Zoom Video)接口包括MPEG解碼或TV輸入的外部電路接口。
SM501的系統(tǒng)框圖如圖2所示。
圖2 SM501系統(tǒng)框圖
三、SM501的2D圖形引擎 通過將優(yōu)化的128位的2D圖形引擎和一個(gè)與本地幀存儲(chǔ)器連接的高帶寬鏈接相結(jié)合,SM501提供面向工業(yè)的2D圖形加速功能。2D圖形引擎也包含一個(gè)命令翻譯器(一個(gè)增強(qiáng)型的DMA引擎),對(duì)于工作在150 MHz的32位數(shù)據(jù)寬度的SDRAM,SM501的DMA引擎讀取2D操作數(shù)的帶寬可達(dá)600 MB/s。這么高的存儲(chǔ)器帶寬使得2D引擎在無須等待和流水線停止工作的情況下高速運(yùn)行。當(dāng)它在讀取和翻譯命令時(shí),命令翻譯器也可以有條件地轉(zhuǎn)到存儲(chǔ)器空間的另一個(gè)地址上,等待由其他模塊發(fā)送過來的狀態(tài)信息。2D圖形引擎同時(shí)還包含一個(gè)色彩空間轉(zhuǎn)換單元。該單元允許從許多的YUV模式直接翻譯到RGB模式。2D圖形引擎還帶有一個(gè)雙線性標(biāo)量器,它可以支持4∶1的壓縮和1∶216的拉伸。SM501支持存儲(chǔ)器工作在UMA和本地32位模式下。
四、SM501的LCD接口 SM501的LCD邏輯模塊可以直接驅(qū)動(dòng)一個(gè)18位或24位的TFT LCD顯示屏;同時(shí)也支持12位的CSTN屏,通過一個(gè)顫抖引擎(dithering engine)可以得到有效的18位顯示效果。支持的最大屏的大小為1 280×1 024。通過硬件和軟件可控制LCD顯示屏的上電順序。SM501與一個(gè)24位 TFT LCD顯示屏的接口電路如圖3所示。由圖3可知,該接口電路的設(shè)計(jì)與一個(gè)嵌入式處理器和TFT LCD的接口電路的設(shè)計(jì)是相同的,因此,設(shè)計(jì)起來很方便。
圖3 SM501與TFT LCD顯示器的接口電路
五、具有SM501的嵌入式系統(tǒng)設(shè)計(jì)
一個(gè)具有SM501的嵌入式系統(tǒng)如圖4所示。系統(tǒng)中ARM處理器將LCD的數(shù)據(jù)放入SDRAM的幀緩沖區(qū)中,然后將顯示工作交給SM501處理。通過2D圖形引擎,SM501從SDRAM的幀緩沖區(qū)中讀取數(shù)據(jù),并將這些數(shù)據(jù)輸送到LCD顯示器。這樣一來,LCD的數(shù)據(jù)沒有經(jīng)過ARM處理器的LCD控制器,因此,LCD數(shù)據(jù)的傳輸不受ARM處理器的HCLK時(shí)鐘的影響,達(dá)到了支持高分辨率的設(shè)計(jì)要求。