如何設(shè)計(jì)及實(shí)現(xiàn)基于ARM9的彩色TFT-LCD模塊?
1 引 言
本文引用地址:http://2s4d.com/article/201807/384610.htmTFT-LCD因其厚度薄且畫面質(zhì)量?jī)?yōu)異,可以實(shí)現(xiàn)信息的高速度、高亮度及高對(duì)比度顯示,已廣泛應(yīng)用于圖像顯示系統(tǒng)中。雖然TFT-LCD具有良好的顯示性能,但TFT-LCD的驅(qū)動(dòng)信號(hào)非常復(fù)雜,同時(shí)外圍的控制單元需要處理的數(shù)據(jù)量非常大,以一個(gè)分辨率為640×480的彩色TFT-LCD為例,顯示一幅彩色圖像就需要處理900kbyte的數(shù)據(jù)量,這對(duì)于傳統(tǒng)的單片機(jī)等處理器顯得無(wú)能為力。由于圖像數(shù)據(jù)量大,目前圖像大都采用壓縮后再存儲(chǔ),其中JPEG (Joint PhotographicExperts Group)格式的壓縮圖像應(yīng)用最為廣泛。
為了解決圖像等大容量數(shù)據(jù)在TFT-LCD顯示屏上的應(yīng)用,本文提出了一種基于ARM9處理器S3C2440X的彩色液晶顯示模塊。模塊能夠?qū)崿F(xiàn)對(duì)字符及彩色RGB格式圖像的顯示,同時(shí)還可以顯示JPEG格式的圖像。由于液晶顯示屏只能接收RGB格式的圖像數(shù)據(jù),為了實(shí)現(xiàn)對(duì)JPEG格式的圖像顯示,必須對(duì)壓縮圖像進(jìn)行解壓縮,JPEG格式圖像的解碼功能在ARM9處理器上實(shí)現(xiàn)。本文提出的方法簡(jiǎn)化了彩色TFT-LCD圖像顯示的設(shè)計(jì)難度,同時(shí)為JPEG格式的解碼及液晶顯示提供了一種實(shí)現(xiàn)方法。液晶顯示模塊可以方便地與外接系統(tǒng)接口,實(shí)現(xiàn)圖像顯示模塊的功能。
2 模塊結(jié)構(gòu)設(shè)計(jì)與分析
模塊硬件包括4個(gè)部分:ARM9S3C2440X處理器、數(shù)據(jù)存儲(chǔ)模塊、液晶顯示模塊及RS232串口通信模塊。模塊中使用了兩種非易失性閃存NAND Flash和NOR Flash??紤]到NOR Flash具有芯片內(nèi)執(zhí)行及可靠性高的特點(diǎn),使用它來存儲(chǔ)ARM9處理器運(yùn)行的程序代碼;存儲(chǔ)容量大且高單元密度的NAND Flash用來存儲(chǔ)海量數(shù)據(jù),作為圖像庫(kù)及字符庫(kù)的存儲(chǔ)單元。SDRAM 作為外擴(kuò)存儲(chǔ)器使用。TFT-LCD LQ080V3DG01作為模塊的顯示屏使用。與其他外部模塊通信采用RS232串口方式。
模塊實(shí)現(xiàn)的主要功能有:JPEG 格式圖像的解碼;支持24bit彩色RGB圖像數(shù)據(jù)及JPEG兩種格式圖像的顯示;字符的顯示;數(shù)據(jù)存儲(chǔ)容量為64Mbyte,可以實(shí)現(xiàn)對(duì)圖像庫(kù)及字符庫(kù)的更新;可以設(shè)置不同的串口波特率。模塊功能框圖如圖1所示。
圖1 模塊功能框圖。
2.1 ARM9嵌入式處理器S3C2440X
S3C2440X是一款基于ARM920T 內(nèi)核、主頻最高達(dá)400MHz、適用于嵌入式應(yīng)用的RISC處理器。它支持可配置的8,16,32bit數(shù)據(jù)總線寬度。在存儲(chǔ)器接口方面,最多可以擴(kuò)展6個(gè)通道的ROM 或RAM 存儲(chǔ)器,以及2 個(gè)通道的SDRAM,同時(shí)它還支持NAND Flash、NORFlash存儲(chǔ)器擴(kuò)展。
它內(nèi)部的ARM920T 內(nèi)核具有高速微控制器總線(AMBA BUS)結(jié)構(gòu)及哈佛結(jié)構(gòu)的高速緩沖存儲(chǔ)器(Cache),高速緩沖分別是16kbyte程序及16kbyte數(shù)據(jù)存儲(chǔ)器,使其具有良好的高速性能[3];具有豐富的外圍設(shè)備,包括LCD控制器、UART、USB、SD 及SPI等接口,可以滿足不同的設(shè)計(jì)要求。
2.1.1 LCD控制器
S3C2440X內(nèi)部LCD控制器接口支持STNLCD及TFT-LCD的無(wú)縫連接,它支持單色、調(diào)色板彩色及24bit真彩色的顯示。根據(jù)不同的設(shè)計(jì)要求,通過程序編程可以實(shí)現(xiàn)相應(yīng)的LCD分辨率,數(shù)據(jù)格式及幀頻等設(shè)置,從而滿足各種類型的LCD模塊。S3C2440XLCD控制器用來傳輸視頻數(shù)據(jù)VD [23:0],同時(shí)產(chǎn)生相應(yīng)的控制信號(hào)VSYNC、HSYNC、VDEN及LEND,時(shí)序圖如圖1所示。實(shí)現(xiàn)LCD 控制器功能的關(guān)鍵是根據(jù)LCD時(shí)序的要求,合理配置控制器寄存器。
圖2 TFT-LCD時(shí)序圖。
圖1中的信號(hào)定義如下:
VSYNC:LCD控制器和LCD之間的幀同步信號(hào),高電平有效時(shí)表示一幀圖像的起始。
HSYNC:行同步信號(hào),由水平有效像素的大小決定。
VCLK:LCD時(shí)鐘信號(hào),在一個(gè)時(shí)鐘周期內(nèi)數(shù)據(jù)送入LCD移位寄存器內(nèi)。
VDEN:數(shù)據(jù)使能信號(hào),高電平表示數(shù)據(jù)有效。
LEND:行結(jié)束信號(hào)。
VD[23:0]:RGB數(shù)據(jù)信號(hào)線。對(duì)于24bitTFT-LCD,R、G、B各占8位;而對(duì)于16bit TFT屏有兩種方式:5∶6∶5及5∶5∶5+1,使用時(shí)需要注意要與相應(yīng)TFT-LCD的信號(hào)相一致。
2.1.2 數(shù)據(jù)存儲(chǔ)模塊
NAND Flash是一種固態(tài)內(nèi)存,與EEPROM相比,具有讀寫速度快的優(yōu)勢(shì);與SRAM 相比,具有非易失性等優(yōu)勢(shì)。圖像尤其是彩色圖像數(shù)據(jù)量大,因此需要考慮使用大容量的存儲(chǔ)器來存儲(chǔ)圖像數(shù)據(jù)。另外,考慮到斷電后數(shù)據(jù)的非易失性,因此選擇NAND Flash作為存儲(chǔ)器件。
數(shù)據(jù)存儲(chǔ)單元NAND Flash包括圖像庫(kù)及字符庫(kù),其中字符庫(kù)存儲(chǔ)容量是8Mbyte,圖像庫(kù)存儲(chǔ)容量是56Mbyte。模塊選用NAND FlashK9F1216U0A作為圖像的存儲(chǔ)器件,它的容量大小為64M×8bit,其中每頁(yè)是(512+16)byte,塊大小是(16k+512)byte;隨機(jī)讀取一頁(yè)數(shù)據(jù)的最大時(shí)間是12μs,而向NAND Flash寫入一頁(yè)數(shù)據(jù)的典型時(shí)間是200μs。以分辨率為640×480的RGB 彩色圖像為例,圖像數(shù)據(jù)大小是900byte,因此將此圖像寫入Flash的最大時(shí)間是341μs,然后將此圖像從Flash讀出的最長(zhǎng)時(shí)間是21μs。
以分辨率為640×480的RGB格式彩色圖像為例,56Mbyte的圖像存儲(chǔ)容量可以存儲(chǔ)62幅圖像,完全可以滿足大容量存儲(chǔ)的要求。在存儲(chǔ)圖像數(shù)據(jù)的編程過程中,由于NAND Flash是以頁(yè)為單元進(jìn)行數(shù)據(jù)存儲(chǔ),這就意味著一幅圖像需要占用多個(gè)頁(yè)的存儲(chǔ)空間。需要注意的是,由于NAND Flash器件存在壞塊單元,而且壞塊是隨機(jī)分布的,因此需要對(duì)壞塊進(jìn)行標(biāo)記處理,對(duì)它們標(biāo)記為不可用,這樣就避免了由于壞塊單元引起的數(shù)據(jù)存儲(chǔ)錯(cuò)誤。
2.1.3 JPEG圖像解碼
JPEG是一種目前廣泛使用的靜態(tài)圖像壓縮標(biāo)準(zhǔn),它以其顯著的壓縮效率和較低的圖像質(zhì)量損失獲得了廣泛應(yīng)用,成為國(guó)際通用的標(biāo)準(zhǔn)。
JPEG的目的是提供一種使用于各種連續(xù)色調(diào)圖像的壓縮方法,并且能夠易于硬件實(shí)現(xiàn),具有良好的性價(jià)比。為了滿足各種應(yīng)用需求,它提供了兩種壓縮編碼技術(shù):基于離散余弦變換(DCT)的有損壓縮編碼和基于DPCM 的無(wú)損編碼,這兩種編碼方式可以采用4種操作模式來實(shí)現(xiàn):順序編碼、累進(jìn)編碼、無(wú)損編碼及層次編碼。其中基于DCT變換的順序編碼方式最常用。
評(píng)論