嵌入式系統硬體架構設計第九章LCD控制器LCD控制器提供PXA250與PXA210至被動(DSTN)或主動(TFT)面版顯示器的一個介面。支援單色顯示與彩色像素格式(請參考第7-2頁,7.1.1節「特色」)。此章節包含以下主題:z9.1節「概觀」z9.2節「LCD控制器操作」z9.3節「詳細模組說明」z9.4節「LCD外部調色盤與訊框緩衝區」z9.5節「功能時序」z9.6節「暫存器說明」9.1概觀應用處理器LCD控制器支援單一或雙個顯示面版。由核心所產生的編碼過的向素資料以、2、、8或16位元的增量儲存在外部記憶體內之訊框緩衝區。資料以需求為基礎自外部記憶體抓取而載入至先進先出(FIFO)緩衝區,使用LCD控制器之雙通道DMA控制器(DMAC)。單一面版使用一個通道,若雙面版則使用兩個通道。訊框緩衝區資料包含編碼過的像素值,LCD控制器使用這些資料做為索引一個256通道×16位元寬的面版的指標。為了每個像素16位元訊框緩衝區通道,會越過調色版RAM。單色調色版通道為8位元寬,而彩色調色版則為16位元寬。編碼像素資料決定可能的色彩,如下所示:z1位元寬像素位址調色版之上方2個位置z2位元寬像素位址調色版之上方4個位置z4位元寬像素位址調色版之上方16個位置z8位元寬像素位址調色版之上方256通道之任何一個z16位元寬像素越過調色版當啟動被動彩色16位元像素模式,彩色像素值會越過調色版而dither邏輯直接被送至LCD控制器的資料腳位。每個訊框都會由LCD控制器的DMAC載入調色版RAM。9-1嵌入式系統硬體架構設計一旦編碼的像素值被用來選擇調色版通道,在通道內程式化的值會被傳送至dither邏輯,使用TemporalModulatedEnergyDistribution(TMED)dithering演算法製造送至螢幕之像素資料。Dithering為藉由重複多工處理LCD螢幕上不同的彩色像素來從調色版通道產生額外色彩的技術。這就是大家所熟悉的訊框率控制(FrameRateControl)。自dither邏輯輸出的資料被分組為選擇的格式(例如:8位元彩色、雙面版、16位元彩色…)而在被傳送至LCD控制器腳位之前相放置FIFO緩衝區,並使用像素時脈驅動至顯示器。依照使用的面版類型,程式化LCD控制器來使用4、8或16像素資料輸出腳位。在每個像素時脈單一面版單色顯示器使用或8個腳位來傳送4或8像素。單一面版彩色顯示器在每個像素時脈使用8個腳位來傳送2-2/3像素(8腳位/3色彩/像素=每個時脈22/3像素)。LCD控制器也支援雙面版模式,在此模式下,LCD控制器的資料線分為兩個部分,一部份驅動螢幕上半部,另一部份驅動螢幕下半部。雙面版顯示時,像素資料輸出腳位數目為兩倍,允許每個像素時脈內傳送兩倍的像素至螢幕的上下兩半。9.1.1特徵應用處理器LCD控制器支援以下功能:z顯示模式-單一或雙面版模式-在被動單色模式時,最多為256灰階層級(8位元)-在被動彩色模式時,總共有65536個可能色彩(使用16位元TMEDdithering演算法)-在主動彩色模式時最多65536個色彩(16位元,越過調色板)-被動8位元彩色單一面版顯示-主動8位元(每個通道)彩色雙面版顯示z顯示大小最大為1024×1024像素,建議最大設定為800×600z內部彩色調色板16位元之RAM256通道(在每個訊框開始時可自動被載入)z1、2、4、8或16位元的編碼像素資料zAC偏差值腳位輸出之可程式化觸發器(藉由線條計算來觸發)z195kHz至83kHz之可程式化像素時脈(100MHz/512至166MHz/2)z整合之2通道DMA(一個通道負責單一面版調色板,另一個負責雙面版模式的第2個面版)z每個線條開始與結束之可程式化等待狀態z可程式化輸出啟動、訊框時脈與線條時脈之極性9-2嵌入式系統硬體架構設計z可程式化輸入與輸出FIFOunderrun之中斷z可程式化訊框與線條時脈極性、脈衝寬度與等待計算圖9-1描繪出一個簡單、高層的應用處理器LCD控制器之區塊圖。圖9-1LCD控制器區塊圖9-3嵌入式系統硬體架構設計9.1.2腳位說明啟動LCD控制器時,所有的LCD腳位都只會輸出。關閉LCD控制器時,其腳位可備用來當作通用輸入/輸出(GPIO)。相關細節請參考系統整合單位章節。表-說明LCD控制器的腳位。相關細節請參考..節「LCD控制器腳位使用」。所有的LCD腳位只會輸出。表9-1腳位說明腳位說明L_DD[7:0]在LCD顯示時間,這些資料縣會傳送4或8個資料直。單色模式時,每個腳位值呈現一個單一像素。被動色彩模式時,三個腳位值的群組呈現一個像素(紅、綠、藍子像素資料值)。在單一面版單色模式下,使用L_DD3:0腳位。雙像素資料、單一面版單色模式、雙面版單色模式、單面版彩色、主動彩色模式則使用L_DD[7:0]。L_DD[15:8]當雙面版彩色或TFT(主動彩色模式)操作被程式化時,這些資料輸出也會被要求傳送像素資料給螢幕。L_PCLKLCD顯示器使用像素時脈產生像素資料時脈至線條移位暫存器。在被動模式時,只有當有效資料腳位為可使用時,像素時脈才會驅動。在主動模式下,像素時脈會繼續驅動,當資料在LCD的資料腳位是有效時,L_BIAS會如至訊號之輸出。L_LCLKLCD顯示器使用線條時脈發出像素的線條結束之訊號。顯示器將線條資料從移位暫存器傳送到螢幕且增加線條指標值。在主動模式下為水平同步化訊號。L_FCLKLCD顯示器使用訊框時脈發出像素的新訊框起始訊號。顯示器將線條指標重置為螢幕的頂端。在主動模式下為垂直同步化訊號。L_BIAS使用AC偏差值發出訊號給LCD顯示器以轉換螢幕的行列驅動器電源供應的極性,來抵銷DC偏移量。在主動模式下,當資料從使用像素時脈的資料腳位被保留時,會啟動輸出以發出訊號。9.2LCD控制器操作9-4嵌入式系統硬體架構設計9.2.1啟動控制器系統重置或睡眠重置後,若LCD控制器在第一時兼備啟動,所有的LCD暫存器必須依以下順序來程式化:1.設定GPIO腳位組態為LCD控制器功能。相關細節請參考第4章「系統整合單元」。2.將訊框敘述元與調色板敘述元(若有需要)寫入記憶體。3.程式化所有LCD組態暫存器,但訊框敘述元位址暫存器(FDADRx)與LCD控制器組態暫存器0(LCCR0)除外。關於所有暫存器的細節請參考7.6節。4.以調色板/訊框敘述元的記憶體位址程式化FDADRx,如7.6.5.2節所述。5.寫入LCCR0來啟動LCD控制器,如7.6.1節所述。若LCD控制器被重新啟動,自上次程式設計開始就不會有重置,而且GPIO腳位仍為LCD控制器功能程式化,只有FDADRx和LCCR0需要重新程式化。在LCD控制器重新啟動前,LC控制狀態暫存器(LCSR)也必須被寫入以清除任何舊狀態旗標。相關細節請參考7.6.7節。9.2.2關閉控制器關閉LCD控制器有兩種方式:標準(regular)與快速(quick)。標準關閉。建議使用此法關閉LCD控制器,為利用設定關閉位元LCCR0[DIS]來關閉。不必改變LCCR0的其他位元-讀取暫存器,設定DIS位元,重新寫入暫存器。此方法會造成LCD控制器在目前從記憶體被抓取的訊框結束時完全關閉。若LCDDMAC在DIS被設定時抓取調色板資料,則會完成調色板RAM的載入,而在LCD被關閉之前下一個訊框會先顯示。在LCD控制器結束顯示最後一個抓取的訊框時,會設定LCD關閉完成位元(LCSR[LDD]),而啟動位元(LCCR0[ENB])會自動經由硬體清除。快速關閉。就由清除啟動位元(LCCR0[ENB])來完成。LCD控制器將結束任何目前的DMA傳送、停止驅動面版,以及立即關閉、設定快速關閉位元LCSR[QD]。適用此方法的情況(例如電池錯誤),因為系統匯流排流量必須立即最小化,所以處理器在電源遺失之前有充分的時間去儲存重要資料。LCD控制器不需要重新啟動,直到QD位元被設定,表示已完成快速關閉。一旦關閉,LCD控制器會自動關閉其時脈以節省電源。相關資料請參考7.6.1.59-5嵌入式系統硬體架構設計節「LCD關閉(DIS)」。9.2.3重置控制器在重置時要關閉LCD控制器,而且設定輸出腳位為GPIO腳位。重置所有的LCD控制器暫存器為暫存器說明中之情況。9.3詳細之模組說明此章節說明LCD控制器裡的模組功能:z7.3.1節「輸入FIFO」z7.3.2節「檢視調色板」z7.3.3節「時間模組能量分佈(TMED)Dithering」z7.3.4節「輸出FIFO」z7.3.5節「LCD控制器腳位使用」z7.3.6節「DMA」9.3.1節輸入FIFO藉由專用的DMAC從外部記憶體抓取的資料放置於2個輸入FIFO緩衝區其中之一。每個輸入FIFO包含128個位元組,以8個位元組組成16個通道。在單面板模式下,第一個FIFO用來佇列內部調色板資料與LCD顯示器的上半部資料,而第二個FIFO緩衝區會保留LCD顯示器下半部的資料。FIFO通知服務請求至DMAC,不論4個FIFO通道是否為空白。DMAC依次自動以32位元組突發傳輸填補FIFO。當來自訊框緩衝區的像素資料被載入至FIFO時,在個別的8位元通道內會維持壓縮。若像素大小為1、2、4或8位元,則FIFO通道為未壓縮,且用來索引調色板RAM以讀取色彩值。在16位元被動模式下,通道會越過調色板而直接進入TMEDdither邏輯。在16位元主動模式下,像素會被直接傳送至腳位。9.3.2檢視調色板9-6嵌入式系統硬體架構設計內部調色板RAM保留最多256個16位元色彩值。彩色調色板RAM通道為16位元寬,其中有紅色佔5位元、綠色6位元、藍色5位元。單色通道為8位元寬。來自輸入FIFO的編碼像素值當成位址來索引與選擇個別的調色板位置。1位元像素負責前2個通道的位址編碼,2位元像素負責前4個通道的位址編碼,4位元像素負責16個位置的位址編碼,而8位元像素負責調色板256個通道任意選擇的編碼。在16位元像素模式下,不會使用調色板RAM載入。9.3.3時間模組能量分佈(TMED)Dithering為了被動模式,從檢視調色板選擇的通道(或直接從記憶體之16位元像素)會直接被送至TMEDdithering演算法。TMED為時間dithering之格式,也就是訊框率控制。演算法決定像素為on或off。使用應用處理器LCD控制器並不需要瞭解TMEDdithering演算法如何運作。可經由使用TMEDRGB種子暫存器(TRGBR,第9-46頁,表9-15)與TMED控制暫存器(TCR,第9-47頁,表9-16)。若這些暫存器要自預設值來修改,則請參考此章節。圖7-2描繪出TMED的觀念。圖9-2TemporalDithering觀念–單色此dithering觀念分別被應用至每個顯示的色彩。每個色彩每8個位元會加入0來產生資料。若使用單色顯示,則只使用單一矩陣(藍色)。應用處理器LCD控制器實行下列演算法,TMED使用這些演算法來決定上界與下界:LowerBoundary=[(PixelValue*FrameNumber)mod256]+offsetUpperBoundary=[(PixelVaule+LowerBoundary)mod256]16×16矩陣使用列(線條)、行(像素數目)與訊框數目(從255續接回0)來選擇一個矩陣直。當矩陣值介於演算法的上下界之間,LCD控制器傳送1至LCD9-7嵌入式系統硬體架構設計面板。演算法所製造的邊界為循環的,可從255續接回0,如圖9-3所示。9-8嵌入式系統硬體架構設計圖9-3TMED之比較範圍每一個色彩都可能使用兩個矩陣,由TMED控制暫存器(TCR,7.6.10節)之位元0、1與14來縮進可能被選擇來遮蔽每一個色彩以避免灰色問題。這些差距值依靠面板來決定,其建議數值列於7.6.9節「TMEDRGB種子暫存器」,而藍色資料路徑為單色模式所使用。差距值也可能在TMED控制暫存器內被選擇來移位列(水平)值,線(垂直)值與訊框數目。圖7-4為TM