国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32和CPLD的TFT-LCD顯示控制器設(shè)計(jì)

2015-05-10 01:45:58尤衛(wèi)衛(wèi)冒建亮
液晶與顯示 2015年3期
關(guān)鍵詞:狀態(tài)圖單點(diǎn)時(shí)序

尤衛(wèi)衛(wèi),冒建亮,葉 樺

(東南大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210096)

1 引 言

液晶顯示器由于其輕薄、便攜、高分辨率等優(yōu)點(diǎn)已被廣泛應(yīng)用到生活、工業(yè)、軍事等各種場(chǎng)合。TFT-LCD顯示器作為液晶顯示器中一類重要的代表,具有體積小,功耗低,顯示品質(zhì)優(yōu)良等諸多優(yōu)勢(shì),已經(jīng)成為當(dāng)前桌面顯示的主流。雖然TFT-LCD顯示效果極佳,但由于控制時(shí)序相對(duì)復(fù)雜,其控制一直是大家研究的重點(diǎn)[1-2]。目前對(duì)TFT-LCD的控制方式主要有3種:

(1)使用專用控制芯片,但此方式易受器件斷檔影響,并且不利用技術(shù)移植;

(2)使用內(nèi)置TFT-LCD控制器的STM32,如ARM9等,此方式適用于高端顯示領(lǐng)域,成本較高;

(3)使用FPGA或CPLD進(jìn)行 TFT-LCD的控制器設(shè)計(jì),利用此方式設(shè)計(jì)靈活性強(qiáng)、可移植性高,且器件性價(jià)比高。

比較3種方案,本文選擇靈活性強(qiáng)、可移植性高,且器件性價(jià)比高的第三種方案來(lái)設(shè)計(jì)控制器[3]。

2 TFT-LCD顯示控制器的整體架構(gòu)

圖1為液晶屏顯示系統(tǒng)的系統(tǒng)框圖。其中,主控芯片STM32[4]內(nèi)部制定了與CPLD間的通訊協(xié)議,主要用于實(shí)現(xiàn)在LCD上的各類寫(xiě)操作指令,通過(guò)Intel8080總線將待顯示信息傳送給CPLD。作為控制器的核心元件,CPLD主要實(shí)現(xiàn)三個(gè)模塊的功能[5]:

(1)協(xié)議解析模塊:CPLD接收控制器STM32發(fā)出的控制指令,實(shí)現(xiàn)對(duì)8080總線通訊協(xié)議的解析,主要包括待寫(xiě)數(shù)據(jù)模式,待寫(xiě)數(shù)據(jù)坐標(biāo)以及待寫(xiě)數(shù)據(jù)RGB顏色。

(2)SRAM 讀寫(xiě)控制模塊:CPLD 在 TFTLCD屏顯消隱區(qū)間,根據(jù)提出的數(shù)據(jù)坐標(biāo)及RGB顏色,將相應(yīng)值寫(xiě)入SRAM相應(yīng)地址。在TFTLCD屏顯有效區(qū)間時(shí),將上述數(shù)據(jù)按照時(shí)序依次讀出,完成TFT-LCD的顯示驅(qū)動(dòng)。

(3)LCD時(shí)序驅(qū)動(dòng)模塊:根據(jù)LCD顯示時(shí)序,實(shí)現(xiàn)液晶屏的顯示驅(qū)動(dòng)。

3 TFT-LCD顯示控制器的設(shè)計(jì)

3.1 STM32與CPLD間通信協(xié)議

STM32內(nèi)部實(shí)現(xiàn)了底層接口函數(shù)及上層界面函數(shù),底層接口函數(shù)主要實(shí)現(xiàn)通訊協(xié)議的制定,包括用于界面顯示的各類函數(shù)的實(shí)現(xiàn)。主要包括:?jiǎn)吸c(diǎn)寫(xiě)、多點(diǎn)寫(xiě)、8點(diǎn)帶背景寫(xiě)與8點(diǎn)不帶背景寫(xiě)命令。各命令具體操作如下:

(1)單點(diǎn)寫(xiě)

單點(diǎn)寫(xiě)主要是為了實(shí)現(xiàn)一些不易繪制的圖形,如圓、三角形等,也可用于顯示完整的圖片。STM32內(nèi)部根據(jù)指定的時(shí)序規(guī)則,依次發(fā)送指令:選擇單點(diǎn)寫(xiě)模式→待顯示像素點(diǎn)行、列地址→待顯示像素點(diǎn)顏色。

(2)多點(diǎn)寫(xiě)

多點(diǎn)寫(xiě)主要用于繪制直線、矩形等,也可用于局部圖形的填充。STM32內(nèi)部根據(jù)指定的時(shí)序規(guī)則,依次發(fā)送指令:選擇多點(diǎn)寫(xiě)模式→待顯示圖形起始點(diǎn)行、列地址→待顯示圖形長(zhǎng)度→待顯示圖形顏色。

(3)8點(diǎn)帶背景寫(xiě)

主要用于字符的覆蓋顯示,可繪制任意像素為8N×8N的字符。STM32內(nèi)部根據(jù)指定的時(shí)序規(guī)則,依次發(fā)送指令:選擇8點(diǎn)帶背景寫(xiě)模式→待顯示字符起始行、列地址→待顯示字符前景色→待顯示字符背景色。

(4)8點(diǎn)不帶背景寫(xiě)

主要用于字符的層疊顯示,可繪制任意像素為8N×8N的字符。STM32內(nèi)部根據(jù)指定的時(shí)序規(guī)則,依次發(fā)送指令:選擇8點(diǎn)不帶背景寫(xiě)模式→待顯示字符起始行、列地址→待顯示字符前景色。

根據(jù)上述4種操作,STM32可以便捷地進(jìn)行各類圖文的繪制,并將相應(yīng)的指令傳送給CPLD對(duì)通訊數(shù)據(jù)進(jìn)行解析,實(shí)現(xiàn)TFT-LCD的顯示驅(qū)動(dòng)。

3.2 TFT-LCD顯示驅(qū)動(dòng)設(shè)計(jì)[6-8]

顯示器的驅(qū)動(dòng)主要由CPLD實(shí)現(xiàn),包括LCD時(shí)序驅(qū)動(dòng)、通訊協(xié)議解析和SRAM讀寫(xiě)控制,如圖2所示。CPLD接收控制器STM32發(fā)出的控制指令,提取待顯示點(diǎn)的坐標(biāo)與RGB數(shù)據(jù),并在TFT-LCD屏顯消隱區(qū)間,將相應(yīng)數(shù)據(jù)寫(xiě)入SRAM相應(yīng)地址。在TFT-LCD屏顯有效區(qū)間時(shí),將相應(yīng)數(shù)據(jù)按照時(shí)序依次讀出,完成TFTLCD的顯示驅(qū)動(dòng)。

圖2 TFT-LCD顯示驅(qū)動(dòng)框圖Fig.2 Driving chart of TFT-LCD display

3.2.1 通訊協(xié)議解析模塊

CPLD對(duì)STM32的通訊協(xié)議解析,按照先取指令后取數(shù)據(jù)的方式進(jìn)行。當(dāng)STM32發(fā)送控制指令時(shí),控制線RS為0,發(fā)送數(shù)據(jù)指令時(shí),控制線RS為1,每發(fā)送完對(duì)應(yīng)的指令,發(fā)送相應(yīng)的數(shù)據(jù)。因此,通過(guò)判斷RS由0到1的上升邊沿,此時(shí)總線上數(shù)據(jù)狀態(tài)穩(wěn)定,即可讀取指令至CPLD中的寄存器;同理,當(dāng)檢測(cè)到RS由1到0的下降邊沿時(shí),可以根據(jù)接收到的控制指令,將相應(yīng)的數(shù)據(jù)存放入對(duì)應(yīng)的寄存器中,進(jìn)而在TFT-LCD數(shù)據(jù)寫(xiě)有效時(shí),進(jìn)行相應(yīng)的寫(xiě)屏操作。

寫(xiě)屏操作具體指STM32用于圖文繪制的單點(diǎn)寫(xiě)、多點(diǎn)寫(xiě)、8點(diǎn)帶背景寫(xiě)與8點(diǎn)不帶背景寫(xiě)的驅(qū)動(dòng)程序,采用有限狀態(tài)機(jī)模式,主要分為兩大類:第一類是輸出只和狀態(tài)有關(guān),與輸入無(wú)關(guān),即Moore型狀態(tài)機(jī);第二類是輸出和輸入、狀態(tài)有關(guān),且次態(tài)也與輸入和當(dāng)前狀態(tài)有關(guān),即 Mealy型狀態(tài)機(jī)。本設(shè)計(jì)中采用的是Mealy型狀態(tài)機(jī),各部分對(duì)應(yīng)狀態(tài)操作如下:

(1)清屏操作

設(shè)定狀態(tài)S1:寄存器清零操作;S2:清屏操作。狀態(tài)圖如圖3所示。其中,WAddCnt為寫(xiě)屏操作完成標(biāo)志。

圖3 清屏操作狀態(tài)圖Fig.3 State chart of screen clearing operation

(2)單點(diǎn)寫(xiě)

設(shè)定狀態(tài)S1:等待數(shù)據(jù)穩(wěn)定;S2:寫(xiě)單點(diǎn)操作,S3:寄存器清零操作。狀態(tài)圖如圖4所示。

圖4 單點(diǎn)寫(xiě)操作狀態(tài)圖Fig.4 State chart of single point writing operation

(3)多點(diǎn)寫(xiě)

設(shè)定狀態(tài)S1:等待數(shù)據(jù)穩(wěn)定;S2:寫(xiě)起始點(diǎn)操作;S3:寫(xiě)剩余長(zhǎng)度點(diǎn)操作。狀態(tài)圖如圖5所示。其中,MulPotWrCnt為寫(xiě)計(jì)數(shù)器,MulPotLength為多點(diǎn)寫(xiě)長(zhǎng)度。

圖5 多點(diǎn)寫(xiě)操作狀態(tài)圖Fig.5 State chart of multipoint writing operation

(4)8點(diǎn)帶背景寫(xiě)

設(shè)定狀態(tài)S1:等待數(shù)據(jù)穩(wěn)定;S2:寫(xiě)起始點(diǎn)操作;S3:寫(xiě)其余7點(diǎn)操作。狀態(tài)圖如圖6所示。其中,MulPotWrCnt為寫(xiě)計(jì)數(shù)器;狀態(tài)S2和狀態(tài)S3中,對(duì)字模數(shù)據(jù)的操作為:0寫(xiě)背景色,1寫(xiě)前景色。

圖6 8點(diǎn)帶背景寫(xiě)狀態(tài)圖Fig.6 State chart of 8points with background writing operation

(5)8點(diǎn)不帶背景寫(xiě)

設(shè)定狀態(tài)S1:等待數(shù)據(jù)穩(wěn)定;S2:寫(xiě)起始有效點(diǎn)操作;S3:無(wú)效點(diǎn)計(jì)數(shù)清零操作;S4:寫(xiě)其余有效點(diǎn)操作。狀態(tài)圖如圖7所示。其中,8Addr[7]為字模最高位,每個(gè)時(shí)鐘周期左移1位;8AddrCnt為單字模中兩有效點(diǎn)間無(wú)效點(diǎn)計(jì)數(shù)器;MulPotWrCnt為寫(xiě)計(jì)數(shù)器,8AddrWrCnt為單字模中無(wú)效點(diǎn)總計(jì)數(shù)器。對(duì)字模數(shù)據(jù)的操作為:0為無(wú)效點(diǎn),1為有效點(diǎn),此時(shí)寫(xiě)背景色。

圖7 8點(diǎn)不帶背景寫(xiě)狀態(tài)圖Fig.7 State chart of 8points without background writing operation

3.2.2 SRAM 讀寫(xiě)控制模塊

外部緩存SRAM的主要作用是將STM32發(fā)送的圖文數(shù)據(jù)進(jìn)行緩存,以便在TFT-LCD顯示有效區(qū)間,CPLD可按照一定的時(shí)序從SRAM中依次讀出。對(duì)于SRAM,通過(guò)設(shè)定與的高低,將芯片的16位數(shù)據(jù)線分高8位和低8位存儲(chǔ)RGB顏色數(shù)據(jù),以滿足存儲(chǔ)像素點(diǎn)640×480的需求,即將整屏數(shù)據(jù)分為上半屏(0~239行)、下半屏(240~479行)存儲(chǔ),每半屏地址一樣,地址數(shù)為640×240。當(dāng)接收到顯示像素點(diǎn)為上半屏數(shù)據(jù)時(shí),設(shè)定=0=1,數(shù)據(jù)存儲(chǔ)于低8位,當(dāng)接收到顯示像素點(diǎn)為下半屏數(shù)據(jù)時(shí),設(shè)定=1=0,數(shù)據(jù)存儲(chǔ)于高8位。

3.2.3 LCD時(shí)序驅(qū)動(dòng)模塊

LCD驅(qū)動(dòng)程序流程圖如圖8所示。通過(guò)行、場(chǎng)計(jì)數(shù)器,產(chǎn)生TFT-LCD控制所需的行、場(chǎng)同步信號(hào)、像素時(shí)鐘,同時(shí)產(chǎn)生RGB數(shù)據(jù)讀寫(xiě)有效位,即在RGB數(shù)據(jù)讀有效時(shí),按照時(shí)序依次從SRAM中讀取存儲(chǔ)的數(shù)值,在RGB數(shù)據(jù)寫(xiě)有效時(shí),CPLD根據(jù)數(shù)據(jù)傳輸指令協(xié)議,接收并解析STM32給定的TFT-LCD上各坐標(biāo)點(diǎn)待顯示的圖像數(shù)據(jù)。

圖8 LCD驅(qū)動(dòng)模塊流程圖Fig.8 Flow chart of LCD driving module

4 仿真結(jié)果討論

本節(jié)利用 Quartus II[9]軟件仿真功能,對(duì)LCD時(shí)序和SRAM讀寫(xiě)功能進(jìn)行仿真。

4.1 LCD時(shí)序驅(qū)動(dòng)仿真

如圖9為L(zhǎng)CD時(shí)序仿真圖,其中,LCD_HS是行同步信號(hào),LCD_VS是場(chǎng)同步信號(hào),可以看出,當(dāng)場(chǎng)計(jì)數(shù)器Vcnt達(dá)到524時(shí),意味著一場(chǎng)掃描完,LCD_VS發(fā)生反轉(zhuǎn),進(jìn)入場(chǎng)消隱,同時(shí)新的一場(chǎng)同步信號(hào)隨后到來(lái)。

圖9 LCD時(shí)序仿真圖Fig.9 Simulation chart of LCD timing

4.2 SRAM 讀寫(xiě)仿真[10]

SRAM讀寫(xiě)控制信號(hào)由TFT-LCD顯示有效與消隱區(qū)間決定,設(shè)定RCnt和 WCnt分別為SRAM讀、寫(xiě)狀態(tài)的地址、數(shù)據(jù)判斷標(biāo)志位。

圖10 SRAM讀時(shí)序仿真圖Fig.10 Simulation chart of SRAM reading

如圖11,當(dāng)WE為低時(shí),SRAM進(jìn)行寫(xiě)操作。此時(shí),在WCnt為高電平時(shí),給定待寫(xiě)像素點(diǎn)地址,WCnt為低電平時(shí),同樣經(jīng)過(guò)20ns時(shí)延后寫(xiě)相應(yīng)地址數(shù)據(jù)。同時(shí),在SRAM在讀操作時(shí),行地址從0~639,當(dāng)讀操作結(jié)束并轉(zhuǎn)入寫(xiě)操作時(shí),行地址清0,場(chǎng)地址加1,可見(jiàn)仿真結(jié)果的正確性。

圖11 SRAM寫(xiě)時(shí)序仿真圖Fig.11 Simulation chart of SRAM writing

圖12是對(duì)TFT-LCD半場(chǎng)信號(hào)掃描仿真的結(jié)果。在TFT-LCD的行掃描中,有一段消隱區(qū)間與有效區(qū)間;在消隱區(qū)間,可以對(duì)SRAM進(jìn)行數(shù)據(jù)寫(xiě)操作,在有效區(qū)間,按照行地址計(jì)數(shù)0~639依次輸出信號(hào)。每行掃描結(jié)束后,場(chǎng)地址加1,當(dāng)場(chǎng)地址到達(dá)239時(shí),即TFT-LCD半場(chǎng)掃描結(jié)束,接下來(lái)以同樣的地址進(jìn)行下半場(chǎng)的掃描。

圖12 半場(chǎng)掃描完仿真圖Fig.12 Simulation chart of half-court scanning finished

4.3 實(shí)現(xiàn)結(jié)果

通過(guò)采用本文設(shè)計(jì)方法,實(shí)現(xiàn)的設(shè)計(jì)實(shí)物效果如圖13所示。

圖13 設(shè)計(jì)實(shí)物圖Fig.13 Chart of design entity

5 結(jié) 論

本文介紹了基于STM32和CPLD的TFTLCD顯示控制器的設(shè)計(jì)方法。TFT-LCD模塊采用的是不帶LCD控制器的群創(chuàng)AT056TN52-5.6in(1in=2.54cm)TFTLCD。在設(shè)計(jì)控制器時(shí),采用的是Altera公司的 MAX II系列的 CPLD(EPM570)作為核心部件,以ISSI公司的IS61LV25616大容量SRAM作為顯示緩沖存儲(chǔ)器。測(cè)試結(jié)果表明,本文設(shè)計(jì)的控制器相對(duì)市場(chǎng)上TFT-LCD的專用控制芯片工作穩(wěn)定可靠,性價(jià)比高。在很多場(chǎng)合具有一定的實(shí)用價(jià)值。

[1] 徐婧婧.彩色有源LCD顯示屏外圍驅(qū)動(dòng)電路的研究與設(shè)計(jì)[D].長(zhǎng)春:吉林大學(xué),2007.Xu J J.The research and design on the peripheral driving circuit of color AM-LCD [D].Changchun:Jilin University,2007.(in Chinese)

[2] Lin J T,Wang F K,Lo S L,et al.Analysis of the supply and demand in the TFT-LCD market[J].Technological Forecasting and Social Change,2006,73(4):422-435.

[3] 李輝祥,黃光明.基于 CPLD 的 TFT-LCD控制器的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(23):128-130.Li H X,Huang G M.Design of TFT-LCD controller based on CPLD [J].Electronic Design Engineering,2011,19(23):128-130.(in Chinese)

[4] 李寧.基于MDK的STM32處理器開(kāi)發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.Li N.Application of STM32 Processor Development Based on MDK [M].Beijing:Beihang University Press,2008.(in Chinese)

[5] 胡健生,羅衛(wèi)兵,錢淵.嵌入式TFT-LCD控制器設(shè)計(jì)[J].計(jì)算機(jī)工程,2010,5:088.Hu J S,Luo W B,Qian Y.Design of embedded TFT-LCD controller[J].Computer Engineering,2010,5:088.(in Chinese)

[6] 蘇維嘉,張澎.基于FPGA的 TFT-LCD控制器的設(shè)計(jì)和實(shí)現(xiàn)[J].液晶與顯示,2010,25(1):75-78.Su W J,Zhang P.Design and implementation of TFT-LCD controller based on FPGA[J].Chinese Journal of Liquid Crystals and Displays,2010,(2511):75-78.(in Chinese)

[7] 唐徐立,黃君凱,劉明峰,等.基于FPGA的TFT-LCD控制器設(shè)計(jì)與實(shí)現(xiàn)[J].集成電路設(shè)計(jì)與開(kāi)發(fā),2010,35(11):1134-1137.Tang X L,Huang J K,Liu M F,et al.Design and realization of the TFT-LCD controller based on FPGA[J].Design and Development of IC,2010,35(11):1134-1137.(in Chinese)

[8] 黃杰勇.基于CPLD的 TFT-LCD控制器設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī):上半月版,2013(2):62-64.Huang J Y.Design of TFT-LCD controller based on CPLD[J].Modern Computer:First Half Edition,2013(2):62-64.(in Chinese)

[9] 王冠,俞一鳴.面向CPLD/FPGA的Verilog設(shè)計(jì) [M].北京:機(jī)械工業(yè)出版社,2007.Wang G,Yu Y M.Verilog Design for CPLD/FPGA [M].Beijing:Machinery Industry Press,2007.(in Chinese)

[10] 薛家祥,黃澤林,沈棟,等.TFT-LCD驅(qū)動(dòng)中SDRAM 控制器的仲裁器設(shè)計(jì)[J].液晶與顯示,2013,28(6):877-882.Xue J X,Huang Z L,Shen D,et al.Design of SDRAM controller with arbiter for TFT-LCD driver[J].Chinese Journal of Liquid Crystals and Displays,2013,28(6):877-882.(in Chinese)

猜你喜歡
狀態(tài)圖單點(diǎn)時(shí)序
基于Web 的高校資產(chǎn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于時(shí)序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識(shí)別研究
航線網(wǎng)絡(luò)優(yōu)化方法研究
基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
歷元間載波相位差分的GPS/BDS精密單點(diǎn)測(cè)速算法
超薄異型坯連鑄機(jī)非平衡單點(diǎn)澆鑄實(shí)踐與分析
山東冶金(2019年5期)2019-11-16 09:09:10
一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
電子制作(2016年15期)2017-01-15 13:39:08
數(shù)字電視地面?zhèn)鬏斢脝晤l網(wǎng)與單點(diǎn)發(fā)射的效果比較
16噸單點(diǎn)懸掛平衡軸的優(yōu)化設(shè)計(jì)
基于UML狀態(tài)圖的軟件系統(tǒng)測(cè)試用例生成方法
灵武市| 淳化县| 郁南县| 满城县| 汶上县| 忻城县| 绥滨县| 彰化县| 稻城县| 阿巴嘎旗| 托里县| 安徽省| 平乐县| 武安市| 班戈县| 石嘴山市| 射阳县| 淮阳县| 连江县| 玉山县| 湖州市| 富阳市| 静宁县| 吉隆县| 措勤县| 兴山县| 沁阳市| 阜新市| 策勒县| 宣汉县| 漯河市| 胶南市| 定西市| 临武县| 青河县| 象山县| 临澧县| 利津县| 青岛市| 明溪县| 曲阳县|