收藏 分享(赏)

基于ARM嵌入式系统的图片浏览器设计(1).doc

上传人:wspkg9802 文档编号:6359786 上传时间:2019-04-09 格式:DOC 页数:12 大小:222.04KB
下载 相关 举报
基于ARM嵌入式系统的图片浏览器设计(1).doc_第1页
第1页 / 共12页
基于ARM嵌入式系统的图片浏览器设计(1).doc_第2页
第2页 / 共12页
基于ARM嵌入式系统的图片浏览器设计(1).doc_第3页
第3页 / 共12页
基于ARM嵌入式系统的图片浏览器设计(1).doc_第4页
第4页 / 共12页
基于ARM嵌入式系统的图片浏览器设计(1).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、基于 ARM 嵌入式系统的图片浏览器设计王斯 吴小龙 刘国威摘 要:本设计选择基于 ARM11 处理器核心的 TINY6410 开发板进行。系统主要包括四部分:浏览图片、图像变换处理、触摸屏中断、LCD 显示控制器。通过硬件连接与软件编程将整个系统呈现出来,从而实现图片依次浏览显示,快速进入上、下页等功能。此项功能可以应用到电脑屏保或是手机相册。关键词:ARM11;LCD;Linux 嵌入式中图分类号:0 引言随着电子产品飞速的更新换代,许多较为实用的功能也在不断的革新。本设计的图片浏览功能是基于电脑或是手机的屏保功能而演变出来的模块化的功能。它是以嵌入式系统为基本开发环境,以 ARM11 处

2、理器为核心而进行开发研究的。目的是为了能够将一定数量的图片在 LCD 显示屏上循环播放,从而实现图片浏览的功能。1 图片显示的基本原理本设计是在 TINY6410 开发板进行的,其内核为 ARM11,图片显示在 LCD 屏上,本次设计是在 Linux 环境下完成的。首先我们手中的初始图片均为 JPG 格式,是经过压缩的图片,所以现将图片的格式转换成适合 LCD 显示的 BMP 格式,之后再将一定数量的图片经过处理编程 “.bin 文件”。完成图片的初步处理之后,将图片的文件,存放到 ARM 的缓存地址上。在显示图片之前需要配置 LCD 的各个寄存器,来适合显示我们所要显示的图片。在设计中,图片

3、的格式为RGB(888)格式,显示位宽为 24BPP,显示屏以帧同步的方式来播放图片。图片的浏览过程是从起始地址到最终地址,在这过程中会有可能需要切换图片的要求,所以在图片播放过程中会判断是否有触摸屏中断,如果有触摸屏中断则进行判断触摸屏上的 X,Y 坐标来进行上一张下一张图片的切换。具体图片浏览过程如图 1 图片浏览流程图所示。所需显示图片文件将 JPEG 格式转化为 BIN 格式存放到显示缓存地址到最后一张图片图片播放回到初始地址下一张上一张改变地址到上一张改变地址到下一张否是是否是否图 1 图片浏览流程图1.1 图片的格式转换存放在显示缓存上的图片文件都是 BIN 文件,图片的格式为 R

4、GB 色彩格式在嵌入式系统中的图像也普遍采用该格式。显示的图像都是未经压缩的原品质图像,所以需要经过图片的格式转换将 JPG 格式改为 BMP 格式,最终形成 BIN 文件。我们将图片存放到目录“/home/picture/image”下,首先将目录中的图片转换成 BMP 格式,所需要的工具为该目录下的“jpeg2bmp” 。该执行程序是由文件库 “/home/picture/src/”下的“jpegsrc.v8d.tar”编辑而成。之后再将转换完成的 BMP 图片,转换为“.bin”文件并合并起来。具体转换程序见附录 A。1.2 图片的显示图片显示在LCD显示屏上,我们所选用的图片格式为RG

5、B(888)格式的,像素位宽为24BPP ,同步方式为帧同步的方式。首先将图片文件( image.bin)存放到缓存地址0x5500000上,LCD 有自身的DMA控制器来将图片数据传送到LCD屏幕上进行显示。1.3 触摸屏中断来切换图片选用自动(顺序)的X/Y 坐标转换模式方法产生中断,并有程序判断产生中断的X,Y坐标,来判断是切换上一张图片还是下一张图片。2 硬件设备2.1 LCD显示器LCD显示器是一种采用了液晶控制透光度技术来实现色彩的显示器,它与传统的CRT显示器相比有很多优点:轻薄、能耗低、辐射小等、市场占有率越来越大。LCD有多种类型,比如:STMN. 、TFT、LTPS TFT

6、、OLED等,各有各的优缺点。我们所选用的TFT(Thin Transistor,薄膜晶体管)型的LCD显示器。它可以大大缩短屏幕响应时间,其响应时间已经小于80ms,并改善了STN 连续显示屏幕模糊闪烁,有效提高了动态画面的播放力,呈现画面色彩饱和度、真实效果和对比度都非常不错,完全超越了STN,只是功耗稍高,是目前最为主流的液晶显示类型,不仅在MP3、MP4产品上大量应用,在桌面液晶显示器、笔记本电脑、手机等产品上的应用也非常普通股。2.2 ADC及触摸屏10位CMOS的ADC (模数转换器)是一种循环类型的装置,具有8位通道模拟输入。它将模拟的输入信号转换成10位二进制数字编码,最大转换

7、率是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 坐标转换模式触摸屏控制器可以使用两个

8、转换模式中的一个转换。单独的X/Y 坐标转换模式可以在以下方法中转换:X 坐标模式写坐标的转换数据入ADCDAT0,因此,触摸屏接口产生中断源到中断控制器。Y 坐标模式写Y 坐标的转换数据到ADCDAT1,因此,触摸屏接口生成中断源到中断控制器。(3)自动(顺序)的X/Y 坐标转换模式自动(顺序)的X/Y 坐标转换模式,在以下方法转换:触摸屏控制器顺序转换X 坐标和Y 坐标被触摸。触摸屏写X 测量数据如ADCDAT0 和写Y 测量数据入ADCDAT1 后,触摸屏接口在自动位置转换模式上,产生中断源到中断控制器。(4)等待中断方式当该系统在停止模式(电源中断)时,触摸屏控制器产生唤醒信号(WKU

9、) 。在触摸屏接口下,触摸屏控制器等待中断模式必须设置位置和方位状态(XP, XM, YP, YM)。触摸屏控制器产生唤醒信号(Wake-Up)后,等待中断方式必须清除。 (XY_PST 没有操作模式的设置)3 实现方法实现图片的方法是将图片文件(image.bin)存放到内存地址 0x55000000 上之后,LCD自身的 DMA 控制器便会把数据按配置好的时序传送到 LCD 显示屏上, (DMA 控制器是代替内存去实现数据传输的设备内存到内存、内存到设备、 设备到内存)其中图像的像素位宽为 24BPP,图像的格式 RGB888 格式。之后需要在图片播放过程中加入中断,最后就可以在循环播放图

10、片的情况下任意切换图片了,图像的显示原理如图 2 所示:显示缓存DMA 控制器24 位图像数据LCD 时序控制器LCD图 2 图像驱动原理流程图3.1 LCD的配置LCD显示器所需寄存器如下:VIDCON0 0x77100000 视频控制 0 寄存器VIDCON1 0x77100004 视频控制 1 寄存器VIDTCON0 0x77100010 视频时序控制 0 寄存器VIDTCON1 0x77100014 视频时序控制 1 寄存器VIDTCON2 0x77100018 视频时序控制 2 寄存器WINCON0 0x77100020 窗口控制 0 寄存器VIDOSD0A 0x77100040 视

11、频窗口 0 的位置控制寄存器VIDOSD0B 0x77100044 视频窗口0 的位置控制寄存器VIDOSD0C 0x77100048 视频窗口 0 的尺寸控制寄存器VIDW00ADD1B1 0x771000D4 窗口0 的缓冲区开始地址寄存器,缓冲区1VIDW01ADD0B0 0x771000A8 窗口 1 的缓冲区开始地址寄存器,缓冲区 0 VIDW00ADD2 0x77100100 窗口 0 的缓冲区开始地址寄存器GPICON 0x7F008100 端口 I 配置寄存器GPJCON 0x7F008120 端口 J 配置寄存器具体配置步骤如下:(1)MOFPCON:SEL_BYPASS3

12、value0x7410800C 必须设置为0.(2)SPCON:LCD_SEL1:0value0x74F0081A0 必须设置为00 ,使用主机I/F 类型,或者设置为01 ,使用RGB I/F 类型。(3)VIDCON0:配置视频输出格式和显示使能/ 禁止。(4)VIDCON1:RGB I/F 控制信号。(5)VIDTCONx :配置视频输出时序和显示尺寸。(6)WINCONx:窗口格式设置(7)VIDOSDxA ,VIDOSDxB:窗口位置设置(8)VIDOSDxC :alpha 值设置(9)VIDWxxADDx:源图像地址设置RGB 接口时序图如下:图 3 RGB 接口时序图图中各脉冲意

13、义如下:RGB_VSYNC:传送的是一侦数据 代表一张图片(时序相反 )RGB_HSYNC:传输数据行同步 (时序相反)VSPW:开始传输一侦数据的准备的行数,传输数据前的准备时间,单位:行VBPD:一侦数据开始传输,无效的行数LINEVAL:一侦有效的数据的行数VFPD:一侦结束前无效的行数HSPW:行传输的准备时钟HBPD:行传输开始的无效时钟HOZVAL: 行传输的有效时钟HFPD:行传输结束前无效的时钟只有时序配置好之后才可将图片完整的从缓存地址中读取并且显示出来。我们选用的帧同步方式来进行图片播放,所以需要计算每一帧的速率。计算公式如下:帧速率=1/(VSPW+1)+(VBPD+1+

14、(LIINEVAL+1)+(VFPD+1) *(HSPW+1 + (HBPD+1) +(HFPD+1)+(HOZVAL+1)*(CLKVAL+1)/(时钟源频率)根据 TINY6410 开发板的显示屏的尺寸,我们假设的帧速率为 60HZ,而时钟源频率为HCLK=133MHz,其他值可以在群创 4.3 寸 LCDAT043TN24 V.1 上找到相应的值,其值为:VSPW+1-tvp-10 、VBPD+1-TVB-2、LINEVAL+1tvd272、VFPD+1tvf2 、HSPW+1-thp-41 、HBPD+1thb-2、HOZVAL+1thd480、HFPD+1-thf2 。最终可以计算出

15、 CLKVAL 的值约为 14。具体 LCD 显示程序见附录 B。3.2 ADC 触摸屏中断触摸屏中断原理图如下:图 4 ADC 和触摸屏接口的功能结构框图我们选择的触摸屏中断的模式为自动(顺序)的 X/Y 坐标转换模式自动(顺序)的X/Y 坐标转换模式,在以下方法转换:触摸屏控制器顺序转换X 坐标和Y 坐标被触摸。触摸屏写X 测量数据如ADCDAT0 和写Y 测量数据入ADCDAT1 后,触摸屏接口在自动位置转换模式上,产生中断源到中断控制器。从图4可以知道,ADC和触摸屏借口中只有一个A/D 转换器,可以通过设置寄存器来选择对哪路模拟信号进行采样。对于S3C6410,在使用触摸屏是, AI

16、N7HE AIN5呗用来测量XP 、YP的电平,只剩下AINP6、AIN4:0共6个引脚用于一般的ADC输入。当不适用触摸屏时,XP、 XM、YP、和YM 、这4各引脚可以用于一般的ADC输入。在使用ADC转化器是需要设置预分频值,计算公式,GCLK 频率是50 MHz 和分频器值是49 时,总的10 位转换时间如下:A/D 转换频率= 50 MHz /( 49+1 ) = 1MHz转换时间= 1 / (1MHz / 5 周期) = 1/200kHz = 5s。配置ADC转化器所需寄存器如下:ADCCON 0x7E00B000 ADC 控制寄存器。 ADCTSC 0x7E00B004 ADC

17、的触摸屏控制寄存器。 ADCDLY 0x7E00B008 ADC 启动或时间延迟寄存器。 ADCDAT0 0x7E00B00c ADC 的数据转换寄存器。ADCUPDN 0x7E00B014 触摸笔向上或向中断寄存器。 ADCCLRINT 0x7E00B018 清除ADC 中断。 ADCCLRINTPNDNUP 0x7E00B020 清楚触摸笔向上或向下中断配置步骤:(1)设置ADCCON寄存器,玄色输入信号通道,设置A/D转化器的时钟。时能A/D转换器时钟的预分频功能时,A/D 时钟的计算公式如下:A/D时钟 = PCLK / (PRSCVL +1) 。(2)设置ADCTSC 寄存器为0x0

18、C,进入自动(连续)x/y轴坐标转换模式,触摸屏控制器就会自动转换触点的x、y坐标值,并非别写入ADCDAT0、ADCDAT1 寄存器中,然后发出INT_ADC 中断。(3)转换结束时,读取ADCDAT0寄存器数值。使用INT_ADC中断,发生INT_ADC中断时表示转换结束。具体中断程序见附录B。4 实现结果在该技术实现过程中CPU采用三星公司的S3C6410处理器,操作系统采用的是LINUX。S3C6410的LCD控制器采用的是RGB888格式,接口选择 I80接口,同步方式为帧同步方式。最终成功实现了20张图片的循环浏览,并且可以实现上下一张图片的切换。5 结束语基于 ARM11 开.板

19、和嵌入式 Lux 内核,给出了一个能够应用于 ARM11 内核的图片浏览器。采用的是 TFTLCD 控制器,显示的图片品质高,说明其有较好的推广价值。参考文献1 ARM11 S3C6410 中文用户手册.2 韦东山,嵌入式 Linux 应用开发完全手册,2008.3 柯勇,杨宗凯,赵梦欣,图像处理中间件在嵌入式系统中的设计与实现, 2007.附录 A:/图片转换为“.bin”文件程序#include #include #include #include #include int main(int argc, char *argv)int fid_bmp20;int fid_rgb;int x,

20、 y;int i;char tmp4;fid_rgb = open(argv1, O_RDWR|O_CREAT);if(fid_rgb =0; y-)lseek(fid_bmpi, 54, SEEK_SET);lseek(fid_bmpi, y*480*3, SEEK_CUR);for(x=1; x2075)printf(“next onen“);FLAG = 1;if(ADCDAT0FLAG = 2;ADCCLRINT = 0;ADCTSC = 0xd3|(18);void show_picture(unsigned long frem)int i;/gpioGPICON = 0xaaaaa

21、aaa;GPJCON = 0xaaaaaa;GPFCONGPFCON|= (128);GPFDAT|= (114);GPECON|= 1;GPEDAT|= 1;MIFPCON SPCON SPCON |=1;VIDCON0 = (14)|(146);VIDCON1 = (15)|(16);VIDTCON0 = 9|(18)|(116);VIDTCON1 = 40|(18)|(116);VIDTCON2 = 479|(27111);WINCON0 = 1|(112);VIDOSD0A = 0;VIDOSD0B = 271|(47911);VIDOSD0C = 480*272;VIDW00ADD0B0 = frem;VIDW00ADD1B0 = frem+(480*272*4);VIDW00ADD2 = 480*3;/使能 lcdVIDCON0 |=3;for(i=1;i0xffff;i+);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报