首页 理论教育 大学生嵌入式系统概述-实训教程

大学生嵌入式系统概述-实训教程

时间:2023-12-01 理论教育 版权反馈
【摘要】:第一章嵌入式系统概述本章主要介绍嵌入式系统的基本概念。虽然经过了60多年,也有不少关于非冯·诺依曼体系结构的计算机研究成果出现,但目前冯·诺依曼结构仍然是计算机的主流系统结构。由此可见,嵌入式产品是符合计算机系统的体系结构的。嵌入式系统通常都是实时系统,有一定的时限要求,也就是响应时间的要求。

大学生嵌入式系统概述-实训教程

第一章 嵌入式系统概述

本章主要介绍嵌入式系统的基本概念。通过本章的介绍,读者应明确嵌入式系统的定义,了解嵌入式技术涉及的相关知识领域和嵌入式系统的软硬件结构特点。

1.1 嵌入式系统简介

1.1.1 嵌入式系统概述

在我们的日常生活学习中,随处可见一些具有信息处理或逻辑处理功能的电子产品。这些产品与传统的电灯、电风扇不同,传统的电子产品供电后只能按单一的方式工作,不具有信息的接收和处理功能,而这些新的电子产品能够却完成一定的信息处理和加工功能。比如手机可以存储电话号码,电子词典能够作词语翻译,MP3/MP4能够把压缩后的数字音乐/视频解码后播放,甚至是饭卡、身份证也能够标识身份、传递信息,还有人们每天使用的键盘、鼠标、打印机、复印机等,这些具有信息处理功能的电子产品极大地方便了人们的工作、学习、生产等各种活动,离开了它们很难想像我们的生活会变成什么样子。这些产品虽然大小各异,形态不同,功能千差万别,但是从产品的技术手段上看,都可以归于一个类别,那就是嵌入式系统。更准确地讲,这些系统实际上应该被称为嵌入式计算机系统,既然它们是计算机系统,那么能够具有信息处理和加工功能,相信大家也就没什么可奇怪的了。可是这些产品真的都属于计算机系统么?这可以从两个方面来理解。

首先,从计算机的体系结构上来看。目前人们使用的计算机都是按照1940年冯·诺依曼提出的体系结构设计实现的,这种设计结构被称为冯·诺依曼体系结构,其设计思想主要包括以下三点:

(1)以二进制形式表示指令和数据;

(2)程序和数据事先存放在存储器中,计算机在工作时能高速地从存储器中取出指令并加以执行;

(3)由运算器、控制器、存储器、输入设备和输出设备五大部件组成计算机系统。

虽然经过了60多年,也有不少关于非冯·诺依曼体系结构的计算机研究成果出现,但目前冯·诺依曼结构仍然是计算机的主流系统结构。

微型计算机由微处理器、输入/输出(I/O)接口和存储器通过一定的公共线路(总线)连接在一起组成。其基本结构如图1-1所示。

图1-1  微型计算机基本体系结构

对照冯·诺依曼体系结构,看一下具有信息处理和加工功能的嵌入式产品是否满足这些基本特性:

(1)任何一种嵌入式产品,其内部的信息表达和处理都是以二进制方式来完成的;

(2)任何一种嵌入式产品,其内部的数据和程序都是存储在存储器中,由处理器在执行时读取执行的;

(3)任何一种嵌入式产品,其内部一定有中央处理单元、存储器及输入输出的部件或装置。

由此可见,嵌入式产品是符合计算机系统的体系结构的。

其次,从计算机系统的基本组成上来看。计算机系统的基本组成包括硬件和软件两部分,硬件构成设备的外在实体,而软件则构成设备的加工逻辑和处理流程,这也是嵌入式产品与传统电子产品最容易区别之处。传统的电子产品通常是由纯硬件构成,一旦硬件生产完成,其功能和处理方式也就固定下来,如果要改变一个操作顺序和动作方式,需要重新构建硬件。嵌入式产品则不然,嵌入式产品可以在不改变硬件的情况下,通过调整其内部软件来改变对外界的响应过程和处理方式。

通过以上的分析可以看出,嵌入式产品就是一种计算机系统,只不过由于其应用领域和功能的不同,其形态、体积,以及各个部分所占的比例与通用的计算机设备有较大差异而已。既然是计算机系统,那么就应该有相应的计算机专业,为什么还需要单独开设一门嵌入式课程来学习呢?这是因为与传统的计算机系统相比,嵌入式计算机系统具有一些特殊性,这些特殊性体现在以下方面。

(1)技术密集。嵌入式系统不具有通用性,每一个领域的产品,只为这一个领域服务。这种针对性使得嵌入式系统的开发,不仅要掌握计算机的相关技术,还需要掌握微电子技术通信技术和相关应用领域的技术等知识。因此嵌入式技术是一个技术密集、不断创新的知识集成系统,也是一个面向特定应用的软硬件综合体。

(2)系统具有专用性,与应用相关性高。嵌入式系统中的嵌入指的就是,在这种系统中计算机不以独立的计算部件形式存在,需要根据用途与一定的外围设备结合,形成一个完整的系统。计算部件只是整个系统的一个核心组成。为了保证专用性,嵌入式系统的硬件、软件都需要专门设计,以力争在满足应用目标的前提下使系统尽可能精简。

(3)具有实时性。嵌入式系统通常都是实时系统,有一定的时限要求,也就是响应时间的要求。当响应时间无法满足时,可能会导致系统无法正常工作,甚至是灾难性后果。

(4)系统应具有高可靠性。嵌入式系统的使用环境差异较大,有时工作环境十分恶劣,而设备一旦出现故障,则可能造成很大的损失,因此,对其可靠性的要求远高于通用计算机。

(5)功耗开销限制。很多嵌入式系统属于便携或者移动设备,往往采用电池供电。这使得设备的功耗开销受到严格限制,在系统设计时必须考虑这种限制,以保证系统的可用性

(6)特殊的开发方式。嵌入式系统自身往往不具备开发条件,只能在通用计算机上进行软件的设计和开发,然后将程序放到嵌入式系统中去运行、验证。这使得其开发过程变得十分困难,而且需要特殊的开发方式。往往是在PC机上开发,然后下载到嵌入式设备运行,并将运行结果通过一定的通信方式传送给PC机,以便于调试和修改。这种开发方式被称为交叉开发,相应的开发工具被称为交叉编译器、调试器。

(7)系列资源受限。嵌入式系统由于受到成本、体积、功耗等方面的限制,使得系统上的资源(包括存储器、I/O接口、工作频率)较为紧缺,因此软、硬件的设计都需要进行细致的规划,以充分利用有限的资源。

(8)无垄断。与通用计算机领域的一家独大的形式不同,由于应用领域广泛,嵌入式系统具有更多的可塑性,因此也使得嵌入式系统充满了竞争、机遇和创新。不同的公司只能提供一个领域或几个领域的产品,不可能覆盖所有的领域以及所有的合作对象,所以也就不存在少数公司和少数产品垄断市场的局面。而且,由于应用需求的不断变化,对于嵌入式系统的要求也在不断变化,这极大地推动了嵌入式领域的创新和竞争。

由此可见,掌握嵌入式系统开发技术,对于立足现代IT产业具有十分现实的意义。

1.1.2 嵌入式系统与计算机技术

什么是嵌入式系统?什么是嵌入式技术?嵌入式系统与计算机技术有什么关系呢?在产业界和学术界,对于嵌入式系统的定义都有各自的表述。在国内比较流行的较为完整和规范的定义是这样描述的:嵌入式系统是以应用为中心,以计算机为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。由此可见,嵌入式系统是一种计算机系统。那么嵌入式技术就是计算机技术吗?这句话对也不对,对的是嵌入式技术的基础是计算机;不对的是嵌入式技术还应该包括具体应用领域中的其他技术,可能包括如微电子学、电子工程、自动控制、通信技术、射频识别技术、传感器技术等。

所以计算机技术只是嵌入式技术的核心技术之一,计算机相当于一个工具,利用这个工具与具体应用领域相关技术的结合,开发出的专用计算机系统就可以看做是嵌入式系统。因此,嵌入式技术除了需要掌握计算机技术外,还需要掌握其他的相关专业技术,才能解决实际问题,完成嵌入式系统的设计与开发。

对于嵌入式系统的理解,最主要的一点在于认识它的三个基本要素,即专用、嵌入、计算机。

所谓专用,是指嵌入式系统的功能通常具有一定的专用性。如打印机就是一个典型的嵌入式系统,它的作用就仅限于打印输出;再比如鼠标和键盘,也属于嵌入式系统,它们的作用就只限于输入坐标或者键盘值。也就是说,嵌入式系统虽然是一种计算机系统,但是它是计算机与特定软硬件结合后为特定目标开发的计算机系统,通常不具有一般意义上计算机的通用性。

所谓嵌入,是指嵌入式系统的硬件样式已经脱离了通用计算机的样子,通常以一种设备或装置的形式出现在人们面前。如飞机就是一种复杂的嵌入式系统,驾驶者的每一次操作都是在计算机的帮助下完成,但是人们并没有注意到计算机技术的存在;家里的空调,基至无法让人将之与计算机联系到一起,但是离开了计算机,它根本就不能运转。

所谓计算机,是指从技术的角度看,嵌入式系统就是一台计算机,只是样式发生了很大的变化。按照冯·诺依曼体系结构,计算机的基本组成里面包括五个部分,即运算器、控制器、存储器、输入和输出。这些在嵌入式系统里都能够一一找到,只是与人们通常所见有所不同而已。比如前面提到的打印机,由于采用微处理器作为核心控制器,因此运算器、控制器、存储器自然没有问题,那么输入输出是什么呢?输入就是打印机上的各种状态的检测和使用的按键操作,或者是打印电缆上传送来的数据;输出则是对打印机械的控制和打印动作的实现。

由此可见,掌握嵌入式技术的核心在于掌握计算机技术,但是,如果没有相关学科的基本知识和对一定应用环境的认识,是很难开发出与实际应用相关的嵌入式计算机系统的。本书将以计算机技术为主,对其他相关领域不作详细介绍,建议读者在学习本书内容的同时,结合模拟电路、数据电路及传感器相关资料学习,以提高对系统设计的认识和理解。

从嵌入式产品上看,它们普遍具有以下特征:一是价格敏感;二是资源受限;三是有较低的功耗;四是实时性要求高;五是集成度高。因此,在进行学习和设计时应把握这几个特征,尽可能满足这几个方面的要求,否则可能会出现大马配小车的尴尬。

1.1.3 嵌入式系统与单片机技术

嵌入式系统已经是现在在工业界和学术界较流行的一个词汇,似乎与早期的单片机系统已经有了天壤之别,于是初学者往往会认为单片机技术是不是有点过时了,嵌入式系统学习就要从复杂的32位处理器系统和嵌入式系统操作系统入手。应该说这种观点是比较偏激和冒进的,我们可以从系统的定义和系统结构来认识一下嵌入式系统和单片机。

前面已经介绍了嵌入式系统是嵌入的、专用的计算机系统。从这个定义看,有几点是可以肯定的:第一,在定义中没有对性能作任何的描述和要求;第二,没有对软件环境作明确的要求限制;第三,没有要求硬件组成得包括多少外部设备。因此,一个嵌入式系统只要符合计算机的基本体系结构,软硬件为特定领域设计,作为一个装置或设备的一部分解决特定问题,就可以看做是一个嵌入式系统。

那什么是单片机呢?它与我们熟悉的PC机有何不同?

从冯·诺依曼体系结构上看,计算机应该包括五个部分,即运算器、控制器、存储器、输入和输出。在我们的PC机中,运算器和控制器集成在一个单体集成电路芯片中称为CPU,而存储器是作为总线上的一个部件安装在主板上,输入和输出则是通过接口芯片与CPU通信。因此在PC机的系统中,对于硬件系统的认识我们关心这样几个方面:

(1)CPU的工作原理;

(2)内存与CPU联接的方法;

(3)输入和输出接口与CPU联接的技术。

在这里,输入和输出设备如何与接口相联、如何完成接口通信任务是我们不太关心的内容,因为通信接口是相对简单而且灵活的。

与PC机中CPU只包括计算机系统的运算器和控制器两个部件不同,单片机往往包括运算器、控制器、存储器和一定数量的输入输出接口甚至是输入输出设备,如通常用的I/O口、A/D转换口、通用串行通信口等。也就是说,单片机从结构上看已经可以算得上是一个计算机硬件系统了,只要加上合适的软件就可以独立运行。而PC机的CPU是不可能脱离计算机主板而运行程序的。

另外,在PC机的硬件系统设计中,我们要更关心如何实现CPU与内存的联接,与输入输出接口芯片的联接问题。在单片机的硬件系统设计中,我们要更关心如何利用单片机的各种接口线路与外围器件或设备进行数据交换。这样既提高了系统设计效率、减小系统体积,又提高了系统的可靠性,降低了开发风险和成本。所以单片机正是以单芯片的计算机形式出现在设备或装置中,并实现设备或装置的智能化控制,这完全符合嵌入式系统的定义和特点。因此可以认为,以单片机为核心设计的装置或设备都可以算作是嵌入式系统。现在比较流行的说法是,32位嵌入式应用的处理器被称为嵌入式处理器,一般都集成了包含一定容量的RAM、I/O接口等资源。只是由于集成开销的原因,很多嵌入式处理器并不包括大容量RAM和程序存储器。而我们通常所说的单片机指的是8位或16位的嵌入式微处理器。从实质上看,单片机与嵌入式处理器之间并没有根本性的差异,只是性能差异而已。嵌入式处理器可以看做是一种性能较高、可扩展性更大的单片机。

当然,现代嵌入式系统硬件除了使用单片机外,还大量使用ASIC和SOC等器件,这些器件不是在单一的硬件平台上进行软件开发,而是采用编程控制硬件的方式提供功能和性能更为高效的解决之道。对于这种器件的使用,需要电子工程和可编程器件技术有足够的认识和理解。

1.1.4 嵌入式系统与电子创新实践

由于以计算机为代表的信息技术飞速发展,计算机已经成为现代社会不可或缺的重要工具,并且这种工具的存在已经远远超过了人们的想象。在现代城市中,大到天上的飞机、水里的轮船、飞驰的火车,小到人们随处可见的手机、MP3、智能公交卡,都无不体现着嵌入式技术的神奇。当代大学生进行实践创新活动当然离不开人们的学习、生活、生产,只有这样的实践创新才具有现实意义,而这一切都与嵌入式技术密切相关。因此,嵌入式技术作为一项基本知识,是电类专业大学生进行电子创新实践的必修课。

1.2 嵌入式系统的发展历史

从1960年代开始,以晶体管和磁芯存储为基础的计算机就开始应用于航空、航天和工业控制领域,形成了嵌入式系统的雏形。第一个使用以计算机为核心的设备是奥托内蒂克斯公司为美国海军舰载轰炸机研制的多功能数字分析仪。

1961年,第一次批量生产的嵌入式系统Autonetics D-17出现,该设备是用于“民兵”导弹系统的发射控制器,使用晶体管作为基本逻辑部件,用硬盘作为主存储器。到1966年,该产品被使用集成电路的计算机替代。这种新型计算机采用与非门集成电路,相同功能的部件价格从原来分离器件的1000美元降到了3美元,成本的大幅降低促使这些集成电路被广泛投入商业应用。

1962年,美国的一个乙烯工厂首次实现了工业装置中的直接数字控制,开创了计算机系统在工业控制领域的先河。

美国的阿波罗登月计划不仅是航天史上的奇迹,也是嵌入式系统发展史上的一个里程碑。阿波罗导航系统被认为是首个现代的嵌入式系统,该系统能够提供人机交互和飞行器导航。

在1960年代后期,嵌入式系统开始被用于控制电话的电子式机械交换系统,被称为“存储程控控制”系统。存储控制逻辑的思想由此产生,硬件逻辑被软件逻辑所取代,并成为一次观念上的突破。

1970年代,单片机的出现为嵌入式系统的繁荣提供了一个良好的基础。1976年,Intel MCS-48系列8位单片机的出现,标志着单片机的问世。随后,以此为基础开发的8051系列单片机,成为应用最为广泛的8位单片机,并一直沿用至今。与此同时,摩托罗拉(Motorola)公司推出了单片机68HC05,智陆(Zilog)公司则推出了Z80单片机。这些单片机很快被用于家用电器医疗设备、仪器仪表交通运输等领域,带动了嵌入式系统的快速发展。

单片机成本的不断下降,也刺激了其他传统产品升级换代的神经,原本采用电位器、可变电容等器件控制的旋钮式开关控制设备逐渐被更低成本、更加多样化的微控制器所取代,而这一趋势一直延续到了今天。

为实现数字信号的实时处理,1982年开始诞生了专用的数字信号处理器DSP(Data Signal Processor)。DSP芯片的出现为实现数字信号高速处理提供了更为便捷的手段,也使得越来越多的任务可以由计算机来完成,实现更加高速、准确、自动化地处理。

可以将嵌入式系统的发展历程归纳为四个阶段。

第一阶段在1970年代之前。这是嵌入式系统的萌芽阶段,以单芯片为核心的可编程器件构成控制器,具有监测、伺服、指示设备配合的功能。这类系统大部分用于专业性强的工业控制系统中,一般没有操作系统支持,通过汇编语言编程实现控制功能。其特点是,系统结构和功能单一,处理效率较低,存储容量小,用户接口少,开发成本高。

第二阶段是1970—1980年代。这个阶段开始以嵌入式微处理器为核心部件,再加上简单的操作系统。大多数嵌入式系统使用8位微处理器,以汇编语言开发为主,不需要复杂嵌入式操作系统支持,具有功能较为单一,通用性较弱,系统开销小、成本低、效率高的特点。这个阶段,在一些高端的应用中,操作系统有一定实时性、兼容性和扩展性,用户界面不够友好。

第三阶段是从1980年代末到1990年代后期。这个阶段,以嵌入式操作系统为标志的嵌入式系统开始大规模应用。其主要特点是,采用专业化的嵌入式操作系统,以高级语言进行系统开发,操作系统内核小、效率高,具有高度模块化和扩展性;能运行在各种不同类型的微处理器上,兼容性好,功能丰富。

这个阶段的嵌入式系统发展最为迅速,应用领域已经远远超出了工业控制等传统领域,开始走向人们的日常生活。嵌入式的产品成为人们不可或缺的生活用品的一部分。

第四个阶段从1990年代末开始,这个阶段的嵌入式系统以网络化和Internet为标志。随着通信技术和网格覆盖的不断发展,越来越多的嵌入式设备开始加入到网络中,成为网络信息系统的一员。信息的网络化和共享化,已经成为这个时代不可抗拒的发展潮流。无线射频技术、电子标签技术、自组网技术、近距离无线通信技术、海量信息管理技术等,使得通过数字方式来感知世界成为可能,而这也成为未来嵌入式发展的一个重要方向。

1.3 嵌入式系统分类

嵌入式系统可以有不同的分类原则和方式,最为常用的分类方式有以下几种。

(1)按系统中微处理器的位数进行划分,可以分为8位、16位、32位,甚至是64位的系统。

(2)按应用的领域或类型划分,可以分为军用系统、工业用系统和民用系统。在这三种类型中,军用系统对于可靠性和抗恶劣环境的要求最高,而民用系统对于易用性可维护性和标准化要求更高。

(3)按嵌入式系统的复杂度划分,可以分为无操作系统控制的嵌入式系统、小型操作系统控制的嵌入式系统、大型操作系统控制的嵌入式系统。由于系统的复杂程度越高,其开发的难度越大,对于操作系统的要求就越高,因此,嵌入式系统中所用操作系统的复杂程度可以反映出嵌入式系统的总体复杂程度。

(4)按嵌入式系统的响应时间划分,可以分为硬实时系统和软实时系统。硬实时系统对于响应时间的限制严格,要求系统必须能够在规定的时间内对一些事件进行响应,否则可能产生严重后果。而软实时系统,虽然也规定了响应时间要求,但这种响应即使有一定的延误,也不会导致灾难性的后果。

1.4 嵌入式系统的应用领域

在后PC时代,正如人们所预期的那样,嵌入式系统已经无外不在。在我们身边随处可见嵌入式的例子。

作为一种以非计算机形式存在的计算机系统,无论形态上发生什么样的变化,其最终还是要体现出计算机所特有的信息处理和加工的优势。这种优势在传统产品中应用可以带来巨大的产业价值和社会价值。嵌入式系统最典型的应用包括几个方面。

1.4.1 在自动控制领域的应用

无论是一个小型的自动温度控制系统,还高档的自动数字钻床,都是嵌入式系统一展身手的大好平台。自动控制系统是嵌入式系统最早得以应用的舞台,现在仍然是其最为活跃的应用领域。随着现代传感器和各类执行机构的发展,自动控制领域中,嵌入式系统已经深入到应用的每一个环节。例如一台现代化的家用汽车,其内部的自动控制系统就多达几十个,有发动机系统、刹车系统、动力平衡、安全气囊等。

1.4.2 在实时信号处理系统中的应用(www.xing528.com)

实时信号处理系统要求系统的硬件和软件具备处理大量数据的能力,并保证在足够短的时间内完成处理;同时,这些系统还对体积、功耗、稳定性等方面有着严格的要求。这些系统对信号处理的时间要求极高,如多媒体数据的压缩/解压工作、通信链路中的信号处理等,最常见的例子就是我们熟悉的MP3/MP4播放器。

1.4.3 在普适计算系统中的应用

普适计算将使具有计算和连网能力的计算设备变成一种获得计算的途径。人们使用计算资源就如同使用水和电一样,只要有水龙头,接入水管就可以放出水来;只要有一盏灯,接入电网就可以点亮;而只要有一台能够联网的计算设备,就可以在任何地方获取需要的计算资源。这种能够联网的计算设备就是一种嵌入式系统,它可以是一张卡片、一个手机,也可能是任何一种你身边的物品。

1.4.4 在个人消费电子产品中的应用

嵌入式系统的小型化、智能化、操作便利化、价格低廉等优势,使得个人消费电子产品已经成为嵌入式系统应用最为广泛的领域。从手持式游戏机、个人数字多媒体产品、手机,到平板电脑、数码相机、数字录像机等,都是嵌入式系统应用的天下。而且由于这类产品更新换代速度快,消费群体巨大,因此也成为嵌入式系统消费的一个巨大市场。与此同时,不断更新的市场需求也推动着这类产品的快速发展。

1.4.5 在智能家电产品中的应用

传统家电产品通过采用嵌入式系统的改造,可以使原有的产品获得新的生命力和更强的市场竞争力。嵌入式系统将传统家用电子产品变得更加智能和便于使用,未来还将带领这些产品走向更为广阔的领域。如智能化的电视产品,已经具有上网点播、收发邮件、浏览网页等功能。

1.4.6 在仪器仪表中的应用

仪器仪表的智能化也是嵌入式系统应用中的一个十分重要的领域。由于仪器仪表需要处理各种信息来反映待检测对象的情况,并且往往需要反复比较和均衡,这些操作依靠手工完成不但效率低,而且精度还会受到影响。有些高速信号,人工甚至根本无法完成,只能借助于仪器设备。而嵌入式系统在这一方面具有高速度、高精度、高灵敏度、高灵活性等优势,已成为现代仪器仪表智能化的最佳解决方案。

1.4.7 在其他方面的应用

除了以上的应用领域外,嵌入式系统的应用领域还包括:在未来物联网的环境下也有着极为广泛的应用前景,如低功耗的智能标签、智能网关系统、数据采集系统等;在军事领域的应用,如情报收集、武器系统、电子侦察等;在通信领域的应用,如网络交换设备、路由设备、终端设备等;在电网管理领域的应用,如智能电网、远程抄表、分时电表等。嵌入式系统的应用几乎已经渗透到了每一个角落,可以说只要有电的地方就有可能使用嵌入式技术。

1.5 嵌入式系统的软硬件结构

作为一种专用的计算机系统,嵌入式系统通常是由嵌入式硬件系统和嵌入式软件系统两部分组成。由于嵌入式系统的应用相关性特点,不同嵌入式系统的具体硬件和软件构成具有一定的差异性。但从宏观上来看,一般嵌入式系统的软硬件组成具备一定的共性。

1.5.1 嵌入式系统的硬件组成

嵌入式系统基本硬件结构符合冯·诺依曼体系结构,即运算器、控制器、存储器、输入和输出。不过嵌入式系统与通用PC相比,有个突出的变化,就是在嵌入式系统中这几个部分的配置比例和重要性差别较大。嵌入式处理器往往只是系统中成本较低的部分,而某些外部设备才是系统的主角和重点。比如鼠标、键盘、触摸屏等输入装置,嵌入式微处理器只是为了管理输入信号、形成输出数据而设计的一个装置,其设计的重点在于外面信息的采集和转换,而不是其计算的功能。

嵌入式系统的基本硬件结构如图1-2所示。

图1-2 嵌入式系统基本硬件结构图

嵌入式系统硬件以嵌入式微处理器为核心,外围电路或设备通过一定的形式与嵌入式微处理器连接,然后进行数据或控制信息的交换。这些外围电路或设备主要包括各种I/O接口控制器电路(例如中断控制器、DMA控制器、液晶屏控制器、JTAG调试接口、串口、以太网口、USB、A/D或D/A转换器等)、时钟电路、各式总线,以及RAM、 ROM、闪存、键盘、发光二极管(LED)、液晶屏(LCD)、触摸屏、手写笔等。

随着半导体技术的迅猛发展,硬件设计越来越多地采用SOC技术和专用集成电路(Application-Specific Integrated Circuit,ASIC)技术来实现,或者采用具有知识产权(Intellectual Property,IP)的标准部件或半定制设计来实现,特别是市场容量大的产品更是如此。在许多嵌入式硬件设计中,一些专用控制逻辑越来越多地采用现场可编程门阵列(Field Programmable Cate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)芯片来设计。一些专用功能如加密、图像压缩、视频编解码,也采用基于SOC技术的芯片来实现。从板级电路设计到处理器加ASIC或SOC已成为硬件设计的潮流和发展趋势。现在,许多嵌入式产品如PDA、手机、数码相机、MPEG播放器等,虽然体积小巧,但功能强大,其中很重要的原因在于使用了ASIC和SOC技术。

1.5.2 嵌入式系统的软件组成

嵌入式软件可以分为两大类:含操作系统的嵌入式软件与不含操作系统的嵌入式软件。如图1-3所示,图1-3(a)给出了NOSES的软件结构,这也是8位单片机常用的软件结构。在这种结构中,监控程序循环执行各个例程,如果外部设备发出中断请求信号,则立即停止监控程序的运行,转而执行中断服务子程序(ISR)。中断服务子程序在运行过程中,如果需要访问硬件,则通过驱动程序、硬件初始化指令(段)、硬件使能指令段(段)或者硬件激活指令(段)进行。

图1-3(b)和图1-3(c)另外根据嵌入式系统中使用的操作系统的不同分为小型操作系统和大型操作系统。小型操作系统可以只完成多任务调度和任务间的协调通信等管理,而不需要考虑动态内存分配、文件系统支持、统一设备管理等一系列问题,这种操作系统往往用于8位或16位系统中。而大型操作系统的功能则与PC机上的功能相似,不但能够为多进程运行提供支持,还可以支持动态的任务管理、动态内存管理、支持文件系统、统一的设备管理和操作接口,以及良好的用户界面支持,这种操作系统往往用于32位甚至64位系统中。

图1-3 按照技术复杂度分类的三种嵌入式系统软件结构示意图

嵌入式系统的软件结构主要可以划分为以下几个层次。

·BSP:它是介于硬件和上层软件之间的底层软件开发包,为各种嵌入式电路板上的硬件提供统一的软件接口。它将具体硬件设备和软件分离开,便于软件移植,是一种硬件抽象层(Hardware Abstract Layer,HAL),类似于PC机系统中的BIOS。这个部分通常由硬件开发者来提供,在一些简单操作系统中可以利用BSP的功能完成硬件设备驱动并提供给应用程序使用。

·硬件驱动程序:这是与操作系统接口相关的一个软件功能部分,与BSP或HAL不同的是,它所提供的机制和应用接口由操作系统决定而不是由硬件开发者决定,因此属于操作系统的一部分。硬件驱动程序的开发者既要了解硬件控制过程,又要熟悉操作系统中对设备管理和设备I/O接口的规范。

·实时操作系统内核:负责管理嵌入式系统的各种软硬件资源,完成任务调度、存储分配、时钟、文件与中断管理等,并提供文件、GUI、网络以及数据库等服务。

·嵌入式中间件:位于嵌入式操作系统、数据库与应用软件之间的一种软件,使用嵌入式操作系统提供的基本功能与服务,并为上层应用系统提供运行开发环境,如JAVA虚拟机。

·API及组件(构件):为嵌入式系统应用软件提供各种编程接口库(LIB)以及第三方软件或IP构件。

·应用系统(软件):嵌入式系统的应用软件。

当然,并不是所有嵌入式系统都包括这六个层次的软件结构,根据系统规模和用途的不同,设计者可以根据需要选择合适的软件层次结构来实现嵌入式系统软件。

1.6 嵌入式系统的相关研究领域

1.6.1 与嵌入系统相关的主干学科

嵌入式系统具有典型的多学科交叉融合的特点。构成嵌入式系统技术领域的核心学科主要有四个,分别是微电子学、计算机科学与技术、电子工程学、自动控制学。嵌入式硬件开发集中在集成电路设计及片上系统设计,其广泛使用EDA工具,大量采用硅知识产权核,以实现低功耗和高性能。这些涉及微电子学领域的理论和技术。嵌入式处理器的体系结构设计、嵌入式操作系统和应用程序则都需要借助计算机科学与技术的理论。嵌入式系统的AD/DA转换、内部时序控制、外部设备逻辑设计离不开电子工程学的理论和技术。嵌入式系统的稳定性和可靠性分析、传感器和执行机构的设计需要借助于自动控制学的指导。

1.6.2 与嵌入式系统相关的技术

与嵌入式系统关系密切的技术领域主要有普适计算、人机交互、多媒体技术、无线传感器网络、信息安全、数据库等。

1.普适计算

普适计算(Pervasive Computing)又称为普存计算(Ubiquitous Computing)或普及计算,最早由前施乐帕克研究中心(Xerox PARC)首席科学家马克·维瑟(Mark Weiser)在1991年提出。这个概念强调和环境融为一体的计算,而计算机本身则从人们的视线中消失。在普适计算的模式下,人们能够在任何时间、任何地点以任何方式进行信息的获取与处理。

普适计算为未来的应用描绘了许多美好的场景,例如一个喜欢丢三落四的学生,常常会把他的个人用品落在学校,而一个小型无线终端通过信息链就可以很容易向他发出告警,从而提醒他及时处理。嵌入式系统的迅速发展正在为这种愿景的实现提供技术支持。

2.人机交互

嵌入式系统是一个计算机系统。为了能够有效控制和使用嵌入式的设备,必须要实现人机交互问题。嵌入式系统中的人机交互具有一些特殊性,即软件轻量化、输入输出设备的小型化、输入输出方式的多样化和便捷化。比如苹果手机之所以热销,一个十分重要的因素就是其人机交互手段的创新和便利,而这正成为一种趋势。

3.多媒体技术

人们对于以单纯的文字和简单的声光信号来表达信息的方式已经不再感到满意,微处理器技术的快速发展,也使多媒体展示成为现实。嵌入式多媒体技术包括硬件和软件两个方面,硬件方面要求芯片拥有极低的功耗、极高的处理速度、足够低的成本等。而软件方面则希望功能更多样化,压缩和解压算法更高效,能够尽可能占用少的硬件资源等。研究的重点有:多媒体数据适用的文件系统和数据库系统、DSP处理程序、多媒体服务系统管理软件、手持设备媒体数据库等。

4.无线传感器网络

无线传感器网络是一种特殊的自组网,主要适合组网困难和人员不能接近的区域及临时场合。它集成了传感器、嵌入式计算机、网络和无线通信四大技术,其特点是无须固定网支持、抗灾能力强、组网迅速,可广泛应用于环保、交通、工业、军事等领域。研究的重点包括自组网络协议、近距离无线通信芯片、传感器等。

5.嵌入式系统信息安全

由于使用嵌入式设计联网可以进行电子商务、数据库访问、网页浏览、收发电子邮件、远程控制、手机支付等多种业务,因此,越来越多的嵌入式系统开始实现联网功能。在给人们带来方便快捷的同时,嵌入式系统中的信息安全问题也日益突显,嵌入式系统信息安全成为影响嵌入式应用的重要技术之一。嵌入式系统信息安全技术包括密码系统设计、身份认证设计、进程间通信保护机制等。

6.嵌入式系统数据库

运行在嵌入式系统上的数据库称为嵌入式数据训。嵌入式数据库的特点是简单、小巧、性能高、可移动性好。虽然不需要独立运行的数据库引擎,但是由于嵌入式数据库在移动环境和实时环境下运行,因此在技术上强调数据复制、数据一致性、数据广播、数据装入优化、故障恢复、高效率事务处理等。

1.7 嵌入式系统的发展现状与趋势

1.7.1 嵌入式系统的发展现状

随着半导体技术的发展,嵌入式微处理器得到了快速的发展,不同用途、不同性能、可满足不同需要的嵌入式处理器达到上千种之多。低端的处理器产品在功耗上更低,执行效率更高,集成的外围部件性能更好,价格也更加低廉。新型的高端处理器也日益丰富,传统通用处理器中的流水线技术、哈佛结构、精简指令集技术等得到广泛采用,双核多核嵌入式处理器也已经在应用中大量使用。而基于ASIC和SOC的专用器件和IP核产品,也被广泛应用于信息家电、消费电子、智能家居、工业生产等方面。

在嵌入式软件方面,嵌入式操作系统(RTOS)、集成开发环境、IP构件库、嵌入式网络协议栈、嵌入式移动数据库及嵌入式应用程序设计等方面都有了很大发展。商业化的RTOS达到上百种,甚至一些传统的通用操作系统也通过改造加入到嵌入式操作系统的阵营,如RTLinux就是在传统Linux操作系统上的一种改造。各种用于嵌入式软件开发的集成开发环境也被大量用于系统开发过程中,如安谋国际科技股份有限公司(ARM)的RVDS,美国风河系统公司(WindRiver)的Tornado,瑞典爱亚公司(IAR System)的IAR,以及凯尔软件(Keil Software)公司的u Vision等。除了操作系统和集成开发工具外,用于实现人机交互的图形用户界面也得到大量应用,如QT、MiniGUI等。

随着嵌入式系统的深度应用,嵌入式系统软硬件开发过程中存在的制约因素也日益突显,主要是对嵌入式系统的开发成本、开发周期以及开发难度产生影响。这些影响包括以下几个方面。

(1)从事嵌入式系统开发的门槛较高。嵌入式系统开发涉及的知识面广、综合性强、实践性强,而且由于学科发展速度快,学习难度大,难以形成一个简单明确的知识体系。开发人员需要具备相当的软硬件知识,特别是要了解和掌握目前广泛使用的处理器体系结构,并能够熟悉掌握一种或几种RTOS及开发工具的使用。

(2)嵌入式系统设计受成本、功耗和上市时间等多种因素的制约,其设计方法涉及软硬件协同设计、系统级设计、数字系统设计、模拟系统设计等多个方面和不同层次,涉及系统需求描述、软硬件功能划分、系统协同仿真、优化、系统综合等多个方面的问题,要求开发人员掌握计算机系统结构、操作系统,甚至SOC系统设计、EDA工具等多领域知识。

(3)嵌入式硬件平台和软件平台种类繁多,选择、学习和掌握具有一定难度,没有统一的开发标准,使得在不同平台上开发的应用移植难度较大。嵌入式工程师在掌握一个系列微处理器平台后,往往不愿意转到另一个类型的微处理器平台上。

(4)开发环境和开发工具的抽象程序较低,这在很大程度上影响了开发的成本和进度,使得产品的上市时间推迟。

1.7.2 嵌入式系统的发展趋势

近年来,随着微电子技术和计算机技术的不断发展,“后PC机时代”的轮廓已经逐步显现,嵌入式领域呈现出快速发展的势头。考虑到“后PC机时代”的新特征及微电子技术的发展现状,嵌入式系统将呈现出以下几个方面的发展趋势。

(1)开放式平台架构,更易于与其他系统整合。由于微电子技术的发展,嵌入式系统的应用方式正在从多片系统向单片系统甚至片上系统的方向发展,这需要嵌入式处理器内核的架构具有良好的开放性能,以利于系统整合。

(2)体积越来越小,性能越来越高,成本越来越低。现在的集成电路已经达到纳米级的设计程序,这使得微处理器的体积、功耗、性能在芯片一级得到极大优化,同时也得益于工业化生产的高效率,致使成本不断降低。

(3)应用趋向多元化,小批量、快速定制化服务成为重要趋势。嵌入式系统的应用将随着其应用面的扩大而不断呈现多元化的发展,这使得小批量、快速定制服务成为一种重要的解决方案。

(4)嵌入式操作系统从可用型、通用型向可定制型、优化型转变,可定制嵌入式操作系统是嵌入式操作系统的发展趋势。

(5)集成开发环境的开放性、抽象程度更高,调试工具和手段更方便易用。嵌入式开发需要采用交叉式的开发和调试过程,开发工具的好坏对于开发周期、开发难度、开发质量具有较大影响,更为开放、抽象程度更高、更易使用的开发工具,以及更便利的调试工具和手段将成为趋势。

(6)应用软件跨硬件平台直接使用成为一种趋势。嵌入式系统由于软硬件定制的特点,使得应用软件几乎无法实现跨硬件平台的直接使用,这对于嵌入应用是一个重大障碍。但是随着ANDROID将虚拟机技术引入到嵌入软件中,使得嵌入式应用程序可以直接跨硬件平台使用,这将极大地推动智能终端设备的普及。

1.8 嵌入式系统开发步骤和方法

嵌入式系统上的软件开发过程与普通基于PC机系统上的软件开发具有很大的区别。PC机上进行程序开发,程序直接在PC机的内存中,由PC机的CPU运行,可以通过观察PC机上CPU的运行状况来了解程序的正确与否,并通过反复的运行、调试、修改达到设计目标;在嵌入式系统上进行软件开发,情况将发生很大变化,虽然其开发都是反复的代码编写、运行、调试、修改等步骤,但是由于受到资源的限制,嵌入式硬件上无法直接进行软件编写和调试工作,软件需要在PC机(称为主机HOST)上进行编写,生成可执行代码,并通过PC机进行调试。但是可执行代码需要传送到嵌入式实验箱或开发板中(称为目标机TARGET),而调试时需要查看的运行情况又需要通过一定方式传送到主机上,并反复修改、下载、调试,最终达到设计目标。

因此,嵌入式的实验在步骤上将比传统的PC软件开发更加复杂和困难。在嵌入式系统的开发环境下,其基本开发步骤如下:

(1)编辑,通过代码编写完成程序的基本设计工作;

(2)编译,通过编译工具将C/C++源程序编译为目标代码;

(3)链接,将目标代码链接形成完整的ELF或HEX可执行文件;

(4)下载,通过下载或烧写的方式将链接好的二进制可执行文件下载到目标机上;

(5)调试,通过一定的调试手段对目标机上的程序进行调试,通过各种调试手段查找代码的错误或问题,为进一步修改提供支持。

嵌入式系统的开发过程至少包括以上五个步骤,这五个步骤在程序设计过程将不断反复,最终完成符合设计目标的程序设计。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈