嵌入式计算器的设计与研究毕业论文(设计)文献综述.doc_第1页
嵌入式计算器的设计与研究毕业论文(设计)文献综述.doc_第2页
嵌入式计算器的设计与研究毕业论文(设计)文献综述.doc_第3页
嵌入式计算器的设计与研究毕业论文(设计)文献综述.doc_第4页
嵌入式计算器的设计与研究毕业论文(设计)文献综述.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江 汉 大 学 毕 业 论 文(设 计)文 献 综 述综 述 名 称: 嵌入式计算器的设计与研究 姓 名 杨林林学 号 2010082041132014年3 月 28 日一 绪论1.1 课题开发背景随着各个行业信息化的持续深入,嵌入式系统,因其可卸装性、强实时性、统一的接口、操作方便、提供强大的网络功能、强稳定性、固化代码、良好的可移植性等优点,已广泛应用于工业控制、交通管理、信息家电、家庭智能管理系统、POS网路及电子商务、环境工程和自然等领域,正在信息化的大舞台上不断展现出独特魅力。特别是近几年,嵌入式技术已成为通信和消费类产品的共同发展方向,嵌入式系统的日益广泛的应用,让人们看到这项技术所蕴含的巨大市场潜力,嵌入式系统技术已经成为最热门的技术之一。顺应时代的发展,社会的需求,学习并研究由北京奥尔斯电子科技有限公司研发的PXA270RP教学试验系统为基础硬件平台,并操作嵌入式硬件平台上的软件和应用程序的开发,实现一个计算器的全部功能,这对以后熟练运用嵌入式系统技术进行开发有很大的现实意义。1.2 国内外研究现状在嵌入式系统发展的早期,人们勉强将通用PC机系统进行适当改装,在一些大型的设备中实现嵌入式系统的开发与应用。但是,对于大多数的对象系统(例如:电器、仪器、仪表、工程控制),根本无法嵌入通用PC系统,毕竟与嵌入式系统的发展方向不同,两者必须独立发展,于是,嵌入式系统的诞生标志着计算机发展到通用PC机系统与嵌入式系统并行发展的时代 鉴于嵌入式系统的巨大商业潜力和发展现状,中国计算机学会(China Computer Federation)于1999年6月8日举行了“嵌入式系统及产业化在中国的发展前景”研讨会,指出了嵌入式系统与技术在当下计算机工业与网络化发张中的地位,认为下一代网络设备中,嵌入式设备的比重将增加至70%。美国嵌入式系统研究大会的报告于1997年指出,未来5年,仅基于电视的嵌入式应用就将在美国产生一个每年1500亿美元的新兴市场。嵌入式系统工业是不可垄断的高度分散的工业。嵌入式系统与技术是计算机高度专用化而设计出来的产物,其软件、硬件千变万化,与具体的应用有机地结合在一起,伴随着产品的升级换代也是与具体的应用同步进行,因此,嵌入式系统产品一旦进入市场,就具有相当长的生命周期。从某种意义上来说,通用计算机行业是垄断的,但是,嵌入式系统工业却是充满了创新与竞争,嵌入式处理器和嵌入式系统多种多样,即便在体系结构上存在着主流,但不同的应用也存在着不同的分支。嵌入式系统是面向用户、面向产品、面向应用的,如果独立于应用而自行发展,就会失去市场。嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性都要与实际应用相结合,嵌入式软件与硬件必须高效结合在一起,为实际应用量体裁衣,去除冗余,力争在同样大的硅片上实现更多的功能。另外,几乎所有的行业的应用系统和产品与通用PC机系统不同,很少发生突然性的跳跃,嵌入式系统中的软件也比通用计算机系统更强调衔接性,因此,发展也相对较稳定。当下,嵌入式系统的应用几乎无处不在,而且嵌入式计算机的应用数量已不是通用计算机所能比拟的,一般来说,就是通用PC机的外围设备也包含了5-10个嵌入式微处理器,在制造工业、过程控制、网络传媒、通讯、测量仪器、仪表、汽车、航海、航空、航天、军事武器、消费产品均是嵌入式计算机的应用领域。嵌入式系统技术作为专用计算机工业,其目的就是要把一切变得更简单、更方便,更普通、更实用、更经济、更实用、更人性化;如果说通用计算机的发展变为功能电脑,从而普遍计入社会,那么嵌入式计算机的发展的目标是专用计算,实现“普遍化计算”,因此可以称嵌入式智能芯片是未来世界的“数字基因”,正如我国资深嵌入式系统专家沈绪榜先生所预言:“未来十年将会产生具有每秒一亿次运算能力的嵌入式智能芯片”。1.3 研究目标和意义从嵌入式系统的定义来可以知道,通常只有程序开发人员才可以对其编程,一般不允许普通用户对其进行独立操作,但是可以为用户提供移动的输入输出接口。比如“电子表”、“手机”、“微波炉”、“启程控制系统”,“飞行控制系统”等都可以成为嵌入式系统。与通用计算机系统可以满足多种任务不同,嵌入式系统只能完成某些特定目的的任务。但有些也有实时性能的制约因素必须得到满足的原因,如安全性和可用性。除此之外其他功能可能要求较低或没有要求,使系统的硬件得以简化,以降低成本。对于大批量生产的系统来说,降低成本通常是设计的首要考虑。嵌入式系统通常需要简化去除不需要的功能以降低成本,设计师通常选择刚刚满足所需功能的硬件使目标最小化低成本的实现。当然,嵌入式系统并非总是独立的设备。许多嵌入式系统是以一个部件存在于一个较大的设备,它为设备提供更多的功能,使设备能完成更广泛的任务。嵌入式系统一般由嵌入式硬件和软件组成,且软件与硬件紧密集成。硬件以嵌入式微处理器为核心,集成存储器和系统专用的输入输出设备;软件包括初始化代码及驱动、嵌入式操作系统和应用程序。这些软件有机地结合在一起,形成系统特定的一体化软件。随着“后PC”的时代的到来,嵌入式系统的应用范围日益广泛,涉及到人类生活的诸多方面,如数字通信、信息家电、航空航天、工业过程控制及军事电子等。嵌入式技术和人们日常生活方方面面关系越来越紧密,消费电子、计算机、通信一体化趋势日益明显,作为计算机领域的一个重要的组成部分。嵌入式系统再度成为研究与应用的热点。二 文献研究2.1开发平台的研究嵌入式系统设计人员也使用一些不为普通计算机程序员所熟悉的软件工具:一个常用工具是“电路内部仿真器”(ICE,in-circuit emulator)或者是最新设计中的嵌入式调试器。这个调试工具是开发嵌入式程序的基本技巧。它代替微处理器或者嵌入微处理器内部,提供了在系统中快速调用和调试试验代码的便捷工具。一个焊点通常就是一个插入系统的特殊电路,通常使用一台连结到这些焊点的个人计算机作为调试界面。连结器通常是各种各样(exotic)。对于大多数商业编程来说,连接器几乎总是最后才想起的(afterthought)部分,缺省设置也从来不变。与此相反,嵌入式连结器有完整、复杂的命令行语言是很普通的。经常有不同类型的内存,分别保存特殊的代码和数据。单独的数据结构能够放在特殊的地址,这样软件能够很方便地访问映射到内存的控制寄存器。嵌入式连结器经常有用于减小代码大小和运行时间的外部(exotic)优化工具。例如,他们可能移动子程序的位置以使用较小的调用和跳转指令。它们经常带有管理data overlays和band switch技术的特性,这些技术是在嵌入式软件经常使用的扩展廉价CPU的方法。另外一个常用的工具是一个在程序中添加代码或者CRC的工具程序(经常是自己写的),使用这个工具嵌入式系统能够在执行程序之前先进行程序数据检查。为数字信号处理开发软件的嵌入式程序员经常使用MathCad或者Mathematica这样的数学工具进行数学仿真。一些较少使用的工具有将数据文件转换成代码的工具,使用这种工具就可以在程序中包含任意类型的数据。少数一些项目为了特殊的可靠性或者数字信号处理要求使用同步编程语言。一些编程语言为嵌入式系统编程提供了一些特殊支持。对于C语言,ISO/IEC TR 18037:2005定义了:(1)指定的地址空间(2)指定的存储类(3)基本输入输出的硬件寻址2.2开发工具及技术的研究2.2.1嵌入式系统开发的调试调试通常使用内部电路仿真器或者其他一些能够在单片机微码(microcode)内部产生中断的调试器。微码中断让调试器能够在只有CPU工作的硬件中进行操作,基于CPU的调试器能够从CPU的角度来测试和调试计算机的电路。2.2.2 嵌入式系统开发的操作系统使用Windows XP的因特网收费电话,嵌入式系统经常没有操作系统、专用的嵌入式操作系统(经常是实时操作系统)或者指导程序员移植到这些新系统。本次毕业设计主要模块是Linux系统的字符驱动设计。 Linux内核Linux系统内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。进程调度:控制进程对CPU的访问。由调度程序来选择下一个最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新进程。内存管理:允许多个进程安全的共享内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈,的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保存在内存中,其余的程序块则保留在磁盘中,必要时,操作系统负责在磁盘和内存之间交换程序块。从逻辑上来说,内存管理分为硬件无关部分和硬件有关部分。硬件物管部分提供了进程的映射和逻辑内存的对换;硬件相关部分为内存管理硬件提供了虚拟接口。虚拟文件系统:隐藏了各种硬件的具体细节,为所有的设备提供统一的接口,虚拟文件系统提供了多达数十种不同的文件系统。虚拟文件系统可分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux系统所支持的文件系统;设备驱动程序指为每一种硬件控制器编写的设备驱动程序模块网络接口:提供了各种网络标准的存取各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动负责与硬件设备通信,每一种可能的硬件设备都有相应的设备驱动程序。进程间通信:支持进程间各种通信机制。进程调度处于核心位置,所有其他的子系统都依赖它,因为每一个子系统都需要挂起或恢复进程。进程请求资源时被挂起,获得资源时被唤醒。 字符驱动Linux设备驱动程序为应用程序提供了统一的抽象的接口,从而隐藏了大量不同设备之间的区别和细节,在Linux中对硬件设备的操作和通常文件一样。Linux系统的设备驱动分为字符设备驱动和块设备驱动,以字符设备驱动较基础。Linux字符驱动的关键数据结构为cdev及file_operations结构体,其次在设备驱动程序中还有一个重要的组成部分,那就是字符设备模块的加载与卸载,其中驱动驱动模块的加载实现设备号的申请和cedv的注册,而卸载函数中实现设备号的释放了cdev的注销。其中cdev结构体用于描述字符设备,它的成员函数dev_t用于定义设备号,另一个重要的成员file_operation用于定义字符设备提供给虚拟文件系统的接口函数,这个接口函数给每个提供I/O设备的固定存取入口点,使得可以通过这组有固定名称和功能的函数来访问I/O设备,具体功能如下: open入口点。打开设备,准备I/O操作,。对字符设备文件进行打开操作,都会调用设备的open入口点。open子程序必须对将要进行的I/O操作做好必要的准备工作,如清除缓存等。如果设备是独占的,即同一时刻只能有一个程序能访问此设备,则open子程序必须设置一些标志表示设备处于繁忙状态。close入口点。关闭一个设备。当最后一次使用设备终结后,调用close子程序。独占设备必须解除繁忙状态read入口点。从设备上读取数据。对于有缓冲区的I/O操作,一般都是从缓冲区中读取数据,对字符设备文件进行读操作将调用read子程序write入口点。向设备写数据。对于有缓冲区的I/O操作,一般都是向缓冲区读取数据,对字符设备文件进行写操作将调用write子程序ioctl入口点。执行读、写之外的操作,实现对设备的控制。select入口点。检查设备,看数据是否可读或设备能否可用于写数据。系统调用在检查与设备文件相关的文件描述符时,使用select入口点一般Linux内核编译后生成一个vmlinux或者zlmage文件,我们统称为kernel image。当向内核中添加一个新的驱动时,为了避免重新编译内核和重启机器来调试驱动,Linux将内核分为静态的image部分和可动态加载部分,调试驱动时采用动态加载机制就行。模块(通常是设备驱动)能被静态编译到内核里面,也可以动态加载。一旦模块被装入到Linux内核,那么它就要像任何标准的内核代码一样称为内核的一部分,具有相同的权限的职责。2.2.3 嵌入式系统开发的启动嵌入式系统带有启动代码,通常它禁止中断、设置电子设备参数、测试计算机(RAM、CPU和软件),然后开始应用程序运行。许多嵌入式系统从短暂的掉电状态恢复,经常重起而不进行最近的自检。在十分之一秒内重起是常见的现象。2.2.4 嵌入式系统开发的内部自检许多嵌入式系统都有一定程度或者一定数量的内部加电自检,自检有几种类型:(1)计算机检查:检查CPU、RAM和程序存储器。通常一加电就开始这些检查,在一些安全性非常重要的系统中,通常周期性地在安全时间间隔内进行自检,或者经过一段时间就进行自检。(2)外围设备检查:仿真输入和读入数据或者测量输出数据。有大量的通信、模拟和控制系统都有这些非常廉价的检查。(3)电源检查:通常测试每个供电电路,也可能检查电池或者主电源输入。通常供电部分的负载都很重,并且少有余量,所以这项检查很有意义。(4)通信检查:验证从相连单元接收到的简单消息,例如在互联网上使用ICMP消息“ping”。(5)电缆检查:将线连结到待检查的电缆上指示针进行检查。如电话这样的同步通信系统经常使用“同步”测试。电缆检查成本很低,当单元部分有插头的时候这项检查尤其重要。(6)装备检查:一个系统在安装时经常需要进行调整,这项检查就向安装人员做出状态指示。(7)消耗检查:检查系统所消耗的东西、在预量太低时发出警告。最常见的例子是汽车的油量表,最复杂的例子可能是维持化学反应物详细状态的自动医学分析系统。(8)运行检查:检查用户关心的系统运行状态。显然,在系统运行时必须进行这项检查,2.2.5 嵌入式系统开发的可靠性体系根据人们需求的不同,可靠性也有不同的定义,有意思的事,可靠性的类型却相对较少,相似可靠性类型的系统,使用相似类型的内在检查和恢复方法:1、系统非常不安全或者无法修理2、系统不能安全地停止运行3、系统停机时将会造成大量的金钱损失4、系统不安全的时候不能操作2.2.6 常用的嵌入式软件架构有几种不同的基本类型(1)控制循环在这种设计中,软件有一个简单的循环,这个循环调用各个子程序,每个子程序管理硬件或者软件的某一部分。中断通常用来设置标记或者更新软件其他部分能够读取的暂存器。系统使用简单的API来完成允许和禁止中断设置。如果处理得当的话,它能够在嵌套子程序中处理嵌套调用,在最外面的中断允许嵌套中恢复前面的中断状态。非抢先式任务非抢先式任务系统非常类似于上面的系统,只是这个循环是隐藏在API中的。我们定义一系列的任务,每个任务获得自己的子程序栈;然后,当一个任务空闲的时候,它调用一个空闲子程序(通常调用“暂停”、“等候”、“交出(yield)”等等)。(2)抢先式定时器使用上面的任何一种系统,但是添加一个按照定时器中断运行子程序的定时器系统,这样就给系统添加了崭新的能力,这样定时器子程序第一次能在一个有保证的时间内运行。另外,代码第一次能够在非预期的时间访问自己的数据结构。定时器子程序必须要象中断子程序一样进行处理。(3)抢先式任务使用上面的非抢先式任务系统,从一个抢先式定时器或者其他中断运行。这样系统就突然变得很不一样了。任何一个任务的代码都有可能损害其他任务的数据&emdash;所以它们必须进行切缺的切分。对于共享数据的访问必须使用一些同步策略进行控制,如消息队列、信号灯或者非阻塞同步机制。三 总结我们本次课程设计使用的开发工具是由北京奥尔斯电子科技电子有限公司研发的PXA270RP硬件平台,以虚拟机VMware Workstation及安装的fedora 7操作系统的软件开发环境进行开发,然后配置交叉编译器、minicom终端、TFTP、NFS等虚拟环境,将PC机与PXA270RP的硬件进行连接。符合嵌入式系统开发的基本要求,因此,从开发环境和技术上而言,本次毕业设计嵌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论