[信息与通信]嵌入式系统概念.doc

上传人:音乐台 文档编号:1970337 上传时间:2019-01-27 格式:DOC 页数:36 大小:4.20MB
返回 下载 相关 举报
[信息与通信]嵌入式系统概念.doc_第1页
第1页 / 共36页
[信息与通信]嵌入式系统概念.doc_第2页
第2页 / 共36页
[信息与通信]嵌入式系统概念.doc_第3页
第3页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[信息与通信]嵌入式系统概念.doc》由会员分享,可在线阅读,更多相关《[信息与通信]嵌入式系统概念.doc(36页珍藏版)》请在三一文库上搜索。

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节)。微控制器尤其适用于具有片上程序存储器和

25、设备的用于实时控制应用的嵌入式系统。图1-2给出了微控制器中具有的功能电路(实线框中的部分)。图中还给出了给定微控制器系统的特定版本的专用单元(虚线框中的部分)。最近的一些微控制器也具有较高的计算和超标量处理能力(在2.1节中将介绍超标量体系结构的意义)。附录C给出了这些系列中具有代表性的微控制器的功能比较。嵌入式系统中应用的重要微控制器芯片通常属于表1-2中给出的5个系列流派。 1.此外还有一些流行的微控制器。(i)Hitachi H8x系列和Super H7xxx。 (ii)三菱740, 7700, M16C和M32C系列。(iii)美国国家半导体的COP8和CR16/16C。 (iv)东

26、芝TLCS 900S. (v)基于低电压电池系统的得州仪器MSP 430。 (vi)三星SAM80 (vii)Ziglog Z80和eZ80.2. 80x86微控制器版本(具有代表性的80188 8位处理器或者80386 16位处理器),每一种都具有64kB存储器,3个定时器和2个DMA通道。3.参见1.2.4节和B.1节。图1-3给出了在小型、中型和大型嵌入式系统中普遍使用的微控制器。在C.1节中(参见表C-1到C-3)将介绍系统设计者在选择微控制器作为一个处理单元之前必须考虑的特征。注意:当小型的嵌入式软件或者嵌入式软件的一部分位于芯片的部存储器时,以及当需要一些片上功能单元(例如中断处理

27、、端口、定时器、ADC和PWM)时,要使用微控制器。1.2.4复杂系统的嵌入式处理器 对于快速、精确、复杂的计算以及复杂的实时应用,上面所提到的微控制器和微处理器是不够的。一个电子作战系统,例如,需要跟踪雷达的事先预警与控制系统(AWACS),就是一个复杂的实时系统。需要特殊微处理器和微控制器,通常称为嵌入式处理器。当一个微控制器或者微处理器专门设计为具有下列功能时,使用术语嵌入式处理器比微控制器或者微处理器更恰当。 (I)快速上下文切换,因此降低了复杂实时应用中的任务延迟(参见4.6节)。 (2)自动ALU操作,没有共享数据问题。当一个位数较多的操作数放置在2个或者4个寄存器中时,不完全的A

28、LU(非自动的)就会导致数据共享问题(参见2.1节)。 (3)提供嵌入式软件进行更加快速、精确和复杂计算的RISC核。 实时图像处理和空气动力学计算是2个需要高速、精确和大量计算以及快速上下文切换的例子。嵌入式系统中重要的嵌入式处理器芯片有下列几个系列流派:l 流派1:ARM系列ARM7和ARM9*l 流派2:Intel系列i960 该系列芯片Intel已经不推荐使用l 流派3:AMD系列29050附录B介绍了ARM系列处理器。它们既有单芯片CPU版本,又有可以嵌入到VLSI芯片或者嵌入式系统的SoC解决方案中的文件版本(参见1.6节)。Intel系列i960微控制器也称为嵌入式处理器,因为它

29、们拥有包括CISC和RISC在内的必需的特征(参见A.1.4节)。在一个版本中,还有一个4通道的DMA控制器(参见2.6节)。80960包含一个8通道、248向量的可编程中断控制器。注意:当既需要快速处理,又需要上下文快速切换和自动ALU操作时,应使用嵌入式处理器。1.2.5数字信号处理器正如微处理器是计算系统的一个最基本单元一样,数字信号处理器(DSP)在需要进行信号处理应用的嵌入式系统中也是一个基本单元。举例来说,这些应用包括图像处理、多媒体、音频、视频、HDTV、DSP调制解调器和无线电通信处理系统。DSP还可以用于快速识别图像模式或者DNA序列。附录D详细介绍了嵌入式系统DSP。DSP

30、作为GPP是一个单芯片VLSI单元。它具有微处理器的计算能力,也具有一个乘法累加器(MAC)单元。现在,一般的DSP都具有一个1632的MAC单元。DSP提供了快速的、离散时间的、信号处理指令。它具有超长指令字(VLIW)处理能力;能够快速处理单指令多数据(SIMD)指令;能够快速处理离散余弦变换(DCT)和反离散余弦变换(IDCT)。对于信号分析、编码、过滤、噪声消除、回音消除、压缩和解压缩等算法的快速执行来说,DCT和IDCT是必备的。嵌入式系统中使用的重要的DSP可分为表1-3列出的几个流派。 1.例如,定点DSP TMS320C62XX的时钟速度为200MHz。详细描述参见D.4节。注

31、意:当需要快速处理信号处理功能时,可使用DSP。1.2.6嵌入式系统的专用系统处理器最近出现了一种新的嵌入式系统。这种系统在其设计中集成了专用系统处理器ASSP(Applicaion Specific Standard Processor)芯片或核。这样的系统最近己经投入使用。假设有一个实时视频处理嵌入式系统。嵌入式系统中需要进行实时处理的功能包括数字电视、高清电视解码器、视频转接器、DVD(Digital Video Disc,数字视频光盘)播放器、网络电话、视频会议和其他一些系统。这种处理需要一个视频压缩和解压缩系统,这种系统需要符合MPEG2或者MPEG4标准(MPEG是Motionpi

32、cture Expert Group的缩写,即移动图像专家组)。MPEG2或者MPEG4的信号压缩是在存储和传送之前完成的;解压缩是在取回或者接收这些信号之前完成的。对于MPEG压缩算法,如果运行了一个GPP嵌入式软件,则需要单独的DSP,以获得实时处理。专用于这些特定任务的ASSP本身就能够提供一种快速解决方法。需要对ASSP进行配置,使其与嵌入式系统中的其他单元进行接口。假设有一个嵌入式系统,该系统使用一个特定协议,并通过特定的总线结构将系统单元和另一个系统连接起来。再假设需要进行适当的加密和解密(对输出流加密,可以保护消息或者设计不被未知的外部实体获得)。对于这些任务,除了嵌入软件之外,

33、还有必要嵌入一些RTOS特征(参见1.4.6节)。如果只有软件用于完成上述任务,比起使用专用处理硬件来说,可能需要更长的时间。ASSP芯片提供了这样一种解决方案。例如,一个ASSP芯片出自i2Chip(http:/www.i2C),其中包含一个TCP,UDP,IP ARP和以太网10/00 MAC(介质访问控制)硬件逻辑。i2Chip的W310OA芯片是一种纯硬件Internet连接解决方案。处理网络任务必备的 TCP/IP堆栈处理软件现在已经可以作为硬件解决方案使用,这样做比使用系统GPP的软件解决方案要快5倍。它还是一种缺少RTOS特征的解决方案。在嵌入式系统中使用与这个ASSP芯片接口的

34、同类型微控制器,可以加入以太网连接(对于术语TCP,UDP, IP,ARP,以太网10/100和MAC,可以参考关于计算机网络方面的参考书。建议您参考由Rajkamal编写,McGraw-Hill在2002年出版的Internet and Web Technologies一书,了解这些协议中每一位的含义)。另外一个ASSP例子是“串口一以太网转换器(IIM7100)”。通过一个硬件协议堆栈来实现实时数据处理。这里不需要对应用程序或者固件进行修改,就能够提供低成本且最优的RTOS解决方案。注意:ASSP是一种附加处理单元,用来代替嵌入式软件运行专用任务。1.2.7使用通用处理器的多处理器系统在一

35、个嵌入式系统中,可能需要多个处理器在严格的时间期限内快速执行一个算法。例如,在实时视频处理中,一秒钟内需要执行多次的MAC操作,这超出了一个DSP单元的处理能力。那么嵌入式系统就必须集成两个或者多个同步运行的处理器。在一个便携式电话中,必须执行多项任务:(a)语音信号压缩和编码;(b)拨号;(c)调制和发送;(d)解调和接收;(e)信号解码和解压缩;(f)小键盘接口和显示接口处理;(g)基于短消息服务(SMS)协议的通信;(h)SMS消息显示。对于所有的这些任务,一个处理器是不够的。需要多个处理器同步执行。考虑一个视频会议系统。在这个系统中,使用了一种四分之一通用媒介格式(Quarter-CI

36、F),图像像素只有144 X 176而不是电视上的视频图像525 X 625像素。即便这样,图像样本也必须以每秒144 X 176 X 30=760320像素的速度采样,并且在将其传送到一个无线电通信或者虚拟专用网络(Virtual Private Network, VPN)之前,必须进行压缩处理(注意:在实时显示和动画中,帧速度应该为25或者30帧秒;在视频会议中,帧速度应该在1510帧秒之间)。基于单个DSP的嵌入式系统不足以得到实时图像。实时视频处理和多媒体应用在很多情况下都需要在嵌入式系统中有多个微处理器单元(在附录E中将介绍一种媒体处理器,是一种代替多处理器进行实时图像处理的解决方案

37、)。注意:当单个处理器不能满足同时执行多项不同任务的要求时,需要使用多处理器。为了得到最佳性能,所有处理器的操作都是同步的。1.3其他硬件单元1.3.1电源和低功耗管理多数系统本身都有电源。这种供电方式具有一种特定的操作范围或者电压范围。嵌入式系统中各个单元的操作范围都属于以下4种之一:(i)5.0V0.25V(ii)3.3V0.3V(iii)2.0V0.2V(iv)1.5V0.2V此外,嵌入式系统的微控制器中的闪存(数码相机使用的一种存储器)或者电可擦除可编程只读存储器(EEPROM),以及RS232串行接口,需要提供12V0.2V的电压(目前闪存只需要提供5V或者更低的电压就能工作)。电压

38、在嵌入式系统芯片中是按照如下方式提供的。电流和线路取决于处理器内部提供的管脚加上相关电路和芯片中的管脚的数量。管脚是成对的,由输入电压和地线组成。当连接电源线的时候,必须注意以下几点:(1)一个处理器可能有两个以上VDD和VSS管脚。这样能够把电能传输到所有的区域,减小了各个区域之间的相互干扰。在系统处理器以及其他单元中,每一对VDD和VSS管脚都应有一个独立的射频频率干扰旁路电容,这些旁路电容应尽可能靠近VDD和VSS管脚。(2)应该分别给(a)外部I/O驱动端口(b)定时器(c)时钟以及复位电路单独供电。时钟和复位电路(参见1.3.2节和1.3.3节)应该进行特殊设计,以避免任何的射频频率

39、干扰。I0设备的功耗可能比处理器的其他内部单元的功耗要大。定时器即使在等待状态下,消耗的功率也是恒定的。因此,这三种电路应该分别单独供电。ADC需要无噪声电压输入。(3)每一对VDD和VSS管脚、模拟地、模拟参考和模拟输入电压线、ADC单元的数字地和系统中的其他模拟单元,都应该有单独的电源连接。某些系统本身不含有供电系统,它们使用外部电源或者使用充电泵来供电:(1)网络接口卡(NIC)和图形加速器都是本身没有供电系统,而使用PC电源的嵌入式系统。(2)充电泵有一个串联的二极管,后面跟随一个充电电容。二极管从外部信号获得正向偏压;例如,当计算机使用鼠标时,来自于RTS信号。充电泵从一个非电源线取

40、得电能(9)管脚的COM端口有一个称为发送请求(RTS)的信号。它是一个低电平有效的信号。大多数时间它处于非有效的逻辑“1”状态(约为5V)。当鼠标处于空闲状态时,鼠标中的充电泵使用它存储电荷。当使用鼠标时,充电泵消耗电能。整流电路从这个电容中获得输入,提供需要的电能。当非接触智能卡插入到读卡器中后,卡中的充电泵使用来自于主机的无线电能量(参见1.6.6节)。低电压系统是使用LVCMOS(低电压CMOS)门和LVTTL(低电压TTL)建立的。使用3.3V,2.5V,1.8V和1.5V电压系统以及IO(输入一输出)接口,而不使用传统的5V系统,能够大大降低功耗,可以方便的在以下情况下使用:(a)

41、在便携式或者手提式设备中,例如便携式电话(CMOS电路使用3.3V电压,功耗降低近一半,约为(3.3/5)2。需要对电池重新充电的时间间隔也将缩短2倍)。(b)在一个几何空间较小的系统中,低电压系统处理器和IO电路产生的热量较少,可以被封装到一个较小的空间中。门传播延迟和操作电压通常是成反比的。因此,5V系统处理器和单元也可在大多数系统中使用。嵌入式系统可能需要连续运行,因此系统的设计就受到运行时低功耗的限制。系统在运行、等待和空闲状态下的总体功耗也应该受到限制。嵌入式系统处理器中任何时刻所需要的电流取决于处理器的状态和模式。下面是某处理器在6种状态下的功耗:(i)当只有处理器运行时:也就是处

42、理器正在执行指令时,电流为50 mA。(ii)当处理器以及外部存储器和芯片运行时:也就是取指和执行同时进行时,电流75mA。(iii)当只有处理器处于停止状态时:也就是取指和执行都停止,并且处理器的所有结构单元的时钟都禁止时,电流为15mA。(iv)当处理器以及外部存储器和芯片处于停止状态时:也就是取指和执行都停止,并一且所有系统单元的时钟都禁止时,电流为5mA。(v)当只有处理器处于等待状态时,也就是取指和执行都停止,但是处理器的结构单元的时钟没有禁止时,例如定时器,电流为5mA。(vi)当处理器、外部存储器和芯片处于等待状态时。等待状态意味着取指和执行都停止了,但是处理器结构单元,以及外部

43、IO单元和动态RAM刷新的时钟还没有停止,此时电流为10mA。嵌入式系统必须从加电开始连续执行任务,还有可能一直处于加电状态,因此,节电在执行过程中是很重要的。嵌入式系统中使用的微控制器必须提供Wait和Stop令,能够在低电压模式下运行。一种做法是在软件中集成Wait和Stop指令。另外一种做法是在空闲状态下选择低电压模式,从而在最低电压下运行系统。还有一种做法是在特殊软件部分运行的时候(如定时器和IO单元),禁止处理器的某些不必要的结构单元(例如高速缓存)运行,并将它们处于断开连接状态。在CMOS电路中,功耗只发生在输入端发生变化的时候。因此,不必要的脉冲干扰和频繁的输入变化会增加功耗。V

44、LSI电路设计具有独特的方法来避免功耗增加。通过消除所有可以消除的脉冲干扰来设计电路,从而消除频繁的输入变化。注意:1.当处理器接收到Stop指令后,它会进入停止状态。停止状态也会在下列情况下发生:(1)禁止处理器的时钟输入时。(2)禁止外部时钟电路工作时。(3)处理器在自动关电模式下工作时。当处于停止状态时,处理器与总线就断开了。(总线处于三态状态。)停止状态可以转换为运行状态。向运行状态的转换可能是因为用户中断,也可能是因为周期性发生的唤醒中断。2.处理器在(i)收到Wait指令,该指令减慢或者禁止一些包括ALU在内的处理器单元的时钟输入,或者(ii)当外部时钟电路停止工作时,会进入等待状

45、态。当(i)发生了一个中断,或者(ii)收到复位信号后,处理器会从等待状态转换为运行状态。3.通常情况下,时钟频率每下降100KHz,功耗就降低2.5mW。因此将时钟频率从8000KHz降低到100KHz,功耗会降低约200mW,也就相当于时钟不工作。(注意,总的功耗(需要的能量)可能不会降低。这是因为由于时钟频率的降低,计算所需要的时间可能会增加,所需要的总能量等于每秒的功耗乘以时间。)25mW的功耗通常是运行定时器以及很少的其他单元所需要的剩余功耗。通过使时钟低频运转,或者让处理器处于断电模式,有如下几个优点:(i)减少发热。(ii)由于门的功耗降低,也降低了射频干扰(辐射的RF(射频)功

46、耗取决于门中的RF电流,由于发热减少后,漏极和通道之间的“开启”状态阻抗增加了,这个电流也就减小了)。 近来,出现了一种新的技术,将时钟管理电路与振荡电路一起使用。这种技术用于复杂的嵌入式片上系统(SOC)中。通过将时钟倍频电路和时钟分频电路(2分频)相结合,可以产生2-16个同步时钟。此外,总线上引入的时钟信号可以在提供给快速操作电路之前,首先进行分频,然后再进行倍频。这样就能够降低门之间的功耗。对时钟管理器电路进行配置,使之能够在实时运行过程中,智能化地为处于控制范围内的各部分的电路提供适当频率的时钟(注意:必须使用一种复杂的技术:锁相环(phased delay locked loops

47、)。当使用常见的计数器逻辑电路时,在门上就会有连续变化的延迟(例如,10ns2ns)。单独使用计数器不能够设计出同步时钟)。 注意: 每个系统中都必须有一个内部电压或者一个充电泵,这是最基本的。嵌入式系统必须从加电开始到断电结束,一直连续执行任务,甚至总是处于“加电”状态。通过使用“Wait”和“Stop” 指令进行实时编程,并在不需要的时候将某些单元禁用,可以在程序运行时节约电能。当需要控制功耗时,也可以降低时钟频率来操作。然而所有的任务必须在设定的最后期限之内完成,并且所有需要全速处理的任务必须快速处理(关于“最后期限”的概念,参见46节)。对于嵌入式系统软件,在其设计阶段的性能分析必须包

48、括程序执行过程中和等待过程中的功耗分析。良好的设计必须使功耗和程序的快速、高效执行之间的冲突得到最优化处理。1.3.2时钟振荡电路和时钟单元除了电源之外,时钟就是系统中又一个最重要的单元了。处理器需要有一个时钟振荡(clock oscillator)电路。时钟控制着CPU,系统定时器和CPU机器周期的各种时钟控制需求。机器周期用于: (i)从存储器中取回代码和数据,然后在处理器上对它们进行译码并运行。 (ii)将结果传回到存储器中。时钟控制着执行一条指令的时间。时钟电路使用一个石英(处理器外部)或者陶瓷谐振器(与处理器内部相关)或者一个与处理器连接的外部振荡器IC。 (a)对于电路中的温漂,石英谐振

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1