ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:513.78KB ,
资源ID:9577653      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9577653.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM的嵌入式电子相框系统汇总.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于ARM的嵌入式电子相框系统汇总华南师范大学嵌入式系统课程设计报告 设计题目:基于ARM的嵌入式的电子相框系统专业班级 电路与系统 学 院 物理与电信工程学院 指导教师 熊爱民 姓 名 学 号 2015年 12 月25日 基于ARM的嵌入式电子相框系统摘要:本设计采用搭载飞思卡尔的MCIMX28x 芯片的Esayarm-i.max283A开发板作为目标机,使用安装Windows 7的PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是Ubuntu作为开发环境。并在目标机上移植了u-boot,linux内核,根文件系统,构成一个嵌入式linux操作系统,该系统

2、的最大特点就是,可以根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,主要用途就是对软硬件资源的调度与分配。 在搭载了linux嵌入式系统的目标开发板上,本文设计了一个界面应用程序,该应用程序主要功能为:用户通过对界面的操作就可对数码相框中图片的浏览与管理,以及进行幻灯片播放功能,实现个人图片的掌上管理。关键词:linux嵌入式系统;周立功开发板;虚拟机环境;移植。 目 录1. 61设计内容 71.1 设计目的 71.2 设计意义 71.3电子相框的设计任务和要求 82. 周立功开发板的介绍 92.1Esayarm-i.max283A开发板 92.1.1 Freesc

3、ale 的MCIMX28x 处理器 102.1.2SDRAM存储系统 102.1.3 FLASH 存储系统 112.2基于Esayarm-i.max283A的开发环境的搭建 122.2.1搭建嵌入式交叉开发环境 123 Linux 内核 143.1 Linux系统简介 143.2 Linux-2.6.29内核移植到Esayarm-i.max283A 174 电子相框的功能模块以及程序框架 174.1输入程序框架解析 174.2显示界面的功能总框架 184.3电子相框的主流程图 204.4程序模块介绍 214.4.1页面规划模块 214.4.2调试模块 224.4.3图片渲染解析模块 224.4

4、.4字符解码模块 234.4.5显示模块 245电子相框的相关驱动移植 245.1 关于LCD驱动的配置 245.2 关于触摸屏驱动的配置 256电子相框的效果演示及功能测试 256.1 电子相框性能分析方法简述 256.2 电子相框的效果演示以及功能描述 267设计体会 268参考文献 271设计内容1.1设计目的1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。2、了解周立功开发板的硬件环境和丰富的接口资源,掌握对周立功开发板进行Linux内核的移植,裁剪,配置和编译。3、利用周立功开发板,通过软硬件设计实现进行一个可以浏览与管理

5、图片功能的电子相框。1.2设计意义嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统1。它一般由以下几部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。 基于ARM的嵌入式系统有诸多优点是传统电子系统无法比拟的,利用嵌入式开发本设计可以开发出具有良好的人机交互界面的实时系统,同时嵌入式系统最大的优点就是软硬件可裁剪,依据自

6、己系统的需要可以进行灵活的软硬件设计开发,而且基于ARM的嵌入式系统开发成本低,而且系统稳定性高,功耗低,体积小,并且能够应用于多种应用场合2。另外,作为一个消费类电子产品,电子相框的设计必须考虑以下因素:1、用户接口友好、操作方便。2、系统兼容性强。数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。3、稳定可靠。作为数码相机的一种附属产品,电子相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。电子相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。1.3电子相框的设计任务和要求 本设计的电子相框系统,实现了图片的查看,图片轮

7、播功能的系统设计,该电子相框系统依靠ARM处理器和嵌入式Linux操作系统作为系统平台,同时结合界面应用程序,通过对触摸屏的操作,在LCD屏幕上显示图谱按,实现了数码相框系统与外界的信息交流,从而在目标板上实现电子相框的基本功能。如图1.1所示。 图1.1 电子相框系统1、周立功开发板的介绍2.1 Esayarm-i.max283A开发板Esayarm-i.max283A是一款真正低价实用的ARM9开发板,EasyARM-i.MX283A 采用Freescale 的MCIMX28x 处理器(基于ARM926EJ-S 内核),具有丰富的硬件资源,提供了完善的Linux 软件支持包、开发工具和丰富

8、的实用范例,大大降低了Linux 学习门槛和开发难度3,可以帮助用户在短期内实现产品功能验证和开发。EasyARM -i.MX283A 的基本接口分布如图2.1 所示。 图 2.1 EasyARM -i.MX283A开发板 其板载64M SDRAM、128MB SLC NAND FLASH和2M Nor Flash,足够本系统使用。该开发板接口十分丰富,含: 1个主USB接口,1个从USB接口 1个100M以太网RJ-45口(采用DM9000网卡) 1个SD/MMC卡存储接口,3个串行口 3个串口,COM0为RS232 DB9接口,COM2和COM3为2.0mm间距 标转JTAG接口(2.0m

9、m间距) 1路立体声音频输出接口(标准3.5mm接口),1路麦克风接口 引出CPU内部全部摄像头信号引脚。2.1.1 Freescale 的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通

10、道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.2 SDRAM存储系统Esayarm-i.max283A 使用了两片外接的32M bytes 总共 64M bytes 的SDRAM 芯片( 型号为:HY57V561620FTP/MT48LC16M16A2),一般称之为内存,它们并接在一起形成 32-bit 的总

11、线数据宽度,这样可以增加访问的速度;因为是并接,故它们都使用了 nGCS6 作为片选,它们的物理起始地址为0x30000000,下面是摘自Esayarm-i.max283A 原理图中的SDRAM 部分原理图。图 2.2 SDRAM存储系统原理图2.1.3 FLASH 存储系统Esayarm-i.max283A 具备两种Flash,一种是 Nor Flash ,型号为 SST39VF1601(AMD29LV160DB与此引脚兼容) ,大小为2Mbyte;另一种是Nand Flash ,型号为K9F1G08,大小为128M( 旧版本为K9F1208 ,大小为64Mbyte) 。S3C2440 支持

12、这两种Flash启动系统,通过拨动开关 S2,可以选择从NOR还是从NAND 启动系统。 Nand Flash 不具有地址线,它有专门的控制接口与CPU 相连,数据总线为8-bit ,但这并不意味着Nand Flash 读写数据会很慢。大部分的优盘或者SD卡等都是Nand Flash 制成的设备4。从下面的原理图可以看出,Nor Flash 采用了A1-A22总共22条地址总线和16条数据总线与CPU 连接,地址是从A1开始的,这意味着它每次最小的读写单位是2-byte ,因此根据原理图,该设计总共可以兼容支持最大8Mbyte的Nor Flash,实际开发板上只用了A1-A20条地址线,因为与

13、A21、A22 相连的SST39V1601 的相应引脚是悬空的。图 2.3 Flash存储系统原理图2.2基于Esayarm-i.max283A的开发环境的搭建2.2.1搭建嵌入式交叉开发环境由于嵌入式系统资源匮乏,一般不能像PC 一样安装本地编译器和调试器,不能在本地编写、编译和调试自身运行的程序,而需借助其它系统如PC 来完成这些工作,这样的系统通常被称为宿主机。本设计宿主机主要是使用装有ubuntu的Linux操作系统的PC机,而目标机就是Esayarm-i.max283A开发板。组成架构如图2.6所示。 图2.6 嵌入式开发交叉环境构架 所谓的交叉编译,就是在宿主机平台上使用某种特定的

14、交叉编译器,为某种与宿主机不同平台的目标系统编译程序,得到的程序在目标系统上运行而非在宿主机本地运行,本设计使用的交叉编译器为arm-linux-gnueabi-gcc,具体安装步骤如下:(1)解压交叉编译工具:运行命令tar xjvfgcc-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-

15、1.0/arm-linux-gnueabi/arm-linux-gnueabi-make cross_COMPILE=$CC ARCH=arm uimage2.2.2 安装SSH服务器 Ssh是Secure shell的缩写,是建立在应用层和传输层的安全协议,能够有效防止远程管理过程中的信息泄露问题,可以远程进行文件传输,本实验使用的是windows系统上安装的Ubuntu的虚拟机,这时就可以将其视为远程系统。(1)在虚拟机上安装ssh服务器,具体的方法是在Linux主机输入下面命令:Sudo apt-get install openssh-server (2)测试ssh服务器,在虚拟机里,V

16、Mware虚拟网卡设置NAT模式的话,Linux系统网卡设置为动态IP即可;如果虚拟网卡设置为桥接模式,则需要为Linux设置一个与windows系统同一个网段的静态IP地址。 也可以在终端使用ifconfig命令进行设置: sudo ifconfig eth0 IP地址,只有知道了Linux主机的IP地址后才能进行ssh连接,如果不能确定IP地址,可以打开终端,用ifconfig命令进行查看和确认。(3)在Windows系统下下载并安装一个ssh secure file transfer client软件,这时就实现了Windows和虚拟机的Ubuntu进行文件传输。3 Linux 内核3.

17、1 Linux系统简介Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客LinusTorvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。图3.1 Li

18、nux系统架构由上图可知Linux系统构架是由用户空间和内核空间两部分组成,之所以分为两部分主要是为了实现系统稳定性。内核空间和用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够实现从用户空间到内核空间的转移。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、虚拟文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。具体如图3.2所示:图3.2 Linux内核架构 系统调用接口:SCI层为用户提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。 进程管理:主要是实现了进程的创建,进程的停止,并控制进程间的相

19、互通信,进程管理还包括进程如何共享CPU,即进程的调度。 内存管理:主要是实现多个进程安全有序地共享内存。 网络协议栈:主要为Linux系统提供了丰富的网络协议。 虚拟文件系统:VFS隐藏了各种文件系统的细节,为文件操作提供统一的接口,如图3.3所示。 设备驱动:Linux内核中很多代码都在设备驱动中,它们控制特定的硬件设备。图3.3 虚拟文件系统提供同一文件接口3.2 Linux-2.6.29内核移植到Esayarm-i.max283A(1)首先到www.kernel.org下载一套没有经过移植的linux-2.6.29源代码,并解压到相关目录下,进入目录linux-2.6.29;(2)对内

20、核根目录下的Makefile文件进行相应修改,修改CPU类型为arm,编译工具改为arm-linux-,ARCH?=arm,CROSS_COMPILE?=arm-linux-;(3)修改时钟频率:#viarch/arm/mach-s3c2440/mach-smdk2440.cs3c24xx_init_clocks(12000000);(4)修改对Nand的分区信息。要让内核知道NandFlash的分区信息,设置成跟bootloader一致;(5)添加DM9000网卡驱动和其他设备驱动;(6)用MCIMX28x的默认配置文件来进行基础配置然后使用makemenuconfig来详细配置;(7)编译

21、内核。4 电子相框的功能模块以及程序框架 程序由输入和界面显示两大程序块构成,输入进程在程序运行时读取触摸屏的数据,主控线程将得到的事件通过socket发出处理器进行处理。显示进程主要包括 :放大线程、缩小线程、上一幅图片线程、下一幅图片线程、当前图片线程、主控线程。4.1输入程序框架解析输入的功能大体可分为模式输入和图片操作输入,然后输入进程得到触摸屏数据,用socket读取内存的DMA进行通讯。模式输入程序是要实现电子相框的智能化,以及能对电子相框系统中图片进行管理,这是需要对系统中的头文件以及系统模式的选择进行操作,简单来说,就是要把用户输入信息告诉系统,模式输入模块程序定义了这个功能。

22、模式输入模块程序之间的调用关系如图4.1所示。 图4.1输入模式程序框架图4.2显示界面的功能总框架 本文未使用QT图形用户界面应用程序开发框架,而是直接使用C语言编写出界面程序。界面功能总框架如图4.2所示。 图4.2 功能总框架界面功能说明:(1)主界面:在程序的一开始LCD显示界面上,有三种模式给用户选择,分别是浏览模式,连播模式,设置模式。根据操作者点击的模式图标将会进入对应的模式。(2)文件浏览模式界面:若点击浏览模式,则进入文件浏览界面,可以看到开发板搭载的根文件系统搭载全部目录,以及系统中的图片,在文件浏览模式中,可以选择的操作方式有:向上,选择,上一页,下一页。(3)图片浏览模

23、式界面:点击图片就可以进入图片浏览模式,在该模式中可以选择的操作有:返回,放大,缩小,上一页,下一页,连播模式。(4)设置模式界面,点击设置图标,就可以进入设置模式,设置模式主要的功能是选择某个目录,以及该目录中所有支持的格式的图片。(5)设置间隔时间:进入模式后,可以通过点击上下箭头进行设置连播图片显示的时间间隔,即每秒显示下一张图片。4.3电子相框的主流程图 当程序启动后,输入进程会调用触摸屏驱动tslib来操作和读取触摸屏,输入进程会将数据送至显示进程进行显示,显示分为图片显示和文字显示,图片显示调用libjpeg库,而文字显示则会调用freetype库,它们调用的则由render.c渲

24、染程序实现。具体的实现的主流程如图4.3所示: 图4.3电子相框主流程主流程解析:(1)初始化调试通道:本设计可以通过RS232标准串口连接到Windows系统下的超级终端TERA TERM PRO打印初始化信息。(2)分配5块物理内存:为了更好的用户体验,就应该加快操作的反应速度,所以本设计事先在内存中准备好了下一步要执行的数据,这5块内存分别存储的数据为:放大图片、缩小图片、下一幅图片、上一幅图片、当前图片。这5块内存通过DMA与LCD的显存进行快速传输数据。所以分配这5块内存是本设计的有点所在。(3)输入设备:本课程设计的输入设备为电阻触摸屏,输入进程通过调用tslib驱动来读取触摸屏数

25、据。(4)文字字符库:界面文字的显示通过render.c渲染程序调用freetype库来实现,freetype库是一个完全免费开源可移植的字体引擎。(5)图片渲染模块:界面采用的显示格式是BMP,本设计浏览的图片则只支持JPEG格式,JPEG是一种压缩图片的格式,显示进程通过调用libjpeg来实现图片的显示。(6)主界面:在minicom上运行本设计的最终的可执行程序,运行后会出现主界面,主界面提供三种模式,分别是:浏览模式、连播模式、设置模式。根据用户的操作,会分别进入对应的模式。(7)显示设备:本课程设计是周立功开发板自带的4.3寸LCD显示屏。4.4程序模块介绍 本设计采用模块化的思想

26、,将程序分割成不同的功能模块,便于程序的编写,这也是现在最普遍的变成思想,称为面向对象的编程思想。本设计大体分为的程序块为:页面规划模块、调试模块、图片渲染模块、字符解码模块、输入模式模块、显示模块。4.4.1页面规划模块该模块是由page_manager.c分别调用各子程序模块,程序运行后,由page_manager.c调用main_page.c进行主界面的显示,主界面分别有浏览模式、连播模式、设置模式这三种模式,操作者点击不同的模式,会调用这个目录下不同的子程序,调用的关系如图4.4.1所示。 图4.4.1 页面规划模块程序4.4.2调试模块在执行程序时,需要用到超级终端TERA TERM

27、 PRO进行操作目标板,在对程序进行调试,该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码表示,中文简体用g

28、bk表示,中文繁体用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显示驱动以及触摸屏驱动,

29、下面详细的解释相关如何进行配置。5.1 关于LCD驱动的配置(1)关于LCD的配置文件:在该开发板提供的LCD配置文件里的添加如下内容:(A)配置好LCD控制寄存器 (B)配置LCD类型为TFT(C)设置LCD的宽度和长度(D)配置好LCD的分辨率以及bpp参数(2)初始化函数中添加LCD初始化功能: Static void_init smdk2410_init(void) MCIMX28x_fb_set_platdata(&smdk2410_fb_info); (3)配置内核菜单,是的内核支持frame buffer在make menuconfig中选择:support for frame

30、buffer devices (4)编译5.2 关于触摸屏驱动的配置对于触摸屏驱动的设计,本文采用的是基于Linux本身自带的输入子系统方式设计的,由于设计的代码比较繁杂,所以本文列出其主要的设计方法,主要的设计方法如下:(1)设置输入结果input_dev: (A)通过设置struct input_dev的evdev数组表示能产生key和ABS类事件。(B)设置产生key和ABS类事件里面的触摸按键事件,X/Y绝对位移,绝对位移压力事件。(2)硬件操作:(A)ioremap寄存器(B)设置AD分频系数和ADCDLY(C)注册INT_TS和AD中断6电子相框的效果演示及功能测试6.1 电子相框

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