分享

嵌入式系统介绍

 福龙云天 2015-06-22

第1章  嵌入式系统基础知识
1.1  嵌入式系统的定义和组成
1.1.1  嵌入式系统的定义
嵌入式系统是一种应用范围非常广泛的系统。可以说除了桌面计算机和服务器外所有计算设备都属于嵌入式系统,例如从便携式音乐播放器到航天飞机上的实时系统控制都属于嵌入式系统。
大多数商用的嵌入式系统都设计成专用任务的低成本的产品。大多数的嵌入式系统都具有实时性的要求。有些功能需要非常快的主频,但其他大多数功能并不需要高速的处理能力。这些系统通过特定的器件和软件来满足实时性的要求。
简单地通过速度和成本来定义嵌入式系统是困难的,但对于大批量的产品而言,成本常常对系统设计起决定作用。通常,一个嵌入式系统的很多部分相对系统主要功能来说需要较低的性能,因此嵌入式系统和通用PC相比,能够使用一个满足辅助功能的合适的CPU,从而简化了系统设计,降低了成本。例如,数字电视的机顶盒需要处理每秒以百万兆位计的连续数据,但这些数据处理大部分是由定制的硬件来实现的,如解析、管理和编解码多个频道的数字影像。
对于大批量生产的嵌入式系统,如便携式音乐播放器或手机等,降低成本就成为最主要的问题。这些系统通常只具有几个芯片:一个高度集成的CPU,一个定制的芯片用于控制其他所有的功能,还有一个存储芯片。在这种设计中,每部分都设计成使用最小的系统功耗。
对于小批量的嵌入式应用,为了降低开发成本,常常使用PC体系结构,通过限制程序的执行时间或用一个实时操作系统来替换原先的操作系统。在这种情况下,可以使用一个或多个高性能的CPU来替换特殊用途的硬件。
嵌入式系统的软件通常运行在有限的硬件资源上:没有硬盘、操作系统、键盘或屏幕。软件一般都没有文件系统,如果有的话,也会采用Flash驱动器。如果有人机交互接口的话,也是一个小键盘或液晶显示器。硬件是计算机的物理部分,和存储在硬件中的计算机在这软件程序和数据区分开来。
嵌入到机械中的嵌入式系统需要长期无故障连续运行,因此它的软件需要比PC中的软件更加仔细地开发和更加严格地测试。
那么,到底什么是嵌入式系统呢?
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”(原文为devices used to control,monitor,or assist the operation of equipment,machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

1.1.2  嵌入式系统发展概述
1、嵌入式系统的发展历史
世界上第一个应用的嵌入式系统可以追溯到20世纪60年代中期的阿波罗导航计算机AGC(Apollo Guidance Computer)系统,用来完成阿波罗飞船的导航控制。当时随着微电子技术的发展,嵌入式计算机才逐步兴起。从单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了30多年的历史。纵观嵌入式系统的发展历程,大致经历了以下4个阶段。
(1)无操作系统阶段
嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服和设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上“系统”的概念。
这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率和存储容量都有较高要求的信息家电等的需要。
(2)简单操作系统阶段 
20世纪80年代,随着微电子工艺水平的提高,集成电路(Integrated Circuit,IC)制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口及RAM、ROM等部件集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的“操作系统”开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。
这一阶段嵌入式系统的主要特点是:出现了大量具有高可靠性、低功耗的嵌入式CPU(如Power PC等),各种简单的嵌入式操作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载及监控应用程序的运行。
(3)实时操作系统阶段
20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的数字信号处理器(Digital Signal Processor,DSP)产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(Real-time Operation System,RTOS),并开始成为嵌入式系统的主流。
这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化和扩展性。此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(Graphic User Interface,GUI)等功能,并提供了大量的应用程序接口(Application Programming Interface,API),从而使应用软件的开发变得更加简单。
(4)面向Internet阶段
21世纪是网络时代,随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合是嵌入式系统未来的发展趋势。

2、嵌入式系统的发展趋势
信息时代和数字时代的到来,为嵌入式系统的发展带来了巨大的机遇,同时也向嵌入式系统厂商提出了新的挑战。目前,嵌入式技术与Internet技术的结合正在推动着嵌入式系统的飞速发展,嵌入式系统的研究和应用产生了如下新的显著变化。
· 新的微处理器层出不穷,嵌入式操作系统自身结构的设计更加便于移植,能够在短时间内支持更多的微处理器。 
· 嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。 
· 通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统中,嵌入式软件平台得到进一步完善。
 · 各类嵌入式Linux操作系统迅速发展,由于具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,很适合信息家电等嵌入式系统的需要,目前已经形成了能与Windows CE、Palm OS等嵌入式操作系统进行有力竞争的局面。 
· 网络化、信息化的要求随着Internet技术的成熟和带宽的提高而日益突出,以往功能单一的设备(如电话、手机、冰箱、微波炉等)功能不再单一,结构变得更加复杂,网络互联成为必然趋势。
· 精简系统内核,优化关键算法,降低功耗和软硬件成本。 
· 提供更加友好的多媒体人机交互界面。 

3、知识产权核
IC产业是一个自20世纪80年代特别是90年代后飞速发展的产业。从90年代中期开始,由于基于专用集成电路的板级系统设计已经不能满足系统产品的可靠性等要求,出现了片上系统(System On Chip,SOC)的概念,并成为现代集成电路设计的发展方向。SOC是指在单芯片上集成数字信号处理器、微控制器、存储器、数据转换器、接口电路等电路模块,可以直接实现信号采集、转换、存储、处理等功能,其中知识产权核(Intellectual Property Core,IP Core)设计是SOC设计的基础。
IP 核是指具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。IP核在功能设计上考虑了可重用性,验证方法也非常明确。IP核模块有行为(Behavior)、结构(Structure)和物理(Physical)3级不同程度的设计,对应描述功能行为的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。
· IP软核(Soft IP Core):通常是用硬件描述语言(hardware Description Language,HDL)文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性,借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,根据各种不同半导体工艺,设计成具有不同性能的器件。其主要缺点是缺乏对时序、面积和功耗的预见性。而且IP软核以源代码的形式提供的,IP知识产权不易保护
· IP硬核(Hard IP Core)是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件。由于无需提供寄存器转移级(Register transfer level,RTL)文件,因而更易于实现IP保护。其缺点是灵活性和可移植性差。
· IP固核(Firm IP Core)的设计程度则是介于软核和硬核之间,除了完成软核所的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。
IC设计中采用IP复用可以缩短产品的开发周期,提高产品的可靠性。全球IP核市场目前处于快速成长的阶段,1999年到2004年的增长率高达43%。2001年全球IP核市场规模达8.9亿美元,较2000年的7.1亿美元增长了25%。在十大IP供应商排行中,ARM、Rambus和MIPS居前3位。
为了保护IP核的开发者与使用者,同时建立良好的IP核技术基础,全球各界已筹备了许多策略联盟,如EDA联盟、RAPID联盟、VCX联盟与VSIA 联盟等,来积极推动IP核的开发、应用及推广。其中EDA联盟主要由提供集成电路自动化设计软件的公司所组成,主要工作是要提升集成电路设计产业对EDA软件功能的认知与肯定,同时建立EDA公司与集成电路设计公司沟通交流渠道与解决集成电路产业所面临的问题,所以EDA联盟主要是以如何提供更好的EDA软件工具为主,也处理一部分IP核使用标准的问题。而VSIA联盟主要是针对IP核可复用性进行规范,希望建立一个共性标准,以方便实现将不同公司的IP核整合于一个SOC芯片中。VSIA联盟针对IP核的定义、开发、授权及测试等建立了一个公开的共性规范。

1.1.3  嵌入式系统的组成
嵌入式系统是一种应用范围非常广泛的系统。可以说除了一般用途的计算机外的所有计算机都属于嵌入式系统,例如从便携式音乐播放器到航天飞机上的实时系统控制都属于嵌入式系统。
大多数商用的嵌入式系统都设计成专用任务的低成本的产品。大多数的嵌入式系统都具有实时性的要求。有些功能需要非常快的主频,但其他大多数功能并不需要高速的处理能力。这些系统通过特定的器件和软件来满足实时性的要求。
简单地通过速度和成本来定义嵌入式系统是困难的,但对于大批量的产品而言,成本常常对系统设计起决定作用。通常,一个嵌入式系统的很多部分相对于系统主要功能来说需要较低的性能,因此嵌入式系统和通用PC相比,能够使用一个可满足辅助功能的合适的CPU,从而简化了系统设计,降低了成本。例如,数字电视的机顶盒需要处理每秒以百万兆位计的连续数据,但这些数据处理大部分是由定制的硬件来实现的,如解析、管理和编解码多个频道的数字影像。
对于大批量生产的嵌入式系统,如便携式音乐播放器或手机等,降低成本就成为最主要的问题。这些系统通常只具有几个芯片:一个高度集成的CPU,一个定制的芯片用于控制其他所有的功能,还有一个存储芯片。在这种设计中,每部分都设计成使用最小的系统功耗。
对于小批量的嵌入式应用,为了降低开发成本,常常使用PC体系结构,通过限制程序的执行时间或用一个实时操作系统来替换原先的操作系统。在这种情况下,可以使用一个或多个高性能的CPU来替换特殊用途的硬件。
嵌入式系统的软件通常运行在有限的硬件资源上:没有硬盘、操作系统、键盘或屏幕。软件一般都没有文件系统,如果有,也会采用Flash驱动器。如果有人机交互接口,也是一个小键盘或液晶显示器。硬件是计算机的物理部分,和存储在硬件中的计算机软件程序及数据区分开来。
嵌入到机械中的嵌入式系统需要长期无故障连续运行,因此它的软件需要比PC中的软件更加仔细的开发和更加严格的测试。 
那么,到底什么是嵌入式系统呢?
1、嵌入式系统的定义
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
2、嵌入式系统的组成
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,如图1-1所示,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
下面对嵌入式计算机系统的组成进行介绍。
1)硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。

(1)嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令集系统CISC(Complex Instruction Set Computer,CISC)。CISC计算机具有大量的指令和寻址方式,但大多数程序只使用少量的指令就能够运行;RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。
(2)存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器,其存储结构如图1-2所示。

 ① Cache
Cache是一种容量小、速度快的存储器阵列,它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强.
在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。
② 主存
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。
 常用作主存的存储器有:
· ROM类  NOR Flash、EPROM和PROM等。
· RAM类  SRAM、DRAM和SDRAM等。
其中NOR Flash凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。
 ③ 辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大,但读取速度与主存相比就慢得多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬盘、NAND Flash、CF卡、MMC 和SD卡等。
(3)通用设备接口和I/O接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置在芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。
目前嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。
 2)中间层 硬件层和软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。BSP具有以下两个特点。
· 硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
· 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
在实现上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
(1)嵌入式系统硬件初始化
系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。
· 片级初始化
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。
· 板级初始化
完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。
· 系统级初始化
该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
(2)硬件相关的设备驱动程序
BSP的另一个主要功能是硬件相关的设备驱动。硬件相关的设备驱动程序的初始化通常是一个从高到低的过程。尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。与硬件相关的驱动程序是BSP设计与开发中另一个非常关键的环节。
3)系统软件层
系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。
(1)嵌入式操作系统
嵌入式操作系统(Embedded Operating System,EOS)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着 Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点:
· 可裁减性。支持开放性和可伸缩性的体系结构。
· 强实时性。EOS实时性一般较强,可用于各种设备控制中。
· 统一的接口。提供设备统一的驱动接口。
· 操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。
· 提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
· 强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
· 固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计 。

(转自电子发烧友网站)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多