基于ARM嵌入式系統(tǒng)的圖片瀏覽器設(shè)計(jì)說明_第1頁
基于ARM嵌入式系統(tǒng)的圖片瀏覽器設(shè)計(jì)說明_第2頁
基于ARM嵌入式系統(tǒng)的圖片瀏覽器設(shè)計(jì)說明_第3頁
基于ARM嵌入式系統(tǒng)的圖片瀏覽器設(shè)計(jì)說明_第4頁
基于ARM嵌入式系統(tǒng)的圖片瀏覽器設(shè)計(jì)說明_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、. . . . 基于ARM嵌入式系統(tǒng)的圖片瀏覽器設(shè)計(jì)摘 要:本設(shè)計(jì)選擇基于ARM11處理器核心的TINY6410開發(fā)板進(jìn)行。系統(tǒng)主要包括四部分:瀏覽圖片、圖像變換處理、觸摸屏中斷、LCD顯示控制器。通過硬件連接與軟件編程將整個(gè)系統(tǒng)呈現(xiàn)出來,從而實(shí)現(xiàn)圖片依次瀏覽顯示,快速進(jìn)入上、下頁等功能。此項(xiàng)功能可以應(yīng)用到電腦屏?;蚴鞘謾C(jī)相冊(cè)。關(guān)鍵詞:ARM11;LCD;Linux嵌入式中圖分類號(hào):0 引言隨著電子產(chǎn)品飛速的更新?lián)Q代,許多較為實(shí)用的功能也在不斷的革新。本設(shè)計(jì)的圖片瀏覽功能是基于電腦或是手機(jī)的屏保功能而演變出來的模塊化的功能。它是以嵌入式系統(tǒng)為基本開發(fā)環(huán)境,以ARM11處理器為核心而進(jìn)行開發(fā)研究

2、的。目的是為了能夠?qū)⒁欢〝?shù)量的圖片在LCD顯示屏上循環(huán)播放,從而實(shí)現(xiàn)圖片瀏覽的功能。1 圖片顯示的基本原理本設(shè)計(jì)是在TINY6410開發(fā)板進(jìn)行的,其核為ARM11,圖片顯示在LCD屏上,本次設(shè)計(jì)是在Linux環(huán)境下完成的。首先我們手中的初始圖片均為JPG格式,是經(jīng)過壓縮的圖片,所以現(xiàn)將圖片的格式轉(zhuǎn)換成適合LCD顯示的BMP格式,之后再將一定數(shù)量的圖片經(jīng)過處理編程“.bin文件”。完成圖片的初步處理之后,將圖片的文件,存放到ARM的緩存地址上。在顯示圖片之前需要配置LCD的各個(gè)寄存器,來適合顯示我們所要顯示的圖片。在設(shè)計(jì)中,圖片的格式為RGB(888)格式,顯示位寬為24BPP,顯示屏以幀同步的

3、方式來播放圖片。圖片的瀏覽過程是從起始地址到最終地址,在這過程中會(huì)有可能需要切換圖片的要求,所以在圖片播放過程中會(huì)判斷是否有觸摸屏中斷,如果有觸摸屏中斷則進(jìn)行判斷觸摸屏上的X,Y坐標(biāo)來進(jìn)行上一下一圖片的切換。具體圖片瀏覽過程如圖1 圖片瀏覽流程圖所示。所需顯示圖片文件將JPEG格式轉(zhuǎn)化為BIN格式存放到顯示緩存地址到最后一張圖片圖片播放回到初始地址下一張上一張改變地址到上一張改變地址到下一張否是是否是否圖1 圖片瀏覽流程圖1.1 圖片的格式轉(zhuǎn)換存放在顯示緩存上的圖片文件都是BIN文件,圖片的格式為RGB色彩格式在嵌入式系統(tǒng)中的圖像也普遍采用該格式。顯示的圖像都是未經(jīng)壓縮的原品質(zhì)圖像,所以需要經(jīng)

4、過圖片的格式轉(zhuǎn)換將JPG格式改為BMP格式,最終形成BIN文件。我們將圖片存放到目錄“/home/picture/image”下,首先將目錄中的圖片轉(zhuǎn)換成BMP格式,所需要的工具為該目錄下的“jpeg2bmp”。該執(zhí)行程序是由文件庫(kù)“/home/picture/src/”下的“jpegsrc.v8d.tar”編輯而成。之后再將轉(zhuǎn)換完成的BMP圖片,轉(zhuǎn)換為“.bin”文件并合并起來。具體轉(zhuǎn)換程序見附錄A。1.2 圖片的顯示圖片顯示在LCD顯示屏上,我們所選用的圖片格式為RGB(888)格式的,像素位寬為24BPP,同步方式為幀同步的方式。首先將圖片文件(image.bin)存放到緩存地址0x55

5、00000上,LCD 有自身的DMA控制器來將圖片數(shù)據(jù)傳送到LCD屏幕上進(jìn)行顯示。1.3 觸摸屏中斷來切換圖片選用自動(dòng)(順序)的X/Y 坐標(biāo)轉(zhuǎn)換模式方法產(chǎn)生中斷,并有程序判斷產(chǎn)生中斷的X,Y坐標(biāo),來判斷是切換上一圖片還是下一圖片。2硬件設(shè)備2.1LCD顯示器LCD顯示器是一種采用了液晶控制透光度技術(shù)來實(shí)現(xiàn)色彩的顯示器,它與傳統(tǒng)的CRT顯示器相比有很多優(yōu)點(diǎn):輕薄、能耗低、輻射小等、市場(chǎng)占有率越來越大。LCD有多種類型,比如:STMN.、TFT、LTPS TFT、OLED等,各有各的優(yōu)缺點(diǎn)。我們所選用的TFT(Thin Transistor,薄膜晶體管)型的LCD顯示器。它可以大大縮短屏幕響應(yīng)時(shí)間

6、,其響應(yīng)時(shí)間已經(jīng)小于80ms,并改善了STN連續(xù)顯示屏幕模糊閃爍,有效提高了動(dòng)態(tài)畫面的播放力,呈現(xiàn)畫面色彩飽和度、真實(shí)效果和對(duì)比度都非常不錯(cuò),完全超越了STN,只是功耗稍高,是目前最為主流的液晶顯示類型,不僅在MP3、MP4產(chǎn)品上大量應(yīng)用,在桌面液晶顯示器、筆記本電腦、手機(jī)等產(chǎn)品上的應(yīng)用也非常普通股。2.2 ADC與觸摸屏10位CMOS的ADC (模數(shù)轉(zhuǎn)換器)是一種循環(huán)類型的裝置,具有8位通道模擬輸入。它將模擬的輸入信號(hào)轉(zhuǎn)換成10位二進(jìn)制數(shù)字編碼,最大轉(zhuǎn)換率是500KSPS和2.5MHz的ADC時(shí)鐘。 ADC轉(zhuǎn)換器的操作帶有片上采樣保持功能,電源中斷模式的支持。觸摸屏接口控制觸摸屏的位置和方位

7、(XP, XM, YP, YM),為X 坐標(biāo)轉(zhuǎn)換和Y 坐標(biāo)轉(zhuǎn)換選擇觸摸屏的位置和方位(XP, XM, YP, YM)。觸摸屏界面包含了位置和方位控制邏輯、ADC 界面邏輯和中斷發(fā)生邏輯。觸摸屏中斷的模式有四種:(1) 正常轉(zhuǎn)換模式單個(gè)轉(zhuǎn)換模式,是最有可能用于通用的ADC 轉(zhuǎn)換。這種模式可以通過設(shè)置ADCCON(ADC 的控制寄存器)初始化,并完成讀和寫存入ADCAT0(ADC 數(shù)據(jù)寄存器 0)。(2)單獨(dú)的X / Y 坐標(biāo)轉(zhuǎn)換模式觸摸屏控制器可以使用兩個(gè)轉(zhuǎn)換模式中的一個(gè)轉(zhuǎn)換。單獨(dú)的X/Y 坐標(biāo)轉(zhuǎn)換模式可以在以下方法中轉(zhuǎn)換:X 坐標(biāo)模式寫坐標(biāo)的轉(zhuǎn)換數(shù)據(jù)入ADCDAT0,因此,觸摸屏接口產(chǎn)生中斷源

8、到中斷控制器。Y 坐標(biāo)模式寫Y 坐標(biāo)的轉(zhuǎn)換數(shù)據(jù)到ADCDAT1,因此,觸摸屏接口生成中斷源到中斷控制器。(3) 自動(dòng)(順序)的X/Y 坐標(biāo)轉(zhuǎn)換模式自動(dòng)(順序)的X/Y 坐標(biāo)轉(zhuǎn)換模式,在以下方法轉(zhuǎn)換:觸摸屏控制器順序轉(zhuǎn)換X 坐標(biāo)和Y 坐標(biāo)被觸摸。觸摸屏寫X 測(cè)量數(shù)據(jù)如ADCDAT0 和寫Y 測(cè)量數(shù)據(jù)入ADCDAT1 后,觸摸屏接口在自動(dòng)位置轉(zhuǎn)換模式上,產(chǎn)生中斷源到中斷控制器。(4) 等待中斷方式當(dāng)該系統(tǒng)在停止模式(電源中斷)時(shí),觸摸屏控制器產(chǎn)生喚醒信號(hào)(WKU)。在觸摸屏接口下,觸摸屏控制器等待中斷模式必須設(shè)置位置和方位狀態(tài)(XP, XM, YP, YM)。觸摸屏控制器產(chǎn)生喚醒信號(hào)(Wake-U

9、p)后,等待中斷方式必須清除。(XY_PST 沒有操作模式的設(shè)置)3 實(shí)現(xiàn)方法實(shí)現(xiàn)圖片的方法是將圖片文件(image.bin)存放到存地址0x55000000上之后,LCD自身的DMA控制器便會(huì)把數(shù)據(jù)按配置好的時(shí)序傳送到LCD顯示屏上,(DMA控制器是代替存去實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)脑O(shè)備存到存、存到設(shè)備、 設(shè)備到存)其中圖像的像素位寬為24BPP,圖像的格式RGB888格式。之后需要在圖片播放過程中加入中斷,最后就可以在循環(huán)播放圖片的情況下任意切換圖片了,圖像的顯示原理如圖2所示:顯示緩存DMA 控制器24位圖像數(shù)據(jù)LCD時(shí)序控制器LCD圖2 圖像驅(qū)動(dòng)原理流程圖3.1 LCD的配置LCD顯示器所需寄存器

10、如下:VIDCON0 0x77100000視頻控制0 寄存器VIDCON1 0x77100004 視頻控制1 寄存器VIDTCON0 0x77100010 視頻時(shí)序控制0 寄存器VIDTCON1 0x77100014 視頻時(shí)序控制1 寄存器VIDTCON2 0x77100018 視頻時(shí)序控制2 寄存器WINCON0 0x77100020 窗口控制0 寄存器VIDOSD0A 0x77100040視頻窗口0 的位置控制寄存器VIDOSD0B 0x77100044 視頻窗口0 的位置控制寄存器VIDOSD0C 0x77100048 視頻窗口0 的尺寸控制寄存器VIDW00ADD1B1 0x77100

11、0D4 窗口0 的緩沖區(qū)開始地址寄存器,緩沖區(qū)1VIDW01ADD0B00x771000A8窗口1 的緩沖區(qū)開始地址寄存器,緩沖區(qū)0 VIDW00ADD2 0x77100100 窗口0 的緩沖區(qū)開始地址寄存器GPICON 0x7F008100 端口I 配置寄存器GPJCON 0x7F008120 端口J 配置寄存器具體配置步驟如下:(1)MOFPCON:SEL_BYPASS3 value0x7410800C 必須設(shè)置為0.(2)SPCON:LCD_SEL1:0value0x74F0081A0 必須設(shè)置為00,使用主機(jī)I/F 類型,或者設(shè)置為01,使用RGB I/F 類型。(3)VIDCON0:

12、配置視頻輸出格式和顯示使能/禁止。(4)VIDCON1:RGB I/F 控制信號(hào)。(5)VIDTCONx:配置視頻輸出時(shí)序和顯示尺寸。(6)WINCONx:窗口格式設(shè)置(7)VIDOSDxA ,VIDOSDxB:窗口位置設(shè)置(8)VIDOSDxC:alpha 值設(shè)置(9)VIDWxxADDx:源圖像地址設(shè)置RGB接口時(shí)序圖如下:圖3 RGB接口時(shí)序圖圖中各脈沖意義如下:RGB_VSYNC:傳送的是一偵數(shù)據(jù) 代表一圖片(時(shí)序相反)RGB_HSYNC:傳輸數(shù)據(jù)行同步 (時(shí)序相反)VSPW:開始傳輸一偵數(shù)據(jù)的準(zhǔn)備的行數(shù),傳輸數(shù)據(jù)前的準(zhǔn)備時(shí)間,單位:行VBPD:一偵數(shù)據(jù)開始傳輸,無效的行數(shù)LINEVA

13、L:一偵有效的數(shù)據(jù)的行數(shù)VFPD:一偵結(jié)束前無效的行數(shù)HSPW:行傳輸?shù)臏?zhǔn)備時(shí)鐘HBPD:行傳輸開始的無效時(shí)鐘HOZVAL:行傳輸?shù)挠行r(shí)鐘HFPD:行傳輸結(jié)束前無效的時(shí)鐘只有時(shí)序配置好之后才可將圖片完整的從緩存地址中讀取并且顯示出來。我們選用的幀同步方式來進(jìn)行圖片播放,所以需要計(jì)算每一幀的速率。計(jì)算公式如下:幀速率=1/(VSPW+1)+(VBPD+1+(LIINEVAL+1)+(VFPD+1) *(HSPW+1 + (HBPD+1) +(HFPD+1)+(HOZVAL+1)*(CLKVAL+1)/(時(shí)鐘源頻率)根據(jù)TINY6410開發(fā)板的顯示屏的尺寸,我們假設(shè)的幀速率為60HZ,而時(shí)鐘源頻

14、率為HCLK=133MHz,其他值可以在群創(chuàng)4.3寸LCDAT043TN24 V.1上找到相應(yīng)的值,其值為:VSPW+1->tvp->10、VBPD+1->TVB->2、LINEVAL+1->tvd->272、VFPD+1->tvf->2、HSPW+1->thp->41、HBPD+1->thb->2、HOZVAL+1->thd->480、HFPD+1->thf->2。最終可以計(jì)算出CLKVAL的值約為14。具體LCD顯示程序見附錄B。3.2 ADC 觸摸屏中斷觸摸屏中斷原理圖如下:圖4 ADC和觸摸

15、屏接口的功能結(jié)構(gòu)框圖我們選擇的觸摸屏中斷的模式為自動(dòng)(順序)的X/Y 坐標(biāo)轉(zhuǎn)換模式自動(dòng)(順序)的X/Y 坐標(biāo)轉(zhuǎn)換模式,在以下方法轉(zhuǎn)換:觸摸屏控制器順序轉(zhuǎn)換X 坐標(biāo)和Y 坐標(biāo)被觸摸。觸摸屏寫X 測(cè)量數(shù)據(jù)如ADCDAT0 和寫Y 測(cè)量數(shù)據(jù)入ADCDAT1 后,觸摸屏接口在自動(dòng)位置轉(zhuǎn)換模式上,產(chǎn)生中斷源到中斷控制器。從圖4可以知道,ADC和觸摸屏借口中只有一個(gè)A/D轉(zhuǎn)換器,可以通過設(shè)置寄存器來選擇對(duì)哪路模擬信號(hào)進(jìn)行采樣。對(duì)于S3C6410,在使用觸摸屏是,AIN7HE AIN5唄用來測(cè)量XP、YP的電平,只剩下AINP6、AIN4:0共6個(gè)引腳用于一般的ADC輸入。當(dāng)不適用觸摸屏?xí)r,XP、XM、YP

16、、和YM、這4各引腳可以用于一般的ADC輸入。在使用ADC轉(zhuǎn)化器是需要設(shè)置預(yù)分頻值,計(jì)算公式,GCLK 頻率是50 MHz 和分頻器值是49 時(shí),總的10 位轉(zhuǎn)換時(shí)間如下:A/D 轉(zhuǎn)換頻率= 50 MHz /( 49+1 ) = 1MHz轉(zhuǎn)換時(shí)間= 1 / (1MHz / 5 周期) = 1/200kHz = 5s。配置ADC轉(zhuǎn)化器所需寄存器如下:ADCCON 0x7E00B000 ADC 控制寄存器。 ADCTSC 0x7E00B004 ADC 的觸摸屏控制寄存器。 ADCDLY 0x7E00B008 ADC 啟動(dòng)或時(shí)間延遲寄存器。 ADCDAT0 0x7E00B00c ADC 的數(shù)據(jù)轉(zhuǎn)換寄

17、存器。ADCUPDN 0x7E00B014 觸摸筆向上或向中斷寄存器。 ADCCLRINT0x7E00B018 清除ADC 中斷。 ADCCLRINTPNDNUP 0x7E00B020 清楚觸摸筆向上或向下中斷配置步驟:(1) 設(shè)置ADCCON寄存器,玄色輸入信號(hào)通道,設(shè)置A/D轉(zhuǎn)化器的時(shí)鐘。時(shí)能A/D轉(zhuǎn)換器時(shí)鐘的預(yù)分頻功能時(shí),A/D時(shí)鐘的計(jì)算公式如下:A/D時(shí)鐘 = PCLK / (PRSCVL +1)。(2) 設(shè)置ADCTSC寄存器為0x0C,進(jìn)入自動(dòng)(連續(xù))x/y軸坐標(biāo)轉(zhuǎn)換模式,觸摸屏控制器就會(huì)自動(dòng)轉(zhuǎn)換觸點(diǎn)的x、y坐標(biāo)值,并非別寫入ADCDAT0、ADCDAT1寄存器中,然后發(fā)出INT_

18、ADC中斷。(3) 轉(zhuǎn)換結(jié)束時(shí),讀取ADCDAT0寄存器數(shù)值。使用INT_ADC中斷,發(fā)生INT_ADC中斷時(shí)表示轉(zhuǎn)換結(jié)束。具體中斷程序見附錄B。4 實(shí)現(xiàn)結(jié)果在該技術(shù)實(shí)現(xiàn)過程中CPU采用三星公司的S3C6410處理器,操作系統(tǒng)采用的是LINUX。S3C6410的LCD控制器采用的是RGB888格式,接口選擇I80接口,同步方式為幀同步方式。最終成功實(shí)現(xiàn)了20圖片的循環(huán)瀏覽,并且可以實(shí)現(xiàn)上下一圖片的切換。5 結(jié)束語基于ARM11 開.板和嵌入式Líux 核,給出了一個(gè)能夠應(yīng)用于ARM11核的圖片瀏覽器。采用的是TFTLCD控制器,顯示的圖片品質(zhì)高,說明其有較好的推廣價(jià)值。參考文獻(xiàn)1 A

19、RM11 S3C6410 中文用戶手冊(cè).2 韋東山,嵌入式Linux應(yīng)用開發(fā)完全手冊(cè),2008.3柯勇,宗凱,夢(mèng)欣,圖像處理中間件在嵌入式系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn),2007.附錄A:/圖片轉(zhuǎn)換為“.bin”文件程序#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char *argv)int fid_bmp20;int fid_rgb;int x, y;in

20、t i;char tmp4;fid_rgb = open(argv1, O_RDWR|O_CREAT);if(fid_rgb < 0)perror("open");exit(1);for(i=0;i<20;i+)fid_bmpi = open(argvi+2, O_RDWR);if(fid_bmpi < 0)perror("open");exit(1);for(i=0;i<20;i+)for(y=271; y>=0; y-)lseek(fid_bmpi, 54, SEEK_SET);lseek(fid_bmpi, y*480

21、*3, SEEK_CUR);for(x=1; x<=480; x+)read(fid_bmpi, tmp, 3);write(fid_rgb, tmp, 4);close(fid_rgb);for(i=0;i<20;i+)close(fid_bmpi);return 0;附錄B:/實(shí)現(xiàn)圖片瀏覽程序#include"image.h"void show_picture(unsigned long frem);int (*printf)(char *,.)=0x57e11d4c;void do_irq(void);void ts_init();int FLAG = 0

22、;/*/void _strat()unsigned long *handler = 0x50000000;*handler = do_irq;/cpsr7:6_asm_ _volatile_("mrs r0, cpsrnt""bic r0, #0x80nt""msr cpsr, r0nt":"r0","memory");/*/lcd中斷VIC1INTSELECT &= (3<<30);VIC1INTENABLE |= 3<<30;ts_init();/*/int

23、i=0;int j;int flag = 0;int fd;unsigned long add = FRAMEBUFFER;show_picture(add);while(1)if(FLAG = 1) /下一照片flag+;if(flag = 20)/到結(jié)尾時(shí)跳到第一add = FRAMEBUFFER;show_picture(add);flag = 0;i = 0;FLAG = 0;continue;elseadd = (add-(480*i*4)+(480*272*4);show_picture(add);i=0;FLAG = 0;continue;if(FLAG = 2)/上一照片if(

24、flag = 0)flag = 19;add = (add-(480*i*4)+(480*272*4*19);show_picture(add);i=0;FLAG = 0;continue;elseflag-;add = (add-(480*i*4)-(480*272*4);show_picture(add);i = 0;FLAG = 0;continue;else/正常循環(huán)圖片add = add+(480*4);show_picture(add);i+;if(i=272)for(j=0;j<999999;j+);flag+;i=0;if(flag = 20)add = FRAMEBUF

25、FER;show_picture(add);flag = 0;void ts_init()ADCTSC=0xd3;/ 觸摸屏坐標(biāo)設(shè)置 ADCCON=(0<<2)|(0xff<<6)|(1<<14)|(1<<16); /ADC控制寄存器的一些設(shè)定 ADCDLY=0xffff;/ 延時(shí)設(shè)定void do_irq(void)if (VIC1IRQSTATUS & (1<<30) if (ADCUPDN & 1) ADCTSC = (1<<2) | (1<<3);/Automatic sequencing conversion of X-Position and Y-Position ADCCON |= 1;/start ADC else if (ADCUPDN & 2) ADCTSC = 0xd3;ADCUPDN = 0;ADCCLRINTPNDNUP = 0;/clear stylus down up interrupt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論