版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.华南师大学嵌入式系统课程设计报告 设计题目:基于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 Freescale 的MCIMX28x 处理器102.1.2SDR
3、AM存储系统102.1.3 FLASH 存储系统112.2基于Esayarm-i.max283A的开发环境的搭建122.2.1搭建嵌入式交叉开发环境123Linux 核143.1 Linux系统简介143.2 Linux-2.6.29核移植到Esayarm-i.max283A174 电子相框的功能模块以及程序框架174.1输入程序框架解析174.2显示界面的功能总框架184.3电子相框的主流程图204.4程序模块介绍214.4.1页面规划模块214.4.2调试模块224.4.3图片渲染解析模块224.4.4字符解码模块234.4.5显示模块245电子相框的相关驱动移植245.1 关于LCD驱动
4、的配置245.2 关于触摸屏驱动的配置256电子相框的效果演示及功能测试256.1 电子相框性能分析方法简述256.2 电子相框的效果演示以及功能描述267设计体会268参考文献271设计容1.1设计目的1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。2、了解周立功开发板的硬件环境和丰富的接口资源,掌握对周立功开发板进行Linux核的移植,裁剪,配置和编译。3、利用周立功开发板,通过软硬件设计实现进行一个可以浏览与管理图片功能的电子相框。1.2设计意义嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、
5、可靠性、成本、体积、功耗有严格要求的专用计算机系统1。它一般由以下几部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。基于ARM的嵌入式系统有诸多优点是传统电子系统无法比拟的,利用嵌入式开发本设计可以开发出具有良好的人机交互界面的实时系统,同时嵌入式系统最大的优点就是软硬件可裁剪,依据自己系统的需要可以进行灵活的软硬件设计开发,而且基于ARM的嵌入式系统开发成本低,而且系统稳定性高,功耗低,体积小,并且
6、能够应用于多种应用场合2。另外,作为一个消费类电子产品,电子相框的设计必须考虑以下因素:1、用户接口友好、操作方便。2、系统兼容性强。数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。3、稳定可靠。作为数码相机的一种附属产品,电子相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。电子相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。1.3电子相框的设计任务和要求 本设计的电子相框系统,实现了图片的查看,图片轮播功能的系统设计,该电子相框系统依靠ARM处理器和嵌入式Linux操作系统作为系统平台,同时结合界面应用程序,通过对触
7、摸屏的操作,在LCD屏幕上显示图谱按,实现了数码相框系统与外界的信息交流,从而在目标板上实现电子相框的基本功能。如图1.1所示。 图1.1 电子相框系统1、周立功开发板的介绍2.1 Esayarm-i.max283A开发板Esayarm-i.max283A是一款真正低价实用的ARM9开发板,EasyARM-i.MX283A 采用Freescale 的MCIMX28x 处理器(基于ARM926EJ-S 核),具有丰富的硬件资源,提供了完善的Linux 软件支持包、开发工具和丰富的实用例,大大降低了Linux 学习门槛和开发难度3,可以帮助用户在短期实现产品功能验证和开发。EasyARM -i.M
8、X283A 的基本接口分布如图2.1 所示。 图 2.1 EasyARM -i.MX283A开发板其板载64M SDRAM、128MB SLC NAND FLASH和2M Nor Flash,足够本系统使用。该开发板接口十分丰富,含:l 1个主USB接口,1个从USB接口l 1个100M以太网RJ-45口(采用DM9000网卡)l 1个SD/MMC卡存储接口,3个串行口l 3个串口,COM0为RS232 DB9接口,COM2和COM3为2.0mm间距l 标转JTAG接口(2.0mm间距)l 1路立体声音频输出接口(标准3.5mm接口),1路麦克风接口l 引出CPU部全部摄像头信号引脚。2.1.
9、1 Freescale 的MCIMX28x 处理器MCIMX28x是飞思卡尔公司的一款基于ARM926EJ-S 核的高性能、低功耗、高集成度的32位微处理器,主频最高可达454MHz,具有16KB指令Cache和16KB数据Cache,主要特征如下:l 1.2V核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电l LCD控制器(最大支持4K色STN和256K色TFT),提供1通道LCD专用DMAl 4通道DMA,并有外部请求引脚l 3通道UARTl 2通道SPIl 1通道IIC-BUS接口(多主支持)l 兼容SD主接口协议1.0板和MMC卡2.11兼容版l 2端USB主机/
10、1端口USB设备l 4通道PWM定时器和1通道部定时器/看门狗定时器l 8通道10bitADC和触摸屏接口l 具有日历功能的RTCl 130通用I/O口和24通道外部中断源l 具有普通、慢速、空闲和掉电模式l 具有PLL片上时钟发生器2.1.2 SDRAM存储系统Esayarm-i.max283A 使用了两片外接的32M bytes 总共 64M bytes 的SDRAM 芯片( 型号为:HY57V561620FTP/MT48LC16M16A2),一般称之为存,它们并接在一起形成 32-bit 的总线数据宽度,这样可以增加访问的速度;因为是并接,故它们都使用了 nGCS6 作为片选,它们的物理
11、起始地址为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 支持这两种Flash启动系统,通过拨动开关 S2,可以选择从NOR还是从NAND 启动系统。 Nan
12、d 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条地址线,因为与A21、A22 相连的SST39V1601 的相应引脚是悬空的。图 2.3 Flash存储系统原
13、理图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-1.0/arm-linux-gnueabi/arm-linux-gnueabi-make cro
15、ss_COMPILE=$CC ARCH=arm uimage2.2.2 安装SSH服务器Ssh是Secure shell的缩写,是建立在应用层和传输层的安全协议,能够有效防止远程管理过程中的信息泄露问题,可以远程进行文件传输,本实验使用的是windows系统上安装的Ubuntu的虚拟机,这时就可以将其视为远程系统。(1) 在虚拟机上安装ssh服务器,具体的方法是在Linux主机输入下面命令:Sudo apt-get install openssh-server(2)测试ssh服务器,在虚拟机里,VMware虚拟网卡设置NAT模式的话,Linux系统网卡设置为动态IP即可;如果虚拟网卡设置为桥接
16、模式,则需要为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.1 Linux系统简介Linux是最受欢迎的自由电脑操作系统核。它是一个用C语言写成,符合POSI
17、X标准的类Unix操作系统。Linux最早是由芬兰黑客LinusTorvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。技术上说Linux是一个核。“核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个核不是一套完整的操作系统。一套基于Linux核的完整操作系统叫作Linux操作系统,或是GNU/Linux。图3.1 Linux系统架构由上图可知Linux系统构架是由用户空间和核空间两部分组成,之所以分为两部分主要是为了实现系统
18、稳定性。核空间和用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够实现从用户空间到核空间的转移。Linux核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、虚拟文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。具体如图3.2所示:图3.2 Linux核架构l 系统调用接口:SCI层为用户提供了一套标准的系统调用函数来访问Linux核,搭起了用户空间到核空间的桥梁。l 进程管理:主要是实现了进程的创建,进程的停止,并控制进程间的相互通信,进程管理还包括进程如何共享CPU,即进程的调度。ll 存管理:主要是实现多个进程安全有序地共享存。ll 网络协
19、议栈:主要为Linux系统提供了丰富的网络协议。l 虚拟文件系统:VFS隐藏了各种文件系统的细节,为文件操作提供统一的接口,如图3.3所示。l 设备驱动:Linux核中很多代码都在设备驱动中,它们控制特定的硬件设备。图3.3 虚拟文件系统提供同一文件接口3.2 Linux-2.6.29核移植到Esayarm-i.max283A(1)首先到下载一套没有经过移植的linux-2.6.29源代码,并解压到相关目录下,进入目录linux-2.6.29;(2)对核根目录下的Makefile文件进行相应修改,修改CPU类型为arm,编译工具改为arm-linux-,ARCH&q
20、uot;=arm,CROSS_COMPILE"=arm-linux-;(3)修改时钟频率:*viarch/arm/mach-s3c2440/mach-smdk2440.cs3c24*_init_clocks(12000000);(4)修改对Nand的分区信息。要让核知道NandFlash的分区信息,设置成跟bootloader一致;(5)添加DM9000网卡驱动和其他设备驱动;(6)用MCIMX28x的默认配置文件来进行基础配置然后使用makemenuconfig来详细配置;(7)编译核。4 电子相框的功能模块以及程序框架 程序由输入和界面显示两大程序块构成,输入进程在程序运行时读取
21、触摸屏的数据,主控线程将得到的事件通过socket发出处理器进行处理。显示进程主要包括 :放大线程、缩小线程、上一幅图片线程、下一幅图片线程、当前图片线程、主控线程。4.1输入程序框架解析输入的功能大体可分为模式输入和图片操作输入,然后输入进程得到触摸屏数据,用socket读取存的DMA进行通讯。模式输入程序是要实现电子相框的智能化,以及能对电子相框系统中图片进行管理,这是需要对系统中的头文件以及系统模式的选择进行操作,简单来说,就是要把用户输入信息告诉系统,模式输入模块程序定义了这个功能。模式输入模块程序之间的调用关系如图4.1所示。 图4.1输入模式程序框架图4.2显示界面的功能总框架 本
22、文未使用QT图形用户界面应用程序开发框架,而是直接使用C语言编写出界面程序。界面功能总框架如图4.2所示。 图4.2 功能总框架界面功能说明:(1) 主界面:在程序的一开始LCD显示界面上,有三种模式给用户选择,分别是浏览模式,连播模式,设置模式。根据操作者点击的模式图标将会进入对应的模式。(2) 文件浏览模式界面:若点击浏览模式,则进入文件浏览界面,可以看到开发板搭载的根文件系统搭载全部目录,以及系统中的图片,在文件浏览模式中,可以选择的操作方式有:向上,选择,上一页,下一页。(3) 图片浏览模式界面:点击图片就可以进入图片浏览模式,在该模式中可以选择的操作有:返回,放大,缩小,上一页,下一
23、页,连播模式。(4) 设置模式界面,点击设置图标,就可以进入设置模式,设置模式主要的功能是选择某个目录,以及该目录中所有支持的格式的图片。(5) 设置间隔时间:进入模式后,可以通过点击上下箭头进行设置连播图片显示的时间间隔,即每秒显示下一图片。4.3电子相框的主流程图 当程序启动后,输入进程会调用触摸屏驱动tslib来操作和读取触摸屏,输入进程会将数据送至显示进程进行显示,显示分为图片显示和文字显示,图片显示调用libjpeg库,而文字显示则会调用freetype库,它们调用的则由render.c渲染程序实现。具体的实现的主流程如图4.3所示:图4.3电子相框主流程主流程解析:(1) 初始化调
24、试通道:本设计可以通过RS232标准串口连接到Windows系统下的超级终端TERA TERM PRO打印初始化信息。(2) 分配5块物理存:为了更好的用户体验,就应该加快操作的反应速度,所以本设计事先在存中准备好了下一步要执行的数据,这5块存分别存储的数据为:放大图片、缩小图片、下一幅图片、上一幅图片、当前图片。这5块存通过DMA与LCD的显存进行快速传输数据。所以分配这5块存是本设计的有点所在。(3) 输入设备:本课程设计的输入设备为电阻触摸屏,输入进程通过调用tslib驱动来读取触摸屏数据。(4) 文字字符库:界面文字的显示通过render.c渲染程序调用freetype库来实现,fre
25、etype库是一个完全免费开源可移植的字体引擎。(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 PRO进行操作目标板,在对程序进行调试,该minicom超级终端会输出预先设置好的字符。改目录
27、下程序模块之间的调用关系如图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码,但由于U
28、nicode用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的配置文件:在该开发板提供
29、的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 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) 注册I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 19088-2024地理标志产品质量要求金华火腿
- 广东科学技术职业学院《地铁保护与安全评价》2023-2024学年第一学期期末试卷
- 广东酒店管理职业技术学院《机器人学》2023-2024学年第一学期期末试卷
- 广东交通职业技术学院《生物启发性材料》2023-2024学年第一学期期末试卷
- 广东工商职业技术大学《项目视觉出品与设计营销》2023-2024学年第一学期期末试卷
- 广东第二师范学院《中学化学实验教学研究和技能训练》2023-2024学年第一学期期末试卷
- 广东潮州卫生健康职业学院《稀土在金属材料中的应用》2023-2024学年第一学期期末试卷
- 《信贷风险评估手册》课件
- 广东白云学院《法语听力Ⅱ》2023-2024学年第一学期期末试卷
- 共青科技职业学院《水力学与桥涵水文》2023-2024学年第一学期期末试卷
- 单体调试及试运方案
- 2023-2024学年浙江省杭州市城区数学四年级第一学期期末学业水平测试试题含答案
- 网球技术与战术-华东师范大学中国大学mooc课后章节答案期末考试题库2023年
- 2023年35kV集电线路直埋施工方案
- 思政教师培训心得体会2021
- HLB值的实验测定方法
- 2023年《病历书写基本规范》年度版
- 防止电力生产事故的-二十五项重点要求2023版
- 代理记账机构代理记账业务规范
- 建办号建筑工程安全防护、文明施工措施费用及使用管理规定
- GB/T 31227-2014原子力显微镜测量溅射薄膜表面粗糙度的方法
评论
0/150
提交评论