1、1CPU MPU MCU1 CPU(Central Processing Unit,中央处理器) 11.1 CPU 的组成 .11.2 CPU 的工作原理 .12 MPU(Microprocessor Unit,微处理器) 32.1 MPU 的组成 .32.2 MPU 的分类 .32.3 MPU 的体系结构:冯诺伊曼结构和哈佛结构 .32.4 MPU 的典型代表:DSP(Digital Signal Processor,数字信号处理器) .43 MCU(Microcontroller Unit,微控制器/单片机) 53.1 MCU 的概念 .53.2 MCU 的概述 .53.3 MCU 的分类
2、 .63.4 MCU 的架构:CISC 架构和 RISC 架构 63.5 常见的 MCU.63.6 MCU 的典型代表:ARM .94 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) 105 FPGA(Field Programmable Gate Array,现场可编程门阵列) 106 DSP,ARM,FPGA 的区别 .101 CPU(Central Processing Unit,中央处理器)中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。1.1 CPU 的组成CPU 由运算器、控制器
3、和寄存器及实现它们之间联系的数据、控制及状态的总线构成。运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。寄存器:用来存放操作数、中间数据及结果数据。1.2 CPU 的工作原理CPU 从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。可分为四个阶段
4、:提取(Fetch) 、解码(Decode) 、执行(Execute)和写回(Writeback) 。 注:指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组2成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。第一阶段:提取从存储器或高速缓冲存储器中检索指令(为数值或一系列数值) 。由程序计数器(Program Counter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了 CPU 在目前程序里的踪迹。提取指令之后,程序计数器根据指令长度增加存储器单元。
5、指令的提取必须常常从相对较慢的存储器寻找,因此导致 CPU 等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构。第二阶段:解码CPU 根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据 CPU 的指令集架构(Instruction Set Architecture, ISA)定义将数值解译为指令。一部分指令数值为运算码(Opcode) ,其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值) ,或是一个空间的定址值:暂存器或存储器位址,以定址模式决定。在旧
6、的设计中,CPU 里的指令解码部分是无法改变的硬件设备。不过在众多抽象且复杂的 CPU 和指令集架构中,一个微程序时常用来帮助转换指令为各种形态的讯号。这些微程序在已成品的 CPU 中往往可以重写,方便变更解码指令。第三阶段:执行在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的 CPU 部件。例如,要求一个加法运算,算数逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU 内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算) 。如果加法运算产生一个对
7、该 CPU 的处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow)标志可能会被设置。第四阶段:写回以一定格式将执行阶段的结果简单的写回。运算结果经常被写进 CPU 内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转” (Jumps) ,并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令也会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出3各种运算结果。例如,以一个“比较”指令判断两个值的大小,根据
8、比较结果在标志暂存器上设置一个数值。这个标志可由随后的跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器的值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程序计数器将会修改成跳转到的指令位址,且程序继续正常执行。许多复杂的 CPU 可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典RISC 管线” ,那些实际上是在众多使用简单 CPU 的电子装置中快速普及(常称为微控制器Microcontroller) 。2 MPU(Microprocessor Unit,微处理器)就物理性来说,MPU 就是一块集成了数量庞大的微型晶体管与其他电子
9、组件的半导体集成电路(Integrated Circuit, IC)芯片。微处理器(MPU)通常代表一个功能强大的 CPU,但不是为任何已有的特定计算目的而设计的芯片。MPU 与传统的 CPU 相比,具有体积小、重量轻和容易模块化等优点。2.1 MPU 的组成MPU 的组成部分有:算术逻辑单元(ALU,Arithmetic Logical Unit) ;累加器和通用寄存器组;程序计数器;运算器;时序和逻辑控制电路;数据和地址总线。其中运算器和控制器是其主要组成部分。MPU 能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组
10、成微型计算机。常见的 MPU 有 Motorola 的 68K 系列和 Intel 的 X86 系列。2.2 MPU 的分类根据处理对象的不同分类:用作处理通用数据时,叫作中央处理器(Central Processing Unit, CPU)这也是最为人所知的应用(如:Intel Pentium CPU) ;专用于作图像数据处理的,叫作图形处理器(Graphics Processing Unit, GPU)(如 Nvidia GeForce 6150 GPU) ;用于音频数据处理的,叫作音频处理器(Audio Processing Unit, APU)(如 Creative emu10k1 A
11、PU)等等。2.3 MPU 的体系结构:冯诺伊曼结构和哈佛结构4冯诺伊曼结构冯诺伊曼结构(或普林斯顿结构)是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的 8086 中央处理器的程序指令和数据都是 16 位宽。目前使用冯诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的 8086,英特尔公司的其他中央处理器、安谋公司的 ARM7、MIPS 公司的 MIPS 处理器也采用了冯诺伊曼结构。哈佛结构哈佛结构是一种将程序指令存储器和数据存储器分开的存储器结构。中央处理器首
12、先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行) 。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip 公司的 PIC16 芯片的程序指令是 14 位宽度,而数据是 8 位宽度。哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip 公司的 PIC 系列芯片,还有摩托罗拉公司的 MC68 系列、Zilog 公司的 Z8 系列、ATMEL 公司的 AVR 系列
13、和 Advanced RISC Machines(安谋)公司的 ARM9、ARM10 和 ARM11,51 单片机也属于哈佛结构。2.4 MPU 的典型代表:DSP(Digital Signal Processor,数字信号处理器)DSP(Digital signal processor)是一种特殊结构的 CPU,有自己的完整指令系统;它专门用于处理数字信号的各种功能,如 FFT、数字滤波算法、加密算法和复杂控制算法等。其工作原理是,接受模拟信号并转换成0和1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运
14、行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 DSP 芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,包括控制单元、运算单元、各种寄存器以及一定数量的存储单元等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP 芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法; 5(2)程序和数据空间分开(哈佛结构) ,可以同时访问指令和数据;(3
15、)片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件 I/O 支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作; (8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。目前有许多微处理器(MPU)逐渐演化为微控制器(MCU)比如 arm,因此这些概念开始融合,所以处理器包括CPU,MCU,DSP。ARM 目前是嵌入式处理器的代名词:由 CPU,少量的 RAM,FLASH,和其它接口封装而组成的。3 MCU(Microcontroller Unit,微控制器/单片机)
16、3.1 MCU 的概念MCU 是将微型计算机的主要部分(包括 CPU,存储器,定时/计数器(Timer/Counter) ,各种 I/O接口)集成在一个芯片上的单芯片微型计算机,实现嵌入式应用,故也称单片机(Single Chip Microcomputer,单片微型计算机) 。随后为了满足控制领域的嵌入式应用,单片机中不断扩展一些满足控制要求的电路单元,目前单片机已广泛称为微控制器(MCU) 。也有由微处理器发展的微控制器,比如 Intel 的 386EX 就是很成功的 80386 微处理器的微控制器版本,它与嵌入式应用的微处理器一样,也称为嵌入式微处理器。嵌入式处理器的高端产品有:Adva
17、nced RISC Machines 公司的 ARM、Silicon Graphics 公司的 MIPS、IBM 和 Motorola 的 Power PC 、Intel 的 X86 和 i960 芯片、AMD 的 Am386EM、Hitachi 的 SH RISC 芯片。3.2 MCU 的概述绝大多数现在的单片机都是基于冯诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存) 、数据存储器(随机存储器)、一个或者更多的定时/计时器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口,所有这些都被集成在单个集成电路芯片上。说单
18、片机与通用型中央处理单元芯片不同,是因为前者一般很容易配合最小型的外部支持芯片制成工作计算机,这样就可以很容易的把单片机系统植入装置内部来控制装置了。近年来为了在指令和数据上使用不同的字宽,并提高处理器流水线速度,哈佛结构在微控制器(Microcontroller)和数字信号处理器(Digital Signal Processor, DSP)也逐渐得到了广泛的应用。6传统的微处理器是不允许这么做的。它要完成单片机的工作,就必须连接一些其他芯片。比如说,因为芯片上没有数据存储器,就必须要添加一些 RAM 的存储芯片,虽然所添加存储器的容量很灵活,但是至少还是要添加。另外还需要添加很多连线来传递芯
19、片之间的数据。与以上的情况相比,单片机的工作则相对独立,一个典型的微控制器只需要一个时钟发生器和很少的 RAM 和 ROM(或者 EPROM, E2PROM)就可以在软件和晶振下工作了。同时,微控制器具有丰富的输入输出设备,例如模拟数字转换器(Analog-to-Digital Converter, ADC) ,定时器,串口,以及其他串行通讯接口,比如I2C,SPI(串行周边接口) ,CAN(控制器局域网)等。通常,这些集成在内部的设备可以通过特殊的指令来操作。单片机时钟频率通常较同时代的计算机芯片低,但它价格低廉,能够提供充足的程序存储器、丰富的片上接口。某些架构的单片机生产厂商众多,例如
20、8051 系列、Z80 系列。一些现代的微控制器支持一些内建的高级编程语言,比如 BASIC 语言、C 语言、C+等。3.3 MCU 的分类根据数据总线宽度可分为 8 位、16 位和 32 位机;根据存储器结构可分为哈佛(Harvard)结构和冯诺伊曼(Von Neumann)结构;根据内嵌程序存储器的类别可分为 OTP、掩膜、EPROM/EEPROM 和 Flash 的 MCU;根据指令结构又可分为 CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)微控
21、制器。3.4 MCU 的架构:CISC 架构和 RISC 架构基于 CISC 架构的微控制器除了 80C51 外,还包括 Motorola 提供的 68HC 系列微控制器,这也是大量应用的微控制器系列。基于 RISC 架构的微控制器则包括 Microchip 的 PIC 系列 8 位微控制器等。在 16 位 RISC 架构的微控制器中,Maxim 公司推出的 MAXQ 系列微控制器以其高性能、低功耗和卓越的代码执行效率,成为许多需要高精度混合信号处理以及便携式系统和电池供电系统的理想选择。MAXQ2000 微控制器是 Maxim/Dallas 公司推出的一款基于 RISC 架构的 16 位微控
22、制器,其指令读取和执行操作在一个周期内完成,而没有流水线操作,这是因为指令既包含了操作码也包括了数据。字母Q 表示这款微控制器的一个重要特点便是“安静” ,MAXQ 架构通过智能化的时钟管理来降低噪声这意味着 MAXQ 只向那些需要使用时钟的电路提供时钟,这样既降低了功耗,又为模拟电路的整合提供了一个最安静的环境。它包含液晶显示(LCD)接口,最多可以驱动 100 或 132 段(两种版本)。3.5 常见的 MCU微芯公司的 PIC 系列出货量居于业界领导者地位;Atmel 的 51 系列及 AVR 系列种类众多,受支持7面广;德州仪器的 MSP430 系列以低功耗闻名,常用于医疗电子产品及仪
23、器仪表中;瑞萨单片机在日本使用广泛。(1)ARM 公司:ARM 系列 MCU(2)Atmel 公司:AVR 系列 MCUAtmel AT91 series (ARM 处理器等)AT90 series AVR (Atmel 的高性能 RISC 8 位单片机,老产品)ATmega series AVR (Atmel 的高性能 RISC 8 位单片机,新产品)ATXmega series AVR (Atmel 的高性能 RISC 32 位单片机,新产品)Atmel AT89 series (Intel 8051/MCS51 架构 8 位单片机)MARC4(3)Cypress MicroSystems
24、(赛普拉斯微系统公司) CY8C2xxxx (PSoC)(4)Freescale Semiconductor(飞思卡尔半导体)8-bit:68HC05 (CPU05),68HC08 (CPU08),68HC11 (CPU11)。16-bit:68HC12 (CPU12),68HC16 (CPU16),Freescale DSP56800 (DSPcontroller)。32-bit Freescale 683XX (CPU32)MPC500MPC 860 (PowerQUICC)MPC 8240/8250 (PowerQUICC II)MPC 8540/8555/8560 (PowerQUIC
25、C III)(5)Holtek(盛群半导体) HT48FXX Flash I/O typeHT48RXX I/O typeHT46RXX A/D typeHT49RXX LCD type(6)Intel(英特尔)MCU8-bit:8XC42MCS488MCS51 : Intel 8051 系列 MCU 历史悠久,相容产品众多,使用广泛。8xC25116-bit:MCS96 系列MXS29632-bit:i960(7)Microchip(微芯公司)的 PIC 系列 MCU 8-bit : PIC10,PIC12,PIC16,PIC18。16-bit : PIC24F,PIC24H,dsPIC30
26、,dsPIC33。32bit : PIC32 (采用 MIPS M4K 核心架构)(8)National Semiconductor(美国国家半导体) COP8CR16(9)NEC 78K(10)NXP Semiconductors(恩智浦半导体,由飞利浦以 Philips Semiconductors 为班底新成立) LPC2000LPC900LPC700(11)Parallax, Inc. BASIC Stamp(12)Renesas 瑞萨科技系列单片机 Renesas 16-bits Renesas M16C SeriesRenesas M32C SeriesRenesas R8C Se
27、riesRenesas M16C/Tiny SeriesRenesas R8C/Tiny Series9Renesas H8/Tiny Series(13)ST Microelectronics(意法半导体)STM32 series (ARM Cortex-M3 系列,32 位)STM8 series (自主 RISC 指令集,8 位)(14)SyncMOS 新茂国际科技全系列单片机 SM59RXXA2 8-bits 1T(RISC)SM59DXXG2 8-bits 6T(ISP)SM59XX 8-bits 12T(ISP)SM89XX 8-bits 12T(Traditional 8051)
28、SM79XX 8-bits 12T(Customization)(15)PADAUK 应广科技全系列单片机(多核心单片机) P201CS/CD 8-bitsP211CS/CD 8-bitsp232CS/CD 8-bitsP234CS/CD 8-bits(16)ZiLOG Z8Z86E02(17)STC 宏晶系列 MCUSTC89C series 6T/12T 增强性单片机 (Intel 8051 架构,有外部总线)STC11F/11L series 2T 增强性单片机 (Intel 8051 增强架构,无外部总线程序支持)STC12C/12LE series 2T 增强性单片机 (Intel
29、8051 增强架构,无外部总线程序支持)STC15C/15LE series 2T 增强性单片机 (Intel 8051 增强架构,无外部总线程序支持,正在开发中)(18)Kernel-IC 华芯 LS 系列 MCULSx051 series 12T 双核单片机(Intel 8051 架构,无外部总线)LSx151 series 12T 三核单片机(Intel 8051 架构,无外部总线)LS052A series 6T 三核单片机(Intel 8051 架构,无外部总线)其他系列的单片机Msp430 系列单片机108098、80196 系列单片机AT8P5X 系列单片机CZG8000 系列单
30、片机3.6 MCU 的典型代表:ARMARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的 RISC 处理器、相关技术及软件。ARM 架构是面向低预算市场设计的第一款 RISC 微处理器,基本是 32 位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前 ARM 在手持设备 市场占有 90%以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。4 CPLD(Compl
31、ex Programmable Logic Device,复杂可编程逻辑器件)5 FPGA(Field Programmable Gate Array,现场可编程门阵列)FPGA 是英文 Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD 等可编程器件的基 础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA 采用了逻辑单元阵列 LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块 CLB(Configurable Logic Block) 、输出输入模块 IOB(Input O
32、utput Block)和内部连线(Interconnect)三个部分。用户可对 FPGA 内部的逻辑模块和 I/O 模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA 既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA 能完成任何数字器件的功能,上至高性能CPU,下至简单的 74 电路,都可以用 FPGA 来实现。FPGA 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统
33、。通过软件仿真,我们可以事先验证设计的正确性。在 PCB 完成以后,还可以利用 FPGA 的在线修改能力,随时修改设计而不必改动硬件电路。使用 FPGA 来开发数字电路,可以大大缩短设计时间,减少 PCB 面积,提高系统的可靠性。FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此工作时需要对片内的 RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA 芯片将 EPROM 中数据读入片内编程RAM 中,配置完成后,FPGA 进入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。FPGA 的编程无须专用的 FPGA
34、 编程器,只须用通用的 EPROM、PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA 的使用非常灵活。可以说,FPGA 芯片是小批量系统提高系统集成度、可11靠性的最佳选择之一。目前 FPGA 的品种很多,有 XILINX 的 XC 系列、TI 公司的 TPC 系列、ALTERA 公司的 FIEX 系列等。6 DSP,ARM,FPGA 的区别ARM 具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面。DSP 主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。FPGA 可以用 VHDL 或 Verilog HDL 来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出 FPGA 的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。