0 引 言
LCD以其低工作電壓、低功耗、顯示效果好、易集成和輕巧便攜等特點率先進入平板顯示市場并不斷拓寬其應用領域。隨著數字化作戰(zhàn)模式的發(fā)展,LCD必將越來越多地被應用于各種機載、艦載、裝甲車輛等軍用裝備。而常用的雙口RAM、乒乓操作等類型顯示控制器在成本、速度或靈活性方面存在一些不足。本文提出并沒計了一種基于SOPC技術的內存映射型LCD控制器,設計了系統(tǒng)實驗平臺,最后對該控制器的穩(wěn)定性、實用性進行了驗證。實驗結果表明,該控制器具有成本低、實用性強、靈活性強等優(yōu)點,并可推廣到LED、CRT等類型屏幕的驅動控制。
1 內存映射型LCD控制器的結構及優(yōu)點
傳統(tǒng)的LCD控制器可分為雙口RAM型、“乒乓”切換控制型、消隱寫操作型等類型,這些控制器雖思路、設計簡單,能較好地解決讀寫沖突,但都只能應用于某些特定環(huán)境下的設計開發(fā),系統(tǒng)的可擴展性、靈活性較差。而內存映射型控制器系統(tǒng)性能穩(wěn)定、擴展性強、成本低、讀寫速度快,是目前控制器設計的較好解決方案。
1.1 內存映射型LCD控制器的結構
內存映射型控制器不用獨立的存儲器做顯存,而是在內存中動態(tài)地開辟一塊空間作為顯存,故稱之為內存映射型控制器,其結構如圖1所示。
內存映射型控制器工作時,顯存里的數據不是通過簡單接口,而是通過總線傳到時序發(fā)生器。由于對顯存的讀寫通過總線進行自動協調,從而有效地避免了讀寫沖突的發(fā)生。通常,總線通過一個數據緩存區(qū)與時序發(fā)生器連接。
1.2 內存映射型LCD控制器的優(yōu)點
內存映射型控制器用一小塊雙口存儲器做緩存,保證了顯示數據傳輸的流暢性;顯存定義在SDRAM/SRAM內存中,取代了獨立顯存從而降低了系統(tǒng)成本;使用中只需修改時序發(fā)生器,就可以驅動各種參數的顯示器;同時,通過總線協調顯存的讀寫操作,有效的避免了顯存讀寫沖突問題。表1從4個方面對內存映射型控制器與其他3種常見控制器類型進行了比較。
2 基于SOPC技術的內存映射型LCD控制器設計
2.1 內存映射型LCD控制器的總體結構
該控制器由寄存器模塊、DMA模塊、數據緩存模塊、時序發(fā)生器4部分組成,采用VHDL語言編寫。如圖2所示??刂破鲀炔慷x了2個總線外設,其中,寄存器模塊為總線從端口設備,DMA模塊為總線主端口設備。
2.2 寄存器模塊(register_bank)
該模塊為Avalon總線從端口設備,可以通過NiosⅡ Processor設置和讀取顯存起始地址、顯示大小、顯示顏色位數及相關控制參數。
寄存器模塊中共定義了4個寄存器;顯存起始地址寄存器、顯示參數寄存器、控制寄存器和狀態(tài)寄存器。各寄存器的讀寫控制、定義及功能描述如表2所示。
其中,顯示參數寄存器(size)中“色數”標志位,值為1表示8位顏色顯示,值為0表示16位顏色顯示。狀態(tài)寄存器(status)大小為兩位,可與控制寄存器中的中斷位(Interrupt)配合使用,為保留位。控制器寄存器的定義如表3所示。
2.3 數據緩存模塊(line_buffer)
該模塊設計采用了雙口RAM,由MegaWizard Plug-In Manager生成,其存儲空間約為一行數據所占的空間,用于暫存顯示數據。由于DMA不是直接將顯存中的數據傳給時序發(fā)生器,而在中間使用了雙口RAM做數據緩存,這樣DMA和時序發(fā)生器的讀、寫時序不必嚴格對應,簡化了結構設計。同時,用于16位彩色顯示時,可通過數據緩存模塊將總線32位的數據輸入變?yōu)?6位的數據輸出給時序發(fā)生器;而在8位彩色顯示時,可通過數據緩存模塊將32位輸入變?yōu)?位輸出,實現了數據位數的轉化,方便的時序發(fā)生器內部的數據操作。
2.4 DMA模塊(image_dma)
該模塊為Avalon總線主端口設備,它負責向Avalon總線提供有效的地址、數據和寫請求信號,并在時鐘上升沿發(fā)起總線傳輸,讀取顯存中的數據;同時,DMA模塊產生寫數據緩存的地址和數據,將顯示數據正確地從顯存?zhèn)魉偷綌祿彺妗MA模塊為三狀態(tài)的狀態(tài)機,包括空閑狀態(tài)、傳輸狀態(tài)、等待狀態(tài),各狀態(tài)機邏輯關系如圖3所示。
2.5 時序發(fā)生器(LCD_driver)
時序發(fā)生器模塊主要有4個主要功能:
(1)產生驅動LCD的行掃描信號(hsync)、列掃描信號(vsync)、數據使能信號(blank_n);
(2)產生讀雙口R_AM緩存的地址信號;
(3)產生行、場消隱信號,控制DMA模塊啟動、停止數據傳輸;
(4)將顯示數據RGB按正確的時序、指定模式輸出。
常用的16位彩色顯示可分為555、565(即RGB信號分量所占位數)兩種顯示模式,控制器通過判斷控制寄存器中的模式設置位將RGB信號以不同的格式輸出。
2.6 實驗平臺的設計及內存映射型LCD控制器的驗證
為驗證該控制器,本文設計了以CycloneⅡ系列EP2C8Q208C8為主芯片的SOPC評估電路板。實驗平臺的TFT-LCD選用SAMSUNG公司的LTA104S1-L01,該LCD大小為10.4英寸、分辨率為800×600,可實現16位真彩色顯示。由于LTA104S1-L01接口為LVDS,本文設計了以DS90CF363為主芯片外接的接口板,以實現RGB到LVDS信號的轉換實驗結果說明,本控制器能有效地解決顯存讀寫問題,設計完全符合預期要求。實驗平臺及顯示效果如圖4所示。
3 結束語
本文設計的內存映射型LCD控制器,能有效地解決顯存讀寫沖突。同時與文獻[8]中的控制器相比,由于使用自定義的DMA代替了原有的DMA IP Core,數據的傳輸不必由CPU產生中斷發(fā)起,而完全由控制器發(fā)起,從而減輕CPU的運行負擔。同時,該設計還具有占用邏輯單元少、適用范圍廣、靈活性強、實用性強、擴展性強等特點,可用于多種分辨率LCD的顯示控制,具有一定的實用價值。