基于FPGA及嵌入式CPU(NiosⅡ)的TFT-LCD接口設(shè)計(jì)
出處:微計(jì)算機(jī)信息 發(fā)布于:2009-08-04 09:57:07
摘要:本文介紹了一種基于 FPGA及 NiosII軟核處理器與 TFT-LCD接口的方法。它直接采用 CPU對(duì)存貯器的讀寫(xiě),實(shí)現(xiàn)了對(duì) TFT-LCD屏的實(shí)時(shí)操作。它具有直接、有效和速度快等特點(diǎn)。該設(shè)計(jì)使 CPU對(duì) TFT-LCD的控制極其簡(jiǎn)單化。
1 引言
隨著電子技術(shù)的飛速發(fā)展,TFT-LCD作為在亮度、對(duì)比度、功耗、壽命、體積和重量等綜合性能上全面趕上和超過(guò) CRT的顯示器件,被廣泛用于各種儀器儀表、電子設(shè)備及控制領(lǐng)域中。與之相關(guān)的顯示控制技術(shù)也呈現(xiàn)出越來(lái)越多的方式。本文以 640*480的數(shù)字輸入的 TFT_LCD顯示屏為例,介紹了一種基于 NiosII軟核處理器實(shí)現(xiàn)對(duì) TFT-LCD接口的方法。解決了通常情況下必須使用LCD 控制專(zhuān)用芯片才能解決 LCD顯示的問(wèn)題。
2 系統(tǒng)組成
系統(tǒng)框如圖 1所示。系統(tǒng)是由 FPGA、顯示緩存 RAM、程序執(zhí)行 RAM及 TFT-LCD組成。 FPGA(用虛線(xiàn)圍成)選用的是 ALTER的 EP1C6,RAM采用的是 IDT的 IDT71V547,LCD為 640*480的彩色 TFT-LCD屏。在 FPGA內(nèi)部是由時(shí)序發(fā)生、 地址切換、數(shù)據(jù)分離、調(diào)色電路及嵌入式 CPU(NIOS內(nèi)核)五部分組成。

3各器件的功能
3.1顯示緩存 RAM
采用 IDT公司的 IDT71V547 128K X 36bit的 SRAM芯片,工作電壓為 3.3V [1]。該芯片作為顯示緩存,TFT_LCD讀取顯示緩存 RAM中的數(shù)據(jù)并將其在 TFT_LCD上顯示。嵌入式 CPU(NIOSⅡ)對(duì)顯示緩存 RAM的改寫(xiě)就相當(dāng)于對(duì) TFT_LCD顯示內(nèi)容的改寫(xiě)。
3.2 FPGA 本文 FPGA選用的是 ALTERA公司的 Cyclone 系列中 EP1C6Q240。
3.2.1 時(shí)序發(fā)生電路
首先由外部輸入一相當(dāng)?shù)念l率時(shí)鐘,通過(guò) FPGA內(nèi)部的鎖相環(huán)電路(PLL)生成 100MHz的時(shí)鐘信號(hào)。系統(tǒng)對(duì) 100MHz時(shí)鐘計(jì)數(shù)生成 50MHz的時(shí)鐘給嵌入式 CPU(NIOSⅡ)作為嵌入式 CPU的工作主頻,同時(shí)生成 TFT_LCD所須的場(chǎng)同步時(shí)鐘、行同步時(shí)鐘、顯示使能時(shí)鐘和 25MHz的 TFT_LCD主時(shí)鐘;生成地址切換控制信號(hào)、數(shù)據(jù)分離控制信號(hào),由嵌入式 CPU輸出的讀寫(xiě)信號(hào)產(chǎn)生顯示緩存 RAM的讀寫(xiě)信號(hào)。
3.2.2調(diào)色電路
由于文中是以 256色的電路為例,所以,調(diào)色電路是將 8位數(shù)據(jù)譯碼成 3*6位的三基色數(shù)據(jù),調(diào)色電路也可以是 ROM型或 RAM型。如果作成 RAM型,可以依據(jù)嵌入式 CPU需要顯示的圖象相應(yīng)修改調(diào)色電路,可顯示更豐富的色彩。
3.2.3地址切換、數(shù)據(jù)分離
此部分電路的作用是:在嵌入式 CPU操作顯示緩存 RAM時(shí)將地址、數(shù)據(jù)線(xiàn)切換到嵌入式 CPU,在 TFT-LCD讀顯示緩存 RAM時(shí)將地址、數(shù)據(jù)線(xiàn)切換到 TFT_LCD。
3.3 TFT-LCD
SHARP公司生產(chǎn)的 *英寸液晶顯示屏LQ064V3DG01是較為常用的 TFT-LCD液晶顯示屏,它的分辨率為 640×480×RGB[2],具有功耗低、體積小、重量輕、超薄等特點(diǎn),同時(shí)該顯示屏是一片真彩顯示屏,并屬于透光型的 TFT、其亮度高、視角寬、背光燈的壽命也很長(zhǎng),并且采用的是 AG涂層和 260K的彩色顯示??蓮V泛應(yīng)用于各種儀器儀表及各種視頻顯示的場(chǎng)合。
4主要電路的設(shè)計(jì)
4.1時(shí)序發(fā)生電路的設(shè)計(jì)
時(shí)序發(fā)生電路是設(shè)計(jì)的主要部分。首先,是對(duì)系統(tǒng)輸入時(shí)鐘進(jìn)行頻率變換, FPGA(EP1C6)的內(nèi)部有兩個(gè) PLL電路模塊,本文用其中的一個(gè)來(lái)生成 100MHz的時(shí)鐘。再設(shè)計(jì)一個(gè) 12位的計(jì)數(shù)器(行計(jì)數(shù)器),計(jì)數(shù) 3200脈沖,產(chǎn)生 TFT_LCD的行同步時(shí)鐘,通過(guò)此計(jì)數(shù)器的計(jì)數(shù)還可生成 TFT_LCD的顯示使能信號(hào)(DE)。此計(jì)數(shù)器的輸出還是 TFT_LCD讀顯示緩存 RAM地址的低 8位(RAM以 32位數(shù)據(jù)寬度計(jì)算)。另設(shè)計(jì)一個(gè) 9位的計(jì)數(shù)器(場(chǎng)計(jì)數(shù)器),用其對(duì)行同步信號(hào)計(jì)數(shù)又可生成 TFT_LCD場(chǎng)同步的相關(guān)信號(hào),同時(shí)此計(jì)數(shù)器的輸出可作為 TFT_LCD讀 RAM地址的高 9位。
由于嵌入式 CPU與 TFT_LCD是復(fù)用一片顯示緩存 RAM,所以要對(duì)顯示緩存 RAM在時(shí)間上進(jìn)行分時(shí)控制。由于 IDT71V547是 32位數(shù)據(jù)寬度的 RAM,如果將 TFT_LCD設(shè)計(jì)成256色顯示,則讀顯示緩存 RAM可顯示 4個(gè)像素點(diǎn)。所以把行計(jì)數(shù)器輸出的 25MHz時(shí)鐘作為基準(zhǔn)(TFT_LCD主時(shí)鐘)、以 25MHz的 4個(gè)周期(T0、T1、T2、T3,T0=T1=T2=T3=40納秒)為基本循環(huán),在 25MHz的個(gè)周期( T0)由 LCD占用產(chǎn)生“ LCD_讀選通”信號(hào), (LCD_讀選通= (/12.5MHz)&(/6.25MHz) )。T1-T3由 CPU占用,在 T1-T3周期內(nèi)產(chǎn)生相應(yīng)的選通信號(hào), (T1=(12.5MHz)&(/6.25MHz)、 T2=(/12.5MHz)&(6.25MHz)、T3=(12.5MHz)&(6.25MHz)),由于 CPU什么時(shí)間對(duì)顯示緩存 RAM讀寫(xiě)是不確定的,所以要根據(jù) CPU的讀寫(xiě)信號(hào)來(lái)確定 T1-T3哪個(gè)為“CPU_RAM_選通”信號(hào)(如果在 T0內(nèi)來(lái) CPU_RW則 CPU_RAM_選通=T2、T1來(lái) CPU_RW則為 T3、T2來(lái) CPU_RW則為 T3、T3來(lái) CPU_RW則為 T1)。此邏輯的實(shí)現(xiàn)方式是,在 CPU_RW信號(hào)產(chǎn)生時(shí)鎖存住當(dāng)時(shí)的 T0-T3的狀態(tài)由此來(lái)控制“CPU_RAM_選通”產(chǎn)生的位置。在具體時(shí)序見(jiàn)圖 2所示。

4.2地址切換和數(shù)據(jù)分離電路的設(shè)計(jì)
圖 3是地址切換電路中的一位,以這一位為示例 ,可推出 17位地址全部電路。在圖 3中 RAM_ADD=((LCD_ADD&LCD_選通)+(CPU_ADD&CPU_RAM_選通))且 “LCD_讀選通”信號(hào)與“ CPU_RAM_選通”信號(hào)在任何時(shí)刻多只能有一個(gè)是有效的,所以當(dāng)“ LCD_讀選通”信號(hào)與“ CPU_RAM_選通”生效時(shí)可將 RAM_ADD切換到相應(yīng)的地址線(xiàn)上。如當(dāng)某時(shí)刻“ LCD_讀選通”信號(hào)與“ CPU_RAM_選通”全無(wú)效則 RAM_ADD輸出應(yīng)全為“ 0”。

圖 4是數(shù)據(jù)分離電路中的一位,同樣 ,以圖 4這一位可推出 32位數(shù)據(jù)線(xiàn)。

在圖 4中,RAM_R_W= (CPU_RAM_選通)&(CPU_WD),當(dāng) RAM_R_W有效時(shí), CPU_寫(xiě) DATA可通過(guò)三態(tài)門(mén)輸出到 RAM_DATA上。當(dāng) CPU讀 RAM時(shí),RAM的數(shù)據(jù)由門(mén)電路輸出到鎖存器的輸入端,在數(shù)據(jù)穩(wěn)定后由“ CPU_R_鎖存”信號(hào)將數(shù)據(jù)鎖存在鎖存器上等待 CPU將數(shù)據(jù)讀走(CPU_R_鎖存=(( / CPU_RD)& CPU_RAM_選通&25MHz&(/50MHz)))。
同樣的在 T0周期內(nèi)將 RAM的相應(yīng)數(shù)據(jù)由“ LCD_鎖存”信號(hào)將 32位的數(shù)據(jù)鎖存在鎖存器上。在相應(yīng)的 T0-T3周期由 T0-T3選擇相應(yīng)的 8位數(shù)據(jù)輸出到調(diào)色電路上,在相應(yīng)時(shí)刻由 “LCD_調(diào)色輸出鎖存”信號(hào)將此像素點(diǎn)數(shù)據(jù)鎖存,由 TFT_LCD讀取此點(diǎn)的三基色數(shù)據(jù)并顯示。
4.3調(diào)色電路
調(diào)色電路實(shí)際為利用 FPGA內(nèi)部的片內(nèi) RAM,由 Quartus 軟件生成的 24位 256字節(jié)的 RAM或 ROM,RAM或 ROM的地址線(xiàn)接 LCD數(shù)據(jù)鎖存器的輸出端后的數(shù)據(jù)選擇電路,數(shù)據(jù)選擇電路是將 32位的數(shù)據(jù),按 T0-T3所決定的時(shí)間,選擇相應(yīng)的 8位數(shù)據(jù)。當(dāng) T0時(shí)選 D[24]-D[31]、當(dāng) T1時(shí)選 D[0]-D[7]、當(dāng) T2時(shí)選 D[8]-D[15]、當(dāng) T3時(shí)選 D[15]-D[23]。之所以將數(shù)據(jù)選擇設(shè)計(jì)成 T0時(shí)選 D[24]-D[31],是因?yàn)?TFT_LCD讀顯示緩存 RAM時(shí),是在 T0周期的末端才能將新數(shù)據(jù)鎖存到“ LCD-讀 DATA”端,新的數(shù)據(jù)只有在 T1周期才能開(kāi)始顯示。調(diào)色電路的輸出是 3*8=24bit的本文所用的 TFT_LCD是 3*6bit的所以只用相應(yīng) 8bit的低 6bit。如果將調(diào)色電路設(shè)計(jì)選擇 RAM型時(shí),可以由 CPU改寫(xiě)調(diào)色電路 RAM,使色彩顯示更加豐富。
4.4顯示緩存設(shè)計(jì)
顯示緩存 RAM的選擇由 LCD顯示彩色多少?zèng)Q定的,如果顯示 16色可以選擇每像素點(diǎn)占 4bit,這樣每讀 RAM可顯示 8個(gè)像素點(diǎn)。以此類(lèi)推來(lái)選擇顯示緩存 RAM的大小和相應(yīng)修改時(shí)序發(fā)生電路的周期。對(duì) CPU的顯示緩存 RAM口的設(shè)置時(shí),一定要注意顯示緩存 RAM的 CPU讀寫(xiě)周期與時(shí)序發(fā)生電路的周期相一致,否則會(huì)發(fā)生讀寫(xiě)錯(cuò)誤。本例設(shè)置的是 160納秒( T0+T1+T2+T3=160ns)[3,4]。
5 結(jié)束語(yǔ)
本文介紹了一種基于 FPGA及 NiosII軟核處理器與 TFT-LCD接口的主要部分的設(shè)計(jì)要點(diǎn),該設(shè)計(jì)內(nèi)容已經(jīng)在實(shí)際電路上得到驗(yàn)證,并在一些儀器的顯示系統(tǒng)上得到應(yīng)用。
參考文獻(xiàn):
[1]. CRT datasheet http://www.hbjingang.com/datasheet/CRT_2331578.html.
[2]. EP1C6 datasheet http://www.hbjingang.com/datasheet/EP1C6_527325.html.
[3]. IDT71V547 datasheet http://www.hbjingang.com/datasheet/IDT71V547_1095094.html.
[4]. 25MHz datasheet http://www.hbjingang.com/datasheet/25MHz_1136611.html.
[5]. ROM datasheet http://www.hbjingang.com/datasheet/ROM_1188413.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開(kāi)發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線(xiàn)寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









