新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何設計及實現基于ARM9的彩色TFT-LCD模塊?

        如何設計及實現基于ARM9的彩色TFT-LCD模塊?

        作者: 時間:2018-07-31 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201807/384610.htm

        以基于離散余弦變換的順序編碼方式來說明JPEG圖像解碼的過程。圖像解碼是壓縮編碼的反過程,解碼的碼流起始位置標志信息,解碼器根據JPEG壓縮圖像的文件頭信息,得到原始圖像的基本信息。得到原始圖像信息后,解碼器根據JPEG文件中的霍夫曼表進行解碼。由于熵編碼過程中使用霍夫曼編碼分別對DC及AC系數進行編碼,其中系數編碼的順序采用zig-zag序列,因此實現解碼時需要考慮這些相關實現過程,詳細信息請參考相關文獻[5]。根據量化系數表,經霍夫曼解碼后的系數與相應的量化值進行乘積,然后進行反余弦變換。需要注意的是,JPEG 圖像使用的是YCrCb模型,其中Y 是亮度分量,Cr及Cb是色度分量,需要將系數的色彩空間從YCrCb轉換到RGB空間,最終得到圖像的R、G、B 數據值,這些數據才可以在液晶顯示屏上顯示。

        根據JPEG 文件交換格式提供的資料文獻[6],YCrCb色彩空間到RGB色彩空間的轉換見公式(1)。


        考慮到延時應盡量小,程序在NOR Flash存儲器上執行效率低。圖像解碼算法中應合理安排在ARM9中的內存分配。過程中將頻繁訪問的程序代碼及數據搬運到ARM9內部高速緩沖存儲器中,從而提高編碼的效率。由于順序編碼方式最常用,它通常稱為JPEG 基本系統(BaseLine)。過程中,實現的JPEG 圖像解碼支持順序編碼,完全可以滿足應用要求。

        2.2 TFT-LCD LQ080V3DG01

        實驗中選用LQ080V3DG01液晶顯示測試效果。LQ080V3DG01 由TFT-LCD面板、驅動電路、控制電路、供電電路及背光單元組成。它支持最大分辨率為640×480的圖形和文字顯示,數據輸入格式為18bit,其中紅綠藍各占6bit,提供的顏色共262 144種。

        TFT-LCD需要+3。3V或+5V供電電壓,背光需要交流電源供電。輸入的控制信號有4個:幀同步信號VSYNC、行同步信號HSYNC、數據使能信號ENAB及時鐘信號CK。數據線寬度是18bit,紅綠藍各占6bit,分別是R [0∶5]、G [0∶5]及B [0∶5],顏色配置信息如表1所示。

        表1 輸入數據信號及顏色顯示配置


        LQ080V3DG01液晶顯示屏的數據線共18bit,對于24bit的圖像以及24bit的ARM9S3C2440X的TFT-LCD控制器而言,其接口并不兼容。設計中為了適應LQ080V3DG01液晶顯示屏的接口,分別舍棄了8bit R、G、B 值的低2位,測試結果顯示效果良好。如果選用的TFTLCD是24bit數據線,則可以直接連接到LCD控制器相應的數據線。

        3 設計方案的實現

        3.1 工作流程

        在ARM9執行初始化后,主程序就等待外部通過串口發送指令。外接模塊通過RS232串口與本模塊通信,根據通信協議發送不同的指令,實現相應的功能。在約定的串口波特率下,通信協議如下:顯示圖像時首先發送指令0x55,然后再發送圖像在圖像庫中的編號;顯示字符時首先發送指令0x56,然后再發送字符在字符庫中的編號,最后發送字符在液晶屏上顯示的橫軸及縱軸坐標。需要說明的是,在NAND Flash存儲空間中的圖像庫及字符庫是自己定義的,可以重新下載更新。軟件流程圖如圖3示。


        圖3 軟件流程圖

        3.2 彩色圖像顯示

        所設計的模塊支持24bit彩色RGB及JPEG兩種格式的圖像顯示。因為像素數據可以直接送到液晶接口控制模塊顯示,而JPEG格式的圖像則必須經過解碼之后才能顯示,所以圖像在顯示前,需要先判斷圖像數據是什么格式。如果圖像數據是JPEG格式,則必須經過圖像解碼,解碼后得到原始彩色圖像的像素數據值R、G、B,這些數據經過顯示控制單元送到液晶屏顯示。如果圖像是原始圖像的數據,則可以直接送到液晶控制模塊進行顯示。

        由于要顯示的圖像存儲在NAND Flash的圖像庫存儲空間,所以在將彩色圖像輸出到TFT-LCD顯示時,首先要將需要顯示的圖像數據從NAND Flash中讀取出來,得到一幅24bit彩色圖像的完整原始圖像數據。原始圖像數據中,一個像素占用3byte,其中R、G、B 各占1byte。將數據輸出給TFT-LCD 顯示前,需要根據LCD接收的數據格式將圖像數據進行轉換,然后才能輸出顯示,圖像數據按照從上到下,自左向右的順序輸出[9]。同樣,將TFT-LCD按照相同的順序進行掃描,最終完成整幅圖像的顯示。

        NAND Flash存儲著大量的圖像數據,為了區分不同的圖像數據,將相應的圖像輸出顯示,模塊采用RS232串口與外界通信。通過發送不同的指令,可以將在NAND Flash上存儲的相應圖像讀取出來,輸出在TFT-LCD上,最終實現各種彩色圖像的顯示。

        3.3 字符顯示

        字符采用16×16點陣,由于每個像素占用3byte,所以每個字符占用768byte??梢詫⒊S米址鎯υ贜AND Flash中,作為字符庫使用,需要時調用即可。當顯示字符時,首先要確認相應字符在存儲器中的位置,然后根據地址信息對相應字符進行操作,最后根據字符要顯示的位置在液晶屏上輸出,實現字符在液晶屏上的顯示。

        實驗過程中為字符庫分配8Mbyte空間,可以存儲10 922個字符。字符庫還可以實現更新,只需將存儲器NAND Flash對應地址空間的內容替換即可。

        4 實驗結果

        為了測試模塊的正確性,將一幅分辨率為640×480的圖像AutumnLeaves下載到NANDFlash存儲器中,它在圖像庫中的編號為0x01。

        根據串口通信協議,向液晶顯示模塊發送指令0x55,然后再發送圖像在圖像庫中的編號0x01。

        顯示模塊接收到指令后,液晶屏顯示效果如圖4所示。測試結果表明,模塊工作正常,發送顯示其他圖像及字符的指令同樣效果良好,運行可靠,達到了模塊方案設計要求。



        關鍵詞: 彩色 模塊 設計

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 建平县| 鹿泉市| 扬州市| 湟中县| 喀喇沁旗| 满洲里市| 英超| 合阳县| 辽宁省| 和硕县| 秦皇岛市| 甘孜县| 大新县| 元阳县| 双峰县| 儋州市| 贵定县| 泸溪县| 凌源市| 新巴尔虎左旗| 澄城县| 南雄市| 小金县| 锡林郭勒盟| 华宁县| 溧水县| 苗栗县| 大悟县| 同德县| 湖北省| 丹寨县| 辽阳市| 商城县| 昌宁县| 廊坊市| 响水县| 浮梁县| 霍邱县| 余江县| 永新县| 绥棱县|