您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于ARM嵌入式系统的图片浏览器设计
基于ARM嵌入式系统的图片浏览器设计王斯吴小龙刘国威摘要:本设计选择基于ARM11处理器核心的TINY6410开发板进行。系统主要包括四部分:浏览图片、图像变换处理、触摸屏中断、LCD显示控制器。通过硬件连接与软件编程将整个系统呈现出来,从而实现图片依次浏览显示,快速进入上、下页等功能。此项功能可以应用到电脑屏保或是手机相册。关键词:ARM11;LCD;Linux嵌入式中图分类号:0引言随着电子产品飞速的更新换代,许多较为实用的功能也在不断的革新。本设计的图片浏览功能是基于电脑或是手机的屏保功能而演变出来的模块化的功能。它是以嵌入式系统为基本开发环境,以ARM11处理器为核心而进行开发研究的。目的是为了能够将一定数量的图片在LCD显示屏上循环播放,从而实现图片浏览的功能。1图片显示的基本原理本设计是在TINY6410开发板进行的,其内核为ARM11,图片显示在LCD屏上,本次设计是在Linux环境下完成的。首先我们手中的初始图片均为JPG格式,是经过压缩的图片,所以现将图片的格式转换成适合LCD显示的BMP格式,之后再将一定数量的图片经过处理编程“.bin文件”。完成图片的初步处理之后,将图片的文件,存放到ARM的缓存地址上。在显示图片之前需要配置LCD的各个寄存器,来适合显示我们所要显示的图片。在设计中,图片的格式为RGB(888)格式,显示位宽为24BPP,显示屏以帧同步的方式来播放图片。图片的浏览过程是从起始地址到最终地址,在这过程中会有可能需要切换图片的要求,所以在图片播放过程中会判断是否有触摸屏中断,如果有触摸屏中断则进行判断触摸屏上的X,Y坐标来进行上一张下一张图片的切换。具体图片浏览过程如图1图片浏览流程图所示。图1图片浏览流程图1.1图片的格式转换存放在显示缓存上的图片文件都是BIN文件,图片的格式为RGB色彩格式在嵌入式系统中的图像也普遍采用该格式。显示的图像都是未经压缩的原品质图像,所以需要经过图片的格式转换将JPG格式改为BMP格式,最终形成BIN文件。我们将图片存放到目录“/home/picture/image”下,首先将目录中的图片转换成BMP格式,所需要的工具为该目录下的“jpeg2bmp”。该执行程序是由文件库“/home/picture/src/”下的“jpegsrc.v8d.tar”编辑而成。之后再将转换完成的BMP图片,转换为“.bin”文件并合并起来。具体转换程序见附录A。1.2图片的显示图片显示在LCD显示屏上,我们所选用的图片格式为RGB(888)格式的,像素位宽为24BPP,同步方式为帧同步的方式。首先将图片文件(image.bin)存放到缓存地址0x5500000上,LCD有自身的DMA控制器来将图片数据传送到LCD屏幕上进行显示。1.3触摸屏中断来切换图片选用自动(顺序)的X/Y坐标转换模式方法产生中断,并有程序判断产生中断的X,Y坐标,来判断是切换上一张图片还是下一张图片。所需显示图片文件将JPEG格式转化为BIN格式存放到显示缓存地址到最后一张图片图片播放回到初始地址下一张上一张改变地址到上一张改变地址到下一张否是是否是否2硬件设备2.1LCD显示器LCD显示器是一种采用了液晶控制透光度技术来实现色彩的显示器,它与传统的CRT显示器相比有很多优点:轻薄、能耗低、辐射小等、市场占有率越来越大。LCD有多种类型,比如:STMN.、TFT、LTPSTFT、OLED等,各有各的优缺点。我们所选用的TFT(ThinTransistor,薄膜晶体管)型的LCD显示器。它可以大大缩短屏幕响应时间,其响应时间已经小于80ms,并改善了STN连续显示屏幕模糊闪烁,有效提高了动态画面的播放力,呈现画面色彩饱和度、真实效果和对比度都非常不错,完全超越了STN,只是功耗稍高,是目前最为主流的液晶显示类型,不仅在MP3、MP4产品上大量应用,在桌面液晶显示器、笔记本电脑、手机等产品上的应用也非常普通股。2.2ADC及触摸屏10位CMOS的ADC(模数转换器)是一种循环类型的装置,具有8位通道模拟输入。它将模拟的输入信号转换成10位二进制数字编码,最大转换率是500KSPS和2.5MHz的ADC时钟。ADC转换器的操作带有片上采样保持功能,电源中断模式的支持。触摸屏接口控制触摸屏的位置和方位(XP,XM,YP,YM),为X坐标转换和Y坐标转换选择触摸屏的位置和方位(XP,XM,YP,YM)。触摸屏界面包含了位置和方位控制逻辑、ADC界面逻辑和中断发生逻辑。触摸屏中断的模式有四种:(1)正常转换模式单个转换模式,是最有可能用于通用的ADC转换。这种模式可以通过设置ADCCON(ADC的控制寄存器)初始化,并完成读和写存入ADCAT0(ADC数据寄存器0)。(2)单独的X/Y坐标转换模式触摸屏控制器可以使用两个转换模式中的一个转换。单独的X/Y坐标转换模式可以在以下方法中转换:X坐标模式写X坐标的转换数据入ADCDAT0,因此,触摸屏接口产生中断源到中断控制器。Y坐标模式写Y坐标的转换数据到ADCDAT1,因此,触摸屏接口生成中断源到中断控制器。(3)自动(顺序)的X/Y坐标转换模式自动(顺序)的X/Y坐标转换模式,在以下方法转换:触摸屏控制器顺序转换X坐标和Y坐标被触摸。触摸屏写X测量数据如ADCDAT0和写Y测量数据入ADCDAT1后,触摸屏接口在自动位置转换模式上,产生中断源到中断控制器。(4)等待中断方式当该系统在停止模式(电源中断)时,触摸屏控制器产生唤醒信号(WKU)。在触摸屏接口下,触摸屏控制器等待中断模式必须设置位置和方位状态(XP,XM,YP,YM)。触摸屏控制器产生唤醒信号(Wake-Up)后,等待中断方式必须清除。(XY_PST没有操作模式的设置)3实现方法实现图片的方法是将图片文件(image.bin)存放到内存地址0x55000000上之后,LCD自身的DMA控制器便会把数据按配置好的时序传送到LCD显示屏上,(DMA控制器是代替内存去实现数据传输的设备内存到内存、内存到设备、设备到内存)其中图像的像素位宽为24BPP,图像的格式RGB888格式。之后需要在图片播放过程中加入中断,最后就可以在循环播放图片的情况下任意切换图片了,图像的显示原理如图2所示:图2图像驱动原理流程图3.1LCD的配置LCD显示器所需寄存器如下:VIDCON00x77100000视频控制0寄存器VIDCON10x77100004视频控制1寄存器VIDTCON00x77100010视频时序控制0寄存器VIDTCON10x77100014视频时序控制1寄存器VIDTCON20x77100018视频时序控制2寄存器WINCON00x77100020窗口控制0寄存器VIDOSD0A0x77100040视频窗口0的位置控制寄存器VIDOSD0B0x77100044视频窗口0的位置控制寄存器VIDOSD0C0x77100048视频窗口0的尺寸控制寄存器VIDW00ADD1B10x771000D4窗口0的缓冲区开始地址寄存器,缓冲区1VIDW01ADD0B00x771000A8窗口1的缓冲区开始地址寄存器,缓冲区0VIDW00ADD20x77100100窗口0的缓冲区开始地址寄存器GPICON0x7F008100端口I配置寄存器GPJCON0x7F008120端口J配置寄存器具体配置步骤如下:(1)MOFPCON:SEL_BYPASS[3]value@0x7410800C必须设置为’0’.(2)SPCON:LCD_SEL[1:0]value@0x74F0081A0必须设置为’00’,使用主机I/F类型,或者设置为‘01’,使用RGBI/F类型。(3)VIDCON0:配置视频输出格式和显示使能/禁止。(4)VIDCON1:RGBI/F控制信号。(5)VIDTCONx:配置视频输出时序和显示尺寸。(6)WINCONx:窗口格式设置(7)VIDOSDxA,VIDOSDxB:窗口位置设置(8)VIDOSDxC:alpha值设置(9)VIDWxxADDx:源图像地址设置RGB接口时序图如下:显示缓存DMA控制器24位图像数据LCD时序控制器LCD图3RGB接口时序图图中各脉冲意义如下:RGB_VSYNC:传送的是一侦数据代表一张图片(时序相反)RGB_HSYNC:传输数据行同步(时序相反)VSPW:开始传输一侦数据的准备的行数,传输数据前的准备时间,单位:行VBPD:一侦数据开始传输,无效的行数LINEVAL:一侦有效的数据的行数VFPD:一侦结束前无效的行数HSPW:行传输的准备时钟HBPD:行传输开始的无效时钟HOZVAL:行传输的有效时钟HFPD:行传输结束前无效的时钟只有时序配置好之后才可将图片完整的从缓存地址中读取并且显示出来。我们选用的帧同步方式来进行图片播放,所以需要计算每一帧的速率。计算公式如下:帧速率=1/[{(VSPW+1)+(VBPD+1}+(LIINEVAL+1)+(VFPD+1)}*{(HSPW+1}+(HBPD+1)+(HFPD+1)+(HOZVAL+1)}*{(CLKVAL+1)/(时钟源频率)}]根据TINY6410开发板的显示屏的尺寸,我们假设的帧速率为60HZ,而时钟源频率为HCLK=133MHz,其他值可以在群创4.3寸LCD——AT043TN24V.1上找到相应的值,其值为: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。最终可以计算出CLKVAL的值约为14。具体LCD显示程序见附录B。3.2ADC触摸屏中断触摸屏中断原理图如下:图4ADC和触摸屏接口的功能结构框图我们选择的触摸屏中断的模式为自动(顺序)的X/Y坐标转换模式自动(顺序)的X/Y坐标转换模式,在以下方法转换:触摸屏控制器顺序转换X坐标和Y坐标被触摸。触摸屏写X测量数据如ADCDAT0和写Y测量数据入ADCDAT1后,触摸屏接口在自动位置转换模式上,产生中断源到中断控制器。从图4可以知道,ADC和触摸屏借口中只有一个A/D转换器,可以通过设置寄存器来选择对哪路模拟信号进行采样。对于S3C6410,在使用触摸屏是,AIN[7]HEAIN[5]呗用来测量XP、YP的电平,只剩下AINP[6]、AIN[4:0]共6个引脚用于一般的ADC输入。当不适用触摸屏时,XP、XM、YP、和YM、这4各引脚可以用于一般的ADC输入。在使用ADC转化器是需要设置预分频值,计算公式,GCLK频率是50MHz和分频器值是49时,总的10位转换时间如下:A/D转换频率=50MHz/(49+1)=1MHz转换时间=1/(1MHz/5周期)=1/200kHz=5μs。配置ADC转化器所需寄存器如下:ADCCON0x7E00B000ADC控制寄存器。ADCTSC0x7E00B004ADC的触摸屏控制寄存器。ADCDLY0x7E00B008ADC启动或时间延迟寄存器。ADCDAT00x7E00B00cADC的数据转换寄存器。ADCUPDN0x7E00B014触摸笔向上或向中断寄存器。ADCCLRINT0x7E00B018清除ADC中断。ADCCLRINTPNDNUP0x7E00B020清楚触摸笔向上或向下中断配置步骤:(1)设置ADCCON寄存器,玄色输入信号通道,设置A/D转化器的时钟。时能A/D转换器时钟的预分频功能时,A/D时钟的计算公式如下:A/D时钟=PCLK/(PRSCVL+1)。(2)设置ADCTSC寄存器为0x0C,进入自动(连续)x/y轴坐标转换模式,触摸屏控制器就会自动转换触点的x、y坐标值,并非别写入ADCDAT0、ADCDAT1寄存器中,然后发出INT_ADC中断。(3)转换结束时,读取ADCDAT0寄存器数值。使用INT_ADC中断,发生INT_ADC中断
本文标题:基于ARM嵌入式系统的图片浏览器设计
链接地址:https://www.777doc.com/doc-2568288 .html