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