嵌入式系统导论.docx
- 文档编号:7072449
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:17
- 大小:84.04KB
嵌入式系统导论.docx
《嵌入式系统导论.docx》由会员分享,可在线阅读,更多相关《嵌入式系统导论.docx(17页珍藏版)》请在冰豆网上搜索。
嵌入式系统导论
第一章嵌入式系统导论
随着社会信息化的日益加强,计算机和网络已经全面渗透到日常生活的每一个角落。
对于每个人来说,需要的已经不仅仅是那种放在桌面上处理文档、进行工作管理和生产控制的计算机“机器”。
任何一个普通人都可能拥有大小不一的、形状各异的、使用嵌入式技术的电子产品,小到MP3、PDA等微型数字化产品,大到网络家电、智能家电、车载电子设备等。
目前,各种各样的新型嵌入式系统设备在应用数量上已经远远超过了通用计算机。
在工业和服务领域中,使用嵌入式技术的数字机床、智能工具、工业机器人和服务机器人正在逐渐改变着传统的工业生产和服务方式。
本章主要内容:
✧嵌入式系统的概念。
✧嵌入式系统的特点、分类及应用领域。
✧主流嵌入式微处理器和嵌入式操作系统。
✧嵌入式系统设计方法。
1.1概述
1.1.1什么是嵌入式系统
1.嵌入式系统的定义
借用英国的电气工程师学会(IEE)的一个定义(http:
//www.iee.org/policy/areas/y2k/w43.cfm):
嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。
2.嵌入式系统的特性
嵌入式系统具备下列特性:
(1)通常只执行特定功能,这一点与一般桌上型办公设备或数据库系统有很大区别。
(2)以微型计算机与周边器件构成核心,其规模可在大范围内变化,如从8051芯片到x86芯片。
(3)要求严格的时序和稳定性,这是因为在机器控制的大型系统中,程序运行稍有差错则可能使得整个系统失去控制,甚至造成灾害。
(4)全自动操作循环。
嵌入式系统是计算机软件与硬件的综合体,它以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。
嵌入式计算机在应用数量上远远超过了各种通用计算机。
一台通用计算机的外部设备中就包含了5~10个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、调制解调器、网卡、声卡、打印机、扫描仪、数码相机和USB集线器等均是由嵌入式处理器进行控制的。
1.1.2嵌入式系统的特点及分类
1.嵌入式系统的特点
(1)系统内核小。
由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较传统的操作系统要小得多。
如ENEA公司的OSE分布式系统,内核只有5KB,而Windows的内核则要大得多。
(2)专用性强。
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。
同时,针对不同的任务,往往需要对系统进行较大修改。
程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的两个概念。
(3)系统精简。
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的设计及实现过于复杂,这样一方面有利于控制系统成本,同时也有利于实现系统安全。
(4)高实时性的操作系统软件是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度。
软件代码要求具有高质量和高可靠性。
(5)嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。
嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;但是为了合理地调度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配RTOS(Real Time OperatingSystem)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
(6)嵌入式系统开发需要专门的开发工具和环境。
由于嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,因此必须有一套开发工具和环境才能进行开发,这些工具和环境一般基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。
开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要两者交替结合进行。
2.嵌入式系统的分类
由于嵌入式系统由硬件和软件两大部分组成,所以其分类也可以从硬件和软件进行划分。
(1)嵌入式系统硬件。
从硬件方面来讲,嵌入式系统的核心部件是嵌入式处理器。
据不完全统计,全世界嵌入式处理器的品种数量已经超过1000多种,流行体系结构有30多个,其中8051体系占大多数。
生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅PHILIPS公司就有近100种。
目前嵌入式处理器的寻址空间为64~256MB,处理速度为0.1~2000MIPS。
近年来嵌入式微处理器的主要发展方向是小体积、高性能、低功耗。
专业分工也越来越明显,出现了专业的IP核(IntellectualPropertyCore,知识产权核)供应商,如ARM和MIPS等,它们提供优质、高性能的嵌入式微处理器内核,由各个半导体厂商生产面向各个应用领域的芯片。
一般可以将嵌入式处理器分成4类,即嵌入式微处理器(MicroProcessorUnit,MPU)、嵌入式微控制器(MicroControllerUnit,MCU)、嵌入式DSP处理器(DigitalSignalProcessor,DSP)和嵌入式片上系统(SystemOnChip,SOC),如图1-1所示。
图1-1嵌入式硬件系统分类
(2)嵌入式系统软件。
嵌入式系统软件一般由嵌入式操作系统和应用软件组成。
操作系统是连接计算机硬件与应用程序的系统程序。
操作系统有两个基本功能:
一是使计算机硬件便于使用,二是高效组织和正确地使用计算机的资源。
操作系统有4个主要任务:
进程管理、进程间通信与同步、内存管理和I/O资源管理。
目前,嵌入式系统软件主要有两大类,即实时系统和分时系统,如图1-2所示。
图1-2嵌入式软件系统分类
实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。
实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务,其次才是着眼于提高计算机系统的使用效率,其重要特点是通过任务调度来使重要事件在规定的时间内作出正确的响应。
实时操作系统与分时操作系统有着明显的区别。
具体地说,对于分时操作系统,软件的执行在时间上的要求并不严格,时间上的延误或者时序上的错误,一般不会造成灾难性的后果。
而对于实时操作系统,主要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件必须在事件随机发生时,在严格的时限内作出响应(系统的响应时间)。
即使是系统处在尖峰负荷下也应如此,系统时间响应的超时就意味着致命的失败。
另外,实时操作系统的重要特点是具有系统的可确定性,即系统能对运行的最好和最坏情况作出精确的估计。
Stankovic给出了实时系统的定义,“实时系统是这样一种系统,即系统执行的正确性不仅取决于计算的逻辑结果,而且还取决于结果的产生时间。
”
实时系统又可以分为硬实时系统和软实时系统。
硬实时和软实时的区别在于对外界的事件作出反应的时间。
硬实时系统必须对事件作出及时的反应,绝对不能错过事件处理的时限。
在硬实时系统中如果出现了没有及时反应的情况就意味着巨大的损失和灾难。
比如说航天飞机的控制系统如果出现故障,后果将不堪想象。
软实时系统是指如果在系统负荷较重时,允许发生错过时限而且不会造成太大的危害的情况。
如液晶屏刷新允许有短暂的延迟。
硬实时系统和软实时系统实现的区别主要是在选择调度算法上。
对于软实时系统,选择基于优先级调度的算法足以满足软实时系统的需求,而且可以提供高速的响应和大的系统吞吐量;而对硬实时系统来说,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法。
3.嵌入式系统的应用
嵌入式系统主要应用于以下几个大的方面:
(1)国防武器设备。
如导弹瞄准、雷达识别和电子对抗设备等。
(2)通信信息设备。
如路由器、程控交换机、移动电话和调制解调器等。
(3)过程控制。
即对生产过程中各种动作流程的控制,这种控制是在对被控对象和环境进行不断观测的基础上作出及时反应的,如流水线控制和金属加工控制等。
(4)智能仪器。
如网络分析仪、示波器和医疗仪器等。
(5)消费产品。
各式各样的信息家电产品,如数字电视和微波炉等。
(6)生物微电子技术。
这是当今嵌入式技术的前沿应用,有着广阔的市场空间。
1.2嵌入式微处理器和嵌入式操作系统
1.2.1嵌入式微处理器
嵌入式微处理器有许多种流行的处理器核,芯片生产厂家一般都基于这些处理器核生产不同型号的芯片。
本节将主要介绍以下几种嵌入式处理器的架构以及典型芯片制造商生产的芯片型号。
1.ARM/StrongARM
ARM(AdvancedRISCMachines)公司是全球领先的16/32位RISC(精简指令集计算机)微处理器知识产权设计供应商。
ARM公司通过转让高性能、低成本、低功耗的RISC微处理器、外围和系统芯片设计技术给合作伙伴,使他们能用这些技术来生产各具特色的芯片。
ARM已成为移动通信、手持设备和多媒体数字设备嵌入式解决方案的RISC标准。
ARM处理器有三大特点:
体积小、低功耗、低成本而高性能,16/32位双指令集,全球的合作伙伴众多。
2.MIPS
MIPS(MicroprocessorwithoutInterlockedPipelineStages)是一种处理器内核标准,它是由MIPS技术公司开发的。
MIPS技术公司是一家设计制造高性能、高档次的嵌入式32位和64位处理器的厂商,在RISC处理器方面占有重要地位。
2000年,MIPS公司发布了针对MIPS324Kc的新版本以及未来64位MIPS6420Kc处理器内核。
MIPS技术公司既开发MIPS处理器结构,又自己生产基于MIPS的32位/64位芯片。
为了使用户更加方便地应用MIPS处理器,MIPS公司推出了一套集成的开发工具,称为MIPSIDF(IntegratedDevelopmentFramework),特别适用于嵌入式系统的开发。
3.PowerPC
PowerPC架构的特点是可伸缩性好,方便灵活。
PowerPC处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备等各个方面。
目前PowerPC独立微处理器与嵌入式微处理器的主频从25MHz到700MHz不等,它们的能量消耗、大小、整合程度和价格差异悬殊,主要产品模块有主频350~700MHzPowerPC750CX和750CXe以及主频400MHz的PowerPC440GP等。
嵌入式的PowerPC405(主频最高为266MHz)和PowerPC440(主频最高为550MHz)处理器内核可以用于各种集成的系统芯片(SOC)设备上,在电信、金融和其他许多行业具有广泛的应用。
4.x86
x86系列处理器对读者来说应该是最熟悉的,它起源于Intel架构的8080,后来发展到286、386和486,直到现在的Pentium4、Athlon和AMD的64位处理器Hammer。
从嵌入式市场来看,486DX是当时和ARM、68K、MIPS和SuperH齐名的五大嵌入式处理器之一,8080是第一款主流的处理器。
今天的Pentium和当初的8080使用相同的指令集,这有利也有弊,利是可以保持兼容性,至少10年前写的程序在现在的机器上还能运行;弊是限制了CPU性能的提高。
5.68K/ColdFire
Motorola68000(68K)是出现得比较早的一款嵌入式处理器,68K采用的是CISC(复杂指令集计算机)结构,与现在的PC指令集保持了二进制兼容。
CISC是个人电脑CPU常用的,Intel、AMD和VIA都采用了CISC指令集,只有Apple电脑中的Power PC使用了RISC架构。
最初使用CISC指令集是有道理的,因为CISC指令数量少,执行效率更高,而且当时的CPU时钟频率不同,没有牵涉到现在的超标量和超流水线的问题。
RISC是精简指令集,每条指令长度都一样,有利于简化译码结构,减少处理器的晶体管数量,这对于嵌入式处理器来说是很重要的。
1994年,Motorola公司又推出了基于RISC结构的68K/ColdFire系统微处理器。
目前基于该架构的嵌入式微处理器主要有MCF5272,它基于第二代ColdFireV2核心,在66MHz下操作速度为63Dhrystone2.1MIPS,是迄今最高的V2性能。
1.2.2嵌入式操作系统
国外和国内常用的实时操作系统有以下几种:
1.国外著名的实时操作系统
国外实时操作系统已经从简单走向成熟,有代表性的产品主要有VxWorks、QNX、PalmOS和WindowsCE等,它占据了机顶盒和PDA等绝大部分市场。
其实,实时操作系统并不是一个新生的事物,从20世纪80年代起,国际上就有一些IT组织和公司开始进行商用嵌入式系统和专用操作系统的研发。
(1)VxWorks。
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。
VxWorks拥有良好的持续发展能力、高性能的内核以及良好的用户开发环境,在实时操作系统领域占据一席之地。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空和航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导和飞机导航等。
在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至1997年4月在火星表面登陆的火星探测器上也使用了VxWorks。
它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。
它支持多种处理器,如x86、i960、SunSparc、MotorolaMC68xxx、MIPSRX000、PowerPC、StrongARM和ARM等。
大多数的VxWorksAPI是专有的。
(2)QNX。
QNX是一个实时的、可扩充的操作系统。
它部分遵循POSIX相关标准,如POSIX.1b实时扩展。
它提供了一个很小的微内核以及一些可选的配合进程。
其内核仅提供进程调度、进程间通信、底层网络通信和中断处理4种服务,其进程在独立的地址空间中运行。
所有其他操作系统服务都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12KB),而且运行速度极快。
这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级虚拟机操作系统。
(3)Palm OS。
3Com公司的Palm OS在掌上电脑和PDA市场上占有很大的市场份额。
它有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需的应用程序。
目前共有3500多个应用程序可以运行在PalmPilot上,其中大部分应用程序均为其他厂商和个人所开发,从而使PalmPilot的功能得以不断增多。
这些软件包括计算器、各种游戏、电子宠物和地理信息等。
在开发环境方面,可以在Windows95/98/NT以及Macintosh下安装Palm Pilot Desktop。
Palm Pilot可以与流行的PC平台上的应用程序(如Word和Excel等)进行数据交换。
(4)WindowsCE。
MicrosoftWindowsCE是从整体上为资源有限平台设计的多线程、完整优先权和多任务的操作系统。
它的模块化设计允许它对从掌上电脑到专用的工业控制器用户电子设备进行定制。
操作系统的基本内核至少需要200KB的ROM空间。
(5)LynxOS。
LynxReal-timeSystems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。
LynxOS支持线程概念,提供256个全局用户线程优先级;另外还提供一些传统的、非实时系统的服务特征,包括基于调用需求的虚拟内存、一个基于Motif的用户图形界面、与工业标准兼容的网络系统以及应用开发工具。
(6)嵌入式Linux。
随着Linux的迅速发展,嵌入式Linux现在已经有许多版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux)和一般的嵌入式Linux版本(如μCLinux和PocketLinux等)。
其中,RT-Linux通过把通常的Linux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。
而μCLinux是针对没有MMU的处理器而设计的。
它不能使用处理器的虚拟内存管理技术,它对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。
它专为嵌入式系统做了许多小型化的工作。
由于嵌入式系统越来越追求数字化、网络化和智能化,因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继,因为要达到上述要求,整个系统必须是开放的,提供标准的API,并且能够方便地与众多第三方的软硬件沟通。
Linux主要特点如下:
①Linux是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发的强大技术后盾。
②Linux的内核小、功能强大、运行稳定、系统健壮、效率高。
③Linux易于定制裁剪,在价格上极具竞争力。
④Linux不仅支持x86CPU,还可以支持其他数十种CPU芯片。
⑤有大量的且不断增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境。
⑥Linux沿用了UNIX的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持。
⑦Linux内核的结构在网络方面是非常完整的,它提供了对以太网、快速以太网、千兆以太网、无线网络、令牌网、光纤网和卫星网等多种联网方式的全面支持。
⑧在图像处理、文件管理及多任务支持等诸多方面,Linux的表现也都非常出色,它不仅可以充当嵌入式系统的开发平台,本身也是嵌入式系统应用开发的好工具。
(7)μC/OS。
μC/OS是源码公开的实时嵌入式操作系统,μC/OS-II的主要特点如下:
①公开源代码,系统透明,很容易就能把操作系统移植到各个不同的硬件平台上。
②可移植性强,μC/OS-II绝大部分源码是用ANSIC写的,可移植性(Portable)较强。
而与微处理器硬件相关的那部分是用汇编语言写的,已经压到最低限度,使μC/OS-II便于移植到其他微处理器上。
③可固化,μC/OS-II是为嵌入式应用而设计的,这就意味着,只要开发者有固化(ROMable)手段(C编译、连接、下载和固化),μC/OS-II即可嵌入到开发者的产品中成为产品的一部分。
④可裁剪,通过条件编译可以只使用μC/OS-II中应用程序需要的那些系统服务程序,以减少产品中的μC/OS-II所需的存储器空间(RAM和ROM)。
⑤占先式,μC/OS-II完全是占先式(Preemptive)的实时内核,这意味着μC/OS-II总是运行就绪条件下优先级最高的任务。
大多数商业内核也是占先式的,μC/OS-II在性能上和它们类似。
⑥实时多任务,μC/OS-II不支持时间片轮转调度法(Round-roblinScheduling)。
该调度法适用于调度优先级平等的任务。
⑦可确定性,全部μC/OS-II的函数调用与服务的执行时间具有可确定性。
由于μC/OS-II仅是一个实时内核,这就意味着它不像其他实时操作系统那样,它提供给用户的只是一些API函数接口,有很多工作往往需要用户自己去完成。
把μC/OS-II移植到目标硬件平台上也只是系统设计工作的开始,后面还需要针对实际的应用需求对μC/OS-II进行功能扩展,包括底层的硬件驱动、文件系统和用户图形接口(GUI)等,从而建立一个实用的RTOS。
2.国内著名的实时操作系统
国内的实时操作系统研究开发有两种类型:
一类是中国自主开发的实时操作系统,如电子科技大学嵌入式实时教研室和科银公司联合研制开发的实时操作系统Delta OS(道系统)、凯思公司的HopenOS(女娲计划)、中科院北京软件工程研制中心开发的CASSPDA以及浙江大学自行研制开发的嵌入式操作系统HBOS等;另一类是基于国外操作系统二次开发完成的,这类操作系统大多是专用系统,在此就不进行介绍了。
(1)Delta OS。
Delta OS是电子科技大学嵌入式实时教研室和科银公司(专门从事嵌入式开发)联合研制开发的全中文的嵌入式操作系统,提供强实时和嵌入式多任务的内核,任务响应时间快速、确定,不随任务负载大小而改变,绝大部分的代码由C语言编写,具有很好的移植性。
它适用于内存要求较大、可靠性要求较高的嵌入式系统,主要包括嵌入式实时内核DeltaCORE、嵌入式TCP/IP组件DeltaNET、嵌入式文件系统DeltaFILE以及嵌入式图形接口DeltaGUI等。
同时,它还提供了一整套的嵌入式开发套件LamdaTOOL,是国内嵌入式领域内不可多得的一整套嵌入式开发应用解决方案,已成功应用于通信、网络和信息家电等多个应用领域。
(2)HopenOS。
HopenOS是凯思集团自主研制开发的实时操作系统,由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。
其核心HopenKernel的规模一般为10KB左右,占用空间小,并具有实时、多任务、多线程的系统特征。
(3)EEOS。
EEOS是中科院计算所组织开发的开放源码的实时操作系统。
该实时操作系统重点支持p-Java,要求一方面小型化,一方面能重用Linux的驱动和其他模块。
中科院计算所将在2~3年内持续加大投资,以期将其扩展成能力强、功能完善且稳定、可靠的嵌入式操作系统平台。
EEOS包含E2实时操作系统、E2工具链及E2仿真开发环境的完整环境。
(4)HBOS。
HBOS系统是浙江大学自主研制开发的全中文实时操作系统。
它具有实时、多任务等特征,能提供浏览器、网络通信和图形窗口等服务;可供进行一定的定制或二次开发;能为应用软件开发提供API接口支持;可用于信息家电、智能设备和仪器仪表等领域开发应用。
在HBOS系统平台下,已经成功地开发出机顶盒和数据采集等系统。
3.操作系统选择
表1-1为几种国内流行的嵌入式操作系统的比较。
表1-1几种国内流行的嵌入式操作系统的比较
类型
性能
PalmOS
WindowsCE3.0
嵌入式Linux
大小
核心几十千字节,整个嵌入式环境也不大
核心为占500KB的ROM和250KB的RAM。
整个WindowsCE操作系统包括硬件抽象层(HAL,HardwareAbstractionLayer)、WindowsCEKernel、User、GDI、文件系统和数据库,大约共1.5MB
核心从几十KB到500KB,整个嵌入式环境最小在100KB左右,并且以后还将更小
可开发定制
可以方便地开发定制
用户开发定制不方便,受Microsoft公司限制较多
用户可以方便地开发定制,可以自由地卸装用户模块,不受任何限制
互操作性
可操作性强
互操作性较强,WindowsCE可通过OEM的许可协议用于其他设备
互操作性很强
实用性
比较好
比较好
很好
适用的应用领域
应用领域较广,特别适用于掌上电脑的开发
应用领域较广,WindowsCE是为新一代非传统的PC设备而设计的,这些设备包括掌上电脑、手提电脑以及车载电脑
由于Linux内核结构及功能等原因,嵌入式Linux应用领域非常广泛,特别适用于进行信息家电的开发
1.3嵌入式系统设计过程
本节主要介绍嵌入式系统设计的一般过程和嵌入式系统设计的主要步骤。
在此将采用自顶向下的方法,从对系统最抽象的描述开始,一步一步地推进到细节内容。
如图1-3所示的设计过程中,首先从系统需求开始,然后是规格
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 导论