- 嵌入式系统原理与接口技术
- 张学武 江冰 张卓编著
- 5字
- 2020-08-28 03:42:33
第1章 绪论
1.1 嵌入式系统概述
嵌入式系统的飞速发展已经极大地改变了我们的生活,从风靡全球的iPhone,到生活中随处可见的MP3、数码相机、打印机、家用电器,生活中的衣食住行无处不存在嵌入式系统的身影,可以说,嵌入式系统的发展改变了我们的生活方式,也让我们的生活变得更智能。
虽然嵌入式系统无处不在,然而要真正理解它并不容易,正是由于嵌入式系统有着如此广泛的应用,因此电子信息类专业的学生更应该掌握它的相关知识,本章就介绍嵌入式系统相关的基础知识。
1.1.1 嵌入式系统的概述
之前已经有所介绍,嵌入式系统无处不在,小到一个简单的单片机控制系统,大到复杂的航天工程,无论是在民用还是军用领域,无论是在日常生活还是在工农业生产中,随处可以发现嵌入式系统的身影。那么,什么是嵌入式系统呢?在计算机刚刚出现的时候,人们通常按照计算机的体系结构、运算速度、结构规模、应用领域等将其分为大型计算机、中型计算机、小型计算机、微型计算机,然而随着半导体技术和计算机技术的飞速发展,这种分类方式已经失去了实际的意义。另外,随着计算机技术及其产品对其他行业的广泛渗透和大规模应用,以应用为中心的分类方法更为合理,这种分类方法把计算机按照嵌入式应用和非嵌入式应用分为嵌入式计算机和通用计算机。
因此,常用的嵌入式系统定义是:嵌入式系统是以应用为中心,以计算机技术为基础,对系统的功能、可靠性、成本、体积、功耗等严格要求,软件和硬件资源可以高度定制和裁剪的专用计算机系统。这个定义主要包含两个信息:一是嵌入式系统是专用计算机系统,因此必须有处理器,具备计算机系统的基本特征。二是嵌入式系统的功能是有严格要求并按照指定的应用而设计的。
和嵌入式系统形成对比的是通用计算机,这个对于同学们来说更为直观,对照嵌入式系统的定义,我们可以归纳出通用计算机系统的一些基本特点。首先,通用计算机系统的软件和硬件资源是富余的,通用计算机具有计算机的标准形态,相应的软件和硬件配置较为固定,可以通过配置不同的应用软件来实现不同的应用。例如我们平时所使用的计算机,并不是所有的硬件资源我们都能够使用到,同样在我们使用的操作系统中,也并不是所有的软件资源都是我们能够用到的,然而正是这些通用的软件和硬件配置才能够保证通用计算机系统的通用性,从而满足不同的应用需求。
正是由于嵌入式系统在功能、成本、功耗等方面的严格要求,因此嵌入式系统产品具有非常巨大的应用市场。相对于传统的计算机行业,嵌入式系统行业的需求更为丰富,在通用计算机领域,主要的软件和硬件技术都已经被世界上著名的企业垄断,普通公司很难有所作为。如CPU基本上被Intel、AMD等公司垄断;操作系统的办公软件方面,微软早已占据了大部分的市场份额;在高端显卡方面则是NVIDIA和ATI的天下,同时传统的计算机厂商也面临着巨大的竞争压力。嵌入式领域则不同,嵌入式应用广泛,行业细分程度大,还没有哪个系列的处理器和操作系统能够形成垄断。即使在体系结构或者软件平台上能够形成主流,在各不相同的应用领域也很难有公司能够垄断全部市场。正是由于嵌入式系统的产品和技术高度分散,行业应用广泛,同时技术更新换代迅速,可供创新和发挥的余地很大,因此学习和从事嵌入式系统相关领域的设计和开发必然能够大有作为。
1.1.2 嵌入式系统的特征
通过对嵌入式系统的基本介绍,可以总结嵌入式系统以下七个基本特征。
1.嵌入式系统具有特定功能,用于特定的任务
通过与通用计算机的对比就可以看出,这是嵌入式系统和通用计算机系统最本质的区别。在半导体技术和计算机技术飞速发展的今天,嵌入式系统的智能化程度越来越高,功能越来越强大,但是始终无法背离这一点。例如MP3的发展,早期的MP3只能用来听音乐,后来随着技术的发展,MP3的存储容量不断增大,支持的音乐格式逐渐增多,同时使用更先进的解码技术使音质更加出色,使用了彩色的屏幕使操作更加方便,并逐渐增加了电子书、日历等功能,然而这些变化并没有偏离听歌这一特定的任务。
由于嵌入式系统的应用主要是改变我们的生活,因此特定的功能往往也会随着技术的发展而有所调整,但是其主要功能却是一定的,否则就是完全不同的产品了。MP4的发展就非常具有代表性,MP4的诞生比较模糊,当MP3播放器使用了彩色屏幕之后,视频播放逐渐成为了一个附加功能,因此早期的MP4也可以理解为可以放视频的MP3,只是功能的侧重点不同而已。早期的MP4只能播放特定格式的视频,需要使用特定的转换软件进行格式转换,如著名的魅族M6。随着视频编解码芯片的发展,在2008年年初出现了可以直接播放RMVB的播放器,如当时的蓝魔RM970等。2009年以后,MP4的发展进入了快车道,也进入了多元化的发展时代,一方面是对高质量视频的支持,480P、720P、1080P等高清格式在MP4上轻松地播放已经不是问题;另一方面,一些当初的附加功能也使MP4朝着多元化的方向发展,一些MP4加入了PDF、OFFICE文档的阅读功能,从而演变成了侧重阅读的彩屏电子书。2010年以来,随着Android系统的高速发展,一些MP4加入了Android系统,可以运行Android丰富的应用,加入了WiFi,使用大尺寸、高分辨率的屏幕之后,逐渐演变为了MID(Mobile Internet Device,移动互联网设备)。
这种功能上的专注和转变最合适的例子就是苹果的系列产品,如图1-1所示。从当初针对音乐的iPod,到逐渐融合视频、照相功能,再到加入iOS系统,具备上网、照相、游戏等功能的iPod touch,最后到iPhone、iPad,虽然功能越来越丰富,很多产品也逐渐具备其他产品的功能,随着技术的发展,这些平台的通用性与扩展性也越来越强,但是对于一款嵌入式产品来说,它的功能仍然是有侧重的。
图1-1 苹果系列产品
从上面的例子也可以看出,随着集成电路制造技术和计算机技术的不断发展,处理器的速度越来越快,存储器的容量越来越大,芯片的稳定性越来越好,主要元器件的价格越来越低,以前一些专用的嵌入式系统特别是在民用领域,其功能越来越多,硬件资源越来越丰富,软件也具有很好的升级性和扩展性,因此嵌入式系统的这一特征也逐渐模糊化,但是仍然是嵌入式系统的主要特征。
2.嵌入式系统更为关注成本
对于很多嵌入式系统而言,由于功能比较单一、固定,嵌入式系统资源比较有限,因此设计者对成本往往更为关注。因此,在规划嵌入式系统的结构设计时,对软件和硬件资源的设计通常是做到够用即可,只要能够满足嵌入式系统设计要求的特定应用,就不会随意增加资源,往往还要对系统进行优化和精简,从而达到控制成本的目的。相比之下,通用计算机就完全不同,虽然也需要进行成本的控制,然而由于通用计算机的用途多变,不能假定仅用作某一用途,因此,在设计时必须照顾到各方面的应用情况,保证资源上的充裕。所以,相对于通用计算机系统,嵌入式系统的成本控制更为有效。
成本控制意味着一定需要做资源上的精简,对系统的硬件进行集成和整合也是非常好的一个方式,最好的例子莫过于MTK了。MTK是中国台湾多媒体芯片提供商联发科技(MediaTek)的简称。由于MTK等上游芯片厂商创新性的Turnkey Solution模式(将芯片与手机开发所需的软件平台乃至第三方软件捆绑销售,见图1-2)提供了较健全的多媒体平台解决方案,使国产手机厂商在很大程度上规避了市场需求的快速变化,以及自身研发经验不成熟等不
图1-2 联发科技Turnkey Solution
利因素所带来的风险。MTK公司的产品集成了较多的多媒体功能,并拥有较低的价格,因此在国产手机厂商和手机设计公司得到了广泛的应用。MTK的基带芯片多数采用ARM内核,将处理器内核、DSP、音频处理、UART、LCD接口、GPIO、SIM卡接口等基本的功能单元进行高度的集成,并最大程度控制成本,因此直接导致了山寨手机在中国市场的爆发,具备拍照、音乐、视频、上网、手写等功能的手机可以从之前的几千元降到只有几百元的价格,足以体现这种方案的优势。可以说,MTK把这种软件和硬件集成降低成本的模式发挥到了极致。然而这种模式仍在继续,在MP4、GPS、电子书、MID等领域,这种模式仍然取得了很好的效果。
3.嵌入式系统一般都有功耗要求
嵌入式系统比通用计算机更为关注功耗的要求,这一点很容易理解,因为嵌入式系统的应用环境往往比较特殊。例如在移动设备中,在使用电池供电的情况下,功耗的控制直接关系到续航时间的长短,而电池技术的发展与计算机技术的发展不对称,电池如今已经成为了制约手机、平板电脑等通用移动设备发展的主要因素之一。
4.嵌入式系统通常有实时性的要求
对于一些对实时性要求非常严格的嵌入式系统而言,系统能够在规定时间内对外部事件做出反应非常关键。当然所谓的实时性也是相对而言,针对不同的应用自然有不同的标准,对于人机交互系统,系统在1s内能够做出反应就能够被接受;银联刷卡系统,在5s内能够返回数据就能够满足需求。如图1-3所示,如果对于一个汽车刹车控制系统而言,就要求系统在毫秒级别内做出反应。因此,嵌入式系统的实时性是设计者必须慎重考虑的问题。
图1-3 对实时性要求极高的汽车电子系统
5.嵌入式系统的软件通常使用固态化存储
通用计算机系统的功能取决于所安装的软件,用户可以方便地使用和更改功能,例如PC,可以自由地安装各种软件和游戏。为了适应这种更改性,通用计算机系统的软件通常存储在易更改载体中(如硬盘)。而对于嵌入式系统而言,由于其主体功能是固定的,通常也不需要使用者更改内部软件,因此嵌入式系统的软件通常使用固态化存储,有的嵌入式产品还要对软件进行加密,防止他人进行复制。例如,我们编写好了一个51单片机程序,通过编译器生成相应的HEX文件,使用下载线或者编程器将相应的文件写入单片机的片内Flash中,那么程序的功能就固定了,在正常的使用过程中软件功能无法进行更改。这样存储的方式可以大大提高系统的可靠性。
6.嵌入式系统的软件和硬件可靠性要求更高
由于嵌入式系统应用在各行各业,应用环境也复杂多变,在某些环境下一个很小的错误可能会导致灾难性的后果,因此无论是软件和硬件都具有很高的可靠性要求。例如使用计算机的过程中如果死机,无非就是把计算机重启一下,但是如果是乘坐飞机在飞行的过程中,飞机的控制系统死机了,那后果是不可想象的。因此在特殊的应用场合,可靠性是嵌入式系统设计考虑的首要因素。
可靠性的提升往往是需要以成本的提升为代价的,比如硬件的可靠性,绝大多数的IC (Integrated Circuit,集成电路)都有商用、工业、航天等不同的级别。级别越高,IC的工作温度范围就越广,稳定性就越高,当然价格也成倍增长。软件部分如果要提高可靠性,可能需要依赖更多的硬件资源和人力资源,成本也会相应提高。因此,嵌入式系统的可靠性要求需要针对具体的应用进行统筹分析,在硬件的设计与软件开发上同步提升,缺一不可。
7.嵌入式系统相关产品具有较长的生命周期
如今我们多数用着双核甚至是四核、六核的CPU,2GHz、3GHz甚至是更高的主频,4GB甚至更高的内存,很难想象十年前那十几兆内存、几百兆主频计算机的性能。十几年前用着大哥大的时候,也很难想象如今四核处理器、1080P高清大屏幕,触控体验如此优越的手机。的确,计算机技术的发展如此神速,产品的更新换代速度远超我们的想象。
由于嵌入式系统面向具体的应用,它的升级换代也和具体的应用同步进行,各个行业的应用系统和产品很少发生突然性的跳跃,嵌入式系统中的软件也因此更强调可继承性和技术衔接性,因此嵌入式系统的发展也体现出相对的稳定性,嵌入式系统相关产品的生命周期因此也要长得多。
1.1.3 嵌入式系统的组成
嵌入式系统的核心部分由硬件和软件组成。一般包括嵌入式处理器、存储器、操作系统、应用程序和输入/输出设备等。
嵌入式系统的组成并不是固定的,其形式可以多样化,比如输入/输出设备,可以以简单的一个按钮作为输入,一个LED作为输出,也可以是具备复杂通信协议的通信接口作为输入,复杂的机器人手臂作为输出。
嵌入式系统的主要硬件组成可以简单地分为嵌入式处理器和存储器。由于超大规模集成电路的迅速发展,很多单片的嵌入式处理器中逐渐加入丰富的资源,常见的嵌入式处理器中都已经包括了容量不等的Flash、RAM。而各种通信接口也逐渐加入嵌入式处理器中,现在一片嵌入式处理器上加上电源电路、时钟电路就能构成一个嵌入式最小系统。
嵌入式处理器是嵌入式系统的硬件核心,它大多数用于专门设计的场合,将许多通用处理器需要外接辅助设备的功能使用芯片内部的资源完成,因此在使用上可以根据应用的不同而进行功能上的组合和裁剪,同时具有更高的效率和可靠性能。嵌入式处理器可以分为嵌入式微控制器、嵌入式微处理器、嵌入式DSP处理器和嵌入式片上系统等几类,具体内容将在1.2节中进行详细介绍。
1.1.4 嵌入式系统的现状及发展趋势
1.嵌入式系统的历史及现状
20世纪70年代发展起来的微型计算机,由于体积小、功耗低、结构简单、可靠性高、使用方便、性价比高等一系列优点,得到了广泛应用和迅速普及。微型机表现出的智能化水平引起了控制专业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。例如,将微型计算机经电气加固和机械加固,并配置各种外围接口电路,安装到大型舰船中,构成自动驾驶仪或轮机状态监测系统。这样一来,计算机便失去了原来的形态与通用的计算机功能。为了区别原有的通用计算机系统,把控制系统嵌入到对象体系中,实现对象体系智能化控制的计算机,称为嵌入式计算机系统。由此可见,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去。
尽管嵌入式系统起源于微型机时代,但微型计算机的体积、价位和可靠性都无法满足广大对象系统的嵌入式应用要求,因此,嵌入式系统必须走独立发展的道路。这条道路就是单芯片化道路,即将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。
嵌入式计算机的真正发展是在微处理器问世之后。1971年11月,Intel公司成功地把算术运算器和控制器电路集成在一起,推出了第一款微处理器Intel4004(如图1-4所示),其后各厂家陆续推出了许多8位、16位的微处理器,包括Intel8080/8085、8086,Motorola的6800、68000,以及Zilog的Z80、Z8000等。以这些微处理器作为核心所构成的系统广泛地应用于仪器仪表、医疗设备、机器人、家用电器等领域。1980年,Intel公司对MCS-48单片机进行了全面完善,推出了8位MCS-51单片机,并获得巨大成功,奠定了嵌入式系统的单片机应用模式。至今,MCS-51单片机仍在大量使用。1984年,Intel公司又推出了16位8096系列,并将其称之为嵌入式微控制器,这可能是“嵌入式”一词第一次在微处理机领域出现。
图1-4 世界上第一款微处理器机器产品
此外,为了高速、实时地处理数字信号,1982年诞生了首枚数字信号处理芯片(DSP),DSP是模拟信号转换成数字信号以后进行高速实时处理的专业处理器,其处理速度比当时最快的CPU还快10~50倍。随着集成电路技术的发展,DSP芯片的性能不断提高,目前已广泛用于通信、控制、计算机等对数据处理、计算要求较高的领域。
在近30年的历史中,各种改进的、面向具体应用的不同品牌单片机风起云涌,得到了广泛应用,但这些应用基本上是基于硬件底层的单线程程序。20世纪90年代后,伴随着网络时代的来临,网络、通信、多媒体技术得以发展,8/16位单片机在速度和内存容量上已经很难满足这些领域的应用需求。而由于集成电路技术的发展,32位微处理器价格不断下降,综合竞争能力已可以和8/16位单片机媲美。32位微处理器面向嵌入式系统的高端应用,由于速度快,资源丰富,加上应用本身的复杂性、可靠性要求等,软件的开发一般会需要操作系统平台支持。近几年,嵌入式设备(内部有嵌入式系统的产品)大量涌现,如手机、PDA、MP3、微波炉、数码相机、机顶盒、各种网络设备等。嵌入式系统开发应用需求越来越大,使嵌入式系统成为继PC和Internet之后IT技术的最热点,而构成嵌入式系统的主流趋势是32位嵌入式微处理器加实时多任务操作系统,目前的嵌入式系统往往指的是包含这种资源的系统。
2.嵌入式系统的发展趋势
信息时代、数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式系统的几大发展趋势。
(1)嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软件和硬件系统本身,同时需要提供强大的硬件开发工具和软件包支持。
目前,很多厂商已经充分考虑到这一点,无论是对消费类嵌入式产品还是工业嵌入式产品,开发工具和软件支持至关重要。当前的智能手机平台就能充分体现这一点,iPhone的成功很大程度上是苹果应用商店模式的成功,数十万的应用支持成为了iPhone受欢迎的主要原因之一。在专用领域,强大的硬件开发工具一方面有助于相关硬件和平台的普及,也可以极大缩短产品的开发周期,降低开发难度。比如,三星在推广ARM7、ARM9芯片的同时还提供官方开发板及软件开发支持包(BSP),而Windows CE在主推系统时也提供Embedded VC++作为开发工具,还有VxWorks的Tornado开发环境、Delta OS的Linda编译环境等都是这一趋势的典型体现。当然,这也是市场竞争的结果。
(2)网络化、信息化的要求随着互联网技术成熟、带宽增加而日益提高,使得以往单一功能的设备如电话、手机、冰箱、打印机等功能不再单一,结构更加复杂。
这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器,如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SoC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。
未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或几种,同时需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统内核支持网络模块,甚至可以在设备上嵌入We b浏览器,真正实现随时随地用各种设备上网。
(3)精简系统内核、算法,降低功耗和软件和硬件成本。
未来的嵌入式产品是软件和硬件紧密结合的设备,为了降低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软件和硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式软件技术,如Java、Web和WAP等。
(4)提供友好的多媒体人机界面。
良好的用户体验是任何一款产品最为重要的要求,早期的嵌入式系统由于功能简单、性能较低,人机交互功能较为薄弱,一般用于专业性较强的工业控制领域。随着嵌入式系统的发展,嵌入式系统的人机交互功能越来越强大,多媒体人机界面逐渐成为嵌入式系统的主要人机交互方式,也正是人机交互方式的改进使得嵌入式系统能够应用于更多的领域。如今,基本不需要任何培训就能够很自然地使用手机、取款机、购票机等,这些都得益于强大的多媒体人机界面。