嵌入式系统43152.doc

上传人:ng****60 文档编号:3185232 上传时间:2019-05-24 格式:DOC 页数:54 大小:477.50KB
下载 相关 举报
嵌入式系统43152.doc_第1页
第1页 / 共54页
嵌入式系统43152.doc_第2页
第2页 / 共54页
嵌入式系统43152.doc_第3页
第3页 / 共54页
嵌入式系统43152.doc_第4页
第4页 / 共54页
嵌入式系统43152.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、什么是嵌入式系统? 无所不在的嵌入式系统多年前,比尔.盖茨曾经预言,随着后 PC 时代的到来,PC 将无处不在。今天,伴随着二十一世纪的曙光,嵌入式系统的迅猛发展正验证了比尔.盖茨的预言,人类正迎来一个充满希望的新时代后 PC 时代。这是一个充满机遇的时代,这是一个充满商机的时代。人类在经历了桌面系统的空前繁荣之后,嵌入式系统的发展正风起云涌,广泛进入到工业,军事,通信,运输,金融,医疗,气象,农业等众多领域。通常情况下,人们往往会忽视自己身边的嵌入式系统比如手机,取款机或者电梯等等,在这些随处可见的设备中就存在嵌入式系统,有时人们经常使用嵌入在汽车,电梯,PDA,程控交换机等设备中的小巧的计

2、算机系统,而对此毫无察觉。此外,嵌入式系统还经常在工业机器人,医疗设备,卫星,飞行系统等领域扮演着更为重要的角色。正是“看不见“ 和“无所不在“这样的特性使得嵌入式计算机系统有别于传统的计算机系统。一、嵌入式系统简介嵌入式系统本身是一个相对模糊的定义。目前嵌入式系统已经渗透到我们生活中的每个角落,工业、服务业、消费电子,而恰恰由于这种范围的扩大,使得“嵌入式系统”更加难于明确定义。 举个简单例子:一个手持的 mp3 是否可以叫做是嵌入式系统呢?答案肯定是“是”。另外一个 PC104 的微型工业控制计算机你会认为它是嵌入式系统吗?当然,也是,工业控制是嵌入式系统技术的一个典型应用领域。然而比较两

3、者,你也许会发现二者几乎完全不同,除了其中都嵌入有微处理器。那是否可以说嵌入着微处理器的设备就是嵌入式系统?那鼠标中也有单片机,能叫嵌入式系统嘛? 那到底什么是嵌入式系统?莫非嵌入式系统只是一个难以定义的抽象概念?二、嵌入式系统的历史虽然嵌入式系统是近几年才风靡起来的,但是这个概念并非新近才出现。从 20 世纪七十年代单片机的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近 30 年的发展历史。作为一个系统,往往是在硬件和软件交替发展的双螺旋的支撑下逐渐趋于稳定和成熟,嵌入式系统也不例外。 嵌入式系统的出现最初是基于单片机的。70 年代单片机的出现,使得汽车、家电

4、、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用位的芯片,执行一些单线程的程序,还谈不上“ 系统 ”的概念。提示:最早的单片机是 Intel 公司的 8048,它出现在 1976 年。Motorola 同时推出了 68HC05,Zilog 公司推出了 Z80 系列,这些早期的单片机均含有 256 字节的 RAM、4K 的 ROM、4 个 8 位并口、1 个全双工串行口、两个 16 位定 时 器。之后在 80 年代初,Intel 又进一步完善了 8048,在它的基础上研制成功了

5、8051,这在单片机的历史上是值得纪念的一页,迄今为止,51 系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。 从 80 年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。其中比较著名的有 Ready System 公司的VRTX、Integrated System Incorporation (ISI)的

6、PSOS 和 IMG 的 VxWorks、QNX 公司的 QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。 90 年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS ),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔

7、发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式 Linux,Lynx,Nucleux,以及国内的 Hopen,Delta Os 等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。在中国嵌入式系统领域,比较认同的嵌入式系统概念是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功

8、能。三、嵌入式系统的应用领域嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括: 1、工业控制:基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的 8、16、32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是位单片机。但是随着技术的发展,32 位、64 位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。2、交通管理:在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌

9、GPS 模块,GSM 模块的移动定位终端已经在各种运输行业获得了成功的使用。目前 GPS 设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。3、信息家电:这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。 4、家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。 5、POS

10、网络及电子商务:公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能 ATM 终端将全面走入人们的生活,到时手持一卡就可以行遍天下。6、环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。 7、机器人:嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。 这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发

11、出支持 TCP/IP 的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。 什么是嵌入式 Linux? 一、什么是嵌入式 linux?Linux 从 1991 年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作系统领域内也获得了飞速发展。嵌入式Linux(Embedded Linux)是指对标准 Linux 经过小型化裁剪处理之

12、后,能够固化在容量只有几 K 或者几 M 字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用 Linux 操作系统。嵌入式 Linux既继承了 intelnet 上无限的开放原代码资源,又具有嵌入式操作系统的特性。二、嵌入式 Linux 的特点版权费:免费;购买费用:媒介成本;技术支持:全世界的自由软件开发者提供支持;网络特性:免费而且性能优异;软件移植:容易,代码开放,有许多应用软件支持;应用产品开发周期:短,新产品上市迅速,因为有许多公开的代码可以参考和移植;实时性能:RT_Linux,hardhat Linux 等嵌入式 Linux 支持实时性能;稳定性:好;安全性:好。三、嵌

13、入式 Linux 的市场前景和商业机会嵌入式 Linux 有巨大的市场前景和商业机会,出现了大量的专业公司和产品,如 Montavista、Lineo、Emi等。有行业协会,如 Embedded Linux Consortum 等。得到世界著名计算机公司和 oem 板级厂商的支持,例如 IBM、Motorola 、Intel 等 。传统的嵌入式系统厂商也采用了 Linux 策略 如 Lynxworks 、Windriver、QNX 等。还有 intelnet 上的大量嵌入式 Linux 爱好者的支持。嵌入式 Linux 支持几乎所有的嵌入式 cpu 和被移植到几乎所有的嵌入式 oem 板。 四

14、、嵌入式 Linux 的应用领域嵌入式 Linux 的应用领域非常广泛,主要的应用领域有,信息家电:PDA ,STB-Set-stopbox,Digital Telephone,Answering Machine,Screen Phone、数据网络:Ethernet switches, Router,Bridge,Hub,Remote access servers,ATM,Frame relay、远程通信、医疗电子、交通运输、计算机外设、工业控制、航空领域等。五、嵌入式 linux 的优势嵌入式 Linux 的开发和研究是操作系统领域中的一个热点,目前已经开发成功的嵌入式系统中,大约有一半使用

15、的是 Linux。Linux 之所以能在嵌入式系统市场上取得如此辉煌的成果,与其自身的优良特性是分不开的。1、广泛的硬件支持Linux 能够支持 x86、ARM、MIPS、ALPHA、PowerPC 等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的 CPU 上。Linux 有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行,这些都进一步促进了 Linux在嵌入式系统中的应用。 2、内核高效稳定Linux 内核的高效和稳定已经在各个领域内得到了大量事实的验证,Linux 的内核设计非常精巧,分成进程调度、内

16、存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得 Linux 系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。3、开放源码,软件丰富Linux 是开放源代码的自由操作系统,它为用户提供了最大限度的自由度,由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux 的软件资源十分丰富,每一种通用程序在 Linux 上几乎都可以找到,并且数量还在不断增加。在 Linux 上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件做为原型,在其上

17、进行二次开发。4、优秀的开发工具开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In-Circuit Emulator,ICE ),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常昂贵,而且只适合做非常底层的调试,如果使用的是嵌入式 Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式 Linux 为开发者提供了一套完整的工具链(Tool Chain),它利用

18、 GNU 的 gcc 做编译器,用gdb、kgdb、xgdb 做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。5、完善的网络通信和文件管理机制Linux 至诞生之日起就与 Internet 密不可分,支持所有标准的 Internet 网络协议,并且很容易移植到嵌入式系统当中。此外,Linux 还支持 ext2、fat16、fat32、romfs 等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。六、嵌入式 Linux 的挑战目前,嵌入式 Linux 系统的研发热潮正在蓬勃兴起,并且占据了很大的市场份额,除了一些传统的 Linux公司(如 RedHat、MontaVista

19、 等)正在从事嵌入式 Linux 的开发和应用之外,IBM、Intel、Motorola 等著名企业也开始进行嵌入式 Linux 的研究。虽然前景一片灿烂,但就目前而言,嵌入式 Linux 的研究成果与市场的真正要求仍有一段差距,要开发出真正成熟的嵌入式 Linux 系统,还需要从以下几个方面做出努力。1、提高系统实时性Linux 虽然已经被成功地应用到了 PDA、移动电话、车载电视、机顶盒、网络微波炉等各种嵌入式设备上,但在医疗、航空、交通、工业控制等对实时性要求非常严格的场合中还无法直接应用,原因在于现有的Linux 是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,

20、并且符合 POSIX 1003.1b 标准,但从本质上来说并不是一个嵌入式实时操作系统。Linux 的内核调度策略基本上是沿用UNIX 系统的,将它直接应用于嵌入式实时环境会有许多缺陷,如在运行内核线程时中断被关闭,分时调度策略存在时间上的不确定性,以及缺乏高精度的计时器等等。正因如此,利用 Linux 作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,是现在日益流行的解决方案。2、改善内核结构Linux 内核采用的是整体式结构(Monolithic ),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,有效地缩短任务之间的切换时间,提

21、高系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不相符合。嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行取舍。Microkernel 的执行效率虽然比不上 Monolithic,但却大大减小了内核的体积,便于维护和移植,更能满足嵌入式系统的要求。可以考虑将 Linux 内核部分改造成 Microkernel,使 Linux 在具有很高性能的同时,又能满足嵌入式系统体积小的要求。3、完善集成开发平台引入嵌

22、入式 Linux 系统集成开发平台,是嵌入式 Linux 进一步发展和应用的内在要求。传统上的嵌入式系统都是面向具体应用场合的,软件和硬件之间必须紧密配合,但随着嵌入式系统规模的不断扩大和应用领域的不断扩展,嵌入式操作系统的出现就成了一种必然,因为只有这样才能促成嵌入式系统朝层次化和模块化的方向发展。很显然,嵌入式集成开发平台也是符合上述发展趋势的,一个优秀的嵌入式集成开发环境能够提供比较完备的仿真功能,可以实现嵌入式应用软件和嵌入式硬件的同步开发,从而摆脱了“嵌入式应用软件的开发依赖于嵌入式硬件的开发,并且以嵌入式硬件的开发为前提“的不利局面。一个完整的嵌入式集成开发平台通常包括编译器、连接

23、器、调试器、跟踪器、优化器和集成用户界面,目前 Linux 在基于图形界面的特定系统定制平台的研究上,与 Windows CE 等商业嵌入式操作系统相比还有很大差距,整体集成开发环境有待提高和完善。 嵌入式 Linux学前建议(初学者必读) 目前,Linux 作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。随着嵌入式行业的迅猛发展,嵌入式 Linux 凭借其系统发展的成熟度、市场应用的高份额也受到更多工程师朋友的青睐,越来越多的企业和研发机构都转向嵌入式 Linux 的开发和研究,这使得嵌入式 Linux 在

24、新兴的嵌入式操作系统领域内也获得了飞速发展和广泛应用。而对于那些希望尽快进入嵌入式行业从事产品研发的朋友们,选择嵌入式 Linux 方向作为切入点无疑是最好的途径之一。近期,有许多面临毕业、找工作的大学生来到华清远见嵌入式培训中心咨询了解有关嵌入式 Linux 方向的学习安排。在与他们交流沟通的过程中,被问到最多的几个问题就是“如何做好嵌入式 Linux 学习前的准备?” ,“学习嵌入式 Linux 需要补习哪些基础课程?”,“嵌入式 Linux 开发跟普通软件开发在学习方法上有什么不同?”, “项目实战环节多吗? ”,“有专业人员带领吗?” ,相信这些也是很多准备入行的初学者都会关心的问题,

25、为了帮助大家做好嵌入式 Linux 的学前准备,我们对这些常见的问题逐一进行解答,提供给大家参考,希望能够有所帮助。1、如何做好嵌入式 Linux 学习前的准备?要成为一名合格的嵌入式 Linux 工程师,就需要系统的学习软、硬件相关领域内的知识,需要在最开始就掌握开发的规范和原则,养成良好的工作习惯。为了确保学习的效果,华清远见安排的整个课程体系是非常集中、高效的,这就要求准备参加嵌入式 Linux 就业课程学习的同学要调整好自己的时间,务必要确保在 4 个多月的学习时间内能够高度集中精力。在整个集中学习过程中,既要保证课上认真听讲、实战演练的时间,也要保证课下继续实战演练、查阅资料的时间。

26、只有经过这种高强度的、实战为主的训练,才能够在比较短的时间内掌握规范的嵌入式开发工作流程,让自己符合嵌入式企业对应岗位的需求。除了在学习时间上要做好充分的准备之外,在学习的心态和方法的调整上也要做好准备。许多朋友只了解嵌入式 Linux 方向美好的发展前景,只关注高收入、就业机会多等热点,却忽略了学习过程本身。为了能够让集中培训的效果发挥到最佳,建议大家在学习开始前更多地去了解嵌入式产品研发的特点、所需要掌握的技术规范和工作要点,关注需具备基础的补充和学习,从而为后续的强化学习过程做好心态上的准备,毕竟态度往往决定了最后做事的结果。2、学习嵌入式 Linux 需要补习哪些基础课程?嵌入式 Li

27、nux 工程师的学习需要具备一定的 C 语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!),之后基本就不再用过的情况,建议大家在来华清远见学习之前先复习一下 C 语言基础这块。要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。此外,在时间允许的情况下,建议大家看一下有关计算机操作系统工作原理以及计算机组成原理等方面的专业书籍。对于进程、线程、任务调度、总线、I/O 等基本概念及工作原理有一个初步的了解和

28、掌握,这部分知识的准备对于后续更好地学习嵌入式 Linux 系统开发将会起到很好的帮助作用。3、嵌入式 Linux 开发跟普通软件开发在学习方法上有什么不同?要成为一名成功的嵌入式软件开发人员,程序的设计能力是首要技能,这一点与普通的软件开发人员的要求是一样的。但是作为“软硬兼施” 的嵌入式开发,则要求大家不仅要了解较底层软件的工作过程和工作原理(例如操作系统级、驱动程序级软件),在软件开发的专业水平上也需要充分考虑软件设计的时间和空间效率,这样才能设计出高性能嵌入式程序。因此面对相对复杂的嵌入式系统的研发过程,在学习的过程中需要更多关注完整的知识体系结构的建立。特别是对于原理性知识的掌握程度

29、则相对普通的软件开发人员提出了更高的要求。因此在学习的过程中,“要知其然,更要知其所以然” 。同时由于一直以来嵌入式行业中专业人才的紧缺,许多经验性的东西都有待交流和分享,因此充分关注与每一位讲师的实际经验交流就显得至关重要。华清远见的每一位专业讲师都拥有多年的嵌入式 Linux 开发经验,他们在各自擅长的领域内都有很多值得分享和交流的体会,因此通过他们课堂的讲解、示范,通过充分的交流沟通,无疑可以大大缩短在行业中摸索的时间,记住不要以为原理性的东西通过看书就能解决,借助这些行业高手的透彻分析,才能让你的学习过程更有价值、更加实用。4、华清远见的课程体系中项目实战环节多吗?有专业人员带领吗?由

30、于大多数人对嵌入式开发过程的陌生,因此实战环节的训练就显得格外重要。在嵌入式 Linux 课程学习的每个阶段,都需要在专业人员的引导下,通过全真的案例设计与实现来巩固所学的知识点。同时我们要求大家尽可能在课堂上多出问题、多暴露问题,只有这样,才能通过专业人员的及时帮助和指导,最高效地掌握解决实际问题的方式和方法,积累足够的技术经验和项目经验。同时也只有通过最终综合项目实战环节的密集训练,才能够逐步建立起嵌入式产品开发的工程化概念。在这个过程中,除了可以达到所学知识综合、实际应用的目的,还可以让大家更真实地体验到如何编写工程化程序?如何在设计中与团队协作开发?如何为后续有效地升级与维护做好准备?如何编写规范的文档等?而这些体验都将为后续真正从事企业内工程化的软件设计做好充分的准备。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。