《(1.1)--《嵌入式系统原理及设计》第1章.pdf》由会员分享,可在线阅读,更多相关《(1.1)--《嵌入式系统原理及设计》第1章.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 第 1 章 嵌入式系统概述 第 1 章 嵌入式系统概述 本章主要讲解嵌入式系统的基本知识,主要对嵌入式系统简介、嵌入式系统不同类别芯片、嵌入式系统常见软件及硬件系统结构、嵌入式系统开发过程以及嵌入式系统应用发展趋势展开了说明,方便读者对嵌入式系统整体的理解。1.1 嵌入式系统简介 随着当今智能硬件、物联网以及互联网+等技术的发展并且应用越来越广泛,嵌入式系统作为这些技术的主要实现平台,已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术以及人们的日常生活等方方面面中。消费类产品,如智能手机、数字电视机、机顶盒、数码相机、VCD、DVD、音响设备、可视电话、家庭网络设备、洗衣
2、机、电冰箱、智能玩具等,广泛采用微处理器/微控制器及嵌入式软件。工业控制领域,如智能测量仪表、数控装置、可编程控制器、分布式控制系统、现场总线仪表及控制系统、工业机器人、机电一体化机械设备、汽车电子设备等,广泛采用微处理器/控制器芯片级、标准总线的模板级及系统嵌入式计算机。金融医疗等其他领域,如各类收款机、POS 收费系统、电子秤、条形码阅读机、商用终端、银行点钞机、IC 卡输入设备、取款机、自动柜员机、自动服务终端、防盗系统和各种医疗电子仪器,无一不用到嵌入式系统。智能硬件,如扫地机器人、教育机器人和四轴飞行器、智能手环、婴儿数据监测器和老人摔倒报警器等都用到了嵌入式系统。物联网是互联网与嵌
3、入式系统发展到高级阶段的融合,每一个物联网系统的智能节点都是通过嵌入式系统实现的。互联网+技术主要是通过互联网信息化技术实现对各种嵌入式系统设备的管理,例如智慧城市中远程路灯管理系统,远程水表检测系统等,这些系统中都是通过嵌入式平台实现路灯控制和水表检测,并把所有的嵌入式控制节点加入到互联网中从而实现基于网络的管理。嵌入式系统可以说无处不在,无所不在,有着广阔的发展前景,也充满了机遇和挑战。1.1.1 1.1.1 嵌入式系统嵌入式系统的的定义定义 内涵上定义:嵌入式系统是以应用为中心、计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。外延上
4、定义:把数字计算机系统分成通用计算机和嵌入式系统两大类。通用计算机是指如微型计算机(PC)、大型计算机、服务器等,除此之外的计算机称为嵌入式系统。2 嵌入式系统原理及设计 1.1.2 1.1.2 嵌入式系统的特点嵌入式系统的特点 嵌入式系统与通用计算机系统的区别嵌入式系统与通用计算机系统的区别:嵌入式系统通常是面向特定应用。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。嵌入式系统的硬件和软件都必须进行高效率地设计。嵌入式系统的应用软件取决于行业应用的不同。嵌入式系统与具体应用有机地结合在一起。大多数嵌入式系统本身不具备自开发能力。嵌入式微处理器的特点嵌入
5、式微处理器的特点:对实时多任务有很强的支持能力。具有功能很强的存储区保护功能。可扩展的处理器结构。嵌入式微处理器功耗很低。嵌入式系统的共性嵌入式系统的共性:处理器的共同点(如总线结构、中断技术、与外部元件的扩展连接方式等)。嵌入式处理器由通用处理器内核加上外部设备组成,同一类外部设备完成的功能相似。嵌入式软件开发人员有时需要关心硬件的细节。软件开发在内核层编程,需要了解操作系统的调用细节。嵌入式系统的开发人员,特别是系统/产品的设计师或系统分析师,应掌握硬件和软件的综合知识,进行硬件系统和软件系统的方案选择和综合设计。嵌入式系统的软件开发人员需要掌握多种嵌入式操作系统的用法。操作系统、编程语言
6、和开发工具具有多样性。嵌入式系统的设计师根据应用需求选择硬件和软件平台是至关重要的。嵌入式系统的开发往往需要行业人员和 IT(Information Technology)人员协作完成。1.2 嵌入式系统芯片 根据其现状,嵌入式系统芯片可以分成以下几类:1.2.1 1.2.1 嵌入式微控制器嵌入式微控制器(Microcontroller Unit,MCU)(Microcontroller Unit,MCU)微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高,因此也称为单片机。从 70 年代末单片机出现到今天,虽然已经经过了 20 多年的历史,但这种位的电子器件目前在嵌入
7、式设备中仍然有着极其广泛的应用。微控制器芯片内部集成3 第 1 章 嵌入式系统概述 ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM 等各种必要功能和外设。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。由于 MCU 低廉的价格,优良的功能,所以拥有的品种和数量最多,比较有代表性的包括:(1 1)5151 系列单片机系列单片机(8(8 位单片机)位单片机)最早内核是由 Intel 公司(80C31、80C51、87C51,80C32、80C52、8
8、7C52)提出,后来衍生出多家公司的 51 单片机。如:STC51 系列宏晶科技(国产)目前出货量很大;ATMEL 公司:89C51、89C52、89C2051 等;还有恩智浦(NXP)、华邦、Dallas、Siemens(Infineon)等公司的许多产品(2 2)AVRAVR 系列单片机系列单片机()()1997 年,由 ATMEL 公司挪威设计中心的 A 先生与 V 先生利用 ATMEL 公司的 Flash 新技术,共同研发出 RISC 精简指令集的高速 8 位单片机,简称 AVR。相对于出现较早也较为成熟的 51系列单片机,AVR 系列单片机片内资源更为丰富,接口也更为强大,同时由于其
9、价格低等优势,在很多场合可以替代 51 系列单片机。很多机器人控制板以及 Arduino 平台都经常采用AVR 8 位单片机,如 ATmega8/16/32/64/128 芯片等。近年来,Atmel 公司也推出了 AVR 32 位UC3 微控制器,简称 AVR32。目前 Atmel 公司已被美国微芯 Microchip 公司收购。(3 3)PICPIC 系列单片机(系列单片机()美国微芯半导体 Microchip 公司设计生产 PIC 单片机,主要包括 8 位、16 位和 32 位单片机,其中 8 位单片机包括 PIC10、PIC12、PIC16 和 PIC18 等系列芯片,指令十分精简,只有
10、 35 个,简单易学,故执行速度比8051快;16 位单片机包括 PIC24 系列、dsPIC 微控制器等;32 位芯片包括 PIC32 系列芯片,采用 MIPS 的 M4K 内核。目前已收购 Atmel 单片机。(4 4)飞思卡尔()飞思卡尔(freescalefreescale)系列)系列 8 8 位和位和 1616 位位单片机单片机 由美国飞思卡尔公司(原 Motorola 公司)生产,包括 8 位微控制器(单片机),16 位微控制器(单片机)、32 位 ARM Cortex-M 架构微控制器(单片机)Kinetis 系列芯片。飞思卡尔 8 位单片机系列主要包括 RS08 类、HCS08
11、 类、HC08 类、HC08 汽车类、HCS08 汽车类;MC9S12G 系列是一个专注于低功耗、高性能、低引脚数量的高效汽车级 16 位微控制器产品。2015 年 3 月,飞思卡尔半导体宣布通过与恩智浦半导体并购协议,被恩智浦半导体收购。(5 5)恩智浦恩智浦(NXP)(NXP)系列单片机系列单片机 NXP(恩智浦)是 2006 年末从飞利浦公司独立出来的半导体公司,其业务已拥有五十年的悠久历史,主要提供各种半导体产品与软件,为移动通信、消费类电子、安全应用、非接触式付费与连线,以及车内娱乐与网络等产品带来更优质的感知体验。芯片内核主要采用51 单片机核(如 P89LPC 系列)和 ARM
12、内核(如 LPC1100,LPC1200,LPC1300 等系列)。4 嵌入式系统原理及设计 (6 6)TI MSP430TI MSP430 系列单片机系列单片机 TI MSP430 系列单片机是一个 16 位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。运算速度快:MSP430 系列单片机能在25MHz 晶体的驱动下,实现 40ns 的指令周期。并且 16 位的数据宽度、40ns
13、 的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如 FFT等)。同时超低功耗:MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。(7 7)STST 公司公司 STSTM M8 8 系列单片机系列单片机 STM8 系列是意法半导体公司生产的 8 位的单片机。该型号单片机分为 STM8A、STM8S、STM8L 三个系列。STM8A:汽车级应用;STM8S:标准系列;STM8L:超低功耗 MCU。高级STM8 内核,具有 3 级流水线的哈佛结构。(8 8)ARM ARM 系列单片机系列单片机 AR
14、M 单片机是以 ARM 处理器(Cortex-M 系列)为核心的一种单片微型计算机,是近年来随着电子设备智能化和网络化程度不断提高而出现的新兴产物。Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。目前 Cortex-M 系列主要包括 Cortex-M0、M3、M4 和 M7 等系列芯片,并且大部分单片机公司都有采用 ARM 内核的单片机。后面在介绍 ARM 芯片的内容,详细介绍有关 ARM 单片机这部分。图 1.1 Cortex-M 系列芯片 除了以上的单片机型号系列,还
15、有其他很多公司的芯片如凌阳、合泰、义隆、松翰和芯海等公司也生产出很多低成本的芯片,并推向市场。1.2.2 1.2.2 嵌入式微处理器嵌入式微处理器(MPU(MPU,Microprocessor Unit)Microprocessor Unit)嵌入式微处理器是由通用计算机中的 CPU 演变而来的。它的特征是具有 32 位以上的处理器,具有较高的性能,当然其价格也相应较高。但与计算机处理器不同的是,在实际嵌入5 第 1 章 嵌入式系统概述 式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器
16、具有体积小、重量轻、成本低、可靠性高的优点。嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用 CPU 最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用,它将通用 CPU 许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。通常嵌入式微处理器把 CPU、ROM、RAM 及 I/O 等元件做到同一个芯片上,也称为单板计算机。目前,主要的嵌入式微处理器有 ARM、MIPS、POWER PC 和基于 X86 的 386EX 等。(1 1)MIPSMIPS 系列芯片系列芯片 MIPS 是世界上很流行的一种 RISC 处理器。MIP
17、S 的意思“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在 80 年代初期由斯坦福(Stanford)大学 Hennessy 教授领导的研究小组研制出来的。MIPS 公司的 R 系列就是在此基础上开发的 RISC 工业产品的微处理器。这个系列产品为很多计算机公司所采用从而构成各种工作站和计算机系统。MIPS 的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系 MIPS I、MIPS II、MIPS III、MIPS IV 到 MIPS V,
18、嵌入式指令体系 MIPS16、MIPS32 到 MIPS64 的发展已经十分成熟。在设计理念上 MIPS 强调软硬件协同提高性能,同时简化硬件设计。中国龙芯 2 和前代产品采用的都是 64 位 MIPS 指令架构,它与大家平常所知道的 X86 指令架构互不兼容,MIPS 指令架构由 MIPS 公司所创,属于 RISC 体系。过去,MIPS 架构的产品多见于工作站领域,索尼 PS2 游戏机所用的“Emotion Engine”也采用 MIPS 指令,这些 MIPS处理器的性能都非常强劲,而龙芯 2 也属于这个阵营,在软件方面与上述产品完全兼容。Microchip 公司的 PIC32,珠海炬力电子
19、的芯片用 MIPS 内核。(2 2)Power PCPower PC 系列芯片系列芯片 由 IBM(国际商业机器公司)、Motorola(摩托罗拉公司)和 Apple(苹果公司)联合开发的高性能32位和64位RISC微处理器系列,以与垄断PC机市场的Intel微处理器和微软公司的软件相竞争。PowerPC 微处理器 1994 年推出,基于 PowerPC 的计算机通过在 PowerPC 上运行一个特殊程序就可运行 DOS 或传统的 Macintosh 软件,这种特殊程序可分别识别和执行80386 或 68030CPU 的机器指令。(3 3)ARMARM 微处理器芯片微处理器芯片 ARM 公司设
20、计了许多处理器,它们可以根据使用内核的不同划分到各个系列中。系列划分是基于 ARM7、ARM9、ARM10、ARM11 和 Cortex-A 内核的。后缀数字 7、9、10、11 和 Cortex-A表示不同的内核设计,目前最新的为 Cortex-A 芯片。数字升序说明性能和复杂度的提高,其中 ARM8 开发出来以后很快就被取代了。在每个系列中,存储器管理、cache 和 TCM 处理器扩展也有多种变化。ARM 继续在可用的产品系列和每个系列内部的不同变种两方面做进一步开6 嵌入式系统原理及设计 发。目前国内的华为,瑞芯微和全志等公司都采用 ARM 内核开发了针对手机、媒体播放器等多种消费类产
21、品的芯片。本书中后面 ARM 芯片部分会详细介绍 ARM 芯片的内容。1.2.3 1.2.3 嵌入式嵌入式数字信号数字信号处理器处理器(DSPDSP,Digital Singnal ProcessingDigital Singnal Processing)嵌入式数字信号处理器(DSP,Digital Signal Processor)是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。由于对 DSP 硬件结构和指令进行了特殊设计,它能够高速完成各种数字信号处理运算。DSP 的主要厂商有美国 TI、ADI、Motorola、Zilog 等公司。TI 公司
22、位居榜首,占全球 DSP 市场份额的 60%左右。DSP 代表性的产品是 TI 公司的 TMS320 系列。TMS320 系列处理器包括用于控制领域的 C2000系列、移动通信的 C5000 系列以及应在通信和数字图像处理的 C6000 系列等。由于无线通信、各种网络通信、多媒体技术的普及和应用,高清晰度数字电视的研究,极大地刺激了 DSP 在工程上的推广应用。DSP 大量进入嵌入式领域。推动 DSP 快速发展的是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品、生物信息识别终端、实时语音压解系统、数字图像处理等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些
23、正是 DSP 的优势所在。尽管 DSP 技术已达到较高的水平,但在一些实时性要求很高的场合,单片 DSP 的处理能力还是不能满足要求。因此,又研制出了多总线、多流水线和并行处理的包含多个 DSP 处理器的芯片,大大提高了系统的性能。与微控制器相比,DSP 具有的实现高速运算的硬件结构及指令和多总线、DSP 处理的算法的复杂度和大的数据处理流量是单片机不可企及的,DSP 处理器处理器的特点:(1 1)多总线结构。)多总线结构。DSP 芯片内部一般采用的是哈佛结构,其主要特点是将程序和数据存储在不同的存储空间,每个存储器独立编址,独立访问。在片内有相应的程序总线和数据总线,程序总线和数据总线可以允
24、许同时获取指令字和操作数,而互不干涉。这意味着在一个机器周期内可以同时准备好指令和操作数,从而使数据的吞吐率提高了 1 倍。为了进一步提高运行速度和灵活性,DSP 也采用了改进的哈佛结构和超级哈佛结构。(2 2)流水线操作。)流水线操作。流水线操作技术使两个或更多不同的操作可以重叠执行,从而在不减小时钟周期的条件下缩短了每条指令的执行时间,增强了处理器的数据处理能力。要执行一条 DSP 指令,需要通过取指令、指令译码、取操作数和执行指令等若干阶段,每一阶段称为一级流水。DSP 的流水线操作是指它的这几个阶段在程序执行过程中是重叠的,在执行本条指令的同时,下面的几条指令已依次完成了取指令、解码、
25、取操作数的操作。(3 3)专用的硬件乘法器。)专用的硬件乘法器。硬件乘法器的功能是在一个指令周期内完成一次乘法运算,是 DSP 实现快速运算的重要保证。可以说几乎所有的 DSP 器件内部都有硬件乘法器。(4 4)特殊的)特殊的 DSPDSP 指令。指令。数字信号处理器芯片为了对数字信号进行更为高效、快速的处理,专门设计了一套相应的特殊指令。这些特殊指令节省了指令的条数,缩短了指令的执行时间,提高了运算速度。(5 5)多机并行运行特性。)多机并行运行特性。DSP 芯片的单机处理能力是有限的,而随着 DSP 芯片价格的不7 第 1 章 嵌入式系统概述 断降低和应用的广泛,多个 DSP 芯片并行处理
26、已成为可能,可以运用这一特性,达到良好的高速实时处理的要求。(6 6)快速的指令周期。)快速的指令周期。随着的不断发展,DSP 芯片采用了 CMOS 技术、先进的工艺和集成电路的优化设计,工作电压的下降,使得 DSP 芯片的主频不断提高。这一变化将随着微电子技术的不断进步而继续提高。(7 7)低功耗。)低功耗。随着微电子产品在人类日常生活中所占得比重越来越大,DSP 的应用领域得到了巨大的拓展。DSP 应用这么广泛,那么降低功耗对于电力资源紧缺产生十分重要的意义。这对 DSP 的发展也起到了巨大的作用。(8 8)高的运算精度。)高的运算精度。浮点 DSP 提供了大的动态范围,定点 DSP 的字
27、长也能达到 32 位,有的累加器达到 40 位。1.2.4 1.2.4 嵌入式片上系统嵌入式片上系统 (System On Chip,SOC)(System On Chip,SOC)可编程片上系统是一种特殊的嵌入式系统:首先它是片上系统,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。自从 1999 年出现第一个可编程片上系统(SOPC)器件以来,已经有众多可编程器件供应商推出了具有自己特色的可编程器件,最为典型的是世界上两大可编程器件供应商Xilinx 公司和 Altera 公司在 FPGA/CPLD
28、基础推出的系列可编程片上系统器件。其中,Xilinx 公司先后推出的可编程片上系统器件有:Virtex 系列、Virtex-E 系列、Virtex-II 系列、Virtex-Pro 系列、Spaxtan 系列、Spartan-II 系列等;Altera公司先后推出的可编程片上系统器件有:APEX20 系统、APEX II 系列、Mercury 系列、Excalibur系列、Stratix 系列、Cyclone 系列等。每个系列器件都有多种产品,以适用于不同的应用要求。因此,对于国内一般的系统设计者来讲,基于可编程片上系统(SOPC)器件的嵌入式系统设计将是进入芯片级电子系统设计的敲门砖。从板级
29、电子系统设计到芯片级电子系统设计的转变,主要表现在如下几个方面:(1)在设计描述工具方面,传统的板级电子系统设计主要采用电路原理图和元器件外形封装图作为设计描述语言工具,而现在的芯片级电子系统设计主要采用文本方式的硬件描述语言(HDLHardware Description Language)作为设计描述语言工具,目前常用 VHDL 和Verilog 两种硬件可编程语言。(2)在设计流程方面,板极电子系统设计主要经历电子系统原理图设计与仿真、印刷电路板(PCB)设计与仿真分板(包括信号完整性分析、电磁兼容性分析等)等二个阶段,而芯片级电子系统设计通常需要经历系统级设计与仿真、算法级设计与仿真、
30、寄存器传输级(RTL)设计与仿真、逻辑综合与验证、版图设计综合与验证等 5 个阶段。(3)在软硬件协同设计方面,板级电子系统设计所采用的方法是先进行硬件系统设计后再进行软件系统设计的方法,难以实现软硬同步设计或协同设计,而芯片级电子系统设计可以比较容易实现软硬件同时设计或协同设计。8 嵌入式系统原理及设计 (4)在设计实现方面,板级电子系统设计主要基于具有特定功能的集成电路器件,而芯片级电子系统设计主要是基于具有特定功能的电路模块知识产权核(IP 核)。因此,板级电子系统设计与芯片级电子系统设计无论是在设计方法上还是在设计工具方面都发生了较大的变化。1.3 嵌入式系统硬件和软件系统基本组成 1
31、.3.1 1.3.1 嵌入式系统硬件基本组成嵌入式系统硬件基本组成 常见的嵌入式系统硬件主要由以下几个部分组成:嵌入式处理器 数据存储器 ADC/DAC 处理器支持电路(复位、晶振等)LCD 键盘 网络与通信接口(串口、网口等)多媒体接口(语音、图像)扩展输入/输出(USB 等)总线 程序存储器 图 1.2 嵌入式系统硬件基本组成(1 1)基本电路基本电路:电源、重启电路和时钟电路电源、重启电路和时钟电路 一个嵌入式系统电路正常工作需要至少电源、重启(Reset)和时钟电路三部分电路。电源电路为嵌入式系统提供工作电源,目前嵌入式系统芯片常用的电源为 5V 和 3.3V 两种电压,一般常用稳压芯
32、片例如 78XX 或 LM1113-XX 等系列稳压芯片产生供电电压。重启电路主要包括上电重启电路和按钮重启电路,其中上电重启电路是整个系统工作所必需的,通过上电重启电路,主要完成初始化芯片的状态,并且是芯片开始执行第一条指令的时刻。目前常采用专用的重启启动芯片实现上电重启功能,同时在嵌入式微控制器方面还经常采用电容瞬间上电导通及常态断开的特性,通过把电容和电阻串联起来,利用电容随着供电时间的变化,从而上电瞬间产生重启信号,随后恢复到正常工作状态。由于嵌入式系统芯片都是时序型电路,需要一个标准的时钟源,因此需要一个专门的时钟电路提供基本时钟。目前常用外部有源时钟源或无源晶振振荡电路连接嵌入式芯
33、片的时钟输入接口,从而提供工作时钟,根据芯片的特点时钟源一般从几 K 到几百兆。目前随着芯片9 第 1 章 嵌入式系统概述 技术的发展,担心由于外接高速时钟源对电路电磁兼容性带来影响,因此现在大多芯片经常外接的时钟源也就 8M-12M 左右,通过芯片内部升频电路(锁相环电路 PLL)使其升频达到上百兆 HZ 的主频率。目前也有很多芯片内部集成了电阻电容振荡模式的时钟电路,这样就不需要外接时钟,利用内部时钟就行。但内部时钟电路晶振频率十分不准确,用在对时钟精度要求不高的应用还可以。(2 2)存储电路)存储电路:RAMRAM 和和 ROMROM 嵌入式芯片需要存储程序和数据才能实现正常工作,所以存
34、储电路也是必不可少的。存储芯片主要分为 RAM 和 ROM 两大类别,其中 RAM 主要用于存放数据,ROM 主要用于存放程序。嵌入式系统中常用的存储类型如下图 存储器存储器RAMRAMROMROMDRAMDRAMSRAMSRAM掩膜掩膜ROMROMPROMPROM EPROMEPROM EEPROMEEPROM FLASHFLASH 图 1.3 存储器分类图 1 1)随机存储器随机存储器 RAMRAM 随机存储器(RAM)的任意存储单元都可以以任意次序进行读/写操作。主要有静态 RAM(SRAM)和动态 RAM(DRAM)两种类型。其中静态 RAM 采用标准并行总线模式,有地址线和数据线,其
35、中地址线决定存储容量,数据线决定位宽,目前嵌入式微控制器内部集成的存储器主要是静态 RAM,但集成度相对较低,功耗也较大。动态 RAM 集成度高,成本较低,另外耗电也少,但它需要一个额外的刷新电路。动态 RAM 地址线一般分为行地址和列地址,并分时传送行地址和列地址,所以满足容量大的寻址空间,例如常见的同步动态内存(SDRAM)就是根据工作时钟分时送行和列地址,所以相对于 SRAM 来说 DRAM 需要相应的信号序列才能工作起来。目前需要大容量存贮空间例如嵌入式微处理器外接内存主要是 SDRAM,在操作 SDRAM 数据时需要有相应的驱动程序产生读写信号序列,这个驱动程序写在嵌入式微处理器Bo
36、otloader 程序中,即在刚启动的时候实现对 SDRAM 驱动的装载,从而可实现对 SDRAM 读写。2)2)只读存储器只读存储器 ROMROM 主要有如下几种类型:掩模 ROM,掩膜 ROM 中的信息是厂家根据用户给定的程序或数据对芯片进行掩膜(一种半导体工艺)而制造出来的。根据制造技术,掩膜型 ROM 又可分为 MOS 型和双极型两种。主要的优点是大批量生产时产品的成本较低。10 嵌入式系统原理及设计 PROM,PROM 属于一次性编程的只读存储器。它出厂的时候处于未被编程的状态,里面的内容全是 1。在嵌入式系统中广泛使用的 PROM 称为 OTP(Once Time Program)
37、。EPROM,EPROM 和 PROM 的编程方式几乎完全一样。但是,EPROM 是可以被擦除并且反复被编程的。EPROM 的擦除需要使用紫外线,把 EPROM 暴露在强紫外线光源下,可把整个芯片重置到初始状态,即未编程状态。EEPROM,EEPROM 是电可擦除可编程的。EEPROM 允许按字节进行擦除和编程,具有灵活性的 ROM。EEPROM 通常用于系统的配置数据和参数的存储与备份。EEPROM 通常有 4 种工作方式,即读方式、写方式、字节擦除方式和整体擦除方式。除了并行 EEPROM 外,广泛使用的还有串行 EEPROM。Flash 存储器,快闪存储器(Flash)技术是存储器技术的
38、最新发展,使用标准电压擦写和编程。与传统存储器相比,Flash 的主要优势:a.非易失性;b.易更新性。Flash 主要有两类:NOR Flash 和 NAND Flash。NAND Flash 主要有两种用途:一种是用做存储卡;另一种用途是用做嵌入式系统的程序存储器;NAND 器件使用复杂的 I/O 口来串行地存取数据,各个产品或厂商的方法可能各不相同,8 个引脚用来传送控制、地址和数据信息。一般嵌入式微处理器运行 Linux 系统,较大的文件系统需要较大的存储空间,因此需要外接 Nand Flash。在操作 Nand Flash 时需要有相应的驱动程序产生读写信号序列,这个驱动程序写在嵌入
39、式微处理器 Bootloader 程序中,即在刚启动的时候实现对 Nand Flash 驱动的装载,从而可实现对 Nand Flash 读写。NOR Flash 有两种形式,一种是嵌入式处理器上集成了 Flash,另一种是片外扩展 Flash,操作包括写入和读出。NOR Flash 带有 SRAM 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。嵌入式微控制器内部集成 NOR Flash,用于存储程序。当选择存储解决方案时,设计师必须权衡以下的各项因素。NOR 的读速度比 NAND 稍快一些;NAND 的写入速度比 NOR 快很多;NAND 的擦除速度远比 NOR 快;NAN
40、D 的擦除单元更小,相应的擦除电路更加简单;NAND 的实际应用方式要比 NOR 复杂的多;NOR 可以直接使用,并在上面直接运行代码,而 NAND 需要 I/O 接口,因此使用时需要驱动。(3 3)模拟电路)模拟电路-模数转换(模数转换(ADAD)和数模转换)和数模转换(DADA)由于嵌入式芯片经常需要获取到传感器数据,而传感器数据一般是模拟信号,所以采集这些信号需要模拟数字转换,目前大部分嵌入式芯片内部都集成了 AD,所以可以直接引入模拟电压。在连接模拟信号时,需要考虑模拟信号电压值在参考电压 Vref+和 Vref-之间,Vref+和 Vref-可连接外部基准电压,也可以利用芯片内部电压
41、作为基准。D/A 接口,D/A 转换器使将数字量转换为模拟量,例如嵌入式芯片输出声音的硬件接口就是典型的 D/A 转换,把芯片的数字信号转换为驱动喇叭的模拟信号。(4 4)其他其他常用常用接口接口电路电路 11 第 1 章 嵌入式系统概述 通用输入输出接口通用输入输出接口(GPIO)(GPIO):GPIO 是 I/O 的最基本形式,它是一组输入引脚或输出引脚。键盘接口键盘接口:键盘的两种形式:线性键盘和矩阵键盘。显示接口显示接口:8 段数码管 LED 显示和 LCD 显示。串行接口串行接口:串行通信是指使数据一位一位地进行传输而实现的通信。与并行通信相比,串行通信具有传输线少、成本低等优点,特
42、别适合远距离传送;缺点是速度慢。目前常见的通信模式有 UART(异步串行通信)和 SPI(同步串行通信)。总线接口:总线接口:I2C 总线(双向二线制半双工同步串行总线),CAN 总线(控制器局域网总线),RS485 总线(半双工工作方式,支持多点异步串行数据通信)。1.3.21.3.2 嵌入式系统软嵌入式系统软件系统件系统 嵌入式软件就是给专门的嵌入式系统设计的软件,和一般的 PC 软件差别不是很大,主要的区别在嵌入式系统对功耗和内存大小上有严格的限制,所以嵌入式软件一定要精简,高效。嵌入式系统软件主要有无操作系统的嵌入式裸机软件和嵌入式操作系统软件两种类型。(1)嵌入式裸机软件系统)嵌入式
43、裸机软件系统 早期的嵌入式系统硬件配置比较低,主要应用在控制领域,基本不需要系统软件的支持。所以早期嵌入式软件的设计以应用为核心,应用软件直接建立在硬件上,规模也很小,没有专门的操作系统,基本上属于硬件的附属品。无操作系统嵌入式软件的具体实现方式主要有两种:循环轮换和前后台系统。循环轮换循环轮换:把系统的功能分解为若干个不同的任务,然后把它们包含在一个永不结束的循环语句当中,按照顺序逐一执行。当执行完一轮循环后,又回到循环体的开头重新执行。前后台系统前后台系统:前后台系统就是在循环轮换方式的基础上,增加了中断处理功能。中断服务程序构成前台程序,负责处理异步事件,称为事件处理级程序。后台程序一般
44、是一个无限的循环,负责掌管整个嵌入式系统软、硬件资源的分配、管理以及任务调度,是一个系统管理调度程序,称为任务级程序。(2 2)嵌入式操作系统软件系统)嵌入式操作系统软件系统 利用操作系统,应用程序的开发不是直接面对嵌入式硬件设备,而是在操作系统的基础上编写,易于实现功能复杂、系统庞大的应用。嵌入式硬件之上依次为设备驱动层、操作系统层、中间件层和应用软件层。设备驱动层负责与硬件直接打交道,为上层软件提供所需的驱动支持。操作系统层包括基本部分和扩展部分,基本部分负责整个系统的任务调度、存储管理、时钟管理和中断管理等功能;扩展部分为用户提供的一些扩展功能,包括网络、文件系统、图形用户界面 GUI、
45、数据库等,扩展部分可根据需要进行裁减。中间件层为应用软件层提供一些对操作系统的便捷服务和广泛使用的库函数,如常用的数据运算函数、数据格式的变换函数以及数据表格图线的绘制函数等。应用软件层则是实现具体应用功能的用户程序,根据不同的测量任务,应用程序以合适的形式表示出测量的结果。12 嵌入式系统原理及设计 1.4 嵌入式系统开发 1.4.1 1.4.1 嵌入式系统芯片选型嵌入式系统芯片选型 目前嵌入式系统芯片根据可靠性从高到低主要分为以下几个级别:军用级、汽车级、工业级和商业级,其中军用级芯片可靠性最高可以在十分恶劣的环境下正常工作,而商业级相对可靠性较差,有可能在零下温度时就不能工作了。针对嵌入
46、式芯片主要根据以下特征考虑选型:(1)功能:主要取决于处理器所集成的存储器的数量和外部设备接口的种类和数量;(2)字长:指参与运算的数的基本位数,它决定了寄存器、运算器和数据总线的位数,因而直接影响硬件的复杂程度;(3)处理速度:在单位时间内各类指令的平均执行条数;(4)工作温度;(5)功耗;(6)寻址能力:取决于处理器地址线的数目;(7)平均故障间隔时间:指在相当长的运行时间内,机器工作时间除以运行期间内的故障次数;(8)性能价格比;(9)工艺:半导体工艺和设计工艺;(10)电磁兼容性指标:取决于器件的选择、电路的设计、工艺、设备的外壳等;(11)芯片封装类型:取决于嵌入式产品的大小,如便于
47、携带的手环电路,常采用小封装的芯片,如 BGA 或 QFN 封装等。选择处理器可分为两个步骤:(1)选择哪一类处理器,在通用处理器、嵌入式微控制器、嵌入式处理器、DSP、可编程器件之间做出选择。(2)然后根据产品的性能要求,选择出合适的芯片。一般选择处理器的原则:(1)够用原则:1)低端简单应用;2)中端的复杂应用;3)涉及数字信号处理和数学计算的应用。(2)成本原则:1)电路的成本;2)印制电路板的成本。1.4.2 1.4.2 嵌入式系统硬件设计嵌入式系统硬件设计 嵌入式硬件设计主要是根据需求设计出合适硬件电路,目前常用 Protel DXP,OrCad 或Cadence 等电路设计软件,首
48、先设计出电路的原理图,然后根据原理图的网络连接关系图进行 PCB 布线电路,最后找电路板加工厂家加工出具体的 PCB 电路板。嵌入式硬件常用的设计是在做嵌入式硬件设计中,以下几点需要关注。(1)电源确定。电压电压:嵌入式系统需要各种量级的电源比如常见的 5v、3.3v、1.8v 等,为尽量减小电源的纹波,在嵌入式系统中尽量使用低压差线性稳压器(LDO)器件。如果采用 DC-DC 不仅个头13 第 1 章 嵌入式系统概述 大,其纹波也是一个很头疼的问题。电流电流:嵌入式系统的正常运行不但需要稳定足够的电源,还要有足够的电流,因此在选择电源器件的时候需要考虑其负载,建议设计时一般留有 30%的余量
49、。如果是多层板,电源部分在布线的时候需电源分割,这时需要注意分割路径,尽量将一定量的电源放置在一起。如果是双面板,则走线宽度需要注意,在板子允许的情况下尽量加宽。合适的退耦电容尽量靠近电源管脚。(2)晶振确定。常见的振有无源晶振,有源晶振,首先要确定其振荡频率,其次要确定晶振类型。使用无源晶振时,选择合适的匹配电容和电阻,这部分一般依据参考手册。有源晶振具有更好的更准确的时钟信号,但是相比之下,比无源晶振价格高,因此这也是在硬件电路设计中需要关注的成本。在做电路板设计时需要注意晶振走线尽量靠近芯片,关键信号远离时钟走线。在条件允许的情况下增加接地保护环。(3)预留测试 IO 口。在嵌入式调试阶段,在管脚资源丰富的情况下,通常预留一个 IO 口连接指示灯和按钮接口,为下一步软件的编写做铺垫。在嵌入式系统运行过程中适当控制该 IO 接口,从而判断系统是否正常运行。(4)外扩存储设备。一个嵌入式系统如果有电源、晶振和嵌入式芯片,那么这就是我们熟悉的最小系统。如果该嵌入式系统需要运行大点的操作系统,那么不但需要嵌入式芯片具有内存管理单元(MMU),同时还需要外接 SDRAM 和 NANDFLASH。如果该 CPU 具有 SDRAM 和 NAND FLASH 控制器,那么在硬件设计上不用过多的考虑地址线的使用。如果没有相关的控制器,那么需要注意地址线的使用。这部分在布线的时候是一个重点,究