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