當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于ARM與WindowsCE的LCD顯示器設(shè)計(jì)

1 引言

         隨著電子信息技術(shù)不斷發(fā)展, 嵌入式系統(tǒng)的應(yīng)用越來(lái)越廣泛。在嵌入式電子測(cè)量系統(tǒng)中, LCD(Liquid Crystal Display,液晶顯示器)作為人機(jī)交互的主要設(shè)備,具有功耗低、外形尺寸小和優(yōu)越的字符和圖形顯示功能。WindowsCE是嵌入式實(shí)時(shí)操作系統(tǒng),它友好的圖形界面,成為嵌入式開發(fā)的主流操作系統(tǒng),它使用圖形設(shè)備接口(GDI)來(lái)處理程序的圖形輸出,利用GDI所提供的眾多函數(shù)可方便地在LCD屏幕上輸出圖形和文本[1]。

        基于嵌入式處理器IntelPXA270和WindowsCE設(shè)計(jì)LCD系統(tǒng)的原理,為嵌入式便攜設(shè)備提供了一種在高亮度顯示條件下維持低功耗的解決方案,適用于高檔PDA、便攜媒體播放器、手持式導(dǎo)航儀、便攜醫(yī)療和測(cè)試設(shè)備等領(lǐng)域,下文將介紹中國(guó)航空工業(yè)第608研究所新開發(fā)的鐵路機(jī)車故障診斷車載裝置LCD設(shè)備的主要設(shè)計(jì)原理。

2 基于IntelPXA270的LCD硬件系統(tǒng)

         系統(tǒng)采用基于ARM處理核的IntelPXA270處理器, 64MB的SDRAM,M-System的DOC(Disk On Chip)H3芯片作為存儲(chǔ)系統(tǒng),外接16位的800×480的TFT顯示屏。

2.1 ARM處理器IntelPXA270及其LCD控制

        IntelPXA270是Intel公司推出的基于ARM微處理核的嵌入式處理器,主頻最高可達(dá)624MHz,IntelPXA270加入了Wireless MMX技術(shù),大大提升了多媒體處理能力;同時(shí)還加入了Intel SpeedStep動(dòng)態(tài)電源管理技術(shù),在保證CPU性能的情況下,最大限度地降低了設(shè)備功耗。

        IntelPXA270內(nèi)置的LCD控制器為IntelPXA270處理器和平板顯示器提供了一個(gè)接口,它所支持的平板顯示器包括被動(dòng)的DSTN液晶屏、主動(dòng)的TFT液晶屏以及帶有內(nèi)部幀緩沖區(qū)的液晶屏,中國(guó)航空工業(yè)第608研究所新開發(fā)的鐵路機(jī)車故障診斷車載裝置LCD設(shè)備使用的是TFT液晶屏。

        LCD控制器用于傳輸顯示數(shù)據(jù)并產(chǎn)生必要的控制信號(hào),表1[2]是IntelPXA270內(nèi)置的LCD控制器的控制信號(hào):

表1 LCD控制器的控制信號(hào)

IntelPXA270內(nèi)置的LCD控制器支持多種顯示模式,其中包括了像素的數(shù)據(jù)格式,顯示屏的大小、掃描方式

、顏色模式等。IntelPXA270 LCD控制器內(nèi)部帶有很多寄存器,用于針對(duì)不同的液晶屏和不同的顯示模式

進(jìn)行配置。LCD控制器帶有專用的DMA,它可以自動(dòng)地將顯示數(shù)據(jù)從幀內(nèi)存?zhèn)魉偷絃CD驅(qū)動(dòng)器,通過(guò)專用DMA

,可以在不需要CPU介入的情況下顯示數(shù)據(jù)。
 
2.2 TFT LCD液晶屏

        TFT LCD是FG070053DSSWJGT1顯示屏,顯示屏大小為7寸,分辨率為800×480,其內(nèi)部集成了輸入

控制單元、TFT顯示模塊,掃描驅(qū)動(dòng)IC,背光燈,DC/DC電壓轉(zhuǎn)換器,數(shù)據(jù)驅(qū)動(dòng)IC等,圖1為

FG070053DSSWJGT1顯示屏內(nèi)部結(jié)構(gòu)[3]。

圖1 TFT內(nèi)部功能及接口

        TFT LCD顯示屏要求的時(shí)序由幀同步(VSYNC)、行同步(HSYSNC)、比特時(shí)鐘(DCLK)及數(shù)據(jù)(Data[0:15])構(gòu)成,幀同步和行同步指示每一幀和每一行的開始,如圖2所示。

圖2 TFT LCD時(shí)序圖

2.3 TFT屏的顯示接口電路[!--empirenews.page--]

        結(jié)合IntelPXA270內(nèi)置的LCD控制器和FG070053DSSWJGT1液晶屏的內(nèi)部結(jié)構(gòu)以及時(shí)序圖的分析,設(shè)計(jì)LCD顯示接口電路,主要是把IntelPXA270的控制信號(hào)與LCD屏的控制引腳連接起來(lái),如圖3所示。通過(guò)16位數(shù)據(jù)線把LCD控制器的數(shù)據(jù)發(fā)送腳與FG070053DSSWJGT1的數(shù)據(jù)接收腳連接起來(lái),即把(R0—R4,G0—G5,B0—B4)與L_DD0-L_DD15連接起來(lái);把幀時(shí)鐘,行時(shí)鐘,像素時(shí)鐘等與LCD屏連接; ADJ采用電壓為0—3.0V、 頻率為20KHZ的PWM脈沖,調(diào)節(jié)液晶屏背光燈的亮度,在滿足用戶要求的同時(shí)還可有效地控制功耗。圖3中,網(wǎng)絡(luò)標(biāo)號(hào)LCLK是行時(shí)鐘控制信號(hào),F(xiàn)CLK是幀時(shí)鐘控制信號(hào),PCLK是像素時(shí)鐘控制信號(hào),OE為數(shù)據(jù)輸出使能信號(hào)。VDD由直流5V穩(wěn)壓電源提供,U/D通過(guò)電阻拉低后對(duì)屏幕提供上下翻轉(zhuǎn)信號(hào),L/R支持屏幕左右翻轉(zhuǎn)控制。

圖3 TFT LCD接口電路

3 LCD顯示程序的設(shè)計(jì)

        在WindowsCE下LCD驅(qū)動(dòng)程序開發(fā)使用基本圖形引擎(GPE)類來(lái)實(shí)現(xiàn)[1] [5]。在使用GPE類編寫驅(qū)動(dòng)程序之前,首先分析使用GPE類編寫顯示驅(qū)動(dòng)時(shí)對(duì)顯示設(shè)備的要求,內(nèi)存布局要求顯示設(shè)備使用線性幀緩沖區(qū),全部的顯示內(nèi)存是連續(xù)的;接下來(lái)分析GPE類對(duì)內(nèi)存中數(shù)據(jù)格式的要求。LCD屏是自頂向下的格式,像素(0,0)在左上角,像素(width-1,height-1)在右下角。 幀緩沖區(qū)的步幅,即表示顯示設(shè)備上一個(gè)掃描行在內(nèi)存中占的字節(jié)數(shù),應(yīng)當(dāng)是四字節(jié)的整數(shù)倍,即使在每個(gè)掃描行的末尾填充一些無(wú)用的字節(jié),CPU不需做“排”選擇也可以存取整個(gè)幀緩沖區(qū),幀緩沖區(qū)不應(yīng)當(dāng)使用位面(位面就是每種顏色信道<RGB>在幀緩沖區(qū)進(jìn)行分開存儲(chǔ))。

        使用IntelPXA270 內(nèi)置的LCD控制器,集成了7個(gè)通道的DMA,支持像素深度分別為2、4、8、16、18、24位的RGB模式,采用16位RGB模式進(jìn)行設(shè)計(jì)。圖像數(shù)據(jù)保存在內(nèi)存中,使用DMA方式進(jìn)行幀數(shù)據(jù)存取,幀的大小及幀地址是指定的,可以滿足GPE類的線性幀緩沖區(qū)的要求,LCD控制與LCD屏都滿足WindowsCE 下使用GPE類來(lái)實(shí)現(xiàn)顯示驅(qū)動(dòng)的硬件要求。

3.1 創(chuàng)建基于GPE類的顯示驅(qū)動(dòng)程序

        使用GPE類簡(jiǎn)化了WindowsCE顯示設(shè)備的開發(fā)工作,GPE類代表一個(gè)顯示設(shè)備,是一個(gè)純虛的類,設(shè)計(jì)顯示驅(qū)動(dòng)時(shí)必須繼承這個(gè)基本GPE類。

        首先定義一個(gè)新的類(class SA2Video)來(lái)繼承GPE類,根據(jù)GPE類的要求,實(shí)現(xiàn)以下函數(shù):

NumModes ------返回顯示驅(qū)動(dòng)所支持的顯示模式。
GetModeInfo ------返回指定顯示模式的信息,如顯示像素寬度和深度,處理由NumModes()函數(shù)返回的顯示模式,當(dāng)SetModes()函數(shù)被調(diào)用時(shí),總是返回在模式配置列表中的第一個(gè)模式值。
SetModes ------設(shè)置顯示模式。
AllocSurface------分配一個(gè)頁(yè)面,頁(yè)面僅僅是保存像素?cái)?shù)據(jù)的RAM或視頻RAM,是一個(gè)塊內(nèi)存,GPESurf類能用于代表系統(tǒng)顯存上的一個(gè)頁(yè)面,保證在視頻RAM上分配一個(gè)頁(yè)面。
SetPointerShape------設(shè)置光標(biāo)位圖和光標(biāo)區(qū)。
MovePointer------移動(dòng)光標(biāo)。
BltPrepare ------在位塊傳輸操作之前調(diào)用,如果驅(qū)動(dòng)支持位塊傳輸之前的操作,它就允許驅(qū)動(dòng)建立硬件位塊傳輸(blit)操作,并返回一個(gè)實(shí)際操作函數(shù)去執(zhí)行位塊傳輸(blit),在GPE類中提供默認(rèn)的Blit操作函數(shù)。
BltComplete------在塊傳輸完成之后執(zhí)行,如果有必要的話,它允許設(shè)備做任何的清除操作。
Line ------在畫線操作之前和之后調(diào)用,如果在畫線之前調(diào)用,該函數(shù)可以建立硬件的畫線操作,然后返回GPE默認(rèn)的畫線操作;如果在畫線之后調(diào)用,該函數(shù)可以做任何畫線操作之后的清除。
InVBlank ------標(biāo)志是否在水平同步周期時(shí)顯示更新了。
這些函數(shù)在GPE類的源代碼中為空函數(shù),所以必須在(class SA2Video)中實(shí)現(xiàn)函數(shù)重載。

3.2 創(chuàng)建LCD控制器接口驅(qū)動(dòng)程序

        創(chuàng)建LCD控制器的接口驅(qū)動(dòng)程序主要是完成硬件的配置,包括LCD控制器和IO引腳接口的配置。首先根據(jù)LCD顯示接口的電路連接,配置IntelPXA270內(nèi)的IO寄存器,然后根據(jù)外接的LCD屏提供的參數(shù)配置LCD控制器,主要是配置TFT接口時(shí)序,如幀時(shí)鐘,行時(shí)鐘,像素時(shí)鐘,數(shù)據(jù)輸出使能等[6]。在xllp_lcd.c文件中的XllpLCDInit()函數(shù)實(shí)現(xiàn)硬件的初始化,以下為該函數(shù)的關(guān)鍵代碼:

XLLP_STATUS_T XllpLCDInit(P_XLLP_LCD_T pXllpLCD)
{ XLLP_STATUS_T status = 0;
// 初始化IO接口,根據(jù)LCD連接電路圖進(jìn)行配置
LCDSetupGPIOs(pXllpLCD);
// 初始LCD控制器及幀緩沖區(qū)
LCDInitController(pXllpLCD);
// 清除LCD控制器的狀態(tài)寄存器
LCDClearStatusReg(pXllpLCD);
// 使能LCD 控制器,驅(qū)動(dòng)LCD屏顯示數(shù)據(jù)
LCDEnableController(pXllpLCD);
return status;
}

3.3 LCD控制器顯示模式的設(shè)置

        WindowsCE GDI 支持帶有多種顏色灰度和顏色模式的顯示設(shè)備,從僅用一位表示的顏色到調(diào)色板調(diào)制出真32位RGB,每一種格式支持幾種不同的像素排列方式,這取決于對(duì)顯示內(nèi)存的訪問(wèn)是否支持單字節(jié)方式、雙字節(jié)字方式、四字節(jié)方式。

        使用下列掩碼來(lái)提取紅、綠、藍(lán)數(shù)值:每個(gè)像素用16位表示的格式是一種掩碼格式,并且不被調(diào)色,每個(gè)像素我們用兩字節(jié)來(lái)存儲(chǔ)。結(jié)合TFT LCD顯示接口的硬件電路圖和IntelPXA270 內(nèi)置的LCD控制器,按照IntelPXA270處理器手冊(cè)上的說(shuō)明,需要對(duì)控制引腳初始化[7]。在圖3中,第14口用來(lái)進(jìn)行幀時(shí)鐘控制,結(jié)合IntelPXA270數(shù)據(jù)手冊(cè),我們配置第14口為L(zhǎng)_VSYNC功能,用如下語(yǔ)句實(shí)現(xiàn):
GAFR0_L|=((GAFR0_L&~(1u<<29))|(1u<<28))
所有顯示數(shù)據(jù)線L_DD0—L_DD15都設(shè)為輸出口,并設(shè)為顯示器的數(shù)據(jù)輸出,程序設(shè)計(jì)如下:[!--empirenews.page--]

p_GPIORegs->GPDR1|=(XLLP_GPIO_BIT_L_DD0|XLLP_GPIO_BIT_L_DD1 |XLLP_GPIO_BIT_L_DD2|XLLP_GPIO_BIT_L_DD3
|XLLP_GPIO_BIT_L_DD4|XLLP_GPIO_BIT_L_DD5);
p_GPIORegs->GPDR2|=(XLLP_GPIO_BIT_L_DD6|XLLP_GPIO_BIT_L_DD7
|XLLP_GPIO_BIT_L_DD8|XLLP_GPIO_BIT_L_DD9
|XLLP_GPIO_BIT_L_DD10|XLLP_GPIO_BIT_L_DD11
|XLLP_GPIO_BIT_L_DD12|XLLP_GPIO_BIT_L_DD13
|XLLP_GPIO_BIT_L_DD14|XLLP_GPIO_BIT_L_DD15);
p_GPIORegs->GAFR1_U=(p_GPIORegs->GAFR1_U&~(XLLP_GPIO_AF_BIT_L_DD0_MASK|XLLP_GPIO_AF_BIT_L_DD1_MASK|XLLP_GPIO_AF_BIT_L_DD2_MASK|XLLP_GPIO_AF_BIT_L_DD3_MASK|XLLP_GPIO_AF_BIT_L_DD4_MASK|XLLP_GPIO_AF_BIT_L_DD5_MASK))|XLLP_GPIO_AF_BIT_L_DD0|XLLP_GPIO_AF_BIT_L_DD1|XLLP_GPIO_AF_BIT_L_DD2|XLLP_GPIO_AF_BIT_L_DD3|XLLP_GPIO_AF_BIT_L_DD4|XLLP_GPIO_AF_BIT_L_D;
在WindowsCE下都使用虛擬地址,經(jīng)過(guò)一個(gè)映射函數(shù)將用到的物理地址轉(zhuǎn)化為虛擬地址,這是WindowsCE操作系統(tǒng)所要求的,映射地址的函數(shù)為BOOL MapVirtualAddress()。

        按照屏的顯示模式來(lái)配置LCD控制寄存器,其中包括配置LCD控制信號(hào)的模式,通過(guò)參看IntelPXA270的數(shù)據(jù)手冊(cè)和一系列的計(jì)算,在掌握TFT LCD時(shí)序圖的基礎(chǔ)上進(jìn)行參數(shù)配置:

L_FCLK為幀時(shí)鐘;L_LCLK_A0為行時(shí)鐘;L_BIAS為時(shí)鐘使能;L_PCLK_WR為像素時(shí)鐘,LDD<17:0>為像素點(diǎn)數(shù)據(jù),在本設(shè)計(jì)中我們只用到了LDD<15:0>。
ENB:LCD數(shù)據(jù)使能位 HSP:水平時(shí)鐘信號(hào)電壓極性
0------LCD不可用 0------水平時(shí)鐘為高電平有效
1------LCD使能 1------水平時(shí)鐘為低電平有效
PCP:像素時(shí)鐘電壓極性
0------像素?cái)?shù)據(jù)在數(shù)據(jù)引腳為上升沿時(shí)采樣
1------像素?cái)?shù)據(jù)在數(shù)據(jù)引腳為下降沿時(shí)采樣

(1)行列的定義:
PPL: LCD屏的水平像素點(diǎn)的個(gè)數(shù)。根據(jù)LCD屏的長(zhǎng)度來(lái)確定其值的大小。
PPL =行寬-1
在本設(shè)計(jì)中,行寬為800,那么PPL=800-1;
LPP: LCD屏的垂直像素點(diǎn)的個(gè)數(shù)。根據(jù)LCD屏的寬度來(lái)確定其值的大小。
LPP=列高—1
在本設(shè)計(jì)中,列高為480,那么LPP=480—1;
(2)L_PCLK_WR:
VCLK是LCD控制器的時(shí)鐘信號(hào),此信號(hào)是LCD控制器和LCD驅(qū)動(dòng)器之間的象素時(shí)鐘信號(hào),VCLK計(jì)算時(shí)需先了解LCD屏所要求的幀速率的范圍,并由此設(shè)定一個(gè)在幀速率范圍內(nèi)的值為CLKVAL,VCLK與CLKVAL之間的關(guān)系可用如下公式計(jì)算:VCLK(Hz)=HCLK/((CLKVAL +1)x2)
最小的CLKVAL為0,最大的CLKVAL由幀速率決定[8]。
(3)各種延時(shí)的取值:
BFW:一幀開始時(shí)所需要的延時(shí)長(zhǎng)度
EFW:一幀結(jié)束時(shí)所需要的延時(shí)長(zhǎng)度
VSW:幀同步信號(hào)VSYNC的寬度定義
BLW:一行開始時(shí)所需要的延時(shí)長(zhǎng)度
ELW:一行結(jié)束時(shí)所需要的延時(shí)長(zhǎng)度
HSW:行同步信號(hào)HSYNC的寬度定義

4 結(jié)束語(yǔ)

        基于嵌入式處理器IntelPXA270和WindowsCE進(jìn)行LCD顯示器設(shè)計(jì),采用LCD驅(qū)動(dòng)TFT顯示屏,顯示模式是主動(dòng)的單掃描彩色模式,像素深度為16位的RGB格式,屏的大小為800×480。通過(guò)充分利用IntelPXA270的硬件資源,用IntelPXA270 控制彩色顯示屏,顯示亮度達(dá)100尼特,在LCD 高亮度的情況下顯示器的功耗小于365 mW ,克服了一般TFT LCD 高亮度伴隨著高功耗的矛盾;支持用戶定制的TFT 液晶屏上實(shí)現(xiàn)WindowsCE 界面的圖形顯示;由于設(shè)計(jì)的硬件驅(qū)動(dòng)電路只需LCD控制器給出幀同步信號(hào)、行同步信號(hào)、像素時(shí)鐘、數(shù)據(jù)使能信號(hào)和RGB數(shù)據(jù)信號(hào),因此,設(shè)計(jì)的驅(qū)動(dòng)電路能靈活地移植到不同平臺(tái)。



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉