基于PXA270的LCD顯示系統的設計與實現
引言
本文引用地址:http://www.104case.com/article/151121.htmXscale處理器是Intel公司推出的基于ARMv5TE體系結構的ARM處理器。PXA270是該公司于2003年第四季度推出一款全性能、高性價比、低功耗的Xscale處理器,其最高主頻可達624MHz。
PXA270擁有的 Quick Capture(快速拍攝)、Wireless MMX(無線MMX指令)和Wireless Speed Step(無線動態節能)技術,大大提升了多媒體處理能力;同時在保證CPU性能的情況下,最大限度地降低移動設備功耗。
嵌入式Linux(Embedded Linux)是指對標準Linux經過小型化裁減處理之后,能夠固化在容量只有幾KB或者幾MB的存儲器芯片或者單片機中,適合于特定嵌入式應用場合的專用Linux操作系統。在目前已經開發成功的嵌入式系統中,大約有一半使用的是Linux。
1 LCD液晶顯示原理
嵌入式系統一般采用液晶顯示屏LCD。本系統采用的是LG Philiph的TFT6.4寸的真彩顯示屏LP064V02。
液晶顯示的原理是液晶在不同電壓的作用下會呈現出不同的光特性。TFT是薄膜晶體管Thin Film Transitor的縮寫。FB(Frame Buffer)是幀緩沖器。
顯示屏所顯示的一幅完整畫面就是一個幀(Frame),其整個顯示區域,在系統內會有一段存儲空間與之對應,通過改變該存儲空間的內容,從而改變顯示屏的內容,該存儲空間被稱為Frame Buffer。顯示屏上的每一點都必然與Frame Buffer里的某一位置對應。而計算機顯示的顏色是通過RGB值來表示的,因此如果要在屏幕某一點顯示某種顏色,則必須給出相應的RGB值。Frame Buffer就是用來存放整個顯示的編碼和像點值的外部存儲器區域。幀緩沖器的每一個字節對應著LCD中的一個像素,例如LP064V02顯示屏有640×480=307200個像素。
2 PXA270中內置的LCD控制器
2.1 LCD控制器介紹
Frame Buffer和LCD顯示屏之間的數據傳輸很頻繁,完全由CPU通過程序直接驅動顯然不合適。因此,為減輕CPU的負擔,在Frame Buffer與顯示屏之間還需要一個中間件,該中間件負責從Frame Buffer里提取數據,進行處理,并傳輸到顯示屏上。
LCD控制器由以下部分組成:LCD DMAC(本文提出的DMAC都是指集成在LCDC內部的DMAC),輸入/輸出FIFO,內部調色板,TMED抖動(幀速率控制),寄存器組。
LCDC的內部操作方式會因為所接LCD類型的不同而有所不同。本系統采用的是主動16位像點模式。在這種主動彩色模式中,LCDC內部的工作方式相對簡單,Frame Buffer內的數據是16位的像素數據,此時,LCDC無需加載數據到內部調色板,并且數據無需經過幀速率控制單元的處理,直接發送至LCD控制器的數據腳,通過DMAC傳輸到輸入 FIFO后,數據又立刻被傳送到輸出 FIFO。
2.2 LCD模塊的硬件連接
PXA270與LCD模塊的硬件連接如圖1所示。各信號引腳的說明如下:
圖1 LCD接口框圖
- L_DD[15:0]:數據線。16位數據線可以顯示紅、綠、藍像點,使用5位紅、6位綠和5位藍就能實現不同顏色的顯示。
- L_PCLK:像點時鐘。用于把彩色數據輸入到LCD顯示器中的移位寄存器中。被動模式下,像點時鐘僅在數據線上數據有效時才發生跳變;主動模式下,像點時鐘連續跳變。
- L_LCLK:行掃描時鐘。用于LCD顯示器行顯示的結束和把移位寄存器的行數據送到顯示器中,并且將行指針加1。主動模式下,它是水平同步信號。
- L_FCLK:幀掃描時鐘。用于LCD顯示器新的幀像點的開始。顯示器復位時行指針指向顯示屏的頂部。在主動模式下,它是垂直同步信號。
- L_BIAS:AC偏置。主動方式下,它是數據使能信號。
3 LCD驅動程序的設計與實現
PXA270嵌入式系統對LCD顯示屏的驅動分成兩方面:一方面是對LCD及相關部件的初始化,包括幀緩沖區的創建和對DMA通道的設置;另一方面就是對幀緩沖區的讀寫,將幀緩沖區的內容輸送到LCD顯示屏由硬件完成,對于驅動來說是透明的。
評論