微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > LPC1114的简易数码相框设计

LPC1114的简易数码相框设计

时间:01-11 来源:互联网 点击:



2 软件设计
2.1 TFT彩屏模块驱动
彩屏模块程序可以分为两大类:一类是内部函数,主要由复位函数、写数据函数、写寄存嚣函数、光标设置函数、显示窗口设置函数、清屏函数等组成,供TFT模块内部驱动程序调用;另一类为外部函数,主要由TFT初始化、背光控制、显示测试、写点函数等组成,专门提供用户应用程序调用。
2.2 文件系统FatFs的移植
学习SPI总线时已经介绍了读/写SD卡的方法,对于SD卡的读写操作都是以扇区为基本单位进行的,但是,系统又是如何读取的呢?又是怎么知道文件存放在哪些扇区呢?本设计采用文件系统FatFs的方法对存储器空间进行组织和分配,并对存入的文件进行保护和检索。具体来说,也就是它负责为用户建立文件、存入、读出、修改、转储以及控制文件的存取,当用户不再使用的时候撤销文件。
FatFs文件系统的结构主要分为3个层;磁盘I/O操作、FatFs模块和应用层。前两层分别是移植文件系统需要编写的驱动函数层和文件系统操作层,而最后一层就是用户操作层,当文件系统移植完成后,用户可以根据自己的需要编写应用程序,操作磁盘。
FatFs作为一种开源项目具有容易移植、代码小、占用资源少、支持RTOS和多扇区读/写等特点,非常适合微处理器使用。要移植FatFs文件系统,首先需要到FatFs文件系统的官方网站,下载文件系统源代码。设计中使用的版本是FatFs R0.08b,具体移植步骤介绍如下:
①解压下载的文件系统,可以看到一共有两个文件夹:一个是doe,包含FatFs的描述、特性说明等;另一个是src,可以存放所有的源代码信息,一共有8个文件。
②在工程下新建一个文件夹,存放文件系统源代码。
③把源代码都添加到相应的工程中,首先根据需要修改数据类型,在integer.h中修改适合的数据类型。
④配置文件系统,可以根据字节的需要进行配置,从而减小代码和内存空间。
⑤打开diskio.c文件,编写相应的函数,如初始化磁盘函数、磁盘状态函数、读/写扇区函数、磁盘相关功能控制函数等。
⑥最后,需要在ff.c中添加函数get_fattime,此函数可获取操作时间,便于在文件属性中填写相应的创建、修改、访问时间。
2. 3 BMP位图显示
BMP是Windows操作系统中的标准图像文件格式,应用非常广泛。它采用位映射存储格式,除了图像深度可选择以外,不采用其他任何压缩,因此,BMP占用的空间很大。BMP文件的图像深度可选择1位、4位、8位、16位、32位等。BMP文件存储数据时,图像的扫描方式是按照从左到右、从下到上的顺序。典型的BMP图像文件由4部分组成,如表1所列。


位图显示是通过函数参数传递文件名,通过文件名读取文件数据。读取位图数据时,先读取54字节的头信息,再根据头信息判断是否为位图图像。如果不是位图,直接返回不再读取数据;如果是位图,再判断是16位还是24位,并循环读取数据信息,经过数据转换后发送到TFT进行显示。
读取位图文件需要调用FatFs文件系统的API函数,在读取文件时需要注意以下3点:
①首先要f_mounth函数注册工作区,在文件读取完成后,再调用这个函数来注销工作区;
②打开文件需要调用的f_open函数,当文件读取完成后,再调用f_close函数关闭文件,所以这两个函数必须成对出现;
③在读取文件时,可以由f_read函数返回的结果和次函数的读取结果来判断数据是否读取完成。
2.4 系统整体工作流程
图6为数码相框软件流程图。系统上电后先按顺序初始化系统时钟、SSPO总线、SD卡以及TFT,之后循环扫描显示数码照片。代码编写过程中完全实现结构化,只需要直接调用数码相框,扫描显示函数BmpFileSean()即可实现其功能。



结语
数码相框是基于NXP公司推出的Cortex—M0内核LPC1100系列ARM芯片LPC1114设计的,主要从硬件和软件两个方面介绍了一种简易数码相框的制作过程。硬件电路较为简单,软件方面通过FatFs文件系统的移植,能够很好地完成BMP图片的循环播放。经试验,LPC1114微控制器能够稳定地实现数码相框的基本功能,实物效果如图7所示。


对于一些特殊效果尚无法实现,再加上除了BMP格式外,都要涉及解码问题,而使用微处理器软件解码非常缓慢的。对于这些不完善的地方在后续的研究中将逐步解决。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top