本章主要介绍嵌入式系统所涉及的硬件知识,重点是嵌入式微处理器、嵌入式存储体系、嵌入式系统的输入/输出接口、嵌入式系统通信接口等方面进行的硬件接口基础知识。

    1. 数字电路基本知识

        1.1 信号特征

        现代计算机内部电子元器件都是数字式的。数字式的电子元器件工作状态是二值电平:高低电平。这也是计算机采用二进制的主要原因。通常不指定具体的电平值,而是采用信号来表示,如,用“逻辑真”“1”或确定来表示高电平,而用“逻辑假”“0”或不确定来表示低电平。1和0称为互补信号。

        根据电路是否具有存储功能,将逻辑电路分为两类:组合逻辑电路和时序逻辑电路。组合逻辑电路不包含存储功能,它的输出值仅取决于当前输入值;时序逻辑电路含存储功能,它的输出值不仅取决于当前输入状态,还取决于存储单元的值。

        1.2 组合逻辑电路和时序逻辑电路

        1. 组合逻辑电路

        所谓的组合逻辑电路,是指该电路在任一时刻的输出,取决于该时刻的输入信号,而与输入信号作用前电路状态无关。组合逻辑电路一般由们电路组成,不含记忆元器件,输入与输出之间无反馈。常用组合逻辑电路有译码器和多路选择器等。

        1)真值表

        由于组合电路中不包含任何存储单元,所以组合电路的输出值可由当前输入值完全确定。这种确定的对应关系可以由真值表来描述。例如,对于有n个输入的逻辑电路,对应的真值表有2^n中组合,每一种输入组合表示一组输入状态集,分别对应一个确定的输出。

        通常,真值表能够完全描述任何一种组合逻辑函数,但是表的大小随着输入个数的增长呈指数增长,而且不够清晰。

        2)布尔代数

        描述逻辑函数的另外一种方法是逻辑表达式,可以通过布尔代数实现。布尔代数中有3种经典操作符:OR,AND和NOT

        3)门电路

        门电路可以实现基本的逻辑功能。基本的门电路如下所示,包括与门、或门、非门

        通常在信号的输入或输出端加上一个“。”表示对输入或输出的信号取非。任何一个逻辑表达式都可以用与门非门或门的组合来实现。如果允许某个门电路取非,那么任何一个逻辑图函数都可以仅仅用与门或仅用或门实现。通常的两种反向门电路NOR和NAND,他们分别表示对应或门、与门的取非。NOR和NAND的门电路称为全能门电路,因为任何一种逻辑都可以用这种门实现。

        4)译码器

        译码器又称为解码器(decoder),译码器是一种多输入多输出的组合逻辑网络,它有n个输入端,m个输出端。与之对应的是解码器(encoder)它实现译码器的逆向功能,译码器框图如下:

        每输入一个n位的二进制代码,在m个输出端中最多有一个有效。译码器的输入端和输出端满足以下公式:

        5)数据选择器和数据分配器

        数据选择器又称为多路开关,它是以“与或”“门或”“与或非”门为主的电路。它可以在选择信号的作用下,从多个输入通道中选择某一个通道的数据作为输出。常见的数据选择器有二选一、四选一、八选一,十六选一等。

        数据选择器除有选择输入信号的功能外,还可以利用它实现任意组合逻辑函数。例如四选一的数据选择器可以实现三个变量的组合逻辑函数,2n个数据输入的多路选择器可以实现n+1个变量的组合逻辑函数。

        数据分配器又称为多路分配器,它有一个输入端多个输出端,其逻辑功能是将一个输入端的信号送至多个输出端中某一个,简称DMUX,作用域MUX正好相反。数据分配器的核心部分实际上是一个带有使能端的全译码器,可以把数据分配器理解为输出受x控制的译码器。

        1.2  时序逻辑线路

        所谓时序逻辑电路,是指电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路状态有关。因此,时序逻辑电路中必须包含记忆元器件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器。

        1)时钟信号

        时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。时钟信号是指定周期并与运行无关的信号量,时钟频率是时钟周期的倒数,如下所示,时钟周期由两部分组成:高低电平。时钟边沿触发信号意味着所有的状态变化都发生在时钟边沿到来时刻。

        

        在边沿触发机制中,只有上升沿或者下降沿才是有效信号,才能控制逻辑单元状态量的变化。至于到底是上升沿还是下降沿作为有效触发信号,则取决于逻辑设计的技术。

        同步是时钟控制系统中的主要制约条件。同步就是指在有效信号沿发生时刻,希望写入单元的数据也有效。数据有效则是指数据量比较稳定(不发生改变),并且只有当输入发生变化时数值才发生变化。由于组合电路无法实现反馈,所以只能输入量的不发生变化,输出值最终会是一个稳定有效的量。

        2)触发器

        触发器种类有很多种,按时钟控制方式来分,有电位触发、边沿触发、主-从触发等方式。按功能分类,有R-S型,D型,J-K型等功能。同一触发器可以由不同触发方式来实现。对使用者来说,选择触发器时,触发方式是必须考虑的因素。因为相同功能的触发器,若触发方式不同,系统达不到预期设计要求。这里将触发方式为线索,介绍几种常用的触发器。

        (1)电位触发方式触发器。当触发器的同步控制信号E为约定“1”或”0“电平时,触发器接收输入数据,此时输入数据D的任何变化都会在输出Q端得到反馈;当E为非约定电平时,触发器保持不变。鉴于它接收信息的条件时E出现约定的逻辑电平,故称它为电位触发器。

        电位触发器具有结构简单的优点。在计算机中常用它来组成暂存器。

        (2)边沿触发器。具有如下所描述特点的触发器称为边沿触发方式触发器,简称边沿触发器。触发器是时钟脉冲CP的某一约定跳变(正负跳变)来到时的输入数据。在CP=1及CP=0期间以及CP非约定跳变到来时,触发器不能接收数据。

        常用的正边沿触发器时D触发器,如下给出的逻辑图以及功能表。

                下面是比较边沿触发器和电位触发器。

                电位触发器在E=1期间来到的数据会立马被接收。但对于边沿触发器,在CP=1期间来到的数据,必须”延迟“到该CP=1过后的下一个CP边沿来到时才被接收。因此边沿触发器又称延迟型触发器。

        边沿触发器在CP正跳变(对正边沿触发器)以外期间出现在D端的数据和干扰不会被接收,因此有很多强的抗数据端干扰的能力而被广泛使用,它除了用来组成寄存器外,还可以用来组成计数器和移位寄存器等。

        至于电位触发器,只要E为约定电平,数据来到后就可立即被接收,它不需要像边沿触发器那样保持到约定控制信号跳变才被接收。

        (3)触发器的开关特性。描述触发器的参数有很多,其中既有描述传输延迟的参数,也有描述各类输入波形宽度要求的参数,还有描述个输入波形之间时间配合要求的参数。

        3)寄存器与移位寄存器

        寄存器主要用来接收信息、寄存信息或传送信息,通常采用并行输入一并行输出的模式。由于一个触发器仅能寄存一位二进制代码,所以要寄存n位进制代码则需具备n个触发器。随着组成寄存器的触发方式不同,寄存器也有不同的触发方式,最常用的是正跳沿触发的D触发器,这类触发器的各位在同一时刻(CP脉冲的上升沿作用下)接收信息。也有一些寄存器的信息接收是通过电位信号(使能G)控制的,即高电平触发,这类又称锁存器,其中主要用途就是把一些短暂的信号锁存起来,以达到时间上的扩展。

        寄存器中除具有若干触发器外,还应有门电路构成的控制电路,以保证信息的正确接收、发送和清楚。

        在时钟信号控制下,将所寄存的信息向左或者向右移位的寄存器称为移位寄存器。按照信息移动方向的不同,移位寄存器可以分为单向(左移或右移)及双向移位寄存器。按信息输入/输出方式不同,移位寄存器可以分为:串行输入—串行输出、串行输入—并行输出和并行输入—串行输出3种工作方式。从移位寄存器的外部特征来看,串行输入—串行输出的移位器仅需要一条数据输入线和一条输出线,而串行输入—并行输出则需要一条输入线多条输出线,而并行输入—串行输出则需要多条输入,一条输出。并行输入—串行输出的移位器需要多条输入线和一条输出线。将串行输入信号转变为并行输出的过程称为“串—并变换”,反之将并行输入转为串行输出过程称为“并—穿变换”。

        1.3 信号转换

        1. 数字集成电路的分类

        按照开关元件不同,数字集成电路可以分为两大类:一类是双极型集成电路,采用晶体管作为开关元件,管内参与导电的电子和空穴两种极性的载流子。另外一类采用绝缘栅场效应晶体管作为开关元件,称为经书氧化半导体集成电路。这种管子内部只有一种载流子——电子或空穴参与导电,故称为单极型集成电路。

        晶体管-晶体管逻辑电路(Transistor-Transistor Logic,TTL)是目前双极型数字集成电路中用的最多的一种。它具有比较快的开关速度、比较强的抗干扰能力以及足够强大的输出幅度,并且带负载能力也比较强,所以得到了最为广泛的应用。在双极型数字集成电路中,除了TTL电路外,还有二极管-三极管逻辑(Diode-Transistor Logic,DTL),高阈值逻辑(High Threshold Logic,HTL),发射极耦合逻辑(Emitter Coupled Logic,ECL)和集成注入逻辑(Integrated Injection Logic,IL)等几种逻辑电路。

        ECL电路中的三极管工作在非饱和状态,是一种非饱和电路,有极高的工作速度,此外还具有输出抵抗低,带负载能力强,电路内部开关噪声低,使用方式灵活等优点。主要缺点是:噪声容限低,电路功耗大,输出点评稳定性较差。目前ECL电路主要用于高速、超高速数字系统中。

        按照所使用的MOS管类型的不同,可分为3种:由PMOS管构成的PMOS集成电路;由NMOS管构成的NMOS集成电路由PMOS管和NMOS管构成的互补MOS集成电路,简称CMOS。PMOS和NMOS组件中各只含一种MOS管习惯上称它们为MOS集成电路,以与CMOS集成电路区分。

        2. 常用电平接口技术

        虽然TTL 电路具有很多优点,但它毕竟不能满足生产中不断提出的各种特殊要求,例如高速、高抗干扰、低功耗等,因而在工程中还经常要用到ECL、CMOS等数字集成电路。在微机测控系统中,习惯于用TTL电路作为基本电路元件,根据需要可能采用CMOS、ECL等芯片,因此存在TTL电路与这些数字电路接口问题。

        ECL的特点是速度快,但抗干扰性能差,功耗也高;TTL的应用广泛,成本低廉,有许多种类的可供选择;CMOS功耗最低,抗干扰性能优良,不仅适用于中、小规模集成电路,而且在大规模集成组件中应用也很普通。

        下面讨论TTL与ECL和CMOS之间的电平转换接口。

        1)TTL与ECL电平转换接口

        ECL电路电压一般为-5.2V(CE10K系列),逻辑高电平输出为VOH=-0.9V,低电平为-1.75V;对CE100K系列电源电压为-4.5V,输出高电平为VOH=-0.955V,低电平VOL=-1.705V。

  

1.4 可编程逻辑器件

        随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体商来独立承担。系统设计师更愿意自己设计专用集成电路芯片,因而出现了现场可编程逻辑器件(Field Programmable Logic Device,FPLD),其中应用最为广泛的当属现场可编程门阵列(Field Programmable GateArray ,FPGA)和复杂可编程逻辑器件(Complex Programmable Logicg Device ,CPLD)。

早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和可电擦除只读存储器(EEPROM)3种。由于结构的限制,它门只能完成简单的数字逻辑功能。

        其后出现了一类结构上稍微复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各类数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任一的一个组合逻辑都可以用“或-与”表达式来描述,所以PLD能以乘积的形式完成大量的组合逻辑功能。

        这一阶段的产品主要有可编程阵列逻辑(Programmable Array Logic,PAL)和通用阵列逻辑(Generic Array Logic,GAL)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,“或”门的输出可以通过触发器有选择地呗置为寄存器状态。PAL器件是现场可编程地,它地实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活地逻辑器件是可编程逻辑阵列,它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑,如GAL16V8和GAL22V10等。它采用了EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性。这些早期的PLD器件的一个共同的特点是可以实现速度特性较好的逻辑功能,但是其过于简单的机构限制了只能适用于较小规模电路。

        2. 嵌入式微处理器基础

        嵌入式操作系统硬件架构的核心是处理器(Central Processing Unit,CPU),负责从内存中取指令并执行。在每个CPU的指令执行周期中,包括从内存取出指令,解码确定类型和操作数后再执行该指令;然后再取指、解码并执行下一条指令,循环往复直至程序执行完毕。处理器的架构可采用冯若依曼结构或者哈佛结构。如下所示:

        每个CPU都有一套可执行的专门指令集。早期的计算机硬件结构比较简单,因而其指令系统很简单,指令种类较少,功能简单。随着计算机硬件成本降低,促使CPU的设计者在指令系统中添加了更多指令,其功能更加强,当然其设置更加复杂。指令系统愈加复杂。通常将具有复杂指令系统的计算机称为复杂指令集计算机(Complex Instruction Set Computer,CISC),与之相对为精简指令集计算机(Reduced Instruction Set Computer, RISC)。两者特点以及对比如下表。

        在实际使用中,人们发现:典型程序中80%的语句仅使用到指令系统中的20%的指令,而且使用频度较高的指令都是简单的基本指令。复杂指令的设计更为复杂,使得其执行速度受限制。精简指令集计算机(RISC),其设计特点是简化指令集,只设置使用频度高的一些简单指令,复杂指令通过多条简化指令组合来实现。

        在嵌入式系统中,通过访问内存得到指令或者数据的时间远大于CPU执行指令所花费的时间。因此在CPU内部都有一些用来保存关键变量和临时数据的寄存器。一般而言,CPU主要由以下部件构成。

        1)通用寄存器组

        以Intel 8086 CPU为例,其内包含8各通用寄存器AX,BX,CX,DX,BP,SP,SI,DI。它们均为16位寄存器,功能上略有不同:AX,BX,CX,DX为通用数据寄存器;BX,BP为基址寄存器了SI,DI用于寄存器间接、变址寻址功能;SP为堆栈指针,用于堆栈操作。

          2)运算器

        核心部件为算术逻辑单元(Arithmetic&logical Unit ,ALU),可完成各种算术和逻辑运算,同时配合ALU工作的有暂存器。

        3)控制器

          构成CPU的另外一重要部件,主要有以下几种:

        (1)程序技术器(Program Counter,PC),存放着下一条需要执行的指令的内存地址。

        (2)程序状态字(Program status Word,PSW),存放着指令执行结果状态及一些特定标志,例如溢出标志OF、进位标志CF等。

         (3) 指令寄存器(Instruction Register,IR),存放当前执行指令。

        (4) 时序部件,用于产生所需时序信号。

        随着计算机的发展,现在CPU内部还集成了高速缓存(Cache)、流水线等部件。

        2.1 嵌入式微处理器的结构和类型

        1. 8位16位、32位处理器的结构体系特点

        1)常用8位处理器的体系结构特点

        8位微处理器是指使用8位数据总线的微处理器。大部分的8位微处理器有16位的地址总线,其能够访问64KB的地址空间,而8位数据总线则可以通过多重内存存区的方式来处理更多的数据。最早的8位处理器是1973年由Intel公司开发出来的8080微处理器芯片,随着各大厂商也陆续推出8位微处理器,如Zilog公司的Z80、Motorola公司的6800、Natioal半导体公司的NSC800及Intel 公司的8085等。

        由于8位微处理器具有低成本、可扩展内存及接口设备等特点,目前依旧再嵌入式领域广泛应用。8位的微处理器有许多种不同时代的产品,其中有两个比较著名的,一个是Intel公司推出的8048,另外一个则是Fairchild及Mostek公司推出的3879.Intel公司的8048在当时是一种新的体系结构,并未延续其他已经存在的体系结构,因此在指令集体系结构的开发上变得有困难,但因为它是定位在具可伸缩并且低成本的产品控制单元,所以其至今仍然被广泛使用。另外,其所衍生的第二代产品8051更是应用最广泛的8位处理器系列。Intel的8041及8042是延续8048的系统,并作为从处理器使用。8044是8051的延续微处理器,它包含了一个额外的链表接口,可以连接到主微处理器,做其他的数据处理。

        2)常用的16位处理器的体系结构特点

        继8位微处理器后,许多厂商为了满足复杂的应用,推出16位微处理器。16位微处理器是指内部总线宽为16位的微处理器。16位微处理器的操作速度以及吞吐能力在性能上比8位更强大,数据带宽增大了一倍,实时处理能力更强,主频更高,集成度、ROM和RAM都有较大增加,而且有更多的中断源,同时还配置了多路的A/D转换通道和高速处理单元,适用于更加复杂的控制系统。

        Intel 公司的8086是第一款16位微处理器,当时IBM公司推出的个人计算机都是采用8086作为个人计算机的数据处理以及及控制核心。8086微处理器延续了Intel公司之前的8080及8085微处理器的基本体系结构,再加上一些增强式的硬件体系结构与指令集。Intel公司随后又再1982年2月,推出了第二代的8086产品80286微处理器,集成了以往许多微处理器需二外加上的外围设备组件,包括:一个时钟发生器,两个直接内存访问信道、一个中断信号控制器、3个可程序化时钟单元、可程序化芯片选择逻辑单元以及一个等待状态产生器;并且和8086及8088微处理器的软件兼容,因而收到欢迎。

        目前16位微控制器以Intel公司的MCS-96/196系列,TI公司的MSP430系列和Motorola公司的68H12系列为主,主要应用于便携式设备,工业控制及智能仪表等。

        3)常用32位微处理器的体系结构特点

        32位处理器采用32位的地址和数据总线,其他地址空间达到4GB。目前主流的32位嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列等。

        (1)ARM。作为一种RISC体系结构的微处理器,ARM处理器具有RISC体系结构的典型特征,具有以下特点:

  •         在每条数据处理指令当中,都有控制算术逻辑单元ALU和移位器,以使用ALU和移位器获得最大利用率。
  • 自动递增自动寻址模式,以优化程序中的循环。
  • 同时执行Load和Store多条指令,以增加数据吞吐量。
  • 所有指令都可以条件执行,以执行吞吐量。
    这些式对基本RISC体系结构的增强,是的ARM处理器能在高性能、小代码尺寸、低功耗和小芯片面积之间获得好的平衡。

ARM 的数据类型:

  • 字(Word):在ARM 体系结构中,字的长度为32位,而在8位/16位微处理器体系结构中,字的长度位16位。
  • 半字(Half-Word):在ARM 体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。
  • 字节(Byte):在ARM 体系结构和8位/16位处理器体系结构中,字节的长度均为8位。

 ARM 微处理器支持7种运行模式:

  •  用户模式(USR):ARM 处理器正常的程序执行状态
  •  快速模式(FIQ):用于高速数据传输或通道处理。
  • 外部中断模式(IRQ):用于通用的中断模式
  • 管理模式(SVC):操作系统使用的保护模式。
  • 数据访问终止模式(ABT):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护。
  • 系统模式(SYS):运行具有特权的操作系统任务。
  • 定义指令终止模式(UND):当未定义的指令操作执行时进入该模式,可用于支持硬件协处理器的软件仿真。

(2)MIPS。MIPS 32架构刷新了32位嵌入式处理器的性能标准。它时MIPS科技公司下一代高性能 MIPS-Based处理器Soc发展蓝图的基础,并向上兼容MIPS 64位架构。MIPS架构拥有强大的指令集,从32位到64位的可扩展性、广泛的软件开发工具以及众多MIPS科技公司授权厂商支持,是领先的嵌入式架构。

        MIPS 32架构是以前的MIPS I和MIPS II 指令集架构的扩展集,整合了专门用于嵌入式应用的强大的新指令,以及以往只在64位R4000和R5000 MIPS处理器中能见到的已经验证的存储器管理和特权模式控制机制。通过整合强大的新功能、标准化特权模式指令以及支持千代ISA,MIPS 32架构为未来所有基础32 位MIPS的开发提供了一个坚实的高性能基础。

        MIPS 32架构基于一种固定长度的定期编码指令集,采用导入/存储(load/store)数据模型。经改进,这种架构可支持高级语言的优化执行。其算术和逻辑运算器采用三个操作数的形式,允许编译器优化复杂的表达式。此外,它还带有32个通用寄存器,让编译器能够通过保持对寄存器内数据的频繁存取进一步优化代码生成性能。

        (3)PowerPC。PowerPC体系结构分为三个级别。通过对体系结构以这种方式进行划分,以实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼容性。

       2. DSP处理器的体系结构特点

        DSP的全称是 Digital Signal Process, 即数字信号处理技术。DSP芯片即指能够实现数字 信号处理技术的芯片。DSP芯片是一种具有特殊结构的微处理器。该芯片内部采用哈佛结构(程序和存储分开)具有专门硬件乘法器,广泛采用流水操作,提供特殊指令,可以快速实现各种数字信号处理算法。

        根据数字信号处理的要求,DSP芯片一般具有如下特点:

        

        与通用微处理器相比,DSP其他通用功能相对差些。近些年,数字信号处理器芯片已经广泛用于自动控制、图像处理、通信技术、网络设备、仪表和加点领域。DSP为数字信号处理提供了高效而可靠的硬件基础。

        DSP有分开的代码和数据总线即“哈佛结构”,这样在同一时钟周期内可以进行多次存储器访问——这是数据总线也往往有好几组。利用这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个更多的操作数。

        DSP具有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样就可以极大提高系统的执行效率。单流水线的采用也增加了软件设计难度,要求设计者在程序中考虑流水需要。

        DSP有专用的硬件地址发生单元,这样它可以支持许多新年好处理算法所要求的特定数据地址模式。这包括前(后)增(减)、环状数据缓冲的模地址以及快速傅里叶变换(FFT)的比特倒置地址。地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP在一个时钟周期内可以完成的工作量。

        信号处理算法常常需要执行紧密的指令循环。对硬件辅助循环的支持,可以让DSP高效的循环执行代码块,而无需让流水线停转或者让软件来测试循环终止条件。

        DSP功耗较小,通常在0.5W到4W,采用低功耗的的DSP甚至只有0.05W,可用电池供电,很适合嵌入式系统。 

        3. 多核处理器的体系结构特点

        多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由宗信啊控制器提供所有总线控制信号和命令信号。从而提高计算能力。按计算内核的对等与否,多核处理器可以分为同构多核和异构多核、计算内核相同,低位对等的称为同构对合,反之称为异构多核,异构多核采用“主处理器+协处理核”的设计思路。

        (1) 同构多核处理器

        (1)Intel 酷睿架构处理器。酷睿(Core)是Intel公司的CPU产品,而i7/i5/i3是酷睿品牌下的子品牌,分别代表高、中、低端。具体来说,桌面型号的i7/i5/i3几代的区别都比较明显:i7至少8线程(4核8线程到6核12线程),支持Turbo Boost动态频率技术i5是4线程(双核4线程或者4核4线程),支持Turbo Boost;i3全部都是双核4线程,不支持Turbo Boost。

        (2)TI Keystone 架构。TMS320C6678(简称C6678)是基于KeyStone 架构的高性能多核DSP,片内集成8个C66x核,单融合定点和浮点处理功能,每周期定点性能达到32MAC,浮点性能达到16FLOP,处理速率为1.25GHz,C6678累积处理速率高达10GHz。KeyStone架构将RISC、DSP核核协处理器、I/O技术相结合,为片上的8个C66x核、外设、协处理器核I/O口之间提供无阻塞通信。C6678平台架构如下:

        2)异构多核处理器

        (1)AMD核显。APU其实是“加速处理器”(Accelerated Processing Unit)的英文缩写,是AMD推出的整合了x86/x64 CPU处理核心和GPU处理核心的新型“融聚”(Fusion)处理器。APU将通用运算x86架构CPU核心和可编程适量处理引擎相融合,把CPU擅长的精密表量运算与传统上只有GPU才具备的大规模并行矢量运算结合起来。AMD APU设计综合了CPU和GPU的优势,位软件开发带来灵活性。AMD APU通过一个高性能总线,在单个硅片上把一个可编程的x86 CPU 和一个GPU的矢量处理架构连为一体,双方都能直接读取高速内存。AMD APU中还包含其他一些系统成分,例如内存控制器、I/O控制器、专用视频解码器、显示输出和总线结构等。

        (2)TI OMAP/Davinci 处理器系列。Davinci数字媒体处理器,典型的包括OMAP3530、Davinci DM64xx系列等。通过集成ARM和DSP内核可实现许多系统有点,包括成本、功耗和面积节省。TI ARM+DSP解决方案经过优化,适用于嵌入式系统,侧重节能和实时性能。ARM端完成外设驱动,Linux/Android OS运行,用户控制,网络传输应用程序;DSP端完成音视频编解码等信号处理算法。

        TI双核异构平台TMS320DM6467,其架构图见图2-8.这是一种基于DSP的超强性能SoC,为实时、多种格式的高清视频转换码进行了专门的设计。DM6467数字媒体处理器集成了一个arm926EJ-S核与600MHz的C64x+DSP核,并采用高清视频/影像协处理器(HD-VICP)等。在执行同步格式高清编码方面,实现了超过3GHz的DSP处理能力。

        (3)Xilinx Zynq处理器。XiLinx公司生产的Zynq-7000全可编程SoCial(AP SoC)系列处理器集成了arm处理器的软件可编程性与PGA的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上高度集成了CPU、DSP、ASSP以及混合信号功能。Zynq-7000器件配备双核ARM Cortex-A9处理器,该处理器与基于28nm Artix-7或

        2.2 嵌入式微处理器的异常与中断

        1. 异常

        异常时一种形式的异常控制流,它的一部分时由硬件实现的,一部分由操作系统实现的。因为它们有一部分是由硬件实现的,所以具体细节随着系统的不同而有所不同。然而对于每个系统而言,基本的思想是相同的。

        异常(exception)就是控制流中的突变,用来响应处理器状态的某些变化。异常可以分为四类:中断(interrupt)、陷阱(trap)故障(fault)和终止(abort)。如下对这些类别的属性的小结。

(1)陷阱。陷阱是有意的异常,是执行一条指令的结果。就像中断处理程序一样,陷阱处理程序将控制返回到下一条指令。陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫系统调用。

        (2)故障。故障是由错误状况引起,它可能被故障处理程序修正。当一个故障发生时,处理器将控制转移给故障处理程序。如果处理程序能修正这个错误情况,它就将控制返回到故障指令,从而重新执行它。否则处理程序返回到内核中的abort历程,abort例程会终止引起故障的应用程序。

        (3)中止。中止是不可恢复的致命错误造成的结果,典型的是一些硬件错误,例如DRAM或者SRAM位被损坏时发生的奇偶错误。中止处理程序从不将控制返回给应用程序。处理程序将控制返回给一个abort例程,该例程会中止这个应用程序。

        2. 中断

        中断时异常发生的,是来自处理器外部的I/O设备的信号结果。硬件中断不是由任何一条专门的指令造成的,从这个意义上来说它是异步的。硬件中断的异常处理程序通常被称为中断处理程序(interrput handler)

        1)硬件中断与软件中断

        硬件中断由软件产生的,例如磁盘、网卡、键盘、时钟等。每个设备或者设备集都有自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上。

        软中断时一组静态定义的下半部分接口,可以在所有处理器上同时执行,即使两个类型相同也可以。但是一个软中断不会抢占另外一个软中断,唯一可以抢占软中断是硬中断。

        2)可屏蔽中断与不可屏蔽中断

        可屏蔽中断与不可屏蔽中断都属于外部中断,是由外部中断源引起的。不可屏蔽中断一旦提出请求,CPU必须无条件响应,而对于可屏蔽中断源的请求,CPU可以响应也可以不响应。

        CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(Non Maskable Interrupt)。对于可屏蔽中断,除了受本身的可屏蔽位控制外,还都受到一个总的控制,即CPU的响应,否则得不到响应。IF位可以由用户控制,指令STI或Turbo C的Enable()函数,将IF位置1(开中断),指令CLI或Turbo_c的Disable()函数,将IF位清零(关中断)

        3)中断优先级

        当多个中断源同时请求中断时,而CPU一次只能响应其中的一个中断,同时为了能响应所有中断,就引入了中断优先级来处理。系统会根据引起中断事件的重要性和紧迫程度,将中断源分为若干级别,称为中断优先级。中断优先级有两种:查询优先级和执行优先级。

        

        4)中断嵌套

     3. 嵌入式系统的存储体系

        3.1 存储系统的层次结构

       

        3.2  内存管理单元

        在嵌入式的处理器当中,存储管理单元(Memory Management Unit,MMU)提供了一种内存保护的硬件机制。操作系统通常利用MMU来实现系统内核与应用程序的隔离,以及应用程序与应用程序之间的隔离。这样可以防止应用程序去破坏操作系统和其他应用程序的代码数据,防止应用程序对硬件的直接访问。内存保护包含两个方面的内容:一是防止地址越界,每个应用程序都有属于自己的地址空间,当一个应用程序要访问某个内存单元时,由硬件查询该地址是否限定的地址空间内,如果不是的话就要进行地址越界处理;二十防止操作越界,对于允许多个应用程序共享的某块存储区域,每个应用程序都有自己的访权限,如果违反则需进行操作越权处理。

        3.3 RAM和ROM的种类与选型

        按照存储器在计算机中的用途分类,嵌入式系统的存储器包括内部存储器和外部存储器。将存储器按照存放信息的易失(挥发)性,可分为易失性和非易失性存储设备。

        1. RAM

        易失性存储设备的代表十随机存取存储器(Random Access Memory,RAM)。在计算机存储体系结构中,RAM是与CPU直接交换数据的内部存储器,也叫主存或内存,RAM电路由地址译码器、存储矩阵和读写控制电路三部分组成。如下图。

        存储矩阵由触发器排列而成,每个触发器能存储一位数据(0/1)。通常将每一组存储的那元编为一个地址,存放一个“字”;每个字的位数等于这组单元的数目。存储器的容量以“字数*位数”表示。地址译码器将每个输入的地址代码译成高(或低)电平信号,从将矩阵中选中的一组单元,使之与读写控制电路接通。在读写控制信号的配合下,将数据读出或写入。

        RAM的特点十随机读写,表示数据读写与数据位置无关。RAM速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

        RAM存储器在断电时将失去其存储内容,所以叫易失性存储设备,主要用于存储短事件使用的程序。易失性和RAM的结构有关:随机存取存储器依赖电容器存储数据。电容器充满为1,未充电为0.由于电容或多或少会存在漏电情形,若不做特别处理数据会流失。刷新是指定期读取电容器状态,然后按照原先状态为电容充电,弥补六十电荷。需要刷新就解释了随机存取存储器的易失性。

        按照RAM存储单元的工作原理,RAM又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。

        1)SRAM

        静态存储单元是在静态触发器的基础上附加门控制管而构成的。因此,它是靠触发器的自保功能存储数据的。SRAM将每个位存储在一个双稳态存储器单元,每个单元用一个六晶体管电路实现。

        数据一旦写入,其信息就稳定的保存在电路中等待读出。无论读出多少次,只要不断点,此信息就一直存在。SRAM初始加电时,其状态是随机的,写入新的状态,原先旧的就会丢失。新状态会一直维持到写入新状态为止。

        在电路工作时,即使不进行读写操作,即使不进行读写操作,只要保持在加电状态,电路中旧一定有晶体管导通,会存在功耗,因此与DRAM相比,SRAM功耗较大,集成度不能做很高。

        高速缓存Cache一般采用SRAM。高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量较小速度比主存高,接近CPU速度。

        2)DRAM

        DRAM将每个位存储为一个电容的充电,每个单元由一个电容和一个访问晶体管组成。当DRAM存储单元中的电容非常小,它被干扰之后很难恢复,也有很多原因会造成漏电,因此为了避免存储信息的丢失,必须定时补充电荷。称之为刷新或再生,因此DRAM内部要有刷新控制器电路,其操作比静态RAM复杂。尽管如此,由于DRAM存储单元的结构简单所用元器件功耗低,可以造的很密集,已成为大容量RAM的主流产品。

        DRAM必须定时刷新,以保证数据不丢失,这或是是称之为动态的原因。初始加电时,其状态时随机的。在电路上加上电源不进行读写及刷新操作时,只是保持加电状态,电路中没有晶体管导通,没有电流流过(会有极小的漏电流存在),也就没有功耗消耗。因此DRAM功耗非常小,集成度高。

        常说的内存条就是DRAM构成。随着事件发展,DRAM经过若干代更替,早期PMDRAM,EDO DRAM均一淘汰,目前仍在使用的主要是SDRAM和DDR SDRAM。

        3)DDR SDRAM

        

        2. ROM

        只读存储器(Read-Only Memory,ROM)ROM的重要特性是其存储信息的非易失性,存放在ROM中的信息不会因为断点丢失,下次上电依旧存在,常用于存储各种固定程序和数据。

        1)PROM

        可编程只读存储器(Programable ROM ,PROM)的内部有行列式的熔丝,是需要利用电流将其烧断,写入所需资料,仅可写入一次(又称为OPTROM,One TimeProgramable Read Only Memory)。PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0,以实现对其编程的目的。PROM的典型产品时“双极性熔丝结构”,如果想要改写某些单元,则可以给这些单元通以足够强大电流,并维持一定时间,原先的熔丝即可熔断,这样就达到了改写某些位的效果。另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截至状态,还是用大电流的方法将反向电压加在“肖特基二极管”上,造成永久性击穿即可。

        2)EPROM

        3) EEPROM 

       

        3.4 高速缓存(Cache)

        Cache是一种比常见内存(RAM)更快的存储器,在存储位置上位于处理器和外部内存之间,一般称之为高速缓冲存储器。众所周知,程序由代码和数据组成,在一般情况下由容量限制代码和数据需要存放在内存中,当处理器要执行程序时就需要不断访问内存,出于技术和成本问题,内存的读取速度通常比CPU慢很多,因此会严重制约系统的实时性能。

        

        根据程序访问的局限性原理可知,CPU在某一特定的时间内会对Cache保持高命中率。因此在改时间段内,CPU就可以直接从Cache中获取指令或数据,从而提高系统性能。根据Cache的工作机制,可以把Cache分为多种类,典型的包括回写式Cache和写通式Cache。

        1)回写式Cache

        当CPU执行数据操作时,回写式Cache只把数据写入其数据地址对应的Cache中,不直接写入内存中。仅当该Cache块需要替换时,才把Cache块回写入内存中。在回写式Cache中,每个Cache块中都有对应的修改位。只要该Cache块中的任何单元被修改,该位即被置为1,否则为0,当该Cache块徐奥被替换时,如果其修改位为1,则必须先将该Cache块写入内存,将其修改置为0然后用新的内存块覆盖该Cache块。

        回写式Cache,不能实时的保证内存和Cache中数据副本之间的内容一致性,但是其特点在于回写式Cache和内存的通信较少,尤其当Cache在特定的时间段内有很高的命中率时,其效率较高,硬件实现简单。

        2)写通式

        在写通式模式工作中,当CPU执行写操作时,写通式Cache必须同时把该数据写入其数据地址对应的Cache块和内存中,写通式Cache的每个Cache块中不需要有对应的修改位。当该Cache块需要被替换时,也不必把该Cache块写入内存中,新的内存块可以直接覆盖该Cache块。写通式Cache能保持Cache中的数据和内存中数据的一致性。

        写通式的Cache的稳定很高,因为它始终实时性地保持内存中Cache中数据的最新副本。但是同时也增加了Cache和内存的通信量,写通式硬件实施复杂。

        在实际Cache的工作中,到底是采用回写式还是写通式都需要用户对Cache进行配置。

        3.5 其他存储设备

        1.FLASH Memory  快闪存储器,也叫闪存,是EEPROM的变种,大部分芯片需要块擦除,擦写速度较快。分两类:NOR FLASH 和NAND FLASH。

        2. 磁盘,关盘等存储介质

        这里就不进行一一介绍了。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐