Upload
catherine-dorsey
View
249
Download
3
Embed Size (px)
Citation preview
LCD 顯示實驗
LCD 顯示實驗實驗目的 瞭解 TFT 型彩色 LCD 顯示的工作原理和介面 掌握 S3C2440 與 LCD 顯示的介面原理 掌握 LCD 色彩及繪製簡單圖形的編譯實驗內容 編寫程式,實現任意位置畫長方形的功能 ( 或者其
他的繪圖功能 ) 以及顯示圖片實驗設備 DMA2440XP 教學平台 ADS 1.2 內建開發環境和除錯軟體 USB 連接線、串列連接線、電源 4.3 吋橫式 TFT 彩色螢幕
LCD 原理簡介 (1)
LCD 顯示器,即人們常說的液晶顯示器,具有低耗電,體積小等特點,被廣泛應用於嵌入式系統中。
在 LCD 顯示器中,顯示面板薄膜被分成很多小柵格,每個小柵格有一個電極控制,通過改變柵格上的電壓就能控制格內液晶分子的排列,因而控制光路的導通。
彩色顯示通過利用三種原色混合的原理顯示不同的色彩:彩色面板中,每個像素都是有三個液晶單格構成的,其中每個單格前面都分別有紅色,綠色或藍色的過濾片;光線經過過濾片的處理變成紅色,藍色或者綠色,利用三原色的原理組合出不同的色彩。
LCD 原理簡介 (2)
常見的 LCD TN(Twist Nematic) 型顯示器 ( 扭轉向列型顯示
器, 如 TN_LCD , STN_LCD 和 DSTN_LCD)
TFT(Tin Film Transistor 薄膜電晶體 ) 型顯示器
LCD 原理簡介 (3)
這兩種顯示器的基本原理比較接近,不同點在於: TN 型顯示器通過電極控制液晶分子, FET 有電容
效應,顯示質量較差。 TFT 型顯示器則通過 FET 控制液晶分子, FET 有
電容效應,所以液晶分子能在下一次電極變化前保持原有的排列,因此 TFT 型顯示器的顏色數量和更新速度都優於 TN 型顯示器。
FET 名為場效應電晶體是依靠電場去控制通道形狀,因此能控制半導體材料中某種類型載流子的通道導電性。
LCD 控制器 (1)
ARM 晶片中內建 LCD 控制器 ( 以 S3C2440 為例 ) 主要是將記憶體中的圖像資訊傳送到 LCD 驅動器中。
一般的 ARM 晶片中內建的 LCD 控制器支援多種LCD 顯示模式,比如單色,灰階,偽彩色或真彩色等。
ARM 晶片連接不同的 LCD 顯示設備時,需要通過設置控制暫存器來調整顯示狀態,以便正常顯示。因此,對 LCD 控制器的控制實際上轉換成對映射到記憶體空間的暫存器值的控制。
LCD 控制器 (2)
三星 ARM 晶片內置的 LCD 控制器還提供虛擬螢幕功能,大圖片在顯示的時候可以上下左右移動。
三星 ARM 晶片的 LCD 控制器中還帶有查色表( 調色板 ) 功能。這個功能可以在 LCD 顯示器上顯示最接近原始圖顏色特徵的圖片。
S3C2440 的內部 LCD 控制器介紹 S3C2440 內置的 LCD 控制器支援單色, 4 級灰
階,或 16級灰階的黑白螢幕,也可以支援 256 色和 4096 色的彩色 STN LCD 螢幕。它也支援調色TFT 彩色 LCD ,並且也支援 16 位元和 24 位元的真實色彩顯示。
LCD 控制器可以通過編譯選擇支援不同的 LCD 螢幕的要求,例如行和列的像素,資料匯流排寬度,介面時序和更新頻率。
LCD 控制器的主要作用就是,將定位於系統記憶體的顯示緩衝區的 LCD 圖像資料傳送到外部 LCD 驅動器。
LCD 控制器的主要特性 (1)
STN LCD 顯示器為例: 支援 3 種類型的 LCD 顯示幕: 4 位元雙掃描, 4 位元
單掃描和 8 位元單掃描顯示類型。 支援單色, 4 色灰階, 16 色灰階的黑白色以及 256 色和 4096 色的彩色 STN LCD 螢幕。 支援多種螢幕大小 典型的螢幕大小: 640X480,320X240,,160X160 最大虛擬螢幕大小: 4Mbytes 在 256 色下最大虛擬螢幕大小:4096×1024 , 2048×2048
, 1024×4096
LCD 控制器的主要特性 (2)
TFT LCD 顯示為例: 支援 1.2.4.8-bpp(bit per pixel) 調色彩色 TFT 顯示幕 支援 16-bpp 或 24-bpp 真彩 TFT 顯示幕 在每像素 24 位元模式下,最大可支援 16M 彩色 TFT 支援多種螢幕大小 典型實際螢幕大小: 640×480 , 320×240 , 160×160 最大虛擬螢幕大小是 4Mbytes 在 64K 彩色模式下最大虛擬螢幕大小: 2048×1024
LCD 控制器結構圖
LCD 控制器用來傳送圖像資料以及產生重要的信號,像是垂直信號、水平信號、像素時脈等等, LCD 控制器包含了REGBANK 、 LCDCDMA 、 VIDPRCS 、 TIMGEN 、 LPC3600 、 LCC3600 、以及 MUX 。
LCD 控制器功能單元 REGBANK 內含 17 個暫存器和 256*26 的記憶體,用來配置 LCD 控制
器上的指令和資料。 LCDCDMA 為 DMA加快資料上的傳輸並自動把記憶體內的圖像資 料傳
送至 LCD 驅動器,不需 CPU 的干預,即可直接顯示於 LCD 上。 VIDPRCS 用來接收 LCDCDMA 所傳來的圖像資料並處理為合適 的資料格式。例如: 4位元雙掃描, 4位元單掃描和 8位元單掃描。 VD[23:0] 為 LCD 圖像資料輸出埠,是將 VIDPRCS 處理好的圖像資 料傳送給 LCD 驅動器。 TIMGEN(Timing Control) 用來產生 LCD 螢幕所需的控制信號及時 脈,例如: VSYNC 、 HSYNC 、 VCLK 和 LEND 等等,這些控制信 號跟 REGBANK 的暫存器有密切的關係,不同的配置, TIMGEN 就會產生不同的形態,並支援不同的 LCD 螢幕。
LCD 外部介面信號 (1)
LCD 外部介面信號 (2)
VFRAME/VSYNC/STV : LCD 控制器和 LCD 驅動器之間的封包同步信號。它通知 LCD 螢幕新的一個封包顯示, LCD 控制器在一個完整封包的顯示後發出 VFRAME 信號。
VLINE/HSYNC/CPV : LCD 控制器和 LCD 驅動器間的同步脈衝信號, LCD 驅動器透過它來將水平移位暫存器中的內容顯示到 LCD 螢幕上。 LCD 控制器在一整行資料全部傳輸到 LCD 驅動器後,插入一個 VLINE信號。
VCLK :此信號為 LCD 控制器和 LCD 驅動器之間的圖像時脈信號, LCD 控制器在 VCLK 的上升準位發送資料, LCD 驅動器在 VCLK 的下降準位採樣資料。
VM : LCD 驅動器所使用的交流信號。 LCD 驅動器使用 VM信號改變用於打開或關閉像素的行和列電壓的極性,從而控制圖點的顯示或熄滅。 VM信號可以與每個封包同步,也可以與可變數量的 VLINE信號同步。
VD[0..23] : LCD 圖像資料輸出埠,也就是我們所說的 RGB信號線,採用的是 5 : 6 : 5 模式。
LCD 控制器操作
LCD 顯示掃描方式LCD 控制器支援三種驅動: 4 位元元單掃描方式, 4位元元雙掃描方式和 8 位元元單掃描方式,下圖展示了彩色模式下的幾種掃描方式。
像素位元組資料格式 本實驗採用的是 64K 色的真彩 TFT ,每像素 16
位元,採用的是 5 : 6 : 5 顯示模式。 BSWP=0 , HWSWP=0
NC :沒有資料輸出,不顯示圖像。
TFT 時序分析
TFT 時序分析說明 (1)
在 LCD 螢幕上有許多的顯示點然而它是由矩形左上角的第一行第一個點開始,一個點一個點在 LCD上顯示,在上張投影片中的時序圖所呈現的時序就表示為 VCLK 。
當顯示點一直顯示到矩形的最右邊就結束這一行,那麼這一行的動作就稱為 1 Line 。
接下來顯示點又回到矩形的左邊並且從第二行開始顯示,顯示點在從第一行的右邊回到第二行的左邊是有時間間隔的,這裡稱作為行切換。
TFT 時序分析說明 (2)
以此類推,顯示點就這樣一行一行的顯示至矩形的右下角才完整顯示出圖像。因此,這個動作就是時序圖上的 HSYNC 。
然而, LCD 上的顯示並不是對一張圖像做快速的顯示一下,為了持續和穩定的在 LCD 上去做顯示,就需切換至另一張圖上 (另一張圖可以是和上一張圖一樣或者不一樣,目的只是為了將圖像持續的顯示在 LCD 上 ) ,那麼這一幅幅的圖像就稱為幀,也就是在時序圖上的 1 Frame ,因此從時序圖上可以看出 1 Line只是 1 Frame 的一小部份。
同樣的,在幀與幀之間的切換也是有時間間隔,這裡稱作為幀切換,那麼在 LCD 整個顯示過程也就是時序圖上的 VSYNC 。
TFT 時序圖上各個時脈延遲的參數 VBPD(vertical back porch) :表示在一張幀圖像開始時,垂直
同步信號之後無效的行數,並對應 LCD 螢幕中上緣。
VFBD(vertical front porch) :表示在一張幀圖像結束後,垂直同步信號之後無效的行數,並對應 LCD 螢幕中下緣。
VSPW(vertical sync pulse width) :表示垂直同步脈衝的寬度,用行數來計算,並對應 LCD 螢幕中的 vsync_len 。
HBPD(horizontal back porch) :表示從水平同步信號開始到開始的那一行間有效資料的 VCLK 數,並對應 LCD 螢幕中左緣。
HFPD(horizontal front porch) :表示結束時那一行到下一行水平同步信號開始之間的 VCLK 數,並對應 LCD 螢幕中右緣。
HSPW(horizontal sync pulse width) :表示水平同步脈衝的寬度,用 VCLK 來計算,並對應 LCD 螢幕中的 hsync_len 。
TFT 控制器操作 (1)
TIMEGEN產生 LCD 驅動器的控制信號,像VSYNC , HSYNC , VCLK , VDEN 和 LEND信號。
VSYNC 和 HSYNC脈衝的產生依賴於 LCDCON2/3 暫存器中的 HOZVAL 和 LINEVAL 的設置。
HOZVAL 和 LINEVAL透過下面的算式由 LCD 螢幕的大小來決定: EX.320*240 HOZVAL={水平顯示大小 }-1 ; LINEVAL={垂直顯示大小 }-1 HOZVAL:水平掃描次數 ; LINEVAL:垂直掃描次數 水平顯示大小=顯示寬度 /VD 接線的位元數 垂直顯示大小=顯示高度 /VD 接線的位元數 顯示寬度= 3* 每行像素點的數目 ;顯示高度 = 每列像素點的數目
TFT 控制器操作 (2)
VCLK信號的頻率依賴於 LCDCON1 暫存器中的CLKVAL ,下表定義了 VCLK 和 CLKVAL 的關係。
CLKVAL 的最小值是 0
VCLK ( Hz ) =HCLK/[(CLKVAL+1)×2]
TFT 控制器操作 (3)
封包速度是 VSYNC信號頻率,封包速度依賴於LCDCON1 和 LCDCON2/3/4 暫存器中的 VSYNC ,VBPD , VFPD , LINEVAL , HSYNC , HBPD ,HFPD , HOZVA ,以及 CLKVAL 值。 大部分的 LCD 驅動器需要適合的封包速度,由下面的公式來計算封包速度: Frame rate=
1/[{(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)}×{(HSPW
+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)}×{2×(CLKVAL+1)/(HCLK)}]
LCD 相關暫存器LCD 控制暫存器1(LCDCON1)
LCD 控制暫存器2(LCDCON2)
LCD 控制暫存器3(LCDCON3)
LCD 控制暫存器4(LCDCON4)
LCD 控制暫存器 5(Cont.)
LCD 控制暫存器5(LCDCON5)
封包緩衝區起始位址暫存器 1
LCDSADDR1
封包緩衝區起始位址暫存器 2
LCDSADDR2
封包緩衝區起始位址暫存器 3
LCDSADDR3
紅色查表
綠色查表
藍色查表
LCD 電路介面
LCD 電路介面說明相關 CPU 與 LCD 介面連線說明:
BUF_VD0~BUF_VD23 經過緩衝後的資料線 DATA0~DATA23
BUF_GPB1_PWM 通過 PWM信號來控制背光, BUF_GPB1_PWMGPB1/TOUT1 接腳通 過緩衝後的信號
實驗步驟 新增一個 Project 名為 Lcd ,並建立檔案,輸入程
式,設置好 Project 編譯產生映射檔。 S3C2440硬體連接。 下載、除錯並執行。 結合實驗內容和原理,觀察實驗現象,實驗結果應該可以顯示各種顏色的長方形或者圖片。
完成實驗練習題。