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