




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I摘要数码相框是一种以数码照片的保存、回放和浏览为核心功能的产品,随着数码相机的普及,开发基于嵌入式系统的数码相框已成为消费类电子产品领域的一个热点,本文设计了一个基于PIC18F4550的数码相框系统,具有实际应用价值。文中详细介绍了系统的软、硬件设计。它以PIC18F4550为核心处理器,采用SD卡存储图像文件,并利用TFTLCD显示照片。实现了SD卡内FATL6文件的读取、图像数据的显示。通过从解码的图像质量和速度两个方面进行测试,本文设计完成的数码相框系统,能够达到图像重构的要求和对图像进行实时解压显示的目标,具有成本低,易于升级的特点,有很好的应用前景。关键词数码相框,PIC,SD卡,TFTIIABSTRACTDIGITALPHOTOFRAMEISAPRODUCTWHICHISUSEDTOSTOREANDDISPLAYTHEDIGITALPHOTOWITHTHEPOPULARITYOFDIGITALCAMERAS,DEVELOPINGTHEDIGITALPHOTOFRAMEBASEDONEMBEDDEDSYSTEMHASBECOMEAHOTINTHEFIELDOFCONSUMERELECTRONICSPRODUCTSTHISTHESISDESIGNSADIGITALPHOTOFRAMEBASEDONPIC18F4550,ITHASPRACTICALAPPLICATIONVALUETHESYSTEMISCOMPOSEDOFPIC18F4550,SDCARD,TFTLCDITREALIZESREADINGTHEFAT16FILEINSDCARD,DISPLAYINGTHEIMAGEINTFTLCDTHROUGHTHETESTOFDECODINGSPEEDANDTHEIMAGEQUALITY,THERESULTSSHOWTHATTHESYSTEMCANREACHTHEREQUIREMENTOFIMAGERECONFIGURATIONANDTHETARGETOFREALTIMEDECODINGANDDISPLAYIMAGESITHASTHECHARACTERISTICSOFLOWCOST,EASYTOUPGRADE,ANDHASGOODAPPLICATIONPROSPECTSKEYWORDSDIGITALPHOTOFRAME,PIC,SD,TFTIII目录第1章绪论111课题背景112国内外研究现状113论文架构3第2章数码相框系统设计基础421开发技术基础4211PIC单片机介绍4212TFTLCD介绍5213SD卡介绍7214集成开发环境MPLADIDE822数字图形基础9221图像数字化9222颜色模型9223颜色模型9第3章系统设计1131系统硬件结构1132核心处理器模块1133TFTLCD模块1234SD卡模块1335按键模块14第4章数码相框的软件设计1541主程序模块1542图像文件读取模块16421SPI数据传输16422SD卡驱动16423FAT16文件系统的读取1843图像文件解码模块2444图像显示模块24441图像显示程序流程24442图像数据写入程序25443TFTLCD驱动2645按键模块28第5章图像显示结果分析29总结30参考文献31致谢32基于PIC单片机的数码相框1第1章绪论11课题背景数码相机的普及,使得拍摄下来的数码相片呈现出了几何级数的增长,用各种存储器保存照片已成为大家习惯的做法,于是在这个趋势下衍生出了数码相框。数码相框是展示数码照片而非纸质照片的相框。数码摄影必然推动数码相框的发展,因为全世界打印的数码相片不到35。数码相框通常直接插上相机的存储卡展示照片,当然更多的数码相框会提供内部存储空间以接外接存储卡功能。数码相框就是一个相框,不过它不再用放进相片的方式来展示,而是通过一个液晶的屏幕显示,它可以通过读卡器的接口从SD卡获取相片,并设置循环显示的方式,比普通的相框更灵活多变,也给现在日益使用的数码相片一个新的展示空间。数码相框从最初的概念型产品进入市场,至今已有五、六年时间。早起的数码相框解决方案,多数是移植DVD播放器的平台,也有部分使用的是多媒体应用平台(如PMP),数码相框的专业平台极少。如今,数码相框市场正在经历一个上升期,各种针对数码相框的专业级方案平台逐步发展成熟起来,各种解决方案也层出不穷。在ARM,DSP,NIOSII等平台上开发出了形形色色的数码相框。本文设计采用PIC18F4550为处理器,采用SD卡存储图像文件,利用TFT液晶屏显示图片,实现了SD卡内FAT16文件的读取,解码及显示等功能。12国内外研究现状2002年,美国旧金山太平洋数位公司PACIFICDIGITAL发布了世界上第一款数码相框,名为MEMORYFRAME,MEMORYFRAME数码相框采用56英寸的TFT液晶屏幕,内置16MB内存。只要用USB数据线将数码相框和数码相机或个人电脑连接起来,就能以幻灯片的形式展示数码相机或个人电脑上的相片,当时的售价为330美元。2003年11月26日,中国第一款自主研发并上市的数码相框“捷硕数码相框”在上海面世。捷硕数码相框可一次存储六十张图片,并有定时、动态、循环演示及MP3播放功能。这款产品的问世在当时引起了很大的反响,而且当时正处于国内市场上数码相机高速增长阶段,因此其他一些国内大厂已经在随后的2004年,开始规划自己的数码相框产品,比如长城和爱国者。但正当人们以为数码相框产品将大量问世的时候,2004年以及2005年国内市场上突然涌现了另外一个明星产品,那就是MP3播放器。MP3播放器销量的爆炸性增长使得原本基于PIC单片机的数码相框2对数码相框有兴趣的厂商们一下子无暇他顾,专注于MP3播放器的竞争。因此数码相框一下子降温不少,直到2005年12月5日,飞利浦多媒体显示设备事业部宣布,飞利浦数码相框产品将正式进入中国大陆市场,这才一下子重新让国内的消费者注意到了数码相框这种产品,并且也激发了国内厂商研发数码相框产品的热情和决心。目前市场上的数码相框主要有三种设计方案,一种是以单芯片为核心,如图11所示。读卡部分主芯片系统输出部分外图设备图11系统设计方案一这类系统,主芯片的功能比较强大,一般以32位CPU为核心,内嵌有JPEG,MP3,MPEG4等多媒体的解码硬件单元,采用该类方案,系统结构简单,成本低,设计方便,由于解码多用硬件单元实现,因此速度快,但功能可扩性较差,不宣于后期的升级和功能扩展。另一种是以DSPFPGA为核心,如图12所示。读卡部分DSPFPGA输出部分外图设备图12系统设计方案二这类系统,由DSP软件实现文件系统的读取,图像部分的编解码算法以及外围设备的驱动,由FPGA控制显示输出。采用该类方案,可以通过软件方式实现升级,功能升级性强,但整体成本较大,设计复杂度较高。第三种是采用ARMJPEG硬件解码器或者ARMDSP来实现,如图13所示。读卡部分ARM系统DSP(或硬件解码器)输出部分外图设备图13系统设计方案三该类系统中,由ARM处理器实现控制功能,由硬件解码器、DSP完成图像的解码算法。采用该类方案,解码速度快,系统可扩性强,能够实现的功能多,但成本和设计复杂度较高。本文设计的数码相框以PIC18F4550为处理器,此方案的优势在于成本低,系统结构简单,设计方便。易于升级。通过软件实现算法,系统具有较高的灵活性和适应性。基于PIC单片机的数码相框313论文架构本文提出了一种基于PIC单片机的数码相框系统的设计方案,并加以实现。该数码相框系统以PIC18F4550为处理器,实现了对SD卡内FATL6格式的BMP图像文件的读取、解码、显示的功能。围绕系统的实现,论文将详细描述系统的软、硬件设计,具体分为5个章节,安排如下第一章,介绍数码相框的应用背景、国内外研究状况,并对本文的章节进行安排。第二章,首先介绍PIC单片机、TFTLCD及SD卡开发的相关知识以及集成开发环境MPLABIDE,其次介绍有关数字图像的基本知识。第三章,介绍数码相框系统的硬件组成及各部分硬件电路的设计和实现。第四章,介绍数码相框系统的软件设计思想和设计过程。第五章,对本设计作品的效果进行演示并且分析。结束语部分对全文所做的工作进行总结,并对接下来的工作进行展望。基于PIC单片机的数码相框4第2章数码相框系统设计基础21开发技术基础211PIC单片机介绍PIC单片机(PERIPHERALINTERFACECONTROLLER)是一种用来可开发的去控制外围设备的可编程集成电路(IC)。由美国MICROCHIP(微星)公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种又称三层次系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。现今的PIC单片机已经是世界上最有影响力的嵌入式微控制器之一。PIC系列单片机的指令系统只有35条指令,常用约20条,好学、易用;绝大多数为单周期指令,执行速度快。本设计采用PIC18F4550单片机作为处理器,PIC18F4550是MICROCHIP公司最新生产的带全速USB接口的8位高档单片机,芯片为4044脚封装。该单片机除了具有PIC单片机所特有的精简指令集RISC、数据总线和指令总线相互独立的哈佛HARVARD结构等特点外,还配备了自编程闪存存储器以及纳瓦节能技术,工作频率达48MHZ,数据传输速率高达12MBPS。另外,还具有MICROCHIP先进PMOS电可擦除单元PEEC闪存技术,耐擦写次数可高达100万次,而数据保存期能超过40年。因而该芯片有很强的控制能力和灵活的工作方式。新器件的全速USB20接口具有1KB双重存取RAM,支持高达32个端点双向16对和2种数据传输速率即全速模式12MBPS和低速模式15MBPS,具有USB协议所规定的4种数据传输方式控制传输方式、中断传输方式、批量传输方式和实时传输方式。该接口包括一个片上收发器和一个并行流端口,能把数据直接传送到外部的设备,不仅减小了CPU的开销,而且大大增强了系统的抗干扰能力和工作可靠性。PIC18F4550的硬件资源非常丰富,包含33个IO,IO端口为端口A、B、C、D、E;具有多个中断源和1个中断优先级选择,4个定时器,32KB程序闪存,256字节EEPROM数据存储器,2048字节数据随机存储器以及88硬件乘法器;集成了13通道的10位AD转换器,2个CCP比较捕捉PWM模块,1个增强型基于PIC单片机的数码相框5CCP模块和1个看门狗;具有省电功能的休眠模式;1个USART不仅支持异步与同步的串行通信,而且支持LIN总线;2个模拟比较器,支持I2C和SPI通信的主控同步串行端口,可编程欠压复位及低电压检测电路等。PIC18F4550单片机的一个关键特性在于它配备了32KB自编程增强型闪存,使得设计人员可以通过USB端口对最终应用进行现场升级。结合新器件配备的一系列片上外设和纳瓦技术NANOWATT的功耗管理功能,使其非常适用于多种嵌入式应用,包括工业、医疗、汽车、电池供电和消费类产品等。如图21为PIC18F4550引脚图图21PIC18F4550引脚图PIC18F4550部分硬件资源如下表所示程序存储器数据存储器器件闪存(BYTE)单字指令数SDRAMBYTEEEPROMBYTEI/O10通道ADCSPI8/16位定时器PIC18F455032K16K2K256351311/3表21PIC18F4550硬件资源表212TFTLCD介绍TFTTHINFILMTRANSISTORLCD即薄膜场效应晶体管LCD,是有源矩阵类型液晶显示基于PIC单片机的数码相框6器AMLCD中的一种。液晶平板显示器,特别TFTLCD,是目前唯一在亮度、对比度、功耗、寿命、体积和重量等综合性能上全面赶上和超过CRT的显示器件,它的性能优良、大规模生产特性好,自动化程度高,原材料成本低廉,发展空间广阔,将迅速成为新世纪的主流产品,是21世纪全球经济增长的一个亮点。和TN技术不同的是,TFT的显示采用“背透式”照射方式假想的光源路径不是像TN液晶那样从上至下,而是从下向上。这样的作法是在液晶的背部设置特殊光管,光源照射时通过下偏光板向上透出。由于上下夹层的电极改成FET电极和共通电极,在FET电极导通时,液晶分子的表现也会发生改变,可以通过遮光和透光来达到显示的目的,响应时间大大提高到80MS左右。因其具有比TNLCD更高的对比度和更丰富的色彩,荧屏更新频率也更快,故TFT俗称“真彩”。相对于DSTN而言,TFTLCD的主要特点是为每个像素配置一个半导体开关器件。由于每个像素都可以通过点脉冲直接控制。因而每个节点都相对独立,并可以进行连续控制。这样的设计方法不仅提高了显示屏的反应速度,同时也可以精确控制显示灰度,这就是TFT色彩较DSTN更为逼真的原因。目前,绝大部分笔记本电脑厂商的产品都采用TFTLCD。早期的TFTLCD主要用于笔记本电脑的制造。尽管在当时TFT相对于DSTN具有极大的优势,但是由于技术上的原因,TFTLCD在响应时间、亮度及可视角度上与传统的CRT显示器还有很大的差距。加上极低的成品率导致其高昂的价格,使得桌面型的TFTLCD成为遥不可及的尤物。不过,随着技术的不断发展,良品率不断提高,加上一些新技术的出现,使得TFTLCD在响应时间、对比度、亮度、可视角度方面有了很大的进步,拉近了与传统CRT显示器的差距。如今,大多数主流LCD显示器的响应时间都提高到16MS以下,这些都为LCD走向主流铺平了道路。LCD的应用市场应该说是潜力巨大。但就液晶面板生产能力而言,全世界的LCD主要集中在中国台湾、韩国和日本三个主要生产基地。亚洲是LCD面板研发及生产制造的中心,而台、日、韩三大产地的发展情况各有不同。TFTLCD是有源矩阵液晶显示器AMLCD的典型代表,其研究最活跃、发展最快、应用增长也最迅速,在笔记本电脑、摄像机与数字照相机监视器等方面的应用独领风骚,另外,它在地理信息系统以及飞机座舱、便携式DVD、台式电脑和多媒体显示器等方面都得到很好的应用。彩色TFTLCD的构思最初由美国人(西屋公司)于1972年提出、日本东芝公司在1982年率先实现这一技术的规模生产,但那时的生产技术还不成熟。自1993年日本掌握了TFTLCD生产技术以来,分辨率已由CGA320200发展到今天的UXGA16001200,基片尺寸也已有第一代的24027032O400MM2发展到2001年日本夏普、韩国三星电子和LGPHILIPS公司分别上马的第七代的13501700MM2。目前,TFTLCD的应用主要在小尺寸的移动电话市场、中型尺寸的掌上电脑与笔记本电脑市场、大型尺寸的液晶显示监视器和液晶电视市场等五个方面。2005年TFTLCD将被主要应用于显示器(39、笔记本电脑(25、手机16,液晶电视(10,PDA6五大领域,基于PIC单片机的数码相框7市场销售金额将超过250亿美元,占LCD市场比例超过90,成为液晶乃至整个平板显示技术领域的主导技术。213SD卡介绍SD卡(SECUREDIGITALMEMORYCARD)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理PDA和多媒体播放器等。SD卡由日本松下、东芝及美国SANDISK公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。SD卡的技术是基于MULTIMEDIA卡(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32MMX24MMX21MM。长宽和MMC卡一样,只是比MMC卡厚了07MM,以容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。(SD卡外型采用了与MMC卡厚度一样的导轨式设计,以使SD设备可以适合MMC卡。SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。采用了NAND型FLASHMEMORY,基本上和SMARTMEDIA的一样,平均数据传输率能达到2MB/S。设有SD卡插槽的设备能够使用较簿身的MMC卡,但是标准的SD卡却不能插入到MMC卡插槽。SD卡能够于CF卡和PCMCIA卡上,插上转接器使用;而MINISD卡和MICROSD卡亦能插上转接器于SD卡插槽使用。一些USB连接器能够插上SD卡,而且一些读卡器亦能够插上SD卡,并由许多连接埠,例如USB、FIREWIRE等存取使用。SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。SD卡多用于MP3随身听、数码摄像机、数码相机等,也有用于笔记本电脑上。其投影面积与MMC卡相同,只是略微厚一点,为21MM,但是SD卡的容量大得多,且读写速度也MMC卡快4倍。同时,SD卡的接口与MMC卡是兼容的,支持SD卡的接口大多支持MMC卡。目前SD卡在数码相机中正在迅速普及,大有成为主流之势。SD卡在今年的发展很快,已经开始威胁到CF卡的市场份额了。这是由于SD卡的体积要比CF卡小很多,并且SD卡在容量、性能和价格上和CF卡的差距越来越小,而这两年支持SD卡的手机迅速在市场走热,因此,SD卡的迅速成长绝对不是偶然的。最重要的一点就是MMC卡也能和SD卡相兼容,这也正是SD卡迅速走红的原因之一。不过注意的是,在某些产品例如手机上,SD卡和MMC卡是不能兼容的。现在的SD卡容量由8MB到32GB不等。所有SD和SDIO卡都必须支持较老的SPI/MMC模式。这个模式支持慢速的四线序基于PIC单片机的数码相框8列接口(时钟、序列输入,序列输出,芯片选择),兼容于序列终端接口(SPI)和许多微控制器。大部分数码相机,数码音频播放器和其他便携设备仅能使用MMC模式。有关这一模式的详细文档可以从MMCA购买,价格是500美元。但是部分有关SDIO的文档是免费的。有些还可以从存储卡厂商处获得。MMC模式不支持SD卡的加密特性。从免费的文档里也找不到这些细节。但对于大多数消费者来讲,这无关痛痒,用户只是用来储存不受保护的数据。SD卡共支持三种传输模式SPI模式(独立序列输入和序列输出),1位SD模式(独立指令和数据通道,独有的传输格式),4位SD模式(使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)低速卡通常支持0400千比特/秒数据传输率,采用SPI和1位SD传输模式。高速卡支持0100兆比特/秒数据传输率,采用4位SD传输模式;支持025兆比特/秒,采用SPI和1位SD模式。针对制造商、销售商和主机适配器生产商需要缴纳SD/SDIO授权费,每年1000美元外加1500美元的会员费。但SDIO卡和MMC适配器生产商无需授权费。MMC卡使用7针接口,SD卡和SDIO卡采用了9针接口。214集成开发环境MPLADIDEMPLAB集成开发环境(IDE)是综合的编辑器、项目管理器和设计平台,适用于使用MICROCHIP的PICMICRO系列单片机进行嵌入式设计的应用开发。MPLABIDE是适用于PICMICRO系列单片机和DSPICTM数字信号控制器,基于WINDOWS操作系统的集成开发环境。MPLABIDE提供以下功能使用内置编辑器创建和编辑源代码。汇编、编译和链接源代码。通过使用内置模拟器观察程序流程调试可执行逻辑;或者使用MPLABICE2000和MPLABICE4000仿真器或MPLABICD2在线调试器实时调试可执行逻辑。用模拟器或仿真器测量时间。在观察窗口中查看变量。使用MPLABICD2、PICSTARTPLUS或PROMATEII器件编程器烧写固件。使用MPLABIDE丰富的在线帮助快速找出问题的答案。本设计使用的是MPLABIDEV863。适用于大部分PIC单片机编程与烧录程序。编译器使用MCC18V300。这是专用于PIC18系列单片机的代码编译器。基于PIC单片机的数码相框922数字图形基础221图像数字化我们日常生活中见到的图像一般是连续形式的模拟图像,它必须通过图像数字化设备,如数字相机、扫描仪、数字化仪等转换为数字图像,才能被计算机处理。图像的数字化包括采样和量化两个过程。图像在空闯上的离散化称为采样。也就是用空闯上部分点的灰度值代表图像,这些点称为采样点或者像素。在进行采样时,采样点间隔的选取是一个非常重要的问题,它决定了采样后图像的质量,即忠实于原图像的程度。采样间隔的大小选取要依据原图像中包含的细微浓淡变化来决定。一般,图像中细节越多,采样间隔应越小。模拟图像经过采样后,被分割成空间上离散的像素,但其灰度是连续的,还不能用计算机进行处理。将像素灰度转换成离散的整数值的过程叫量化,一幅数字图像中不同灰度值的个数称为灰度级数。用G表示,G2G,G是表示图像像素灰度值所需的比特位数。一般用一个字节8BIT来表示,对应灰度值的范围为0255,表示亮度从深到浅,对应图像中的颜色从黑到白。222颜色模型根据人眼的结构,所有颜色都可看作是由三种基本颜色红R、绿G和蓝B按照不同的比例组合而成的。为了科学地定量描述和使用颜色,人们提出了各种颜色模型。目前常用的颜色模型按用途可分为两类,一类面向诸如彩色显示器或打印机之类的硬件设备。另一类面向以彩色处理为目的的应用,如动画中的彩色图形。面向硬件设备的最常用彩色模型是RGB模型。这个模型基于笛卡尔坐标系统,3个轴分别为R,G,B。我们感兴趣的部分是个正方体,为方便,将其归一化为单位正方体,这样所有的RGB值都在区间0,1中。在此正方体中,原点所对应的颜色为黑色,它的三个分量值都为零,离原点最远的顶点对应白色,它的三个分量值都为L,从黑到白的灰度值分布在从原点到离原点最远的顶点间的连线上,而正方体内的其余各点分别对应不同的颜色,可用从原点到该点的矢量表示。223颜色模型数字图像有多种存储格式,要对图像进行显示,必须了解图像文件的格式,即图像文件的数据构成。每一种图像文件均有一个文件头,在文件头之后才是图像数据。这里仅介绍BMP文件格式。基于PIC单片机的数码相框10BMP文件由4部分组成,分别为位图文件头、文件信息头、调色板和位图数据。位图文件头长度为14个字节,依照存储顺序用以下结构体描述TYPEDEFSTRUCT_BMPFILHEADCHARFTYPE2;文件类型,其值为BMUNSIGNEDCHARFSIZE4;文件大小UNSIGNEDCHARFRESERVEDL2;保留,其值为0UNSIGNEDCHARFRESERVED22;保留,其值为0UNSIGNEDCHARFOFTBITS4;位图数据对于文件头的偏移量BMPFILHEAD;位图信息头长度为40个字节,也是一个结构体,描述如下TYPEDEFSTRUCT_BMPINHEADUNSIGNEDCHARSIZE4;文件信息头的长度,其值为40UNSIGNEDCHARWIDTH4;位图的宽度,以像素为单位UNSIGNEDCHARHEIGHT4;位图的高度,以像素为单位UNSIGNEDCHARPLANES2;目标设备的平面数,其值为1UNSIGNEDCHARBITCOUNT2;每个像素所占的位数UNSIGNEDCHARCOMPRESSION4;数据压缩方式,没有压缩,其值为0UNSIGNEDCHARSIZELMAGE4;位图数据占用的空间大小UNSIGNEDCHARXPELPERMETER4;目标设备的水平分辨率,通常设为0UNSIGNEDCHARYPELPERMETER4;目标设备的垂直分辨率,通常设为0UNSIGNEDCHARCLRUSED4;指示图像实际用到的颜色数UNSIGNEDCHARCLRLMPPORTANT4;指示图像中重要的颜色数BMPINHEAD;对于真彩色图像,不需要调色板,文件信息头后面直接是图像数据,即实际的R、G、B值。一般来说,位图文件中象素数据的存放次序是对应着图像的从下到上,从左到右的扫描顺序,也就是说,文件中最先存放的是图像最下面一行的左边第一个象素,最后存放最上面一行的最右边一个象素。基于PIC单片机的数码相框11第3章系统设计31系统硬件结构整个系统分为四个基本模块核心处理器模块、TFTLCD模块、SD卡模块及按键。系统结构框图如下图31系统结构框图32核心处理器模块系统选用PIC18F4550作为核心处理器,这部分电路的设计如下时钟电路PIC18F4550可以使用外部时钟,也可以使用内部振荡电路。本系统采用的是内部振荡电路外接晶振的方式,晶振连接到VSS和OSC1之间,并与两个电容相连,且可更换不同频率的晶振,如下图32所示。MCUPIC18F4550按键模块TFTLCD模块SD卡模块数据流数据流控制信号基于PIC单片机的数码相框12图32数字时钟电路图电源供电电路系统采用USB供电,电源转换电路如下图33所示。图33电源转换电路图复位电路本系统采用单片机复位,连接复位按钮到VPP引脚,可以实现手动复位,如下图34所示。图34复位电路图33TFTLCD模块本设计使用的TFT屏采用R61505U控制器(该款控制器为日本RENESAS公司生产,可以与ILI9320、ILI9325相互替换,时序一致),是24寸TFT模组的。分辨率为320X240,262K色。TFTLCD接口功能说明如下基于PIC单片机的数码相框13REST液晶复位信号;CS片选信号;DB0BD78位数据口;RD读控制信号;WR写控制信号;RS命令/数据选择,RS0时可读/写命令,RS1时不可以读/写命令BL_EN液晶背光控制,BL_EN0关背光,BL_EN1点亮背光;VCC接电源,注意根据接入的电源电压来选择跳帽是否短接,3V供电时电源模式选择接口VCC_SEL短接,5V供电时VCC_SEL断开;GND接地。TFTLCD接口模块如下图35所示。MCUPIC18F4550RA0RA1RA2RA3RD0RD7VCCGNDTFTLCDRESTCSWRRSDB0DB7VCCGNDRD图35TFTLCD接口模块34SD卡模块SD卡有两种可选的通讯协议SD模式和SPI模式。SD模式是SD卡标准的读写方式,采用四条数据线并行传输数据,数据传输速率高,但是传输协议复杂;SPI总线模式基于PIC单片机的数码相框14只有一条数据传输线,数据传输速率较低,但传输协议简单,易于实现。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。如图36为SD卡电路图。图36SD卡电路图如图37为SD卡模块接口图。MCUPIC18F4550RB1RB0RC7RA5SDCARDSDSCKSDSDISDSDOSDSS图37SD卡模块接口图35按键模块系统采用4个独立按键,与PIC单片机RB2RB5连接。四键分别为播放,停止,下一幅,上一幅4个功能键。如图38为按键模块电路图。基于PIC单片机的数码相框15图38按键模块电路图基于PIC单片机的数码相框16第4章数码相框的软件设计41主程序模块程序设计流程图如下图41所示。上一幅下一幅停止播放开始IO口设置SPI初始化SD卡初始化读取下一幅图片显示到TFTLCD上读取上一幅图片显示到TFTLCD上读取第一幅图片显示到TFTLCD上停止停止停止图41程序设计流程图基于PIC单片机的数码相框1742图像文件读取模块421SPI数据传输SPI接口在使用之前需要初始化,系统中,SPI接口初始化程序如下VOIDSPI_INITVOIDDIR_SDIINDIR_SDOOUTDIR_SSINDIR_SCKOUTSSPSTAT0X80/在数据输出末端采样输入数据,空闲到有效态时发送SSPCON10X30/同步串口使能空闲态为低,FOSC/4SSPIFCLEAR/清除SSPIF标志SD卡在SPI模式下数据都是以字节为单位进行传输的,SPI传输一字节的程序如下INT8USPI_READVOIDINT8URDBUFSSPBUF0WHILESSPIF0SSPIFCLEARRDBUFSSPBUFRETURNRDBUF发送一字节数据时SPI_WRITEINT8UWRDATA/WRDATA为要发送的数据,无返回值。接收一字节数据时SPI_READVOID/参数必须是0XFF,返回值是接收到的数据。采用SPRING的事务管理机制,让SPRING负责底层的事务管理,其核心代码如下422SD卡驱动SD存储卡的协议是种问答式的协议,主机发送命令,SD卡响应,主机与SD卡的各种通信都由主机控制,主机在对SD卡进行任何操作前都必须先要拉低SD卡的片选信号CS,然后由主机向SD卡发送命令,SD卡对主机发送的任何命令都要进行响应,不同的命令会有不同的响应。系统中SD卡的驱动主要包括SD卡的上电初始化过程以及对SD卡的读操作。SD卡初始化流程图如下图42所示。基于PIC单片机的数码相框18开始发送9个时钟周期发送复位命令CMD0进入SPI总线模式发送激活命令CMD1接收SD卡相应响应为0结束是否图42SD卡初始化流程图读SD卡流程图如下图43所示。开始SD卡初始化发送写命令CMD17接收512字节数据结束是否响应0XFE接收2个字节CRC图43读SD卡流程图基于PIC单片机的数码相框19SD卡从上电到对SD卡进行正确的读写操作之前需要一个初始化过程。主机检测到SD卡插入后,在发送任何命令前必须首先向SD卡发送74个时钟周期,以完成SD卡的上电过程。SD卡上电后会自动进入SD总线模式,在SD总线模式下向SD卡发送复位命令(CMD0),如果SD卡在接收复位命令过程中片选信号CS处于低电平状念,那么SD卡将进入SPI总线模式,否则,SD卡将工作在SD总线模式。SD卡在上电硬复位或接收到复位命令CMD0(软复位)后会进入空闲状态,在该状态下主枧必须不斯地向SD卡发送激活命令,并接收SD卡的响应,检查响应中的空闲位是否为0,如果为0,停止发送激活命令,如果为L,继续发送。空闲位为0表示SD卡己完成初始化过程,己准备好接收下一个命令,此时就可以读取SD卡的各寄存器了,然后再进行读、写等操作。SD卡在SPI总线模式下支持多块和单块读操作。多块读操作时,从指定位置开始读,直到SD卡收到一个停止命令才停止此次读操作。单块读操作时,数据块长度一般为512字节。SD卡初始化完成之后,主机发送命令CMDL7,若SD卡接收正确,输出响应命令字节0X00,接着输出数据块,数据块的第一个字节为0XFE,随后是512个字节的用户数据。423FAT16文件系统的读取(1)FAT文件系统简介文件系统是操作系统为了组织和管理文件,而在存储器(包括软硬盘和光盘等)上建立的一些数据结构的总和。众所周知,存储器在使用前,需要初始化,这个初始化的过程实质上就是建立文件系统的过程。FAT(FILEALLOCATIONTABLE)文件系统是微软在70年代末到80年代初发布的,由微软的MSDOS操作系统支持,在发展的过程中,出现了FATL2、FATL6、FAT32三个版本,其中FATL2文件系统由于一些致命的缺点,很早就被FATL6取代了,而FATL6和FAT32目前还在广泛使用。FATL6文件系统相对比较简单,但是管理的分区较小,可以管理的最大空间为2GB,本设计使用的SD卡,其容量为1GB,采用FATL6文件系统。(2)FATL6文件系统的基本结构FATL6文件系统按照存储顺序由引导扇区,FAT表1,FAT表2,根文件夹,数据区(存储其他文件夹及所有文件)5部分组成19,20,下面分别加以介绍。字节位移字段长度(字节)字段名0X003跳转指令0X038厂商标志和OS版本号0X0B25BPB0X2426扩展BPB0X3E448引导程序代码0X01FE4扇区结束标识符(0X55AA)基于PIC单片机的数码相框20表41FAT16分区上DBR中各部分的位置划分引导扇区DBRDBR,操作系统引导记录区,通常位于FAT卷第一个扇区,由跳转指令、厂商标志、操作系统版本号、BPB(BIOSPARAMETERBLOCK)、扩展BPB、OS引导程序、结束标志几部分组成,如表41所示。其中BPB部分包含有很多信息,比如每扇区字节数、每簇扇区数等。FAT文件分配表FAT表的作用是记录数据区簇链结构的。FAT文件系统最小可寻址存储单元称为扇区,通常每个扇区为512个字节。而“簇”是FAT文件系统分配存储空间的最小单位。簇的大小一般是2N(N为整数)个扇区的大小,最大不超过32KBYTE。簇的大小因存储介质、容量的不同而不同,实际大小等于BPB参数中每簇扇区数(SECPERCLUS)和每扇区字节数(BYTEPERSEC)的乘积。当创建一个很小的文件,即使只有一个字节,它占用的不是一个字节的空间,而是整个一簇。而对于大文件,要占用多个簇,这些簇并一定完整地存放在一个连续的区域,而往往会分成若干段,像链子一样存放,这种存储方式称为文件的链式存储。为了实现文件的链式存储,文件系统必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对文件的最后一簇,则要指名本簇无后继簇。这些都是由FAT表来保存的。FAT表实际上是一个数据表,以2个字节为单位,我们将这个单位称为FAT记录项,一个记录项对应数据区的一个簇,用以记录簇的有关信息诸如是否空,是否是坏簇,是否已经是某个文件的尾簇等。簇的使用情况不同,与之对应的记录项的取值就不同,见表42。FAT1记录项的取值对应簇的使用情况0000未分配的簇0002FFEF已分配的簇,表项中存放的是文件下一簇的簇号FFF0FFF6系统保留FFF7坏簇FFF8FFFF文件结束簇表42FAT16记录项的取值含义表43是一幅用WINHEX查看的实际的FATL6文件分配表。OFFSET0123456789ABCDEF00000400F8FFFFFFFFFF04000500FFFF0700080000000410FFFF000000000000000000000000000000000420000000000000000000000000000000000000043000000000000000000000000000000000基于PIC单片机的数码相框21表43FAT16文件分配表通常情况下前两个记录项(前4个字节)用作介质描述,从第2个记录项(从0计起)开始记录除根目录以外的其他文件及文件夹的簇链情况。相对偏移为0X40X5的是第2个记录项,它对应数据区的第二簇,后面的依次类推。第2个记录项取值为FFFF,表示存储在第2簇上的文件(目录)是个小文件,只占用1个簇便结束了。第3个记录项取值为0X0004,表示第3簇是一个文件的首簇,接下来的数据存放在第4簇,同理,再接下来是第5簇、第6簇,第6个记录项取值为FFFF,表示这是文件的最后一簇。综上,FAT表记录了磁盘数据文件的存储链表,它对于数据的读取而言是极其重要的。微软为其开发的FAT文件系统中的FAT表创建了一份备份,即FAT表2。FAT表2与FAT表1的内容通常是即时同步的,也就是说如果通过正常的系统读写对FAT表1做了更改,那么FAT表2也同样被更新。这样是为了安全起见,当一个FAT表因为一些原因而遭到破坏的时候,可以从另一个FAT表进行恢复。根目录区及目录项根目录区,由若干“目录登记项”简称“目录项”组成。根目录下的所有文件及子目录都有一个与之对应的目录项。该目录项记录着每个文件、目录的起始簇号以及文件的大小和创建时间等属性。定位文件位置时,根据根目录中文件的起始簇号,结合FAT表就可以知道文件在磁盘中的具体位置和大小了。每一个目录项由32个字节组成,其定义如表44。字节偏移(16进制)字节数定义0X00X78文件名0X80XA3扩展名0X00,读写0X01,对这个文件的写操作将会失败0X02,隐藏,正常模式显示该目录列表时不显示该文件0X04,系统文件0X08,卷标0X10,子目录0XB1文件属性0X20,归档0XC0X1510系统保留0S160X172文件的最近修改时间0X180X192文件的最近修改日期基于PIC单片机的数码相框220X1A0X1B2表示文件的首簇号0X1C0X1F4表示文件的长度表44FAT16目录项32个字节的定义说明对于短文件名,系统将文件名分成两部分进行存储,即主文件名扩展名。0X0偏移处的取值若为0X00H,表明目录项为空;若为0XE5H,表明目录项曾被使用,但对应的文件或文件夹己被删除。0XB的属性字段可以看作系统将0XB的一个字节分成8位,用其中的一位代表某种属性的有或无。这样,一个字节中的8位每位取不同的值就能反映各个属性的不同取值了。如00000101就表示这是个文件,属性是只读、系统。0XLA0XLB存放文件的首簇号,根据首簇号在FAT表中找到入口,然后再跟踪簇链直至簇尾,同时用0XLC0XLF处字节判定有效性。就可以完全无误的读取文件了。FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,即普通子目录的寻址过程也是通过其父目录中的目录项来指定的,与数据文件(指非目录文件)不同的是目录项偏移0XB的第4位置1,而数据文件为0。普通子目录的组织形式与根目录区相同,只是有两个特殊的目录项位于最前面,其文件名分别“和“”,起始地址分别指向当前目录和上级目录。数据区FATL6文件系统从根目录之后开始以簇为单位进行数据的存储,所有子目录及文件都存储在数据区中。对于第一个簇,系统并不编号为第0簇或第1簇,而是编号为第2簇,也就是说数据区顺序上的第1簇其编号为2,与FAT记录项对应。(3)FATL6文件系统的读取过程读取根目录下文件的流程图如图44所示,可分为以下几个步骤基于PIC单片机的数码相框23开始查找根目录文件存在文件的起始簇号查找FAT表并按簇序找到所有簇读取簇文件读取完成出错NY图44读取文件流程图读取BPB参数,为后面的工作做准备。(通常将DBR所在的扇区称为逻辑0扇区,后面提到的扇区号,都是相对于逻辑0扇区的偏移量。逻辑扇区与物理扇区之间的转换关系可以利用WINHEX查看,本设计中选用的SD卡,其物理扇区号逻辑扇区号249。)程序中定义描述DBR的结构体为TYPEDEFSTRUCTBOOT_SECTOR_U8BS_JMPBOOT3/跳转指令CHARBS_OEMNAME8/厂商标志和OS版本号_U8BPB_BYTEPERSEC2/每扇区字节数_U8BPB_SECPERCLUS/每簇扇区数_U16BPB_RSVDSECCNT/保留扇区数_U8BPB_NUMFATS/FAT表的个数_U8BPB_ROOTENTCNT2/根目录中的目录项数_U8BPB_TOTSECL62/总扇区数_U8BPB_MEDIA/有关存储介质的信息_U16BPB_FATSZL6/FAT表所占的扇区数_U16BPB_SECPERTRK/每磁道扇区数_U16BPB_NUMHEADS/磁头数_U32BPB_HIDDSEE/该分区上引导扇区之前的扇区数_U32BPB_TOTSEC32/如果TOTSECL6为零,此域表示总扇区数_U8BS_DRVNUM/物理驱动器号_U8BS_RESERVEDL/保留_U8BS_BOOTSIG/扩展引导标记_U8BS_VOLID4/卷标序列号CHARBS_VOLAB11/磁盘卷标基于PIC单片机的数码相框24CHARBS_FILSYSTYPE9/文件系统类型BOOT_SECTOR根据要读取文件的文件名查找根目录,得到要读取文件的起始簇号等信息,如图45所示。开始将根目录数据块读入缓冲区顺序查找目录项读取文件名查找成功NY目录项正常使用文件名是否匹配YN图45查找根目录下文件流程图在查找根目录之前,需要计算根目录的起始扇区。根据DBR中的参数信息,根目录的起始扇区BPB_RSVDSECCNTFATSZL6NUMFATS。程序中定义描述目录项的结构体为TYPEDEFSTRUCTDIRENTRYCHARNAME8/文件名CHAREXT3/扩展名_U8ATTR/属性位_U8LCASE10/保留_U16TIME/最近修改时间_U16DATE/最近修改同期_U16START/文件的首簇号_U32SIZE/文件大小DIR_ENTRY根据起始簇号,查找FAT表,得到文件存储的簇链情况。根据簇号链接情况,依次读出数据。对于每一个簇,根据簇号先计算出簇的首地址,然后按顺序读取BPB_SECPERCLUS个扇区的数据。给一个合法的簇号N,该簇的第一个扇区号N2BPB_SECPERCLUS数据区的起始扇区;数据区的起始扇区根目录的起始扇区根目录所占的扇区;根目录所占的扇区数BPB_ROOTENTCNT2基于PIC单片机的数码相框2532/BPB_BYTEPERSEC。43图像文件解码模块BMP图像的显示比较简单,只要按照BMP文件的格式读取文件头,然后由文件头提供的信息读取出RGB数据送显示屏显示即可。VOIDBMP_RGB24VOIDINTI,JINTA,BFORI0I262I/将线性数据转换成2维数据,空出54个字节FORJ0J960JTEMPBUFFER_IMGIJTEMPBUFFERI960J54FORI0I262I/将GBR调整成RGBFORJ0J320JATEMPBUFFER_IMGIJ3BTEMPBUFFER_IMGIJ32TEMPBUFFER_IMGIJ3BTEMPBUFFER_IMGIJ32AFORI0I262I/数据扫描方式调整FORJ0J960JDISPLAYBUFFERIJTEMPBUFFER_IMG261IJ44图像显示模块441图像显示程序流程图像显示程序流程如下图46所示。基于PIC单片机的数码相框26开始执行TFTLCD驱动清屏写入图像数据流结束图46图像显示流程图442图像数据写入程序TFTLCD程序数据写入信号RS为0时,数据口写入命令,RS为1时写入数据。写命令函数如下VOIDWRITE_CMDINT8UDH,INT8UDLCS0RS0DATAPORTDHRW0RW1DATAPORTDLRW0RW1CS1写命令函数如下VOIDWRITE_DATAINT8UDH,INT8UDLCS0RS1DATAPORTDHRW0RW1DATAPORTDLRW0RW1基于PIC单片机的数码相框27CS1定义坐标程序如下STATICVOIDLCD_SETPOSUNSIGNEDINTX0,UNSIGNEDINTX1,UNSIGNEDINTY0,UNSIGNEDINTY1WRITE_CMD_DATAWINDOW_XADDR_START,X0WRITE_CMD_DATAWINDOW_XADDR_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省平凉市灵台县第二批城镇公益性岗位人员招聘114人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025内蒙古恒正实业集团有限公司招聘10名工作人员模拟试卷及完整答案详解
- 2025北京市海淀区中关村第二小学科学城北区分校招聘考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025包头白云鄂博矿区就业困难人员公益性岗位招聘考前自测高频考点模拟试题附答案详解(突破训练)
- 兽药从业人员考试题及答案解析
- 2025贵州三都水族自治县人民医院(医共体)总院第二次招聘合同制工作人员51人考前自测高频考点模拟试题及完整答案详解一套
- 2025湖南长沙人才集团有限公司外包人员及见习生招聘模拟试卷参考答案详解
- 2025福建厦门红宝石投资管理有限公司社会招聘工程管理岗1人考前自测高频考点模拟试题及一套参考答案详解
- 2025年宜昌市消防救援支队政府专职消防员招聘48人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025广东官洲街道环监所招聘考前自测高频考点模拟试题及答案详解(全优)
- 2025年监理工程师职业能力测试卷:监理工程师专业基础知识自测题
- 知识图谱在护理学领域的新应用与发展
- 智能化农业装备与设备
- 维修钳工安全培训内容
- CVC堵管的处理及预防
- 2025高考复习必背译林版高中英语全七册单词表
- 2025年人教新课标高一地理上册月考试卷
- 屋顶防水施工方案
- 江苏省南京市协同体七校2024-2025学年高三上学期期中联合考试英语试题含答案
- 2024-2025学年广东省深圳市宝安区七校联考九年级(上)期中历史试卷
- 国家开放大学《统计学》形考任务1-4参考答案
评论
0/150
提交评论