基于ARM的嵌入式电子相框系统汇总.docx

上传人:b****7 文档编号:9577653 上传时间:2023-02-05 格式:DOCX 页数:23 大小:513.78KB
下载 相关 举报
基于ARM的嵌入式电子相框系统汇总.docx_第1页
第1页 / 共23页
基于ARM的嵌入式电子相框系统汇总.docx_第2页
第2页 / 共23页
基于ARM的嵌入式电子相框系统汇总.docx_第3页
第3页 / 共23页
基于ARM的嵌入式电子相框系统汇总.docx_第4页
第4页 / 共23页
基于ARM的嵌入式电子相框系统汇总.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于ARM的嵌入式电子相框系统汇总.docx

《基于ARM的嵌入式电子相框系统汇总.docx》由会员分享,可在线阅读,更多相关《基于ARM的嵌入式电子相框系统汇总.docx(23页珍藏版)》请在冰豆网上搜索。

基于ARM的嵌入式电子相框系统汇总.docx

基于ARM的嵌入式电子相框系统汇总

华南师范大学

嵌入式系统

课程设计报告

设计题目:

基于ARM的嵌入式的电子相框系统

专业班级电路与系统

学院物理与电信工程学院

指导教师熊爱民

姓名

学号

2015年12月25日

基于ARM的嵌入式电子相框系统

 

摘要:

本设计采用搭载飞思卡尔的MCIMX28x芯片的Esayarm-i.max283A开发板作为目标机,使用安装Windows7的PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是Ubuntu作为开发环境。

并在目标机上移植了u-boot,linux内核,根文件系统,构成一个嵌入式linux操作系统,该系统的最大特点就是,可以根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,主要用途就是对软硬件资源的调度与分配。

 

 在搭载了linux嵌入式系统的目标开发板上,本文设计了一个界面应用程序,该应用程序主要功能为:

用户通过对界面的操作就可对数码相框中图片的浏览与管理,以及进行幻灯片播放功能,实现个人图片的掌上管理。

关键词:

linux嵌入式系统;周立功开发板;虚拟机环境;移植。

 

目录

1.6

1设计内容7

1.1设计目的7

1.2设计意义7

1.3电子相框的设计任务和要求8

2.周立功开发板的介绍9

2.1Esayarm-i.max283A开发板9

2.1.1Freescale的MCIMX28x处理器10

2.1.2SDRAM存储系统10

2.1.3FLASH存储系统11

2.2基于Esayarm-i.max283A的开发环境的搭建12

2.2.1搭建嵌入式交叉开发环境12

3Linux内核14

3.1Linux系统简介14

3.2Linux-2.6.29内核移植到Esayarm-i.max283A17

4电子相框的功能模块以及程序框架17

4.1输入程序框架解析17

4.2显示界面的功能总框架18

4.3电子相框的主流程图20

4.4程序模块介绍21

4.4.1页面规划模块21

4.4.2调试模块22

4.4.3图片渲染解析模块22

4.4.4字符解码模块23

4.4.5显示模块24

5电子相框的相关驱动移植24

5.1关于LCD驱动的配置24

5.2关于触摸屏驱动的配置25

6电子相框的效果演示及功能测试25

6.1电子相框性能分析方法简述25

6.2电子相框的效果演示以及功能描述26

7设计体会26

8参考文献27

 

1设计内容

1.1设计目的

1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。

2、了解周立功开发板的硬件环境和丰富的接口资源,掌握对周立功开发板进行Linux内核的移植,裁剪,配置和编译。

3、利用周立功开发板,通过软硬件设计实现进行一个可以浏览与管理图片功能的电子相框。

1.2设计意义

嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[1]。

它一般由以下几部分组成:

嵌入式微处理器、外围硬件设备、嵌入式操作系统。

嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。

所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。

基于ARM的嵌入式系统有诸多优点是传统电子系统无法比拟的,利用嵌入式开发本设计可以开发出具有良好的人机交互界面的实时系统,同时嵌入式系统最大的优点就是软硬件可裁剪,依据自己系统的需要可以进行灵活的软硬件设计开发,而且基于ARM的嵌入式系统开发成本低,而且系统稳定性高,功耗低,体积小,并且能够应用于多种应用场合[2]。

另外,作为一个消费类电子产品,电子相框的设计必须考虑以下因素:

1、用户接口友好、操作方便。

2、系统兼容性强。

数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。

3、稳定可靠。

作为数码相机的一种附属产品,电子相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。

电子相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。

1.3电子相框的设计任务和要求

本设计的电子相框系统,实现了图片的查看,图片轮播功能的系统设计,该电子相框系统依靠ARM处理器和嵌入式Linux操作系统作为系统平台,同时结合界面应用程序,通过对触摸屏的操作,在LCD屏幕上显示图谱按,实现了数码相框系统与外界的信息交流,从而在目标板上实现电子相框的基本功能。

如图1.1所示。

图1.1电子相框系统

 

1、周立功开发板的介绍

2.1Esayarm-i.max283A开发板

Esayarm-i.max283A是一款真正低价实用的ARM9开发板,EasyARM-i.MX283A采用Freescale的MCIMX28x处理器(基于ARM926EJ-S内核),具有丰富的硬件资源,提供了完善的Linux软件支持包、开发工具和丰富的实用范例,大大降低了Linux学习门槛和开发难度[3],可以帮助用户在短期内实现产品功能验证和开发。

EasyARM-i.MX283A的基本接口分布如图2.1所示。

图2.1EasyARM-i.MX283A开发板

其板载64MSDRAM、128MBSLCNANDFLASH和2MNorFlash,足够本系统使用。

该开发板接口十分丰富,含:

●1个主USB接口,1个从USB接口

●1个100M以太网RJ-45口(采用DM9000网卡)

●1个SD/MMC卡存储接口,3个串行口

●3个串口,COM0为RS232DB9接口,COM2和COM3为2.0mm间距

●标转JTAG接口(2.0mm间距)

●1路立体声音频输出接口(标准3.5mm接口),1路麦克风接口

●引出CPU内部全部摄像头信号引脚。

2.1.1Freescale的MCIMX28x处理器

MCIMX28x是飞思卡尔公司的一款基于ARM926EJ-S内核的高性能、低功耗、高集成度的32位微处理器,主频最高可达454MHz,具有16KB指令Cache和16KB数据Cache,主要特征如下:

●1.2V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电

●LCD控制器(最大支持4K色STN和256K色TFT),提供1通道LCD专用DMA

●4通道DMA,并有外部请求引脚

●3通道UART

●2通道SPI

●1通道IIC-BUS接口(多主支持)

●兼容SD主接口协议1.0板和MMC卡2.11兼容版

●2端USB主机/1端口USB设备

●4通道PWM定时器和1通道内部定时器/看门狗定时器

●8通道10bitADC和触摸屏接口

●具有日历功能的RTC

●130通用I/O口和24通道外部中断源

●具有普通、慢速、空闲和掉电模式

●具有PLL片上时钟发生器

2.1.2SDRAM存储系统

Esayarm-i.max283A使用了两片外接的32Mbytes总共64Mbytes的SDRAM芯片(型号为:

HY57V561620FTP/MT48LC16M16A2),一般称之为内存,它们并接在一起形成32-bit的总线数据宽度,这样可以增加访问的速度;因为是并接,故它们都使用了nGCS6作为片选,它们的物理起始地址为0x30000000,下面是摘自Esayarm-i.max283A原理图中的SDRAM部分原理图。

图2.2SDRAM存储系统原理图

2.1.3FLASH存储系统

Esayarm-i.max283A具备两种Flash,一种是NorFlash,型号为SST39VF1601(AMD29LV160DB与此引脚兼容),大小为2Mbyte;另一种是NandFlash,型号为K9F1G08,大小为128M(旧版本为K9F1208,大小为64Mbyte)。

S3C2440支持这两种Flash启动系统,通过拨动开关S2,可以选择从NOR还是从NAND启动系统。

NandFlash不具有地址线,它有专门的控制接口与CPU相连,数据总线为8-bit,但这并不意味着NandFlash读写数据会很慢。

大部分的优盘或者SD卡等都是NandFlash制成的设备[4]。

从下面的原理图可以看出,NorFlash采用了A1-A22总共22条地址总线和16条数据总线与CPU连接,地址是从A1开始的,这意味着它每次最小的读写单位是2-byte,因此根据原理图,该设计总共可以兼容支持最大8Mbyte的NorFlash,实际开发板上只用了A1-A20条地址线,因为与A21、A22相连的SST39V1601的相应引脚是悬空的。

图2.3Flash存储系统原理图

2.2基于Esayarm-i.max283A的开发环境的搭建

2.2.1搭建嵌入式交叉开发环境

由于嵌入式系统资源匮乏,一般不能像PC一样安装本地编译器和调试器,不能在本地编写、编译和调试自身运行的程序,而需借助其它系统如PC来完成这些工作,这样的系统通常被称为宿主机。

 

本设计宿主机主要是使用装有ubuntu的Linux操作系统的PC机,而目标机就是Esayarm-i.max283A开发板。

组成架构如图2.6所示。

 

图2.6嵌入式开发交叉环境构架

所谓的交叉编译,就是在宿主机平台上使用某种特定的交叉编译器,为某种与宿主机不同平台的目标系统编译程序,得到的程序在目标系统上运行而非在宿主机本地运行,本设计使用的交叉编译器为arm-linux-gnueabi-gcc,具体安装步骤如下:

 

(1) 解压交叉编译工具:

 运行命令  

tarxjvf gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2

(2) 在完成解压后,如果不指定交叉编译器的完整路径,系统无法调用交叉编译器,如果不清楚交叉编译器安装的目录,可以看rm-linux-gnueabi-*这些文件到底在哪个目录。

具体全路径引用的方法为:

CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-linux-gnueabi/arm-linux-gnueabi-makecross_COMPILE=$CCARCH=armuimage

2.2.2安装SSH服务器

Ssh是Secureshell的缩写,是建立在应用层和传输层的安全协议,能够有效防止远程管理过程中的信息泄露问题,可以远程进行文件传输,本实验使用的是windows系统上安装的Ubuntu的虚拟机,这时就可以将其视为远程系统。

(1)在虚拟机上安装ssh服务器,具体的方法是在Linux主机输入下面命令:

Sudoapt-getinstallopenssh-server

(2)测试ssh服务器,在虚拟机里,VMware虚拟网卡设置NAT模式的话,Linux系统网卡设置为动态IP即可;如果虚拟网卡设置为桥接模式,则需要为Linux设置一个与windows系统同一个网段的静态IP地址。

也可以在终端使用ifconfig命令进行设置:

sudoifconfigeth0IP地址,只有知道了Linux主机的IP地址后才能进行ssh连接,如果不能确定IP地址,可以打开终端,用ifconfig命令进行查看和确认。

(3)在Windows系统下下载并安装一个sshsecurefiletransferclient软件,这时就实现了Windows和虚拟机的Ubuntu进行文件传输。

3Linux内核

3.1Linux系统简介

Linux是最受欢迎的自由电脑操作系统内核。

它是一个用C语言写成,符合POSIX标准的类Unix操作系统。

Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。

该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

 技术上说Linux是一个内核。

“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。

一个内核不是一套完整的操作系统。

一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。

图3.1Linux系统架构

由上图可知Linux系统构架是由用户空间和内核空间两部分组成,之所以分为两部分主要是为了实现系统稳定性。

内核空间和用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够实现从用户空间到内核空间的转移。

Linux内核的主要模块(或组件)分以下几个部分:

存储管理、CPU和进程管理、虚拟文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

具体如图3.2所示:

图3.2Linux内核架构

●系统调用接口:

SCI层为用户提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。

 

●进程管理:

主要是实现了进程的创建,进程的停止,并控制进程间的相互通信,进程管理还包括进程如何共享CPU,即进程的调度。

  

●内存管理:

主要是实现多个进程安全有序地共享内存。

  

●网络协议栈:

主要为Linux系统提供了丰富的网络协议。

 

●虚拟文件系统:

VFS隐藏了各种文件系统的细节,为文件操作提供统一的接口,如图3.3所示。

 

●设备驱动:

Linux内核中很多代码都在设备驱动中,它们控制特定的硬件设备。

图3.3虚拟文件系统提供同一文件接口

3.2Linux-2.6.29内核移植到Esayarm-i.max283A

(1) 首先到www.kernel.org下载一套没有经过移植的linux-2.6.29源代码,并解压到相关目录下,进入目录linux-2.6.29; 

(2) 对内核根目录下的Makefile文件进行相应修改,修改CPU类型为arm,编译工具改为arm-linux-,ARCH ?

= arm,CROSS_COMPILE ?

=arm-linux-; 

(3) 修改时钟频率:

 

#vi arch/arm/mach-s3c2440/mach-smdk2440.cs3c24xx_init_clocks(12000000); 

(4) 修改对Nand的分区信息。

要让内核知道Nand Flash的分区信息,设置成跟bootloader一致; 

(5) 添加DM9000网卡驱动和其他设备驱动; 

(6) 用MCIMX28x的默认配置文件来进行基础配置然后使用make menuconfig来详细配置; 

(7) 编译内核。

4电子相框的功能模块以及程序框架

程序由输入和界面显示两大程序块构成,输入进程在程序运行时读取触摸屏的数据,主控线程将得到的事件通过socket发出处理器进行处理。

显示进程主要包括:

放大线程、缩小线程、上一幅图片线程、下一幅图片线程、当前图片线程、主控线程。

4.1输入程序框架解析

输入的功能大体可分为模式输入和图片操作输入,然后输入进程得到触摸屏数据,用socket读取内存的DMA进行通讯。

模式输入程序是要实现电子相框的智能化,以及能对电子相框系统中图片进行管理,这是需要对系统中的头文件以及系统模式的选择进行操作,简单来说,就是要把用户输入信息告诉系统,模式输入模块程序定义了这个功能。

模式输入模块程序之间的调用关系如图4.1所示。

图4.1输入模式程序框架图

4.2显示界面的功能总框架

本文未使用QT图形用户界面应用程序开发框架,而是直接使用C语言编写出界面程序。

界面功能总框架如图4.2所示。

图4.2功能总框架

界面功能说明:

(1)主界面:

在程序的一开始LCD显示界面上,有三种模式给用户选择,分别是浏览模式,连播模式,设置模式。

根据操作者点击的模式图标将会进入对应的模式。

(2)文件浏览模式界面:

若点击浏览模式,则进入文件浏览界面,可以看到开发板搭载的根文件系统搭载全部目录,以及系统中的图片,在文件浏览模式中,可以选择的操作方式有:

向上,选择,上一页,下一页。

(3)图片浏览模式界面:

点击图片就可以进入图片浏览模式,在该模式中可以选择的操作有:

返回,放大,缩小,上一页,下一页,连播模式。

(4)设置模式界面,点击设置图标,就可以进入设置模式,设置模式主要的功能是选择某个目录,以及该目录中所有支持的格式的图片。

(5)设置间隔时间:

进入模式后,可以通过点击上下箭头进行设置连播图片显示的时间间隔,即每秒显示下一张图片。

4.3电子相框的主流程图

当程序启动后,输入进程会调用触摸屏驱动tslib来操作和读取触摸屏,输入进程会将数据送至显示进程进行显示,显示分为图片显示和文字显示,图片显示调用libjpeg库,而文字显示则会调用freetype库,它们调用的则由render.c渲染程序实现。

具体的实现的主流程如图4.3所示:

图4.3电子相框主流程

主流程解析:

(1)初始化调试通道:

本设计可以通过RS232标准串口连接到Windows系统下的超级终端TERATERMPRO打印初始化信息。

(2)分配5块物理内存:

为了更好的用户体验,就应该加快操作的反应速度,所以本设计事先在内存中准备好了下一步要执行的数据,这5块内存分别存储的数据为:

放大图片、缩小图片、下一幅图片、上一幅图片、当前图片。

这5块内存通过DMA与LCD的显存进行快速传输数据。

所以分配这5块内存是本设计的有点所在。

(3)输入设备:

本课程设计的输入设备为电阻触摸屏,输入进程通过调用tslib驱动来读取触摸屏数据。

(4)文字字符库:

界面文字的显示通过render.c渲染程序调用freetype库来实现,freetype库是一个完全免费开源可移植的字体引擎。

(5)图片渲染模块:

界面采用的显示格式是BMP,本设计浏览的图片则只支持JPEG格式,JPEG是一种压缩图片的格式,显示进程通过调用libjpeg来实现图片的显示。

(6)主界面:

在minicom上运行本设计的最终的可执行程序,运行后会出现主界面,主界面提供三种模式,分别是:

浏览模式、连播模式、设置模式。

根据用户的操作,会分别进入对应的模式。

(7)显示设备:

本课程设计是周立功开发板自带的4.3寸LCD显示屏。

4.4程序模块介绍

本设计采用模块化的思想,将程序分割成不同的功能模块,便于程序的编写,这也是现在最普遍的变成思想,称为面向对象的编程思想。

本设计大体分为的程序块为:

页面规划模块、调试模块、图片渲染模块、字符解码模块、输入模式模块、显示模块。

4.4.1页面规划模块

该模块是由page_manager.c分别调用各子程序模块,程序运行后,由page_manager.c调用main_page.c进行主界面的显示,主界面分别有浏览模式、连播模式、设置模式这三种模式,操作者点击不同的模式,会调用这个目录下不同的子程序,调用的关系如图4.4.1所示。

图4.4.1页面规划模块程序

4.4.2调试模块

在执行程序时,需要用到超级终端TERATERMPRO进行操作目标板,在对程序进行调试,该minicom超级终端会输出预先设置好的字符。

改目录下程序模块之间的调用关系如图4.4.2所示。

图4.4.2调试模块程序

4.4.3图片渲染解析模块

图片渲染模块的功能是对图片格式的解析和对图片大小的草做,图片格式分为bmp和JPEG,bmp是页面的格式,jpeg则为浏览的图片支持的格式,这两种格式的选择则由picfrm_manager.c完成,图片的大小则由operation.c来完成。

具体的图片渲染解析模块则如图4.4.3所示:

图4.4.3图片渲染解析模块程序

4.4.4字符解码模块

字符编码的规则是:

英文字符用ascaii码表示,中文简体用gbk表示,中文繁体用big5表示,全世界的字符复杂多样,为了统一又出现了Unicode码,但由于Unicode用3个字节表示每一个字符,这样造成了资源的浪费,比如英文字符用一个字符即可以表示,所以又出现了UTF-8、UTF-16LE、UTF-16BE等表示方法既克服了资源浪费的问题又具有唯一性的保障。

本程序的之间的调用关系如图4.4.4所示:

图4.4.4字符解码模块

4.4.5显示模块

显示线程从内存中读取送至LCD的显存中,输入线程将数据实时更新至内存中。

其显示模块目录中的各个程序调用关系如图4.4.5所示:

5电子相框的相关驱动移植

本设计用到的主要驱动有:

LCD显示驱动以及触摸屏驱动,下面详细的解释相关如何进行配置。

5.1关于LCD驱动的配置

(1)关于LCD的配置文件:

在该开发板提供的LCD配置文件里的添加如下内容:

(A)配置好LCD控制寄存器

(B)配置LCD类型为TFT

(C)设置LCD的宽度和长度

(D)配置好LCD的分辨率以及bpp参数

(2)初始化函数中添加LCD初始化功能:

Staticvoid_initsmdk2410_init(void)

{

MCIMX28x_fb_set_platdata(&smdk2410_fb_info);

}

(3)配置内核菜单,是的内核支持framebuffer

在makemenuconfig中选择:

<*>supportforframebufferdevices

(4)编译

5.2关于触摸屏驱动的配置

对于触摸屏驱动的设计,本文采用的是基于Linux本身自带的输入子系统方式设计的,由于设计的代码比较繁杂,所以本文列出其主要的设计方法,主要的设计方法如下:

(1)设置输入结果input_dev:

(A)通过设置structinput_dev的evdev数组表示能产生key和ABS类事件。

(B)设置产生key和ABS类事件里面的触摸按键事件,X/Y绝对位移,绝对位移压力事件。

(2)硬件操作:

(A)ioremap寄存器

(B)设置AD分频系数和ADCDLY

(C)注册INT_TS和AD中断

6电子相框的效果演示及功能测试

6.1电子相框性能分析方法简述

本设计是一个能够读取指定位置照片的电子相框,选择自动浏览模式时能够自动播放该目录下的所有照片,选择手动模式能读取操作者在触摸屏上发出的指令,是否能够流畅显示照片,是否能显示主页面和子页面,便可判断该电子相框的性能。

6.2电子相框的效果演示以及功能描述

(1)jpeg图片解析测试

Jpeg是一种压缩图片格式,该图片格式具有图片质量好、占用空间小的优点,被广泛采用在图像处理领域,该格式的图片用libjpeg库的函数进行解析,libjpeg是一种开源的库,能够在网络上直接下载,本设计播放的图片格式全部采用jpeg格式,如图6.2.2所示

 

(2)屏幕点击测试:

上电之后进入6.2.3上电之后的主界面,点击相应的图标,应进入相应的模式,如图6.2.4是点击的浏览模式.

图6.2.3上电之后的主界面

 

图6.2.4浏览模式

 

7设计体会

本文设计了一个基

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1