宋 躍,盧俊平,雷瑞庭,陳 衛,程 博
(1.東莞理工學院 電子工程學院,廣東 東莞523808;2.華南理工大學 電子與信息學院,廣東 廣州510640)
基于NiosII的液晶屏控制器SOPC設計
宋 躍1*,盧俊平1,2,雷瑞庭1,陳 衛1,程 博1,2
(1.東莞理工學院 電子工程學院,廣東 東莞523808;2.華南理工大學 電子與信息學院,廣東 廣州510640)
為實現TFT-LCD顯示控制器的SOPC-IP設計,選擇FPGA-EP4CE6F17C8作為設計驗證平臺,采用verilog語言,針對全彩AT070TN84TFT-LCD,由Nios II軟核處理器、SDRAM控制器、JTAG UART、LCD控制器、Avalon總線等組成TFT-LCD控制器。以Nios II軟核處理器為核心,各IP核(如SDRAM控制器、TFT-LCD控制器等)通過Avalon總線相連接到Nios II上,并通過Avalon總線接口模塊、DMA模塊、FIFO模塊和時序產生模塊完成了TFT-LCD控制器IP核設計,實現800×480分辨率,16bit顏色深度的彩色圖形顯示控制。顯示實驗運行穩定,圖像清晰,色彩豐富,無閃屏、錯行等現象,視覺效果良好,設計具有良好的可配置性、復用性和移植性。實踐證明該設計行之有效。文中給出了控制器的設計原理、實現方法、仿真與實驗過程的同時,重點講述與控制器IP核相關的各設計環節。
Nios II;SOPC-IP;液晶屏控制器;直接存儲器存取
在二維位置靈敏涂硼GEM中子探測器研制中,包含了大面積多層GEM探測器的制作、二維讀出條的設計、信號與高壓線的引出以及高速讀出電子學的設計等關鍵技術,需要對一些參數加中子探測位置分辨、信號與高壓線的監控讀數以及各個參數的時間曲線圖進行本地顯示,便于對設備進行本地監控和維護。液晶顯示器以其平板化、高分辨率、高對比度、無電磁輻射、低電壓、低功耗、數字式接口、易集成和輕薄便攜等優點已成為人機界面的主流器件之一,我們擬采用全彩AT070TN84TFT-LCD屏幕作為本地顯示終端。利用液晶顯示器關鍵是其LCD控制器及顯示存儲器設計,常規開發LCD驅動電路的方法不具通用性[1],本文運用EDA技術,實現了基于NIOS II的SOPC的LCD控制器IP核設計,得到了較好的顯示效果,同時又提升了系統現有FPGA的利用率,提高了系統的集成度。
圖1是TFT-LCD控制器顯示方案結構圖。主要由Nios II軟核處理器、SDRAM控制器、JTAG UART、LCD控制器、Avalon總線等組成[2-3]。以 Nios II軟核處理器為核心,各種IP核(如SDRAM控制器、TFT-LCD控制器等)通過Avalon總線相連接到Nios II上。TFT-LCD控制器主要由Avalon總線接口模塊、DMA模塊、FIFO模塊和時序產生模塊組成。TFT-LCD控制器的作用是將SDRAM中的圖像數據經過合適的格式轉換后送給LCD使其按照正確的顯示時序顯示。采用PWM驅動方式來驅動背光電路的顯示,PWM驅動方式的優點是利用其占空比可調的性質來調節屏幕的亮度。系統上電后,Nios II進行硬件初始化,將SDRAM幀緩沖區的首地址、LCD控制器地址、幀緩沖區大小寫入到DMA控制器,同時寫入LCD控制器的時序配置參數,以產生對應的LCD控制時序,啟動DMA控制器。DMA控制器自動從傳來的首地址處開始讀取數據,并輸出給LCD控制器。整個數據讀取過程不需要CPU干預。本文在FPGA內部運用SOPC技術把CPU和LCD控制器整合到一塊,并通過設置相應時序參數實現具有一定通用性的LCD IP核設計。本設計采用AT070TN84 TFT 液晶屏[4]。

圖1 TFT-LCD控制器顯示方案結構圖Fig.1 Structure of TFT-LCD controller
圖2是TFT-LCD控制器結構圖。LCD控制器啟動后,DMA通過Avalon總線流模式讀取傳輸的數據,然后存入FIFO模塊中。時序產生模塊根據LCD屏的時序規范生成行同步信號和場同步信號來判斷是否從FIFO模塊中讀取數據,然后送出去顯示。DMA自動從傳來的首地址處開始讀取數據,并輸出給LCD顯示。整個數據讀取過程不需要CPU干預,從而提高了芯片的工作效率。FIFO模塊主要緩存數據來匹配DMA讀取的速度和TFT-LCD時序發生器輸出的速度,以保證LCD工作在像素時鐘域內,顯示的畫面連續穩定。該控制器可實現分辨率為800×480,顏色深度為16bit的彩色圖形顯示。

圖2 TFT-LCD控制器結構Fig.2 Structure of TFT-LCD controller
運用DMA模塊,CPU只須向DMA控制器發送指令,讓DMA控制器來處理數據的傳送,數據傳送完畢再把信息反饋給CPU,這樣在很大程度上減輕了CPU資源占有率,從而提高了數據的讀取速度。一個DMA控制器具有3個Avalon總線端口,包括1個Avalon從端口和2個Avalon主端口。2個主端口都是用于DMA傳輸通道,負責按照控制模塊的指令,讀取SDRAM中的數據并寫入到FIFO中。而從端口用于DMA控制相關寄存器的讀寫,負責處理器與控制器的接口控制。
Avalon總線支持多個主外設,任何一個主外設都可以進行存儲器訪問(DMA),而無須Nios II處理器的干預。Nios II通過Avalon總線與外設進行數據交換。Avalon規定了各種傳輸模式,本IP核使用流傳輸模式(最適合DMA傳輸),圖3顯示了Avalon總線的流模式從端口寫傳輸時序[5]。除了基本從端口傳輸中使用的信號外,流模式外設接口中還需引入readyfordata、dataavailable和endofpacket 3個信號。當readyfordata有效表示外設準備好接收Avalon總線模塊的寫傳輸,在下一個時鐘的上升沿,來自具有流控制的主端口的傳輸開始;在寫傳輸結束的時候,從端口必須將readyfordata置為低電平,這樣該信號能立即對隨后的傳輸起作用。反之當readyfordata失效時會迫使Avalon總線模塊將送到這一端口的chipselect、write置為無效。故在readyfordata再次有效之前,Avalon總線模塊不會對該從端口發起另一次寫傳輸。本設計endofpacket置為低電平。Dataavailable有效來表示它能夠為來自Avalon總線模塊的讀傳輸提供數據,本設計只進行寫傳輸,故棄用。

圖3 流模式從端口寫傳輸時序Fig.3 Transmission timing write from port


FIFO一般用于不同時鐘域間的數據傳輸[6],它實現對DMA輸出的圖像數據進行緩存來匹配時序控制模塊的傳輸速度,以達到TFT_LCD的穩定顯示的要求。本設計采用Quartus II 11.0自帶的FIFO宏模塊,通過向導生成所需的模塊供調用。大小為2 048×16bit。FIFO由DMA控制器寫入數據,寫入時鐘為80M;由LCD控制器的時序發生模塊讀出數據,讀出時鐘為40M,即LCD的像素點掃描頻率。wrusedw[10∶0]信號通過wrclk上升沿來記錄存入到FIFO中數據個數,當wrusedw大于2 000時,置readyfordata無效,暫停DMA傳輸數據,否則置readyfordata有效,啟動DMA開始傳輸數據,來保證系統的性能。rdempty用來判斷FIFO中緩存數據是否全部讀出,全部讀完置為1。data接Avalon從端口的writedata,進行數據的傳輸;aclr接Avalon從端口的復位信號~rst_n。總之,FIFO模塊起到緩存數據的作用保證了顯示屏穩定高速的顯示圖像。調用FIFO模塊的部分代碼如下:

LCD時序產生模塊根據輸入時鐘和TFT_LCD的時序參數產生LCD顯示所需要的行同步信號HSYNC、幀同步信號VSYNC、輸出像素時鐘信號DCLK、復位信號rst_n、數據使能端控制信號 DE[7-8],如圖4所示。LCD 的顯示驅動原理是采用逐行順序掃描方式進行的,這種掃描方式循環周期很短,使得液晶顯示屏上呈現穩定的圖像效果。在行場時序的控制下屏幕從左到右(受行同步信號HSYNC控制),從上到下(受幀同步信號VSYNC控制)開始逐行顯示。本設計所用AT070TN84TFT液晶屏采用DE模式顯示。

圖4 TFT-LCD控制器IP核Fig.4 IP core of TFT-LCD controller
下面主要介紹一下上述的幾個信號:
(1)輸出像素時鐘信號DCLK:在一個DCLK周期中完成一個像素點的顯示,在DCLK的高電平時讀入像素數據,在其上升沿時將數據寫到TFT LCD上顯示。驅動每個像素點的數據進入LCD。同時作為其他信號的基準時鐘。
(2)行同步信號HSYNC:它的一個周期tHP包括4個時間段:行同步低電平tHW、行消隱后肩tHBP、行有效顯示tHV、行消隱前肩tHFP。行消隱后肩、行消隱前肩保證了行掃描的同步性。在每個HSYNC行有效顯示tHV高電平時完成一行共800個像素的顯示,DCLK產生800個周期。在HSYNC有效之前插入tHFP為210個DCLK,有效之后插入tHBP為45個DCLK,然后再開始下一行的掃描。
(3)幀同步信號VSYNC:它的一個周期tVP也包括4時間段:幀同步低電平tVW、幀消隱后肩tVBP、幀有效顯示tVV、幀消隱前肩tVFP。每掃描完一幀(480行)后,立即插入1個VSYNC信號,該信號告訴LCD屏,新的一幀開始。同樣,在VSYNC有效之前插入tVFP為132個HSYNC,有效之后插入tVBP為22個HSYNC。
(4)數據使能端控制信號DE:它控制顯示數據的傳輸,只有當DE為高電平時,顯示數據才能傳輸到LCD內顯示,其有效寬度為800個DCLK。
設計TFT-LCD的像素時鐘為40MHz,設f為刷新率,則有:

將上述各模塊進行封裝,生成圖4TFT-LCD控制器IP核元件符號。
采用 Nios II 11.0Software Build Tools for Eclipse(32bite)開發工具,進行軟件測試。軟件測試主要是測試LCD控制器是否能正確工作。首先往SDRAM中寫入預定的圖片數據來初始化顯存,然后通過編程將相應的時序配置參數(HP=1 056;HW=1;HBP =45;HV =800;HFP=210;VP=635;VW=1;VBP=22;VV=480;VFP=132)寫入LCD控制器中,同時將SDRAM幀緩沖區的首地址、LCD控制器地址、幀緩沖區大小寫入到DMA控制器,啟動DMA控制器觀察顯示屏的顯示輸出是否正確。Nios II中部分代碼如下:



TFT-LCD控制器設計過程中,采用 Modelsim SE10.0c軟件仿真,仿真結果如圖5,結果表明顯示控制器顯示時序正確。(為了顯示清晰,在仿真時將TFT-LCD控制器的時序參數進行了一定比例的縮放。)

圖5 仿真圖形Fig.5 Simulation graphics
在硬件測試平臺上,使用Quartus II 11.0軟件完成硬件設計[10]。調試IP核時,采用Quartus II自帶的SignalTap II Logic Analyzer進行邏輯分析,分析結果如圖6。表明該控制器可正常工作。SignalTap II與Modelsim軟件仿真不同,利用JTAG在線仿真,更準確的觀察數據的變化,方便調試。

圖6 邏輯分析儀顯示圖Fig.6 Graphic from Logic Analyzer
實驗測試顯示效果如圖7所示,表明圖像顯示清晰,色彩豐富,沒有閃屏、錯行等現象,視覺效果良好,達到了預期的目標。

圖7 實驗結果顯示Fig.7 Experimental results display
具有參數化組件的SOPC-IP核設計可以有效地實現了800×480分辨率,16bit顏色深度的AT070TN84彩色圖形顯示控制,具有良好的可配置性、復用性和移植性。
設計中若使用乒乓顯存作為數據緩存模塊,CPU和LCD控制器在Avalon總線上不會因為競爭帶寬而影響性能,會顯著提高系統的性能,但是成本太大。本設計使用Quartus II自帶的FIFO宏模塊,再配合DMA在很大程度上減輕了CPU資源占有率,與乒乓顯存就“性價比”方面比較,FIFO較優。若要實現一些高端的應用,再考慮乒乓顯存。
本設計觸摸輸入與顯示的功能還未考慮進去,這也是液晶屏控制器需要設計不足之處,這部分的完善設計有待下一步研究。
[1]宋敏,應建華,劉艷麗,等.動態驅動LCD視頻控制芯片的設計[J].華中科技大學學報:自然科學版,2004,32(1):82-86.
Song M,Ying J H,Liu Y L,etal.Design of dynamic driving LCD controller chip [J].JournalofHuazhongUniversityofScienceandTechnology:NaturalScienceEdition,2004,32(1):82-86.(in Chinese)
[2]蘇維嘉,張澎.基于FPGA的 TFT LCD控制器的設計和實現[J].液晶與顯示,2010,25(1):75-78.(in Chinese)
Su W J,Zhang P.Design and realization of the TFT-LCD controller based on FPGA [J].ChineseJournalofLiquid CrystalsandDisplays,2010,25(1):75-78.(in Chinese)
[3]白宗元,胡寶霞.基于 Nios II的SPOC中TFT LCD控制核的設計[J].計算機應用,2008,2(2):61-63.
Bai Z Y,Hu B X.Design of a TFT LCD controller core based on the SOPC of NiosII[J].ComputerApplications,2008,2(2):61-63.
[4]張燕忠,蔡妍艷.嵌入式Linux系統構建和移植若干共性技術研究[J].計算機測量與控制,2005,13(2):162-164.
Zhang Y Z,Cai Y Y.Study of some common technology on the design and transplantation of embed ded linux operating system [J].TransplantationofEmbeddedLinuxOperatingSystemComputerAutomatedMeasurement&Control,2005,13(2):162-164.(in Chinese)
[5]褚文奎,張鳳鳴,樊曉光.嵌入式Linux系統實時性能測試研究[J].系統工程與電子技術,2007:29(8):1385-1388
Chu W K,Zhang F M,Fan X G.Measurement of real time performance of embedded Linux systems[J].Systems EngineeringandElectronics,2007:29(8):1385-1388.(in Chinese)
[6]付先成,鄒雪城,雷鑑銘.FIFO電路在液晶顯示控制器中的應用[J].華中科技大學學報:自然科學版,2006,34(4):8-10.
Fu X C,Zou X C,Lei J M.Application of FIFO circuit to liquid crystal display cont rollers[J].JournalofHuazhongUniversityofScienceandTechnology:NatureScienceEdition,2006,34(4):8-10.(in Chinese)
[7]向榮,陳祖希.基于 Nios II的LCD驅動IP核的設計[J].計算機工程,2008,34(5):246-247,259.
Xiang R,Chen Z X.Design of IP core for LCD driver based on Nios II[J].ComputerEngineering,2008,34(5):246-247,259.
[8]黃燕群,李利品,王爽英.基于FPGA的 OSD設計[J].液晶與顯示,2010,25(3):429-433.
Huang Y Q,Li L P,Wang S Y.OSD design based on FPGA [J].ChineseJournalofLiquidCrystalsandDisplays,2010,25(3):429-433.(in Chinese)
[9]張雷,吳華夏,胡俊濤,等.一種基于FPGA的 OLED顯示系統[J].液晶與顯示,2011,26(4):538-543.
Zhang L,Wu H X,HU Jun-tao,etal.Display system of OLED based on FPGA [J].ChineseJournalofLiquid CrystalsandDisplays,2011,26(4):538-54.(in Chinese)
[10]王栩,李建中,王偉平.基于滑動窗口的數據流壓縮技術及連續查詢處理方法[J].計算機研究與發展,2004,41(10):1639-1644.
Wang X,Li J Z,Wang W P.Processing compressed sliding window continuous queries over data streams[J].JournalofComputerResearchandDevelopment,2004,41(10):1639-1644.(in Chinese)
SOPC design on LCD controller based on NiosII
SONG Yue1*,LU Jun-ping1,2,LEI Rui-ting1,CHEN Wei1,CHENG Bo1,2
(1.CollegeofElectronicsEngineering,DongguanUniversityofTechnology,Dongguan523808,China;2.SchoolofElectronicandInformationEngineering,SouthChinaUniversityof Technology,Guangzhou510640,China)
In order to realize SOPC controller design on TFT-LCD,IP core of TFT-LCD controller based on Nios II was designed by FPGA-EP4CE6F17C8and Verilog language.TFT-LCD controller was consisted of the Nios II soft-core processor,SDRAM controller,JTAG UART,LCD controller,Avalon bus for a full-color AT070TN84 TFT-LCD.Nios II soft-core processor was designed as core,IP cores such as SDRAM controller,TFT-LCD controller were connected to Nios II by Avalon bus,IP core design of TFT-LCD controller was mainly completed by such modules as the Avalon bus interface module,DMA module,FIFO module and the timing generator module.The color graphics display control wtih 800×480resolution,16bit color depth was achieved.Display experiment showed it was of stable,clear images,rich colors,no splash screen,wrong line and other phenomena,good visual effect.Design was of good configurability,reusability and portability.Practice proved that the SOPC design was effective.The design principle,control system simulation and experiment method,process were presented in the paper,relevant links of IP controller core design was mainly focused on at the same time.
Nios II;SOPC-IP;LCD controller;DMA
*通信聯系人,E-mail:eda815@163.com
TP274;TM935
A
10.3788/YJYXS20142901.0048
2013-06-17;
2013-07-19.
國家自然科學重大基金項目 (No.10890095);國家自然科學基金科學儀器基礎研究專款項目(No.11127508);東莞市2012年科技計劃項目(No.2012108102040);東莞市2010年科技計劃重點項目(No.201010814001)
宋躍 (1963-),男,湖南邵陽人,教授,研究方向為電路與系統、電子測量與儀器、嵌入式系統。E-mail:eda815@163.com