隨著電子技術(shù)的迅猛發(fā)展,液晶顯示器(LCD)具有功耗低,體積小,重量輕,超薄等許多其他顯示器無法比擬的優(yōu)點(diǎn),被廣泛用于智能儀器、儀表和低功耗電子產(chǎn)品中。TFT-LCD屏采用有源顯示方式,具有抗抖動(dòng),色彩飽和度高,還原能力強(qiáng)和對比度高等特點(diǎn),在嵌入式系統(tǒng)中具有廣泛的應(yīng)用前景。在嵌入式系統(tǒng)中,LCD控制器是處理器與LCD顯示驅(qū)動(dòng)器之間的接口部件,對LCD屏提供時(shí)序信號(hào)和顯示數(shù)據(jù),用來控制數(shù)據(jù)在LCD屏幕上的顯示,是LCD系統(tǒng)中重要的組成部分,F(xiàn)有的LCD控制器一般都由各個(gè)生產(chǎn)廠家自行開發(fā),通用性差,而軟件控制TFT-LCD會(huì)占用大量的處理器資源,使得系統(tǒng)的集成度不高。
SoPCBuilder是Altera公司實(shí)現(xiàn)SoPC概念的一款工具軟件,使得用戶可以通過自定義邏輯的方法方便地開發(fā)基于NiosⅡ的SoPC系統(tǒng)。So-PCBuilder集成在EDA工具QuartusⅡ中,提供NiosⅡ處理器及一些常用外設(shè)接口,用于組建一個(gè)在模塊級(jí)和組件級(jí)定義的系統(tǒng),能夠自動(dòng)生成片上總線和總線仲裁器等所需的邏輯;赟oPC的設(shè)計(jì)在很大程度上依賴于利用集成電路IP(intellectualproperty)。集成電路IP是指經(jīng)過預(yù)先設(shè)計(jì)、預(yù)先驗(yàn)證、符合產(chǎn)業(yè)界普遍認(rèn)同的設(shè)計(jì)規(guī)范和設(shè)計(jì)標(biāo)準(zhǔn),具有相對獨(dú)立,并可以重復(fù)利用的電路模塊或子系統(tǒng)。本文中提出一種基于SoPC的參數(shù)化TFT-LCD控制器IP核設(shè)計(jì),用硬件描述語言實(shí)現(xiàn)控制器的邏輯功能,這種參數(shù)化的組件設(shè)計(jì)具有很強(qiáng)的通用性和兼容性。
1 通用冊LCD控制器總體設(shè)計(jì)
在嵌入式系統(tǒng)中,LCD控制器是非常重要的片上外圍設(shè)備,處理器通過LCD控制器來完成對顯示驅(qū)動(dòng)器的控制,最終實(shí)現(xiàn)LCD屏的點(diǎn)亮操作。由于LCD顯示驅(qū)動(dòng)器只是一個(gè)被動(dòng)系統(tǒng),還需要有控制電路提供驅(qū)動(dòng)系統(tǒng)所必須的掃描時(shí)序信號(hào)和顯示數(shù)據(jù)。處理器通過對LCD控制器的操作,實(shí)現(xiàn)對LCD顯示掃描時(shí)序的設(shè)置和顯示數(shù)據(jù)的寫入,從而完成對LCD的顯示操作,其原理圖如圖1所示。
在SoPCBuilder中以自定義組件的形式對LCD控制器進(jìn)行設(shè)計(jì),該控制器組件具有Avalon總線接口,可以很容易地將其與其他標(biāo)準(zhǔn)IP核一起構(gòu)建以。NiosⅡCPU為核心的片上系統(tǒng)。NiosⅡ處理器通過Avalon從端口對LCD控制器的寄存器組進(jìn)行配置,針對設(shè)計(jì)中幀緩存讀操作的特點(diǎn),選擇以Avalon主端口接口的形式對幀緩存中的顯示數(shù)據(jù)進(jìn)行主動(dòng)讀取,并實(shí)現(xiàn)IP核參數(shù)化設(shè)計(jì),提高控制器對于其他不同規(guī)格TFT液晶屏的復(fù)用性。該控制器還包含硬件光標(biāo)功能,為添加外部鼠標(biāo)設(shè)備接口提供了方便。LCD控制器的具體設(shè)計(jì)思路是在SDRAM中開辟一段存儲(chǔ)空間,用來存放屏幕圖像數(shù)據(jù),稱之為幀緩存。通過設(shè)計(jì)適當(dāng)?shù)挠布壿媮斫彺媾c屏幕圖像像素之間一一對應(yīng)的關(guān)系,并配合LCD顯示所需的行、場時(shí)序信號(hào),將幀緩存中的數(shù)據(jù)不斷地輸給LCD,用以完成最終的顯示刷新。LCD控制器總體結(jié)構(gòu)如圖2所示。
LCD控制器的具體工作流程為刷新周期開始時(shí),主端口模塊根據(jù)幀緩存地址生成邏輯所產(chǎn)生的地址完成主端口的讀操作,實(shí)現(xiàn)幀緩存中數(shù)據(jù)的讀取,并將該數(shù)據(jù)輸送給輸出緩沖模塊。同時(shí),時(shí)序信號(hào)生成模塊依據(jù)LCD屏的時(shí)序規(guī)范生成行、場同步信號(hào),以及與像素?cái)?shù)據(jù)同步的相關(guān)顯示點(diǎn)的橫、縱坐標(biāo)。
設(shè)計(jì)的LCD控制器包含硬件光標(biāo)顯示模塊,所以在進(jìn)行最后屏幕顯示時(shí),像素輸出控制邏輯有兩部分的數(shù)據(jù)來源,一部分為從幀緩存中讀取的屏幕數(shù)據(jù);另一部分為硬件光標(biāo)的顯示數(shù)據(jù)。最后,像素輸出控制邏輯根據(jù)從端口模塊中各個(gè)系統(tǒng)寄存器內(nèi)的信息向LCD屏幕發(fā)送將要顯示的圖像數(shù)據(jù)。
2 硬件光標(biāo)模塊設(shè)計(jì)
硬件光標(biāo)模塊為LCD控制器設(shè)計(jì)帶鼠標(biāo)光標(biāo)的顯示功能,為系統(tǒng)開發(fā)中添加鼠標(biāo)接口提供了方便。光標(biāo)顯示的實(shí)現(xiàn)方式有硬件方式和軟件方式,軟件方式比較復(fù)雜,且占用大量的CPU處理時(shí)間;硬件方式