[信息与通信]嵌入式系统概念.doc
《[信息与通信]嵌入式系统概念.doc》由会员分享,可在线阅读,更多相关《[信息与通信]嵌入式系统概念.doc(35页珍藏版)》请在三一办公上搜索。
1、1.1嵌入式系统1.1.1系统系统是一种根据固定的计划、程序或者规则进行工作、组织或者执行一项或多项任务的方式。系统也是一种安排方法,其所有单元按照一定的计划或者程序装配在一起,并共同工作。下面,我们来看两个示例。 手表是一个时间显示系统(time-display system),其零件包括硬件、表针和电池,以及漂亮的表盘、底盘和表链。这些零件组织在一起显示每一秒的实时时间,并且每一秒都连续更新时间显示。每过一秒钟,其系统程序就使用三个表针来更新显示。它遵守一系列的规则。其中一些规则如下所述:(i)所有的表针都顺时针转动。(ii)细长的表针每过一秒做一次旋转运动,1分钟后回到原位。(iii)长
2、表针每过一分钟做一次旋转运动,1小时后回到原位。(iv)短表针每过一小时做一次旋转运动,12小时后回到原位。(v)每天经过12小时后,所有的表针都回归原位。 洗衣机是一个自动洗涤系统(automatic clothes-washing system)。重要的硬件零件包括状态显示板、用于用户定义的开关和转盘、用于旋转的电动机、电源以及控制单元、内部水量传感器、进水螺线管阀门以及出水螺线管阀门。这些零件装配在一起,按照用户给定的程序自动洗涤。系统程序就是清洗放置在桶中的脏衣服,按照事先编程的步骤和阶段进行旋转。它也遵守一系列的规则。其中一些规则如下所述:(i)严格按照下面的步骤执行。第一步:按照一
3、个事先编程的周期旋转电动机,清洗衣物。第二步:将脏水排出后,再注入新水,如果系统没有设置为节水模式,则可以进行第二次注水。第三步:将水完全排出后,按照事先编程的周期快速旋转电动机,通过将水从衣物中甩出,拧干衣物。第四步:通过闪烁显示,提示用户当前洗涤结束。报警一分钟发出信号,表示洗涤结束。(ii)在每一个步骤中都显示系统当前所处的处理阶段。(iii)当发生中断时,只执行程序剩下的部分,再次启动时从过程被中断的地方重新开始。一般不会出现从第一步开始的重复执行,除非用户加进了另外一些衣服重置了系统和程序。1.1.2嵌入式系统 计算机是一个具有下列或者更多组成部分的系统。 (1)微处理器 (2)大型
4、存储器,包括如下两种: (a)主存储器(半导体存储器RAM、ROM以及可快速访问的高速缓存)。 (b)辅助存储器(硬盘、磁盘和磁带中的磁性存储器,以及CD-ROM中的光存储器)。 (3)输入单元,例如键盘、鼠标、数字转换器、扫描仪等等。 (4)输出单元,例如显示器、打印机等等。 (5)网络单元,例如以太网卡、前端基于处理器的驱动程序等等。 (6) I/O单元,例如调制解调器、附有调制解调器的传真机等等。 嵌入式系统是一种将嵌入了软件的计算机硬件作为其最重要的一部分的系统。它是一种专用于某个应用或者产品的基于计算机的系统。它可以是一个独立的系统,也可以是更大系统的一部分。由于其软件通常嵌入在RO
5、M(只读存储器)中,因此并不像计算机一样需要辅助存储器。一个嵌入式系统有三个主要组成部分: (1)硬件。图1-1给出了嵌入式系统硬件中的组成单元。 (2)主应用软件。应用软件可以并发地执行任务序列或者多任务。(3)实时操作系统(RTOS)用来管理应用软件,并提供一种机制,使得处理器在一次进程调度时运行一个进程,并在各个进程(任务)之间进行上下文切换。RTOS定义了系统工作的方式。它将对资源的访问组织成为系统的任务序列。它按照计划控制延迟(latency)并满足最后期限,从而调度任务的执行(延迟指的是运行一项任务的各段代码之间,以及任务发生所需要的等待周期)。它在执行应用软件的过程中制定规则。小
6、型嵌入式系统可能不需要RTOS。 嵌入式系统的软件设计受三个条件的限制:(i)可用的系统存储器,(ii)处理器速度,(iii)当以等待事件、运行、停止和唤醒的周期连续运行系统时,对功耗的限制。 有许多书都给出了嵌入式系统的定义。下面给出的是其他文献中对嵌入式系统的定义: Computers as Components一Principles of Embedded Computing System Design一书的作者Wayne Wolf认为:“什么是嵌入式计算系统?如果不严格地定义,它是任何一个包含可编程计算机的设备,但是它本身却不是一个通用计算机”,“使用微处理器构造的传真机或者时钟就是一
7、种嵌入式计算系统”。 Embedded Microcontrollers一书的作者Todd D. Morton认为:“嵌入式系统是一种电子系统,它包含微处理器或者微控制器,但是我们不认为它们是计算机一计算机隐藏或者嵌入在系统中。” Embedded Software Primer一书的作者Davie E. Simon认为:“人们使用嵌入式系统这个术语,指的是隐藏在任一产品中的一个计算机系统。”An Introduction to the Design of Small Scale Embedded System with examples from PIC, 80C51and 68HC05/0
8、8 Microcontrollers一书的作者Tim Wilmshurst认为:(1)“嵌入式系统是这样一个系统,它的首要功能并不是计算,而是受嵌入其中的计算机控制的一个系统。“嵌入”暗示了它存在于整个系统中,从外部观察不到,形成了更大整体的一个完整部分。”(2)“嵌入式系统是一种基于微控制器、软件驱动的可靠实时控制系统,以自治的、人工的或者网络方式进行交互,对各种物理变量进行操作,存在于各种环境中,在竞争激烈的市场上出售”。1.1.3嵌入式系统的分类我们可以将嵌入式系统分成以下三种类型(在第1.5节中我们将给出每一种类型的示例):(1)小型嵌入式系统这些系统是采用一个8位或者16位的微控制器
9、设计的;硬件和软件复杂度很小,需要进行板级设计。它们甚至可以是电池驱动的。当为这些系统开发嵌入式软件时,主要的编程工具是所使用的微控制器或者处理器专用的编辑器、汇编器(assembler)和交叉汇编器。通常利用C语言来开发这些系统。C程序被编译为汇编程序,然后将可执行代码存放到系统存储器的适当位置上。为了满足系统连续运行时的功耗限制,软件必须放置在存储器中。(2)中型嵌入式系统这些系统是采用一个16位或者32位的微控制器、DSP或者精简指令集计算机(RISC)设计的;硬件和软件复杂度都比较大。对于复杂的软件设计,可以使用如下的编程工具:RTOS,源代码设计工具、模拟器、调试器和集成开发环境(I
10、DE)。软件工具还提供了硬件复杂性的解决方法。汇编器作为编程工具来说用处不大。这些系统还可以运用已有的ASSP和IP(后面将会介绍)来完成各种功能,例如,总线接口、加密、解密、离散余弦变换和逆变换、TCP/IP协议栈和网络连接功能(ASSP和IP可能还必须用系统软件进行适当的配置,才能集成到系统总线上)。 (3)复杂嵌入式系统 复杂嵌入式系统的软件和硬件都非常复杂,需要可升级的处理器或者可配置的处理器和可编程逻辑阵列。它们用于边缘应用,在这些应用中,需要硬件和软件协同设计,并且都集成到最终的系统中;然而,它们却受到硬件单元所提供的处理速度的限制。为了节约时间并提高运行速度,可以在硬件中实现一定
11、的软件功能,例如加密和解密算法、离散余弦变换和逆变换算法、TCP/IP协议栈和网络驱动程序功能。系统中某些硬件资源的功能也可以用软件来实现。这些系统的开发工具要么十分昂贵,要么根本就不存在。有时候,必须为这些系统开发编译器或者可重定目标的编译器(可重定目标的编译器,就是一种可以根据系统中给定的目标配置进行配置的编译器)。1.1.4嵌入式系统设计者需要具备的技能 嵌入式系统设计者必须使用现有的工具,并在给定的规范、费用和时间框架内开发产品(在第7章和12章中将介绍嵌入式系统设计方面的问题。第1.5节也有介绍)。 (1)小型嵌入式系统设计者需要具备的技能前文介绍的作者Tim Wilmshurst(
12、参见1.1.2节)说过,开发小型嵌入式系统的个人或者团队需要具备下列技能:“完全理解微控制器,具备计算机体系结构、数字电子设计、软件工程、数据通信、控制工程、电动机和致动器、传感器和测量、模拟电子设计、IC设计和生产的基本知识。”特定的情况下需要特定的技能。例如,当设计控制系统时,需要具备控制工程的知识;设计系统接口时,需要具备模拟电子设计的知识。本书将介绍下列主题的基础部分,供那些已经具备了微控制器和微处理器知识的设计者使用。(i)计算机体系结构和组织。(ii)存储器。(iii)存储器分配。 (iv)存储器接口。 (v)向PROM或者ROM中刻录(移植所用的术语)可执行机器码(参见2.3.1
13、节)。(vi)译码器和信号分离器的使用。(vii)直接存储器访问。(viii)端口。(ix)用汇编语言实现设备驱动程序。(x)简单和复杂的总线。(xi)定时器。(xii)中断服务机制。(xiii)C编程元素。(xiv)存储器优化。(xv)硬件和微控制器的选择。(xvi)ICE(电路内部仿真器)、交叉汇编器和测试设备的使用。(xvii)使用测试向量调试软件和硬件bug。其他领域的基础知识,如数据通信、控制工程、电动机和致动器、传感器和测量、模拟电子设计、IC设计和生产,可以从现有的其他教科书中找到。 对小型嵌入式系统感兴趣的设计者没有必要全面了解中断延迟和最后期限以及它们的处理方式,RTOS编程
14、工具将在第9章和第10章中介绍,程序设计模型将在第6章介绍。 (2)中型嵌入式系统设计者需要具备的技能 对于设计中型的嵌入式系统来说,C语言编程和RTOS编程以及程序建模是必须具备的技能。下面的知识对于设计者来说是很关键的。(i)任务以及RTOS对它们的调度。(ii)协同式和抢先式调度。(iii)Intel处理器通信功能。(iv)共享数据的使用,以及对临界区和可重入函数的编程。(v)信号量、邮箱、队列、插槽以及管道的使用。(vi)中断延迟和满足任务最后期限的处理。(vii) 各种RTOS函数的使用。(viii)物理和虚拟设备驱动程序的使用。(第8章和第10章将详细介绍这8项技能以及一些示例,在
15、第11章中将结合案例来学习它们的用法。)对于将要使用的特定微控制器,设计者必须使用具有应用编程接口(API)的RTOS编程工具。各种功能的处理方法,例如存储器分配、定时器、设备驱动程序和中断处理机制,已经作为RTOS的API存在了。设计者只需要知道硬件组织和这些API的使用即可。这样微控制器或者处理器就为设计者提供了一个小的系统元素,设计者只需要具备很少的知识就足够了。 (3)复杂嵌入式系统设计者需要具备的技能 设计团队的成员必须协同设计,并解决硬件和软件设计中的高层次复杂问题。嵌入式系统硬件工程师应该具备硬件单元的全面技能,还要具备C语言、RTOS和其他编程工具的基本知识。软件工程师应该具备
16、硬件的基础知识,全面掌握C语言、RTOS和其他编程工具的知识。最终的设计方案就通过系统集成来获得。1.2嵌入式系统中的处理器 处理器(processor)是嵌入式系统的核心。对于嵌入式系统设计者来说,微处理器和微控制器的知识是必备的。在下面的内容中,我们假设读者对于微处理器和微控制器已经有了全面的了解(读者可以参考标准教材或者本书后面的“参考文献”中列出的参考书,深入了解在嵌入式系统设计中所集成的微处理器、微控制器和DSP) 。1.2.1系统中的处理器 处理器具有两个基本单元:程序流控制单元(CU)和执行单元(EU) 。CU中包含了一个取指单元,用于从存储器中取指令。EU中含有执行指令的电路,
17、用于数据转移操作以及数据从一种形式到另外一种形式的转换操作。EU包含算术逻辑单元(ALU),还包含执行程序控制任务指令的电路,例如挂起、中断或者跳转到其他指令集。它还可以执行调用指令或者跳转到另外一个程序并进行函数调用。 处理器运行取指和执行周期。在处理器的指令集中定义的指令按照它们从存储器中取回的顺序执行。处理器一般是IC芯片的形式,它也可以是ASIC或者SoC中的一个核。核是VLSI芯片上功能电路的一部分。 嵌入式处理器芯片或者核可以是下列之一: (1)通用处理器(GPP): a.微处理器(参见1.2.2节)。 b.微控制器(参见1.2.3节)。 c.嵌入式处理器(参见1.2.4节)。 d
18、.数字信号处理器(参见1.2.5节)。 e.媒体处理器(参见附录E的E. 1节)。 (2)作为附加处理器的专用系统处理器(ASSP)(参见1.2.6节)。 (3)使用通用处理器(GPP)以及专用指令处理器(ASIP)的多处理器系统(参见1.2.7节)。 (4)嵌入到一个专用集成电路(ASIC)中或者一个大规模集成电路(VLSI)中的GPP核或者ASIP核,或者VLSI(ASIC)芯片中集成了处理器单元的FPGA核。 对于系统设计者,选择处理器时,有以下几个要点需要考虑: (1)指令集。 (2)单个算术或者逻辑操作中操作数的最大位宽(8,16或者32位)。 (3)以MHz表示的时钟频率和百万指令
19、秒(MIPS)表示的处理速度(参见附录B9一了解以公制Dhyrystone表示的处理性能)。 (4)处理器对用于满足最后期限的复杂算法的解决能力。 注意: 由于下列原因,需要使用通用处理器:(i)快速系统开发,用预定义的通用指令集中已知可用的指令处理,可以加快系统开发速度。(ii)如果印制板和I/O接口是根据GPP设计的,可以通过只修改印制板上ROM中的嵌入式软件,应用于一个新的系统。(iii)现有的编译器有助于用高级语言开发嵌入式软件。(iv)经过测试和调试过的处理器专用API ,以及先前为其他应用所设计的代码,能够加快一个新系统的开发速度。1.2.2微处理器 CPU是一个集中取指和处理一组
20、通用指令的单元。处理器指令集(参见2.4节)包含数据转移操作、ALU操作、堆栈操作、输入和输出(I/O)操作以及程序控制、排序和管理操作。通用指令集(参见附录A中的A.1节)通常是特定的CPU专用的。任何一个CPU必须具备下列基本的功能单元。 (1)一个控制单元,用于取指和控制一个给定命令或指令的顺序执行,并与系统其余部分进行通信。 (2)一个ALU单元,用于对字节或者字的算术和逻辑操作。它可以立即处理8, 16, 32或者64位的字。 微处理器是一个VLSI芯片,芯片中有一个CPU,还可以有其他附加的单元(例如,高速缓存、浮点处理算术单元、流水线和超标量单元),这样可以加快指令的处理速度(参
21、见2.1节)。 早期微处理器的取指和执行周期受到约为1MHz的时钟频率的限制。现在处理器的频率已经达到了2GHz(Intel在2001年8月25日发布了一款2GHz的处理器。这也是IBM PC面世20周年的日子。Intel在2003年4月14日发布了3GHz的奔腾4处理器)。自2002年初,几个非常复杂的嵌入式系统(例如,Gbps收发器和加密引擎)中都集成了GHz的处理器(Gbps的意思是每秒吉(G)比特。收发器的意思是,具有适当处理和控制功能(例如总线冲突)的发送和接收电路)。 早期微处理器的一个例子是Intel 8085。它是一个8位的处理器。另外一个是Intel 8086或者8088,是
22、16位的处理器。Intel 80x86(也称为x86)处理器是8086的32位后继处理器(这里,x的意思是将8086扩展32位)。80x86系列中32位处理器的例子是Intel 80386和80486。大多数IBM PC使用80x86系列的处理器,PC中集成的完成特定任务的嵌入式系统(例如图形加速器、磁盘控制器、网络接口卡)也使用这些处理器。新一代32位和64位微处理器的例子是Intel公司著名的奔腾(Pentium)系列。它们具有超标量体系结构(参见2.1节),还拥有强大的ALU和浮点处理单元(FLPU)(参见表2.1)。奔腾III处理器在嵌入式系统中以1 GHz的时钟频率运行的一个例子是“
23、加密引擎”。它可以以0.464 Gbps的速度给数据加密。表1-1列出了嵌入式系统中使用的一些重要微处理器。这些微处理器属于下列流派的系列。流派1和2的处理器具有复杂指令集计算机(CISC)体系结构(参见A.1)。流派3和4的微处理器具有精简指令集计算机(RISC)体系结构(参见A.1.4节)。RISC处理器处理指令的速度较快,每一条指令都是在一个时钟周期内处理的。此外,除了上面所提到过的改进的性能外,处理指令集中一条指令的速度也有了很大提高。Thumb指令集是一种新的工业标准,降低了RISC处理器的代码密度(嵌入式系统中处理器的体系结构特征概念,CISC和RISC处理器和处理器指令集,将在后
24、面的附录A和B中介绍)。当系统需要执行比较复杂的计算(例如语音处理系统)时,可以使用RISC。 系统设计者如何选择微处理器呢?这个问题将在2.2节中介绍。 注意: 当大型的嵌入式软件位于芯片的外部存储器时,要使用微处理器。当系统需要执行比较复杂的计算时,要使用RISC核微处理器。1.2.3微控制器正如微处理器是计算系统中一个最基本的部分一样,微控制器是控制或者通信电路中一个最基本的组成部分。微控制器是一个单芯片VLSI单元(也称为“微计算机”),这个单元虽然计算能力有限,却具有改进了的输入输出功能以及一些片上功能单元(关于各种功能单元的介绍参见1.3节)。微控制器尤其适用于具有片上程序存储器和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息 通信 嵌入式 系统 概念
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4663035.html