目录
第一章 嵌入式系统基础知识 ............................................................................................................. 1 1.1嵌入式系统定义及组成 ................................................................................................................ 1 1.1.1嵌入式系统的定义 ................................................................................................................. 1 1.1.2嵌入式系统发展概述 ............................................................................................................. 1 1.1.3嵌入式系统的组成 ................................................................................................................. 3 1.1.4实时系统 ................................................................................................................................. 5 1.2 微处理器体系结构 ....................................................................................................................... 6 1.2.1冯.诺依曼与哈佛结构 ............................................................................................................ 6
1.2.1.1冯.诺依曼结构 ................................................................................................................................ 6 1.2.1.2哈佛结构 .......................................................................................................................................... 7
1.2.2 CISC与RISC .......................................................................................................................... 7
1.2.2.1复杂指令集计算机CISC ................................................................................................................ 7 1.2.2.2精简指令集计算机RISC ................................................................................................................ 9 1.2.2.3 CISC和RISC的特点 ................................................................................................................... 10
1.2.3 流水线技术 .......................................................................................................................... 10 1.2.4 信息存储的字节顺序 .......................................................................................................... 11 1.3 嵌入式系统的硬件基础 ............................................................................................................. 12 1.3.1 组合逻辑电路基础 .............................................................................................................. 12 1.3.2时序逻辑电路 ....................................................................................................................... 13 1.3.3 总线电路及信号驱动 .......................................................................................................... 14
1.3.3.1总线 ............................................................................................................................................... 14 1.3.3.2 三态门........................................................................................................................................... 15 1.3.3.3 总线的负载能力 ........................................................................................................................... 15 1.3.3.4 总线复用 ....................................................................................................................................... 15 1.3.3.5总线通信协议 ................................................................................................................................ 16 1.3.3.6 总线仲裁 ....................................................................................................................................... 16
1.3.4 电平转换电路 ...................................................................................................................... 17
1.3.4.1 数字集成电路的分类 ................................................................................................................... 17 1.3.4.2 常用数字集成电路逻辑电平接口技术 ....................................................................................... 17 1.3.4.3 可编程逻辑器件基础 ................................................................................................................... 18 1.3.4.4 现场可编程器件分类 ................................................................................................................... 19
1.4 嵌入式系统中信息表示与计算基础.......................................................................................... 24 1.4.1 计算机中数的表示 .............................................................................................................. 24 1.4.2 非数值数据编码 .................................................................................................................. 25 1.4.3 语音编码 .............................................................................................................................. 25 1.4.4 差错控制码 .......................................................................................................................... 25 1.4.5 嵌入式系统的性能评价 ...................................................................................................... 26
1.4.5.1 度量项目 ....................................................................................................................................... 26 1.4.5.2 评估嵌入式系统处理器的主要指标 ........................................................................................... 26
1
第二章 嵌入式微处理器与接口知识 .................................................................................................. 27 2.1 嵌入式微处理器的结构和类型 ................................................................................................. 27 2.1.1 嵌入式微处理器的分类 ...................................................................................................... 27 2.1.2 典型的8位微处理器的结构和特点 .................................................................................. 28 2.1.3 典型的16位微处理器的结构和特点 ................................................................................ 28 2.1.4 典型的32位微处理器的结构和特点 ................................................................................ 29 2.1.5 DSP处理器的结构和特点 ................................................................................................ 30 2.1.6 多核处理器的结构和特点 ................................................................................................ 31 2.2 嵌入式系统的存储体系 ............................................................................................................. 32 2.2.1 存储器系统的概述 .............................................................................................................. 32
2.2.1.1 存储器系统的层次结构 ............................................................................................................... 32 2.2.1.2 高速缓存cache ............................................................................................................................. 32 2.2.1.3
存储管理单元 ......................................................................................................................... 35
2.2.2
嵌入式系统存储设备分类 ........................................................................................... 37 2.2.2.1 存储器部件的分类 ................................................................................................................. 37 2.2.2.2 存储器的组织和结构 ............................................................................................................. 38
2.2.3.1 2.2.3.2 2.2.4.1 2.2.4.2
常见的ROM的种类 .............................................................................................................. 38 各类型ROM的特点和不同点 .............................................................................................. 38 Flash Memory的种类 ............................................................................................................. 39 NOR 和 NAND 型的Flash Memory 各自的典型特征和不同点 ...................................... 40
2.2.3 ROM的种类与选型 .......................................................................................................... 38
2.2.4 Flash Memory的种类与选型 ........................................................................................... 39
2
第一章 嵌入式系统基础知识
1.1嵌入式系统定义及组成
1.1.1嵌入式系统的定义
1. 可以说除了桌面计算机和服务器外所有计算设备都属于嵌入式系统,例如从便携式音
乐播放器到航天飞机上的实时系统控制都属于嵌入式。 2. 简单地通过速度和成本来定义嵌入式系统是困难的,但对于大批量的产品而言,成本常
常对系统设计起决定作用。 3. 通常,一个嵌入式系统的很多部分相对系统主要功能来说需要较低的性能,因此嵌入式
系统和通用PC相比,能够使用一个满足辅助功能的合适的CPU,从而简化了系统设计,降低了成本。例如, 数字电视的机顶盒需要处理每秒以百万兆位计的连续数据,但这些数据处理大部分是由定制的硬件来实现的,如解析、管理和编解码多个频道的数字影像。 4. 对于大批量的嵌入式系统,降低成本就成为最主要的问题,这些系统通常只具有几个芯
片:一个高度集成的CPU,一个定制的芯片用于控制其他所有的功能,还有一个存储芯片。
5. 对于小批量的嵌入式应用,为了降低开发成本,常常使用PC体系结构,通过程序
的执行时间或用一个实时操作系统来替换原先的操作系统。这种情况下,可以使用一个或多个高性能的CPU来替换特殊用途的硬件。
6. 嵌入式系统软件通常运行在有限的硬件资源上:没有硬盘、操作系统、键盘或屏幕。软
件一般都没有文件系统,如果有的话,也会采用Flash驱动器。如果有人机交互接口的话,也是一个小键盘或液晶显示器。
7. 嵌入式系统是以应用为中心、以计算机技术为基础,软件、硬件可裁剪,适应应用系统
对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
8. 嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有
数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。 1.1.2嵌入式系统发展概述
1. 发展历史:世界上第一个应用的嵌入式系统可以追溯到20世纪60年代中期的阿波罗
(AGC, Apollo Guidance Computer)导航计算机系统. 从单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了30多年的历史。纵观嵌入式系统的发展历程,大致经历了以下4个阶段。 1) 无操作系统阶段
最初应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置仅仅使用8位CPU芯片来执行一些单线程的程序,还谈不上“系统”的概念。
1
特点:系统结构功能单一,处理效率较低,存储容量较小,几乎没有用户接口,但价格低廉,在工控领域广泛应用。 2) 简单操作系统阶段
20世纪80年代,随着微电子工艺水平的提高,集成电路(Integrated Circuit, IC)制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口及RAM、ROM等部件集成到一片VLSI(大规模集成电路 Very Large Scale Integrated circuites)中。 特点:出现了大量具有高可靠性、低功耗的嵌入式CPU,操作系统虽然还比较简单,但已初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载及监控应用程序的运行。 3) 实时操作系统阶段
20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,面向实时信号处理算法的数字信号处理器(DSP, Digital Signal Processor)产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统软件规模不断扩大,逐渐形成了实时多任务操作系统(Real-time Operation System, RTOS)
特点:此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(Graphic User Interface, GUI)等功能,并提供了大量的应用程序接口(Application Programming Interface, API), 从而使应用软件的开发变得更加简单。
4) 面向Internet阶段
随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合是嵌入式系统未来的发展趋势。
2. 嵌入式系统的发展趋势
Palm OS 掌上电脑操作系统 SOC 片上系统(System On Chip)
IP核(知识产权核Intellectual Property Core, IP Core), 是指具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现SOC的基本构件。
IP核对应描述功能行为的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理藐视并经过工艺验证的硬核(Hard IP Core)。
HDL(Hardware Description Language),是硬件描述语言。顾名思义,硬件描述语言就是指对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种新兴语言。 RTL寄存器传输(Register Transfer Level)
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。
软核,通常以硬件描述语言HDL文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含有任何物理信息,用户可以综合出正确的门电路级设计网表,并可以进行后续设计,具有很大的灵活性,借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,根据不同半导体工艺,设计成具有不同性能的器件。
缺点是缺乏对时序、面积和功耗的预见性,而且IP软核以源代码的形式提供,IP知识产权不易保护。
硬核,基于半导体工艺的物理设计,经过工艺验证,具有可保证的性能,由于无需RTL
2
级文件,更易于实现IP保护,缺点是灵活性和可移植性差。
固核,介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节,一般以门级电路网表的形式提供给用户。
IC设计中采用IP复用可以缩短产品的开发周期,提高产品的可靠性。
为了保护IP核的开发者与使用者,同时建立良好的IP核技术基础,全球各界已筹备了许多策略联盟,如EDA联盟、RAPID联盟、VCX联盟与VSIA联盟等,来积极推动IP核的开发、应用及推广。其中EDA联盟主要由提供继承电路自动化设计的公司所组成,主要以如何更好的EDA软件工具为主,也处理一部分IP核使用标准的问题。VSIA联盟针对IP核的定义、开发、授权及测试等建立了一个公共的共性规范。 1.1.3嵌入式系统的组成
1. 一个嵌入式系统一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个
嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,如SONY智能机器狗上面集成了多个微小型控制电机和多种传感器。 2. 硬件层,包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和
I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块,其中操作系统和应用程序都可以固化在ROM中。 1) 嵌入式微处理器
它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯. 诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer, RISC)和复杂指令集系统CISC(Complex Instruction Set Computer, CISC)
CISC计算机具有大量的指令和寻址方式,但大多数程序只使用少量的指令就能够运行; RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。
据不完全统计,目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等,但和全球PC市场不同,没有一种嵌入式微处理器可以主导市场,仅以32位产品而言,就有100种以上的嵌入式微处理器。
2) 嵌入式存储器
嵌入式系统的存储器包括Cache、主存、辅助存储器。
Cache是一种容量小,速度块的存储器阵列,它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,大大改善系统的性能,提高微处理器和主存之间的数据传输速率,使实时性增强。 一般中高档的嵌入式微处理器会把Cache集成进去。
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部和外部,一般片内存储器容量小,速度快,片外存储器容量大。 常用作主存的存储器有:
ROM类: NOR Flash、EPROM和PROM等 RAM类:SRAM、DRAM和SDRAM等
3
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据
其中NOR Flash 凭借可擦写次数多、存储速度快、存储容量大、价格便宜优点广泛应用 辅助存储器,用来存放大数据量的程序代码或信息,容量大,但读取速度与主存相比就慢得多,用来长期保存用户的信息
常用外存有:硬盘、NAND Flash、CF卡、MMC、SD卡等。 3) 通用设备和I/O接口
嵌入式系统与外界交互,需要一定的接口。
目前常用的接口有A/D(模/数转换接口)、D / A (数/模转换接口)、I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等 3. 中间层
中间层也称为硬件抽象层(Hardware Abstract Layer, HAL)或板级支持包(Board Support Package, BSP), 它使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。 两个特点:
1) 硬件相关性,BSP需要为操作系统提供操作和控制具体硬件的方法。
2) 操作系统相关性,不同的操作系统具有各自的软件层次结构,因此,不同的操作系
统具有特定的硬件接口形式。
设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能, 设计硬件相关的设备驱动。 嵌入式系统的硬件初始化,分为三个环节,按照自底向上,从硬件到软件的次序依次为:片级初始化(设置寄存器,从上电默认状态设置成系统所要求的工作状态)、板级初始化(设置处理器外的其他硬件初始化,设置某些软件的数据结构和参数,为随后系统级初始化和应用程序运行建立硬件和软件环境)和系统初始化(以软件为主,主要进行操作系统的初始化,BSP交出控制权给操作系统,让其完成余下的工作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,创建应用程序环境,并将控制权交给应用程序)。
设计硬件相关的设备驱动, 尽管BSP中包含硬件相关的设备驱动程序,在系统初始化过程中由BSP将它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用。
4. 系统软件层,由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、
图形用户接口(Graohic User Interface, GUI)、网络系统及通用组件模块组成。 1) 嵌入式操作系统
EOS(Embedded Operating System)除了具备一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点: 可裁剪,支持开放性和可伸缩性的体系结构。 强实时性
统一的接口,提供设备统一的驱动接口
操作方便、简单、提供友好的图形GUI和图形界面,易学易用 强大的网络功能,支持TCP/IP及其他协议
强稳定性,若交互性,嵌入式系统一旦开始运行就不需要用户过多的参与。
4
固化代码,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。 良好的移植性 2) 文件系统
主要提供文件存储、检索和更新等功能,一般不提供保护和加密等安全机制,它以系统调用和命令方式提供文件的各种操作,主要有: 设置、修改对文件和目录的存取权限
提供建立、修改、改变和删除目录等的服务
提供创建、打开、读写、关闭和撤销文件等服务。 此外,还有以下特点:
兼容性,嵌入式文件系统通常支持集中标准的文件系统,如FAT32、JFFS2、YAFFS等 实时文件系统,一般采用连续的方式存储文件。
可裁剪、可配置,选择所需的存储介质,配置可同时打开的最大文件数等 支持多种存储设备。 3) GUI图形用户接口
极大地方便了非专业用户的使用,人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式方便地进行操作。
而嵌入式GUI又与PC机上的GUI有着明显的不同,嵌入式系统的GUI具有几方面要求:轻型、占用资源少、高性能、便于移植、可配置等特点。 4) 应用软件层
由基于实时系统开发的应用程序组成,用来实现对被控对象的控制功能能,功能层是面向被控对象和用户的,为方便操作,往往需要提供一个友好的人机界面。 1.1.4实时系统
1. 实时系统与通用系统不同的是,通用系统一般追求的是系统的平均响应时间和用户使用
系统的方便,而实时系统主要考虑的是系统在最坏情况下的系统行为。
2. 实时系统(Real-time Operating System, RTOS)能够在指定或者确定的时间内完成系统
功能和对外部或内部、同步或异步时间做出响应的系统。 3. 实时系统特点
1) 时间约束性
2) 可预测性,除了要求硬件延迟的可预测性以外,还要求软件系统的可需侧性,包括
应用程序的响应时间是可预测的,以及操作系统的可预测性,即调度函数等开销是有界的。 3) 可靠性
4) 与外部环境的交互作用性,计算机子系统一般是控制系统,它必须在规定的时间内
对外部请求做出反应,外部物理环境往往被控子系统,两者相互作用构成完整的实时系统,大多数控制子系统必须连续运转以保证子系统的正常工作或准备对任何异常行为采取动作。
4. 实时系统调度
给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程就是调度。 在非实时系统中,调度主要目的是缩短系统平均响应时间,提高系统资源利用率,或优化某一项指标,在实时系统中,调度的目的是要尽可能地保证每个任务满足它们的时间约束,及时对外部强求做出响应。
抢占式调度,高优先级任务一旦准备就绪,可在任何时候抢占低优先级任务的执行。
5
5.
6.
7.
8.
而非抢占式调度指不允许任务在执行期间被中断。优点是上下文切换少,缺点是有效资源利用率低,可调度性不好。
静态表驱动策略(像列车时刻表,调度器根据表启动相应的任务),调度器功能被弱化,只具有分派器的功能。
优先级驱动策略,又分为静态优先级调度策略和动态优先级调度策略。 实时系统分类
强实时,航天、核工业等关键领域,否则造成生命财产损失和生态渤海等。
弱实时,虽然提出了时间要求,但实时任务偶尔违反这种需求不会造成严重影响。 实时任务分类
在实时系统中,一个应用通常由一组任务构成,每个任务完成应用中的一部分功能,组合后为用户提供特定的服务,根据任务的周期性,分为3类: 周期任务、偶发任务、非周期任务(随机到达系统的任务)。
如果一个任务未能在截止期限前完成,那么称该任务超时,以超时影响又分4类: 强实时任务,如果不能及时完成,会对系统造成不可估量的损失;
准实时任务,允许任务超时,若超时,则该任务计算结果没有任何意义。
弱实时任务,允许超时,但超时后的计算结果仍有一些意义,但随着超时时间的增加而下降。
弱-强实时任务,允许周期任务的一些任务超时,但这些超时任务实例的分布应满足一定的规律性,这种要求称为超时分布约束,若不满足约束,则系统动态失效。 目前很多实时系统遵循Posix实时扩展的工业标准,如RT-Linux等。
实时系统一般分为:小而快速的专用内核,如uC/OS; 通用操作系统的实时扩展,如RTLinux, 基于组件的内核,如OS-Kit、Coyote、2K、MMLite等,基于QoS(实时系统服务质量)的内核等。
实时系统的反应模型体现出它的通用结构模型,即一般由三类任务组成:数据采集管理任务、数据处理任务、执行机构管理任务,一般的流程是数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据,并把加工后的数据送到执行机构执行。
1.2 微处理器体系结构
1.2.1冯.诺依曼与哈佛结构
1.2.1.1冯.诺依曼结构
1. 也称普林斯顿结构,将程序指令存储器和数据存储器合并在以夫妻的存储器结构,即程
序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序指令和数据的宽度想呕吐能够。处理器执行指令时,先从存储器读取指令解码,再取操作数执行运算,高速运算时,在传输通道会出现瓶颈效应
6
存储器程序计数器(PC)地址程序(指令)数据数据CPU
2. 冯.诺依曼结构的计算机由CPU和存储器构成,程序计算器(PC)是CPU内部指示指
令和数据存放位置的寄存器。CPU通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指令进行译码,最后执行指令规定的操作。 3. 目前使用冯.诺依曼结构的CPU和微控制器有很多,其中包括英特尔公司的8086及其
他CPU, ARM公司的ARM7、MIPS公司的MIPS处理器。 1.2.1.2哈佛结构
1. 哈佛结构将程序指令存储和数据存储分开的存储器结构,是一种并行体系结构,主要特
点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互的存储器,每个存储器编址、访问。与两个存储器相对应的是系统中的4套总线:程序的数据总线和地址总线,数据的数据总线与地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内溶蚀获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高执行速率,又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠。
地址程序计数器(PC)数据程序存储器地址CPU数据数据存储器
2. 哈佛结构CPU通常具有较高的执行效率,目前使用哈佛结构的CPU和微控制器有很多,
除了所有的DSP处理器,还有摩托罗拉的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。 1.2.2 CISC与RISC
1.2.2.1复杂指令集计算机CISC
1. Complex Instruction Set Computer, 早期的计算机部件非常昂贵,主频低,运算速度慢,
为了提高运算速度,人们不得不将越来越多的复杂指令加入到指令系统中,逐渐形成了
7
复杂指令集计算机体系。为了在有限的指令长度内实现更多的指令,人们又设计了操作码扩展,先决条件是减少地址码,于是设计师又发明了各种寻址方式,如基址寻址、相对寻址等,以最大限度地压缩地址码产度,为操作码留出空间,Intel公司的X86系列CPU是典型的CISC体系结构,这些复杂指令减少了程序设计语言和机器语言之间的语意差别,而且简化了编译器结构
2. 为了支持复杂指令集,CISC通常包括一个复杂的数据通路和一个微程序控制器(一个
微程序存储器、一个微程序计数器(MicroPC)、地址选择逻辑构成)。微程序存储器中的每一个字都表示一个控制字,并且包含了一个时钟周期内所有数据通路控制信号的值,,这就意味着控制字的每一位表示一个数据通路控制线的值。每个处理器指令都由一系列的控制字组成。
微程序存储器数据通路控制PC微程序计数器+1地址选择逻辑状态数据存储器控制单元指令寄存器
3. 当从内存中取出这样的一条指令时,首先把它放在指令寄存器中,然后地址选择逻辑根
据它来确定微程序存储器中相应的控制字顺序起始地址。当把该起始地址放到MicroPC中后,就从微程序内存中找到相应的控制字,并利用它在数据通路中把数据从一个寄存器传送到另一个寄存器。由于MicroPC中的地址并发递增来指向下个控制字,因此对于序列中每个控制器都会重复一遍这个步骤,最终执行完最后一个控制字时,就从内存中取出一条新的指令,整个过程重复进行。
4. 由此可见,控制字的数量及时钟周期的数目对于每一条指令都可以是不同的,因此,
CISC中很难实现指令流水操作。由于指令流水和短的时钟周期都是快速执行程序的必要条件,所以CISC体系结构对于高效处理器而言不太合适。 5. CISC体系结构计算机存在的问题
1) 指令的2/8规律,大概有20%的比较简单的指令被反复使用,使用量约占整个程序
的80%。
2) VLSI制造工艺要求CPU控制逻辑的规整性,而CISC处理器,为实现大量复杂的
指令,控制逻辑极不规整,给VLSI工艺造成很大困难。此外,70年代后期开始,大量使用DRAM做主存储器,使主存与控制存储器的速度相当,从而使许多简单指令没必要用微程序来实现。而复杂的指令,用微程序实现和用简单指令组成的子程序实现已经没有多大区别。 3) 为实现复杂的指令,不仅增加了硬件的复杂程序,而且使指令的执行周期大大加长,
据统计,一般CISC处理器的指令平均执行周期都在4以上,有些在10以上,如Intel公司的8088.
8
1.2.2.2精简指令集计算机RISC
1. RISC的产生,1975年IBM公司开始研究指令系统的合理性问题,并于1979年研制出
一种用于电话交换系统的32位小型计算机IBM801,它有120条指令,工作速度为10MIPS,这是世界上第一台采用RISC思想的计算机。
2. RISC发展,1983年后,一些中、小型公司开始推出RISC产品,由于其具有高性价比,
已成为当今计算机发展不可逆转的趋势。一些发展较早的大公司还有考虑其他因素,因为两套指令不兼容,因此它们在CISC上开发的大量软件如何转到RISC平台上是首先要考虑的,而且这些操作系统的专用性很强,又比较复杂,给软件移植带来很大的麻烦,而SUN微系统公司,因其以UNIX操作系统作为基础,软件移植比较容易,因此工作重点很快从CISC转移到RISC。
3. 在CISC市场上占有率最高的Intel公司和Motorola公司也进军RISC领域,IBM公司、
Motorola公司和Apple公司联合发展PowerPC芯片,HP公司和Intel公司联合开发代号为Merced的微处理器。
数据通路输出和次态逻辑硬件控制寄存器文件ALU状态寄存器状态指令寄存器控制单元4.
RISC处理器的数据通路通常由一个大的寄存器文件(包含程序计算中所有的操作数和结果)和一个ALU组成,通过Load指令将数据放到寄存器文件,通过Store指令将其放回到内存。当RISC执行一序列指令时,指令管道首先将指令放到指令寄存器中,然后将该指令解码并取出寄存器文件中的操作数,最后,RISC做下面两件事情之一:或者在ALU中执行所需的操作,或者从数据缓存里面读/写数据,注意每个指令的执行仅仅占用大约3个时钟周期,就意味着指令流水线可能短小且高效。
然而RISC体系结构要求一个更为复杂的编译器,如RISC设计不会在指令相关性发生时就停止指令流水线,这就意味着编译器有责任产生出无相关性的代码,或者可以通过时延指令的产生,或者对指令进行重新排序。 计算机执行程序所需的时间P可以用下式计算: P = I * CPI * T
其中I是高级语言程序编译后在机器上运行的指令数,CPI为执行每条指令所需的平均周期数,T是每个机器周期的时间。 RISC特点:
9
指令cache存储器指令cache5.
6.
7.
1) 优先选取使用频率最高的指令,以及一些很有用但不复杂的指令,避免复杂指令 2) 指令长度固定,指令格式种类少,寻址方式种类少,指令各字段划分比较一致且功
能比较完整
3) 只有Load/Store指令能够访问存储器,其余指令的操作都在寄存器之间进行。 4) CPU中通用寄存器数量相当多,算术逻辑运算指令的操作数都在通用寄存器中存取 5) 大部分指令在一个或小于一个机器周期内完成 6) 以硬布线控制逻辑为主,不用或少用微码控制
7) 一般用高级语言编程,特别重视编译器优化工作,以减少程序执行时间。 1.2.2.3 CISC和RISC的特点
类别 指令系统 执行时间 指令数量很多 CISC RISC 较少,通常少于100 没有较长执行时间的指令 有些指令执行时间很长,如整块的存储器内容复制,或将多个寄存器的内容复制到存储器 编码长度 寻址方式 操作 编码长度可变,1~15字节 寻址方式多样 可以对存储器和寄存器进行算术和逻辑操作 编码长度固定,通常为4个字节 简单寻址 只能对寄存器进行算术和逻辑操作,Load/Store体系结构 采用优化编译技术,生成高效的目标代码程序 编译 难以用优化编译器生成高效的目标代码程序 尽管RISC架构有上述优点,但决不能认为RISC可以取代CISC架构,现代的CPU往往采用CISC的外围,内部加入RISC的特性,如超长指令集CPU就是融合了RISC和CISC 的优势,成为未来CPU发展的方向之一。
在PC和服务器领域,以X86为代表的CISC是市场的主流,在嵌入式系统领域,由于降低成本和功耗比保持向下兼容更为重要,RISC结构的微处理器将占有重要的位置。 1.2.3 流水线技术
1. 流水线技术是将一个重复的时序分解成若干个子过程,而每一个子过程都可有效地在其
专用功能段上与其他子过程同时执行,重叠程度取决于存储体与运算部件的多少及控制指令部件的工作方式。 2. 特点:
流水线可分成若干相互关联的子过程 实现子过程的功能所需的时间尽可能相等 形成流水处理,需要一段准备时间
指令流发生不能顺序执行时,会使流水线过程中断,再形成流水线过程需要时间
10
3. 流水线结构功能
1) 按完成的功能分类:
单功能流水线:只完成一种固定功能,如只实现浮点加。
多功能流水线:实现多种功能,如TI公司ASC运算器中8个可并行工作的功能块,可按不同的连接方式实现浮点加、减或定点乘法运算。 2) 按同一时间内各段之间的连接方式分类
静态流水线,同一时间流水线上的所有功能块只能按同一种运算连接方式工作。如TI公司ASC运算器中8个可并行工作的功能块,或都按浮点加、减运算连接或都按定点乘法运算连接。
动态流水线,同一时间流水线上的所有功能块可按不同种运算的连接方式工作。 3) 按数据表示分类
标量流水线处理器,只对标量数据进行流水处理。
向量流水线处理器,它具有向量指令,可对向量的各元素进行流水处理。 4. 流水线处理器机的主要指标
吞吐率,单位时间内流水线处理机流出的结果数。对指令而言是单位时间内执行指令数 如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。
建立时间,流水线开始工作,需经过一定时间才能达到最大吞吐率,若m个子过程所用时间一样,均为t, 则建立时间T= m*t. 1.2.4 信息存储的字节顺序
1. 大端和小端存储法
1) 大多数计算机使用称为字节的8位(bit)的数据块作为最小的可寻址的存储器单位,
而不是访问存储器中的单独位。存储器的每一个字节都由一个唯一的数字来标识,称为它的地址(address),所有可能地址的集合称为存储器空间。对于软件而言,它将存储器看作是一个大的字节数组,称为虚拟存储器。 2) 实际应用中,虚拟存储器可以划分成不同的单元,来存放程序、指令和数据等信息,
这些信息的位置完全由地址决定。
3) 每一种微处理器都用一个字长(word)表明整数和指令数据的大小,字长决定了微
处理器的寻址能力,即虚拟地址空间的大小,如,对于一个字长为n为的微处理器,它的虚拟地址范围为0~(2^n-1),那么32位的微处理器虚拟地址空间为4G。 4) 微处理器和编译器使用不同的方式来编码数据,对于多于一个字节的数据,有两种
存放方法,低字节数据存放在内存低地址,高字节数据存放在内存高地址处,称为小端字节顺序存储;另一种是高字节存放在低地址,低字节存放在高地址,称为大端字节顺序存储。
例如:假设一个32位字长的微处理器上定义一个int型的常量a, 其内存地址位于0x8000处,其值用十六进制表示是0x12345678。 大端存储 地址 数据(十六进制) 小端存储 地址 数据(十六进制) 0x8000 0x01 0x8001 0x23 0x8002 0x45 0x8003 0x67 0x8000 0x67 0x8001 0x45 0x8002 0x23 0x8003 0x01 大端、小端不存在技术原因,只是涉及到处理器厂商的立场和习惯。Intel公司X86
11
平台的微处理器都采用小端存储法,而IBM、Motorola和Sun Microsystems公司的大多数微处理器采用大端模式,IBM采用Intel公司处理器制造的计算机,则采用小端法,此外还有一些处理器,如ARM、MIPS和Motorola的PowerPC等,可以通过芯片上电启动时确定的字节顺序规则,来选择存储模式。
当不同存储模式的微处理器之间通过网络传送二进制数据时,会出现所谓的“UNIX”问题, 字符“UNIX”在16位字长的微处理器上被表示为两个字节,当被传送到不同存储模式的机器上时,会变为“NUXI”,为避免这一问题,网络应用程序代码编写必须遵循已建立好的关于字节顺序的规则,比保证发送方处理器先在其内部将发送的数据转换成网络标准,而接收方微处理器再将网络标准转换成它的内部表示。此外,在使用反汇编器阅读机器级二进制代码时,在不同存储模式的微处理器上会得到不同结果。
2. 通信中的存储问题
网络通信中,Internet协议(IP协议)定义了标准的网络字节顺序,该字节顺序被用于所有设计使用在IP协议上的数据包、高级协议和文件格式上。
Berkeley应用程序接口定义了一套将16位或32位整数数据转化成网络字节顺序的函数 很多网络设备也存在存储顺序问题,这取决于OSI模型最底层的数据链路层。
1.3 嵌入式系统的硬件基础
现代计算机内部的电子元件都是数字式的,工作状态是二值电平:高电平、低电平。 根据电路是否有存储功能,将逻辑电路划分为两种类型:组合逻辑电路和时序逻辑电路。 1.3.1 组合逻辑电路基础
所谓组合逻辑电路,是指该电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。组合逻辑电路一般由门电路组成,不含记忆元件,输入与输出之间无反馈。常用的组合逻辑电路有译码器和多路选择器等 真值表,输入、输出组合状态表
布尔代数,有3种典型的操作符OR “+”、AND “*”、NOT”-” 取非NOR, NAND 摩根定律 ~(A+B)=(~A)*(~B); ~(A*B)=(~A)+(~B); 门电路,
=1与门或门非门异或门
译码器又称为解码器,译码器是一种多输入多输出的组合逻辑网络,它有n个输入端、m个输出端、与译码器对应的是编码器
每输入一个n位的二进制代码,在m个输出端中最多有一个有效,m<=2^n; m=2^n 时,称为全译码;当m<2^n时,称为部分译码。 根据逻辑功能不同,分为通用译码器和显示译码器两大类。 二进制译码器,是全译码器,常见的有2-4,3-8,4-16等
二-十进制译码器,其n=4,m=10,故属于部分译码器,芯片有几种,分别有8421码输入,余3码输入等
12
显示译码器,发光二极管是用砷化镓、磷化镓等材料制造的特殊二极管,在发光二极管正向导通时,电子和空穴大量复合,把多余能量以光子形式释放出来,根据材料不同发出不同波长的光。既可以用高电平点亮,也可以用低电平驱动(你加的)
LED显示器有共阴共阳之分,共阴LED适用高电平驱动,共阳LED显示器适用低电平驱动,由于集成门电路的高电平输出电流小,而低电平输出电流相对北交大,采用集成门电路直接驱动LED时较多采用低电平驱动。
液晶7段字符显示器LCD利用液晶有无外加电场时不同的光学特性显示字符,无外加电场时,液晶排列整齐,入射光大部分反射回来,液晶呈透明状态。外加电场时,液晶因电离而打破分子规则排序,入射光散射,仅一小部分反射回来,显示暗灰色。为防止液晶疲劳,提高液晶寿命,显示字符时,应在透明电极和公共电极之间加交变电场。 数据选择器和数据分配器
数据选择器从多个输入通道中选择某一个通道的数据作为输出: 如四输入多路数据选择器的实现:有2位控制,选择那一路输出 数据分配器,有一个输入端和多个输入端,其功能是讲一个输入端的信号送至多个输出端中的某一个,缉拿成DMUX,与MUX正好相反。 1.3.2时序逻辑电路
所谓时序逻辑电路,是指电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。so,时序逻辑电路中必须包含记忆单元,触发器是构成时序逻辑电路的基础。 1. 时钟信号
时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。时钟信号是指有固定周期并与运行无关的信号量,时钟频率(Clock Frequency, CF)是时钟周期的倒数。时钟周期由两部分组成,高电平和低电平。
在边沿触发(Edge-triggered Clocking)机制中, 只有上升沿或下降沿才是有效信号,才能控制逻辑单元状态量的改变。 同步是指在有效信号发生时刻,希望写入单元的数据也有效。数据有效是指数据量比较稳定(不发生改变),并且只有当输入发生变化时数值才会发生变化。由于组合电路无法实现反馈,所以只要输入量不发生变化,输出值最终会是一个稳定的有效的量。 2. 触发器
按时钟控制方式分:有电位触发、边沿触发、主-从触发等方式 按功能分类,有R-S型,D型,J-K型等功能。
电位触发方式触发器,当触发器的同步控制信号E为约定的“1”,“0”电平时,触发器接收输入数据,此时输入数据D的任何变化都会在输出Q端得到反映;当E为非约定电平时,触发器状态保持不变。
边沿触发方式触发器,是时钟脉冲CP的某一约定跳变(正跳变或负跳变)来到时的输入数据。在CP=1及CP=0期间以及CP非约定跳变到来时,触发器不接收数据。
两种触发器的区别,电位触发器在E=1期间来到的数据会立刻被接收。但对于边沿触发器,在CP=1期间来到的数据,必须“延迟”到该CP=1过后的下一个CP边沿来到时才被接收。因此边沿触发器又称延迟型触发器。 边沿触发器在CP正跳变(对正边沿触发器)以外期间出现在D端的数据和干扰不会被接收,因此有很强的抗数据端干扰的能力,它除用来组成寄存器外,还可以来组成计数器和移位寄存器。
至于电位触发器,只要E为约定电平,数据来到后就可立即被接收,它不需像边沿触发器
13
那样保持到约定控制信号跳变时来才被接收。 描述触发器的参数很多,其中既有描述传输延迟的参数,也有描述各输入波形宽度要求的参数,还有描述各输入波形之间时间配合要求的参数。如果在使用时不能满足参数的要求,电路就不能正常工作。 3. 寄存器
1) 寄存器主要用来接收信息、寄存信息或传送信息,通常采用并行输入-并行输出的方
式。由于一个触发器仅能寄存一位二进制代码,所以要寄存n位进制代码,就需要具备n个触发器。
2) 其中一些寄存器信息接收是通过电位信号(使能G)控制的,即高电平触发,这种
寄存器又称为锁存器,其主要用途实时把一些短暂的信号锁存起来,以达到时间上的扩展。寄存器中除了具有若干触发器,还应有门电路构成的控制电路,以保证信息的正确接收、发送和清除。
3) 在时钟信号控制下,将所寄存的信息向左或向右移位的寄存器称为移位寄存器。按
照信息输入/输出方式不同,移位寄存器可以分为:串行输入-串行输出、串行输入-并行输出和并行输入-串行输出。有了“串-并转换”“并-串转换”
4. 计数器
计数器由触发器和逻辑门组成,基本功能就是用来累计输入脉冲的个数,不仅可以用来计数,也可用来定时和分频。
1) 异步计数器和同步计数器,异步特点是没有公共的时钟脉冲,除第一级外,每级触
发器都是由前一级的输出信号触发的。由于异步计数器的进位方式是串行的,故又称串行计数器,总的延迟等于各级延迟之和。而同步计数器各触发器在同一计数脉冲下同时翻转(即并行进位),又成并行计数器,速度提高了,由于需要把计数脉冲同时发送到各触发器的CP端,so要求产生计数脉冲的电路具有较大的负载能力。 2) 计数器在运行时,所经历的状态是周期性的,总是在有限个状态中循环,通常将一
次循环所包含的状态总数称为计数器的“模”。 1.3.3 总线电路及信号驱动
嵌入式计算机的总线系统提供微处理器、存储器及I/O设备之间的数据交换机制。总线控制
系统是由CPU控制的,CPU把设备的地址放到地址总线上,再把总线控制信号放到控制总线上,设置数据传送方向和定时控制方法,从而实现CPU通过数据总线对设备的读写操作。 1.3.3.1总线
总线实际上就是一组通信线路,在同一时刻,每条通信线路上能够传输一位用二进制表示的0或1的信号;如果一条总线上包含多条通信线路,可以同时传送多个二进制信号,则称为该总线为并行总线,如果一条总线上只包括用于接收和发送的1~2条通信线路,每次只传送一位二进制数据,则称为串行总线。按总线所传送的信息类型可分为地址总线、数据总线和控制总线。 总线的性能
1. 总线带宽:表示单位时间内,总线所能传输的最大数据量,一般用MByte/s表示。 2. 总线宽度:通常把一条总线所包括的通信线路的数目的多少称为总线宽度,通常有8、
16、32、之分,在总线工作频率一定的条件下,在单位时间内总线传输数据量与总线宽度成正比。
14
3. 总线的单元时钟频率:对于同步总线,采用统一的时钟脉冲作为总线定时基准。总线的
时钟频率越高,总线上的数据操作越快。
4. 总线的负载能力:总线上可连接模块的最大数目 总线冲突意味着两个设备的输出连到了一起,如果一个输出高电平,而另外一个输出是低电平,那么电源和地会出现导通现行,使一个设备失效,因此,只有具有三态输出的设备才能够连接到数据总线上,当连接到总线上的设备不使用总线时,总线处于高阻状态,此时设备在物理上与总线断开,设备不能向总线发送信息,避免干扰总线的正常操作,同时设备也不作为总线的负载。 1.3.3.2 三态门
1. 三态门(ST门)用途
主要应用于多个门输出共享数据总线,为避免多门输出同时占用数据总线,这些门的使能信号EN中只允许有一个为有效电平,由于三态门的输出是推挽式低阻输出,且不需接上拉(负载)电阻,所以开关速度比集电极开路的门电路(Open Collector Gate,OC 门)快,常用三态门作输出缓冲器。
2. 三态门具有3种逻辑状态,逻辑“1”,逻辑“0”和浮动状态,所谓浮动状态,就是三
态门的输出呈现开路的高阻状态。
3. 三态是微处理器系统的基本状态,当微处理器写数据时,它会把需要写入的数据放在
数据总线上,并驱动总线进行写操作,此时,与该总线连接在一起的其他无关设备都要进去三态状态,避免与写入设备发生冲突。三态状态可以使多个设备输出端共用一条总线,但每一时刻只允许同一个设备对总线进行驱动。
三态设备选择信号都无效时,考虑接高电压+电阻,上拉电阻 ,地+电阻,下拉电阻。 4. 三态设备分类:单向传输设备(ROM数据总线)、双向传输设备(微处理器和RAM的
数据总线,可以用来接收和发送数据) 1.3.3.3 总线的负载能力
1. 所谓总线负载能力即驱动能力,指当总线上接上负载(外围设备)后不能影响总线输入
/输出的逻辑电平,例如PC总线中的输出信号,在输出低电平要吸收电流(由负载流入信号源),以IOL表示,这时的负载能力指当它吸收了规定电流时,仍能保持逻辑低电平。输出高电平的负载能力以IOH表示,这是一个由信号源流向负载的输出电流,当输出电流超过规定值时,输出逻辑电平会降低,甚至变到阈值以下。
2. 当总线上所接负载超过总线的负载能力时,必须在总线和负载之间加接缓冲器或驱动
器,最常用的是三态缓冲器,其作用是驱动(使信号电流加大,可带动更多负载)和隔离(减少负载对总线信号的影响) 1.3.3.4 总线复用
1. 由于地址总线和数据总线要占用微处理器的大量引脚资源,加上其他各种外部引脚信
号,是微处理器的尺寸和成本增加,采用总线复用技术可以实现数据总线和地址总线的共用。
2. 总线复用需要外加逻辑电路对总线信号进行解耦。如设置一条地址有效控制信号线来指
15
示当前信号线上传送的是地址信号还是数据信号,以实现数据、地址总线的复用。 3. 这样,传送一个数据分成两个阶段,第一个阶段,数据总线上传送地址总线的低8位,
同时在地址总线上传送地址总线的高8位,此时,连接到总线上的每个设备都获得地址,并判断是否为本设备的地址,如果是,则准备接收数据,如果不是,不予理睬。在第二个阶段,地址信号从总线上撤销,同时地址有效控制信号线发送地址无效信号,使总线被用于进行传输数据。
4. 问题是需要增加外部电路对总线信号进行复用解耦,且由于占用总线通道,复用总线的
系统要比非复用总线系统的速度低。 1.3.3.5总线通信协议
总线数据通信方式按照传输时的方法可分为同步式和异步式两类 1. 在同步方式中,总线上所有的事件发生都由时钟周期来定时,一个总线周期有多个时钟
周期组成,连接到总线的所有设备都通过时钟信号获取用于事件同步的时钟脉冲信号,所有的总线事件都应在一个时钟周期的开始时启动动作。
2. 异步通信使用一个在CPU和设备之间的握手信号,去除公共的时钟信号,两条握手信
号分别称为“就绪(ready)”和“应答 (acknowledge)”, 总线操作周期时间不是固定的,操作的每个步骤都有一个信号表示。
3. 根据握手信号的相互作用,分为非互锁、半互锁、全互锁3种方式。
1) 非互锁,发送设备将数据放总线上,延迟一定时间后发出就绪信号,通知对方,接
收设备根据这个就绪信号接收数据,并发出应答信号作回答,表示数据已收到,发送设备收到应答信号后可以撤销数据,以便进行下一次传输。
2) 上述握手信号发出后,经过固定的时间就自动撤销,如果总线上各设备之间的速度
差异很大,这种方式比较简单,有利于提高传输速度,但有时不能保证就绪信号和应答信号正确到达对方,容易错过,或延迟到下一个周期,半互锁、全互锁同理,只是让就绪信号保持到发送设备接收到应答信号为止。
4. 异步互锁式总线被广泛采用,因为它可适合各种工作速度的设备,总线周期是可变的,
但它比较复杂,每次传输数据时需要传递4个握手信息,不利于提高传输速度。由于全互锁方式中的就绪信号和应答信号的上升边沿和下降边沿都是触发边沿,因此这种方式又称为4边沿协议。 1.3.3.6 总线仲裁
1. 总线上的设备一般分为总线主设备和总线从设备,主设备是指具有控制总线能力的模
块,通常指微处理器;与之相对应的总线从设备,是指能够对总线上的数据请求做出响应,但本身不具备总线控制能力的模块。
2. 总线仲裁是在多个总线主设备的环境中提出来的,如多处理机系统中每个处理机都可以
作为主设备,总线这时是重要的公共资源,用硬件来实现总线分配的逻辑电路称为总线仲裁器,响应总线请求,通过对分配过程的正确控制,达到最佳使用总线。
3. 对总线仲裁问题的解决是以优先级的概念为基础,有三种技术:串联、并联和循环
16
1.3.4 电平转换电路
数字集成电路具有体积小、重量轻、可靠性高、寿命长、功耗小、成本低和工作速度快等优点。不同类型的集成电路在串接时,如果逻辑电平不兼容,并且考虑到负载能力的,中间需要串入接口电路,否则将引起逻辑混乱,或者损坏集成芯片。 1.3.4.1 数字集成电路的分类
按照开关元件的不同,数字集成电路可以分为两大类:一类是双极型集成电路,采用晶体管作为开关元件,管内参与导电的有电子、空穴两种极性的载流子。另一类采用绝缘栅场效应晶体管开关元件,称为金属氧化物半导体(Metal-oxide Semiconductor,MOS)集成电路。这种管子内部只有一种载流子——电子或空穴参与导电,故又称为单极型集成电路。
MOS集成电路与双极型集成电路比较,具有很多优点,制作工艺简单、集成度高、功耗低等,特别适用于制造大规模集成电路。它的主要缺点是工作速度比较低。 1. 双极型集成电路
晶体管-晶体管逻辑电路(Transistor-Transistor Logic, TTL)是目前双极型数字集成电路中用得最多的一种,它具有比较快的开关速度、比较强的抗干扰能力以及足够大的输入幅度,并且带负载的能力也比较强。此外还有二极管-三极管(Diode-Transistor Logic DTL)、高阈值逻辑(High Threshold Logic, HTL)、发射极耦合逻辑(Emitter Coupled Logic, ECL)和集成注入逻辑(Integrated Injection Logic, IIL)等几种逻辑电路。 DTL, 工作速度低,不久便被TTL取代。
HTL,当电源电压为15V时,阈值电压达到7~8V,因此噪声容限比较大,有较强的抗干扰能力,但速度低,目前几乎完全为CMOS电路所取代。
ECL中的三极管处于非饱和状态,有极高的工作速度,此外它还具有输出阻抗低,带负载能力强,电路内部开关噪声低,使用灵活方便等优点,它的主要缺点是,噪声容限低,电路功耗大,输出电平的稳定性差,目前ECL主要用于高速、超高速数字系统中。
IIL电路结构简单,集成度高,功耗低,缺点是输出电压幅度小,抗干扰能力较差,且工作速度低,目前IIL电路主要用于制作大规模集成电路的内部逻辑电路,很少用来制作中、小规模的集成电路产品。 2. MOS集成电路
按MOS管类型不同,分为3类:有PMOS管构成的PMOS集成电路,由NMOS管构成的NMOS集成电路,由PMOS管和NMOS管构成的互补(Complementary)MOS集成电路,简称CMOS。
PMOS集成电路问世较早,但由于速度低,现已很少使用,NMOS集成电路速度较高,且直流电源电压较低,工艺上可以制造出开启电压较低的器件,故仍在使用中。CMOS电路由于其静态功耗极低,工作速度较高,抗干扰能力强,故广泛采用。 1.3.4.2 常用数字集成电路逻辑电平接口技术
虽然TTL有很多优点,但仍不能满足各种特殊要求,如高速、高抗干扰、低功耗等,因而工程中还常用到ECL、CMOS等,在微机测控系统中,习惯于用TTL电路作为基本电路元件,根据需要可能采用CMOS、ECL芯片等,因此存在TTL电路与这些数字电路的接口问题。
17
1. ECL电路电压一般为-5.2V,逻辑高电平输出为VOH=-0.9V, 低电平为-1.75V;利用
CE10125为四ECL->TTL电平转换器,它的输入与ECL电平兼容,输出是TTL电平。某一路不用时,须将一个输入端接到VBB(基极直流电源)端,以保证电路的工作稳定性。
2. 由于TTL电路输出高电平的规范值为2.4V,在电源电压5V时,CMOS电路输入高电
平VIH>=3.5V, 解决的办法是在TTL电路输出端与电源之间接一上拉电阻。 1.3.4.3 可编程逻辑器件基础
可编程逻辑器件(Programmable Logic Device, PLD),设计与制造集成电路的任务已不完全由半导体厂商承担,系统设计师们更愿意自己设计专用集成电路(Application Specific Integrated Circuit ASIC)芯片,而且希望周期尽可能短,因而出现了现场可编程逻辑器件(Field Programmable Logic Device, FPLD), 其中应用最广泛的是现场可编程门阵列(Filed Programmable Gate Array, FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device CPLD)
早期的可编程逻辑器件只有可编程只读存储器(PROM),紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)3种,由于结构,只能完成简单的数字逻辑功能。 其后出现了结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),能够完成各种数字逻辑功能,典型的PLD由一个“与”门和一个“或”门阵列组成。这一阶段产品主要有可编程阵列逻辑(Programming Array Logic, PAL) 和通用阵列逻辑(Generic Array Logic ,GAL)(PAL之后发展的)。
1. PAL由一个可编程的“与”平面和一个固定的“或”平面构成,它的实现工艺有反熔丝
技术、EPROM技术和EEPROM技术。PAL器件既有现场可编程的,也有掩膜可编程的。早期的PLD器件的共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。
2. 可编程通用阵列逻辑器件GAL是在PAL基础上发展起来的,它继承了PAL的与-或阵
列结构,又利用灵活的输出逻辑宏单元OLMC增强输出功能。
3. 门阵列,设计利用预先制造好的“母片”来进行图设计。母片上以一定的间距成行成列
的排列着基本单元的电路。芯片内部区域上每一个小方块代表一个基本单元。基本单元一般由6~10个晶体管组成,基本单元内所含的电路元件(晶体管、电阻等)是事先预备好的,对基本单元内部元件进行不同连线,就构成各种类型的门电路或触发器。各小方块之间的区域是通道区,基本单元之间的连线在通道区内行走。基本单元四周是芯片的输入输出单元,芯片的最外围是压焊点区。
门阵列优点是设计自动化程度较高,设计周期短,设计成本低。因为母片已完成了整个集成电路制造工艺的大部分流程。当用户提交了逻辑图之后,只要进行基本单元内部布线和基本单元之间的互连就可以了。缺点是布图密度低,因为基本单元所能构成的逻辑
18
4. 5. 6.
7.
8.
元件功能比较简单并且品种有限,为了使所有单元间的边线能布通,势必造成芯片面积利用率的下降,一般利用率不超过70%~80%
可编程门阵列(Programmable Gate Arraay, PGA),主要由4个部分组成,可编程逻辑宏单元(CLB)、可编程输入输出宏单元(IOB)、互连资源、重构逻辑的程序存储器。 每个IOB可进行边沿触发器、锁存器、上拉电阻选择、三态选择等输入输出方式控制。 重构逻辑的程序存储器,CLB和IOB的编程数据是由存放在重构逻辑存储器中的程序来确定的。CLB和IOB通过编程实现用户所需的逻辑,而不是用如熔丝等元件实现逻辑编程序,也不是像门阵列那样,通过集成电路工厂的制作工艺来完成互连。 ROM分类,MaskROM(掩膜式只读存储器)、PROM(可编程只读存储器)、EPROM(可擦除只读存储器)、EEPROM(电可擦除只读存储器)、Flash Memory(快闪式存储)、强电介质存储器
IC的分类,逻辑IC、模拟IC、数模混合IC
1.3.4.4 现场可编程器件分类
1. 随机存取存储器(Random Access Memory,RAM) 2. 只读存储器(Read Only Memory,ROM) ROM的结构: (存储容量=字线×位线)
19
熔丝型8×4ROM原理图
3. 可编程逻辑阵列(Programmable Logic Array,PLA) 是用ROM原理来实现随机逻辑的一种方法,用它可实现组合逻辑,也可实现时序逻辑。与、或阵列都是可编程的。
20
ROM和PLA的比较:
1) ROM:地址译码器(与阵列)是完全译码器,译码器是用户不可编程的。
PLA:地址译码器(与阵列)是非完全译码器,它的输出是某些输入变量的乘积项,译
码器是用户不可编程的。
2) ROM:地址和字是一一对应,每次只能读出一个字。 PLA:一个地址可以读出两个或两个以上字(即P项)。 3) ROM:信息表是原封不动装入存储阵列中。 PLA: 是经过化简、压缩后装入的。
4. 可编程阵列逻辑(Programmable Array Logic,PAL)
PAL的与阵列是可编程的,或阵列是不可编程的。在某些PAL器件中设置记忆元件,还具有反馈功能。
5. 通用阵列逻辑(General Array Logic,GAL) 是一种用电擦除,可重复编程的高速PLD
1) GAL采用电擦除的CMOS(E2CMOS)工艺,可擦写100次以上,数据可保存20年以
上。
2) GAL的输出结构有一个输出宏单元(OLMC),通过对它的编程,使GAL有多种输出
方式:寄存器型输出、组合逻辑输出,有可控三态输出门。 3) GAL的基本结构
GAL20V8包括:输入门、输出三态门、与门阵列、输出逻辑宏单元(内含或阵列)以及从输出反馈到输入的控制门等。
21
4) 输出逻辑宏单元(Output Logic Macro Cell,OLMC)
GAL20V8有8个OLMC,OLMC是由4个多 路选择器、一个触发器和一些门组成。
GAL20V8的控制字共82位其中位用来屏蔽不用的乘积项P,1位AC0,8位AC1(n),8位XOR (n),1位同步位,控制字由编程器自动生成。 乘积项多路选择器PTMUX D触发器
输出选择多路器材OMUX
输出允许控制选择多路器TSMUX 反馈源多路选择器FMUX
6. 可编程宏单元阵列( Programmable Macrocell Array,PMA) 7. 可编程门阵列(Programmable Gate Array,PGA)
8. 现场可编程门阵列(Field Programmable Gate Array,FPGA)
FPGA的组成:
可编程逻辑模块(CLB) 输入输出模块(IOB)
互连资源:开关矩阵、内线、总线等。 重构逻辑的程序存储器
22
组合逻辑有3种可能的构成方式:
IOB:输入输出模块(Input/Output Block) 4种输入方式:直接输入、边沿触发器/锁存器输入、直接输入方式又可有CMOS/TTL
电平输入和上拉电阻输入。
5种输输出方式:直接输出/寄存器输出、反相/不反相输出、三态/导通态/截止态输
23
出、三态反相输出、边沿速率全速输出/限速输出。
1.4 嵌入式系统中信息表示与计算基础
1.4.1 计算机中数的表示
1. 因为计算机中只能有0或1两种数码,所以小数点不能用记号表示,为了确定小数点的
位置,引入数的定点表示和浮点表示。 2. 定点表示纯小数或纯整数,浮点表示法就是小数点的位置并不固。浮点数在计算机中通
常的表示形式为:
浮点数=2的正/负阶码次方*尾数\"其中阶码是个正整数,尾数是个小数,我们规定尾数的区间为[0.5,1),如果尾数不在此区间,那我们可通过调节阶码来满足区间。
3. 由于浮点数运算复杂,运算器中除了尾数运算部件外,还有阶码运算部分,故浮点机的
设备增多,成本较高,目前,一般小型机、微型机多采用定点制,而大型机、巨型机及
24
高档微型机中多采用浮点制。
4. BCD码是用四位的二进制数来表示一位十进制数(可参照右表)。例子:我现在将8351表
示成BCD码为1000 0011 0101 0001。当用一个字节来表示十进制数时,称为非压缩的BCD码。例如6可表示为00000110。当用一个字节表示二个十进制数时,称为压缩的BCD码。例如79可表示为01111001。 1.4.2 非数值数据编码
1. 美国信息交换标准代码(American Standard Code for Information Interchange, ASCII码),
这种代码用一个字节表示一个字符,共有128个字符,其中有96个是可打印字符。 2. 小键盘输入的基本原理是,内码与字符一一对应,而外码(输入码)与内码具有多对一
的关系,我国制定推行的GB2312-80国家标准信息交换用汉字编码(简称国标码),采用两个字节7位编码方式,每个字节只使用后7位,这时容易和英文混淆,所以只能把国标码的两个字节的最高位置1
当某一种输入码输入一个汉字到计算机后,汉字管理模块立刻将它转换成2字节常的GB2312-80国标码,同时将其每个字节的最高位置1, 将国标码转成机器内部代码: 如 “啊”国标码是:0011 0000 0001 0010 (3012H) 生成汉字内码为: 1011 0000 1001 0010 (B0A1H)
统一代码Unicode, 当用2个字节表示字符时,使用的是UCS-2编码,使用4个字节表示字符时,使的是UCS-4编码。 1.4.3 语音编码
1. 语音的编解码就是将语音的模拟信号转换为二进制数字信号在计算机中处理、传输,到
了接收端再将数字信号还原为模拟信号。
2. 音调(声波频率,人听觉范围为20Hz~20kHz)、音强、音色(声波形状,混入音波基
波中的泛音不同,得到不同的音色)。采样频率超过2*20kHz, 就够用了。 1.4.4 差错控制码
1. 为满足通信要求,尽可能减少和避免误码出现,一方面要提高硬件的质量,另一方面可以采用抗干扰编码(或差错控制码)。
2. 差错控制编码分类:根据码组功能,可分为检错码和纠错码,纠错码不仅能发现还能纠
正。按照信息码元与监督码元的约束关系,又可分为分组码和卷积码两类,按照信息码元与监督码元之间的关系分,有线性码和非线性码。
3. 奇偶校验码,使该组码连同监督位在内的码组中的“1”的个数为偶数(称为偶校验)
为奇数(称为奇校验)只能检查出单个或奇数个错误,不能检测出偶数个错误。
海明码,1950年由贝尔实验室提出来,是一种多重奇偶检错系统。多个监督位,习惯上安排在1、2、4、8……的位置上,
循环冗余校验码(Cyclic Redundancy Check, CRC),在k位信息码后再拼接r位的校验码,整个编码长度为n位,这种编码又叫(n,k)码。
校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2R除
25
以生成多项式G(x)得到的余数就是校验码。而G(x)是发收两方约定好的,也有条件要求:
a、 生成多项式的最高位和最低位必须为1。
b、 当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数
不为0。 c、 不同位发生错误时,应该使余数不同。 d、 对余数继续做模2除,应使余数循环。
将这些要求反映为数学关系是比较复杂的。但可以从有关资料查到常用的对应于不同码制的生成多项式如图9所示:
N K 码距d G(x)多项式 G(x) 7 4 3 x3+x+1 1011 7 4 3 x3+x2+1 1101 7 3 4 x4+x3+x2+1 11101 CRC码的生成步骤
1、将x的最高幂次为R的生成多项式G(x)转换成对应的R+1位二进制数。 2、将信息码左移R位,相当与对应的信息多项式C(x)*2R
3、用生成多项式(二进制数)对信息码做模2除,得到R位的余数。 4、将余数拼到信息码左移后空出的位置,得到完整的CRC码。
1.4.5 嵌入式系统的性能评价
1.4.5.1 度量项目
1. 性能指标
分为部件性能指标和综合性能指标,嵌入式系统的硬件和软件有许多具体的指标,如:加法时间、字长、存储器容量、存取时间、编译速度等。综合性能指标如; 吞吐率,嵌入式系统在单位时间内能够处理的作业数或事物数。
实时性,对各种事件的响应时间,如嵌入式系统获得输入到给出响应输出之间的时间。 各种利用率,即在给定的时间区间中被使用的时间与整个时间之比。 2. 可靠性
一般用平均故障间隔时间MTBF来度量。 3. 可维护性
是指系统失效后在固定时间内可修复到规定功能的能力,它包括诊断、失效定位、失效校正等时间,一般用平均修复时间MTTR表示。
4. 可用性、功耗、适应环境、通用性、安全性、保密性、可扩展性 5. 除了性能指标外,还要考虑嵌入式系统的开发周期、性价比。 1.4.5.2 评估嵌入式系统处理器的主要指标
1. MIPS测试基准,单位是每秒百万条指令,表示为MIPS,但很多专业人士认为指令只
是心梗度量空间中的一维,当把它扩展到不同体系结构上时,工作方式完全不同,除非是用VAX系列计算机比较,否则没有什么意义
2. Dhrystone, 有许多漏洞,易被非法利用,人为痕迹明显,缺乏验证及标准的运行规则 3. EEMBC,新兴流行的,测试基于每秒钟算法执行的次数和编译代码大小的统计结果,
26
因为编译器对代码大小和执行效率会产生巨大的影响,发展势头很好哦。
第二章 嵌入式微处理器与接口知识
2.1 嵌入式微处理器的结构和类型
2.1.1 嵌入式微处理器的分类
嵌入式微处理器是指应用在嵌入式计算机系统中的微处理器。与通用计算机系统的CPU相比,嵌入式微处理器具有品种多、体积小、成本低、集成度高的特点。从1971年Intel公司推出第一块微处理器芯片4004至今,已经过了30多年的发展历史。
嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成,其中处理器是嵌入式系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。
微处理器输入算术逻辑单元控制单元寄存器输出 控制单元
主要负责取址、译码和取操作数等基本动作,并发送主要的控制指令。控制单元中包括两个重要的寄存器:程序计数器(PC)和指令寄存器(IR)。程序计数器用于记录下一条程序指令在内存中的位置,以便控制单元能到正确的内存位置取指;指令寄存器负责存放被控制单元所取的指令,通过译码,产生必要的控制信号送到算术逻辑单元进行相关的数据处理工作 算术逻辑单元
一部分是算术运算单元,处理数值型的数据,进行数算,如加、减、乘、除或数值的比较,另一部分是逻辑运算单元,主要处理逻辑运算工作,如AND、OR、XOR或NOT等。 寄存器
用于存储暂时性的数据,主要是从存储器中所得到的数据和算术逻辑单元中处理好的数据。 根据嵌入式微处理器的字长宽度,可分为4位、8位、16位、32位和位,一般把16位及以下的称为嵌入式微控制器(Embeded Micro Controller),32位及以上的称为微处理器。 如果根据用途,可分为以下几类:
1. 嵌入式微控制器(MicroController Unit, MCU)又称为单片机,芯片内部集成ROM、
RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出(PWM)、A/D、D/A、Flash、EEPROM等必要功能和外设,和嵌入式微处理器相比,控制器最大特点就是单片化、体积大大减少、从而是功耗、成本大大减少,可靠性提高,比较有代表性的有8051、MCS-251、68K等,目前嵌入式控制器占嵌入式系统约70%的市场份额。
27
存储器2. 嵌入式微处理器(Embeded Micro Processing Unit, EMPU),具有32位及以上的处理器,
有通用计算机中的CPU发展而来,而与之相比体积小、重量轻、功耗低、也将ROM、RAM及I/O等元件做到同一个芯片上,也称为单板计算机,当前主要的嵌入式微处理器有ARM、MIPS、POWER PC 和基于X86的386EX等。
3. 嵌入式DSP处理器(Digital Signal Processor, DSP)是专门用于信号处理方面的处理器,
其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度,在数字滤波、FFT、频谱分析等各种仪器上DSP获得了大量的应用。DSP芯片内部采用程序和数据分开存储和传输的哈佛结构,具有专门硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,用来快速地实现各种数字信号处理算法,加之集成电路的优化设计,使其处理速度比最快的CPU还快10~50倍。
4. 嵌入式片上系统(System On Chip, SOC),实现了软硬件无缝结合,直接在处理器片内
嵌入操作系统的代码模块,SOC具有极高的综合性,在一个硅片内部运用VHDL等硬件描述语言,实现一个复杂的系统,用户不需要绘制庞大的复杂的电路板,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的标准,然后通过仿真后就可以交付芯片厂进行生产,不仅减小了系统的体积和功耗,而且提高了系统的可靠性,提高了设计生产效率。 2.1.2 典型的8位微处理器的结构和特点
8位微处理器是指使用8位数据总线的微处理器,大部分8位微处理器有16位的地址总线,其能够访问KB的地址空间,而8位的数据总线则可以通过多重内存存取的方式来处理更多的数据。
以MCS-51系列为例:
ALE 当访问外部程序存储器时,ALE(地址锁存)的输出用于锁存地址的低位字节,而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个外部输出,还有一个特点,当访问外部程序存储器时,ALE会跳过一个脉冲。
/PSEN, 程序存储器输出允许,是片外程序存储器的读选通信号。访问外部程序存储器时,将PC的十六位地址输出到P2口和P0口外部的地址存储器后,/PSEN产生负脉冲允许片外程序存储器输出数据,相应的存储单元的指令字节送到P0口。
/EA,程序存储器的内外部选通线,当/EA为高电平,且程序地址小于4KB时,读取内部程序存储器指令数据,而地址超过4KB则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。对于内部无程序存储器的8031,EA端必须接地,在编程时,/EA/Vpp引脚还需加上21V的编程电压。 MCS-51共有111条指令。
注意特殊功能寄存器只能使用直接寻址方式,因为 8051系列RAM空间:00H~07FH (128字节)
8052RAM空间:00H~FFH (256字节),128字节内部特殊功能寄存器:80H~FFH重合 2.1.3 典型的16位微处理器的结构和特点
Intel公司的8086是第一款16位微处理器,当时IBM公司推出的个人计算机都是采用8086作为个人计算机的数据处理及控制核心,Intel1982年推出第二代的8086产品80286微处理器。
28
2.1.4 典型的32位微处理器的结构和特点
32位处理器采用32位的地址和数据总线,其地址空间达到4GB,目前主流的32位嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列(二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和Motorola(摩托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是可伸缩性好、方便灵活) 1. ARM处理器
ARM(Advanced RISC Machine)公司是一家专门从事芯片IP设计与授权业务的英国公司,其产品有ARM内核以及外围接口。ARM内核是一种32位RISC微处理器,具有低功耗、性价比高和代码密度高等特点。
目前,70%的移动电话(如:诺基亚、三星等)、大量的游戏机、手持PC和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户,如Intel, ST(意法半导
体,集团于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成)等。
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
ARM处理器具有RISC体系结构的典型特征,同时具有以下特点:
在每条数据处理指令当中,都控制算术逻辑单元ALU和移位器,以使ALU和移位器获得最
大的利用率。
自动递增和自动寻址模式,以优化程序中的循环。 同时执行Load和Store多条指令,以增加数据吞吐量 所有指令都可以条件执行,以执行吞吐量
ARM的运行模式有7种,用户模式(User)、异常模式(FIQ快速中断处理)、异常模式(IRQ一般中断处理)、异常模式(Supervisor, 模式,用于操作系统)、异常模式(Abort, 存储器保护异常处理),异常模式(Undefined 未定义指令异常处理)、系统模式(System 运行操作系统任务)User模式下程序不能访问有些受保护的资源,也不能直接改变CPU的模式,而只能通过异常的形式来改变CPU的当前运行模式。软件可以控制CPU模式的改变,外部中断也可以引起模式的改变。
ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。
R0~R15(PC),未分组的寄存器R0~R7所对应的物理寄存器都是相同的,分组的R8~R12有两组物理寄存器,一组是FIQ模式,另一组是除FIQ以外的其他模式,R13~R13有6组物理寄存器,R13也被称为SP指针,当CPU在不同模式时栈指针会自动切换成相应模式下的值。R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。CPSR当前程序状态寄存器,包含条件标志NZCV,中断标志I、F(置1表示禁止中断,置0表示允许CPU响应中断),ARM/Thumb控制标志T.
指令集是硬件和软件之间的重要的分水岭,根据分层的思想,指令集向上要支持编译器,向下要方便硬件的设计实现,ARM指令集特点如下:
所有ARM指令都是32位,在内存中以4字节边界保存(地址最后两位为0),这样方便译
码电路和流水线的实现。ARM内核一般也支持一种16位的指令集Thumb是ARM指令集的功能子集,它在处理器中仍然要扩展为标准的32位ARM指令来运行。采用它的好处是获得更高的代码密度和降低功耗。
Load-Store体系结构,ARM指令属于RISC体系,特征就是一般指令只能把内部寄存器和
立即数作为操作数,只有Load-Store类型的数据移动指令才可以访问内存,在内存和寄存
29
器之间转移数据。
由于硬件上有桶形移位器(barrel),所以ARM可以在一条指令中用一个指令周期完成一个
移位操作和一个ALU(算术逻辑)操作。
所有指令都可以条件执行,任何指令的高4位都是条件指示位,根据CPSR中的NZCV决
定是否执行。
有功能很强的一次加载和存储(Load-Store)多个寄存器的指令LDM和STM。 I/O端口的编址方式有两种: I/O映射编址和存储器映射编址
I/O映射编址,采用I/O端口与内存单元分开编址,通过专门的指令(IN、OUT)完成操作,优点是I/O单元不占用内存空间,易区分I/O程序,缺点只用I/O指令访问I/O端口,功能有限且要采用专用I/O周期和专用I/O控制线,使微处理器复杂化,X86体系的微处理器大多采用I/O映射编址方式。
存储器映射编址采用I/O端口与内存单元统一编址方式,优点是无需单独的I/O地址译码电路,无需专用的I/O指令,缺点是外设占用内存空间,不易区分I/O程序,如ARM微处理器多采用这种编址方式。
2. MIPS系列
MIPS是世界上很流行的RISC处理器(Microprocessor without Interlocked Piped Stages)无互锁流水线级的微处理器,其机制是利用软件办法避免流水线中的数据相关问题。
MIPS处理器以高性能的处理能力被广泛应用于宽带接入、路由器、调制解调器、电视、游戏、打印机、DVD播放等领域。
和ARM公司一样,MIPS公司本身并不从事芯片的生产活动(只进行设计),不过其他公司如果要生产该芯片,则必须得到MIPS公司的许可。 3. PowerPC
是Motorola(现为Freescale)公司的产品,PowerPC RISC处理器实现性能增强的最主要原因就在于修改了指令处理设计,效率提高很多,它完成一个操作所需的指令数比CISC处理器要多,但完成操作的总时间却减少了。 PowerPC内核的主要特点如下:
独特分支处理单元可以让指令预取效率大大提高,即使指令流水线上出现跳转指令,也
不会影响到其运算单元的运算效率。
超标量(Superscale)设计。分支单元、浮点运算单元和定点运算单元,每个单元都有
自己的指令集并可独自运行。 可处理“字节非对齐”的数据存储 同时支持大端小端数据类型。但如果工作在小端模式,就不能访问非字节对齐的数据了 2.1.5 DSP处理器的结构和特点
在PC上所用的处理器,如早期的Intel8086处理器,大约90%的运算量都在做加法运算,每一个加法运算需3个钟头,而一个乘法运算即需要134~160个钟头,DSP处理器就是为了满足庞大乘法运算的需要而产生的。
一般用途的微处理器大多采用冯.诺伊曼体系结构,特点是程序和指令存储于相同的空间,必须一样样干,即当处理器需要执行指令时,必须先将指令有内存中读取进来译码,接着再从内存中读取运算数据,然后计算,花费许多数据传输时间。 数字信号处理器拥有哈佛体系结构,这种结构拥有不同的指令与运算数据总线,使数字信号处理器可以在同一时间由内存中读取指令与运算数据,一般DSP处理器含有3条总线,一条指令总线和两条运算数据总线。
30
数字信号处理器设计了许多的特殊体系结构,一般的数字信号处理器都有一个乘法器和一个加法器,可以同一时间处理一个乘法运算和一个加法运算。有的能够使用蝴蝶方式并行地进行傅立叶转换,其中包含了移位器,能够在不使用加法器的情况下,进行数据位的移位。 一般微处理器在进行类似的运算时,计算数据传输所需要依据的地址,比处理数据运算所花的时间还多,例如在8086中,一个加法运算仅需3个时钟,但处理执行命令的地址运算即需要5~12个时钟。数字信号处理器中设计了矩阵数据的计算硬件体系结构,包含了特别的算术单元来作为地址产生的用途,所以地址的计算并不需要额外的加法运算时间。 2.1.6 多核处理器的结构和特点
2001年,IBM公司推出了基于双核的Power4处理器,是世界上第一款采用多核技术的高性能服务器处理器,随后Sun 和 HP公司都先后推出了基于双核体系结构的UltraSPARC及PA-RISC芯片。
双核处理器即基于单个半导体的一个处理器上拥有两个一样功能的处理器核心。节省了大量的晶体管和封装成本,且由于对外的“界面”还是统一的,所以整个计算机系统需要做出的改变就很有限,从兼容性和系统升级成本考虑有诸多优势。
通常采用两种方式实现两个或多个内核协调工作,一种是对称(Symmetric)多处理技术,像IBM Power4 处理器一样,由于共享了缓存和系统总线,节省了运算资源。另一种技术采用一种非对称多处理(Asymmetric)的工作方式,即两个处理内核彼此不同,各自处理和执行特定的功能,在软件的协调下分担不同的计算任务,更像人的大脑,某部分区域在执行某种任务时具有更高的优先级和更强的能力。如TI公司的OMAP5910双核处理器。(OMAP, Open Multimedia Application Platform, 开放的多媒体应用平台) 从目前已发布或透漏的多核处理器原型来看,对称式的处理方式将称为未来多核处理器的主要体系结构。同时,多核间将共享大容量的缓存作为处理器之间及处理器与系统内存之间交换数据的“桥梁”。现代高性能的处理器热量很高,多核可以有效避免,方法是两个“核”轮流工作。
31
2.2 嵌入式系统的存储体系
2.2.1 存储器系统的概述
2.2.1.1 存储器系统的层次结构
S0:S1:S2:S3:S4:S5:寄存器芯片内高速缓存cache芯片外高速缓存更小、更快、更贵的存储设备SRAM、DRAM、DDRAM主存储器Flash、PROM、EPROM、EEPROM外部存储器(磁盘、光盘、CF卡、SD卡)远程二级存储(分布式文件系统、Web服务器)更大、更慢、更便宜的存储设备
在这个层次结构中,自上而下,依次为CPU内部寄存器、芯片内部高速缓存(cache)、芯片外的高速缓存(SRAM、DRAM、DDRAM)、主存储器(Flash、PROM、EPROM、EEPROM)、外部存储器(磁盘、光盘、CF卡、SD卡)和远程二级存储(分布式文件系统、Web服务器)这六个层次,这些设备从上而下,一次变得速度更慢、访问频率更小,容量更大,并且每字节的造价也更加便宜。
CPU内部寄存器位于整个层次结构的最顶部(S0层)、高速缓存(S1层)保存了CPU经常用到的数据,要求在速度上能跟上CPU运算器和控制器的要求,其容量较小,成本较高。 上面一层的存储器作为下一层存储器的高速缓存,CPU寄存器就是cache的高速缓存,寄存器保存来自cache的字,cache又是内存层的高速缓存,从内存中提取数据送给CPU进行处理,并将CPU的处理结果返回到内存中。 2.2.1.2 高速缓存cache
为提高存储器系统的性能,在主存储器和CPU之间采用高速缓冲存储器(cache)如果正确使用,cache能够减少内存平均访问时间,而访问不在缓存中的单元会慢一些。 高速缓存分类:
统一cache 和的cache(可以在同一个时钟周期中读取指令和数据,而不需要双端口
的cache)
写通cache(把数据同时写入cache和主存)和写回cache(只写入cache, 不写入主存)
32
写回式占用总线时间少,写速度快,但不能随时保证Cache与主存保持一致,如果此期间发生DMA操作,则可能出错。写通式可使Cache块和主存块始终保持一致,但占用总线时间长,总线冲突较多。
读操作分配cache和写操作分配cache(当进行数据写操作时,可能cache未命中,这
时根据cache执行的操作不同而分的)
对于读操作分配cache,当进行数据写操作时,如果cache未命中,只是简单地将数据写入主存中。主要在数据读取时,才进行cache内容的提取。
对于写操作分配cache,当进行数据写操作时,如果cache未命中,cache系统将会进行
cache内容欲取,从主存中将相应的块读取到cache中相应的位置,并执行写操作,把数据写入到cache中。 cache工作原理
cache与主存都分成块(常常将cache块说成cache行),每块由多个字节组成,大小相等。 在一个时间段内,cache的某块中放着主存某块的全部信息,即cache的某一块是主存某块 的副本(或叫映像)。
cache除数据部分外,还应记录放在某块中的信息是主存中哪一块的副本。因此,还应有第 二个组成部分,即标记(tag)——记录主存块的块地址信息。
采用cache后,进行访问存储器操作时,不是先访问主存,而是先访问cache。所以存在访 问cache时对主存地址的理解问题(指物理地址)。由于cache数据块和主存块大小相同,因 此主存地址的低地址部分(块内地址)可作为cache数据块的块内地址。 这里考虑一种最简单的情况——直接映像,将主存空间分成4096块。
块编号应是地址码的高12位,写成十六进制为000H~FFFH。按同样大小,将cache分成 16块,块编号为OH~FH。这就是说块编号十六进制的第三位相同的主存块(共256块)只能 和该位数码所指定的cache块建立映像关系。根据这种约定,某一主存块和cache建立起映 像关系时,该cache块的标记部分只需记住主存块的高2位十六进制数。例如,第010H号 主存块当前和cache第0块建立起映像关系,则cache第0块的标记部分只需记住01H。由 此可见,当用主存地址访问cache时,主存的块号可分解成cache标记和cache块号两部分。
33
因此,主存地址被理解成下图所示的形式。
下面结合该映像关系的例子和图来说明cache的工作原理。设当前010号主存块在cache 中,即它和cache的第0块建立起映像关系。现要对两个主存地址单元进行读操作,第一个 地址的高3位(十六进制)为0lOH,第二个地址的高3位(十六进制)为020H。
CUP进行读操作时,首先用主存地址的中间部分——cache块号找到cache中的一块(对此 例,为第0块),读出此块的标记(对此例,现在为01H),然后拿它与主存地址的高位部分—— 标记进行比较。对于第一个主存地址,比较的结果是相等的。这表明主存地址规定的块在 cache中(有副本),这种情况称为命中。此时用主存地址的低位部分——块内地址从cache 块号所选择的块中读取所需的数据。对于第二个主存地址,比较的结果不相等。
这表明主存地址所规定的块不在cache中,称为未命中,这时需要访问主存,并且将含有该地址单元的主存块的信息全部装入cache的第0块,并修改第0块cache标记,使其值为02H。 通过上面的例子,可以这样来描述(2ache最基本的工作原理:在存储系统中设置了cache的情况下,CUP进行存储器访问时,首先访问cache标记,判是否命中,如果命中,就访问cache(数据部分),否则访问主存。
将访问的数据在cache中的次数(即命中的次数)与总的访问次数之比称为命中率。影响命中
34
率的因素主要有三个:cache的容量、cache块的划分以及cache块与主存块之间的映像关系。一般来说,cache的容量大一些,会提高命中率,但达到一定程度时,命中率的提高并不明显。目前,一般为256 KB或512 KB,命中率可达98%左右。
下面还是通过例子来说明引入cache块的好处。已知cache的存取周期为50 ns,主存的存取周期为250 ns。设命中率为98%,即100次访问存储器的操作有98次在cache中,只有2次需要访问主存,则这100次访问存储器操作的平均存取周期为(50 ns×98 250 ns×2)÷100=54 ns。由此可见,由于引入了cache,使得CPU访问存储器的平均存取周期由不采用cache时的250 ns降到了54 ns。也就是说,以较小的硬件代价使cache/主存储器系统的平均访问时间大大缩短,从而大大提高了整个微机系统的性能。 内容来自www.serverjia.cn电脑硬件知识网
需要指出,cache的功能全部由硬件实现,涉及cache的所有操作对程序员都是透明的。 3.cache的读/写操作 CPU进行存储器读操作时,根据主存地址可分成命中和未命中两种情况。对于前者,从Cache中可直接读到所需的数据;对于后者,需访问主存,并将访问单元所在的整个块从内存中全部调入cache,接着要修改cache标记。若cache已满,需按一定的替换算法,替换掉一个旧块。
CPU进行存储器写操作时,也可分成两种情况。一是所要写入的存储单元根本不在cache中,这时写操作直接对主存进行操作(与cache无关);二是所要写入的存储单元在cache中。对于第二种情况需做一些讨论。cache中的块是主存相应块的副本,程序执行过程中如果遇到对某块的单元进行写操作时,显然应保证相应的Cache块与主存块的一致。
这里有两种处理方式。一是暂时只向cache写入,并用标志注明,直到这个块被从cache,中替换出来时,才一次写入主存,称之为回写式;二是每次写入cache的同时也写入主存,称之为通写式。两种方式各有优缺点。回写式占用总线时间少,写速度快,但不能随时保证cache与主存保持一致,如果此期间发生DMA操作,则可能出错(DMA操作将在第四章介绍,暂时可将其理解为在输入/输出设备与存储器之间直接进行数据传送,这种操作不需要CPU参与。所以,可能出现CPU和DMA控制器同时访问同一主存块的情况);通写式可使cache块和主存块始终保持一致,但占用总线时间长,总线冲突较多。
常用的地址映像和变换方式有:全相联地址映像和变换(主存中任意一个块都可以映射到cache中的任意一个块的位置上)、组相联地址映像和变换(稍慢但命中率高)、直接映像和变换。
2.2.1.3 存储管理单元
存储管理单元(Memory Manage Unit, MMU),在CPU和物理内存之间进行地址转换,由于是将地址从逻辑空间映射到物理空间,MMU主要完成工作: 虚拟存储空间到物理空间的映射,采用页式虚拟存储管理 存储器访问权限的控制
设置虚拟存储空间的缓冲的特性
嵌入式系统常用页式存储管理,且引入页表的概念,页表是位于内存中的表,它的每一行对应于虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址,该页的方位权限和该页的缓冲特性等,在基于ARM的嵌入式系统中使用系统控制协处理器CP15的寄存器C2来保存页表的基地址。
地址变换过程就是查询页表的过程,因为表在内存中,查询过程需要很多时间,所以增加了一个小容量(8~16字)、高速度(访问速度和CPU中通用寄存器相当)的存储部件来存放
35
当前需要的地址变换条目,这个存储部件称为地址转换后备缓冲器(Translation Lookaside Buffer, TLB)。
当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果没有,CPU再从内存中的页表中查询,并把相应的结果添加到TLB中,更新它的内容。当内存中页表内容改变,或者通过修改系统控制协处理器CP15的寄存器C2使用新的页表时,TLB中的内容需要全部清除。系统控制协处理器CP15的寄存器C8用来控制清除TLB内容的相关操作。在MMU中寄存器C10用于控制TBL内容的锁定。MMU可以将整个存储空间分成最多16个域,每个域对应一定的内存区域,该区域具有相同的访问控制属性,MMU中寄存器C3用于控制与域相关的属性的配置。当存储器访问失效时,MMU中寄存器C5和C6提供了相应的处理机制(C5失效状态指示,C6失效时失效的地址)。 1) MMU的存储访问过程
CP15的寄存器C1的位[0]为1时使能MMU, 为0时禁止MMU. 使能MMU时存储访问过程
当ARM处理器请求存储访问时,首先在TBL中查找虚拟地址,如果系统中数据TLB和指令TLB是分开的,在取指令时,从指令TLB中查找相应的虚拟地址,对于内存访问操作,从数据TLB中查找相应的虚拟地址。没有的话,从内存的页表中查,并更新TLB,如果TBL已满,要根据一定的替换算法替换。如果有,得到需要的地址变换条目,则得到该虚拟地址对应的物理地址,根据条目中的C(cacheable)控制位和B(Bufferable)控制位决定是否缓存该内存访问的结果。根据存储权限控制位和域访问控制位确定该内存访问是否被允许,如果该内存访问不允许,CP15向ARM处理器报告访问中止。对于不允许缓存(uncached)的存储访问,使用之前得到的物理地址访问内存,对于允许缓存(cached)的存储访问,如果在cache命中,则忽略物理地址,如果cache没有命中,则使用之前的物理地址访问,并把该块数据读取到cache中。
高速缓存和写缓冲(cache与writebuffer)
禁止MMU时存储访问过程
当禁止MMU时,先要确定芯片是否支持cache与writebuffer,如果规定禁止MMU时
也禁止它们两个,则存储访问将不考虑C和B控制位。如果规定禁止MMU时可以使能cache与writebuffer,则数据访问时,C=0,B=0; 指令读取时,如果使用分开的TLB,那么C=1,如果使用统一的TLB, 那么C=0.
存储访问不进行权限控制,MMU也不会产生存储访问中止信号。 所有的物理地址和虚拟地址相等,即使用平板存储方式。 2) MMU中的地址变换过程
36
嵌入式系统中虚拟存储空间到物理存储空间的映射以内存块为单位进行(且同样大小),在页表和TLB中,每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相应的一个内存块的基地址的对应关系。根据内存块大小,可以有多种地址变换。
嵌入式系统支持的内存块的大小有以下几种: 段(section)大小为1MB的内存块
大页(Large Pages)大小为KB的内存块 小页(Small Pages)大小为4KB的内存块 极小页(Tiny Pages)大小为1KB的内存块
极小页不能再分,而大页和小页有些情况下可以进一步的划分,如大页分成大小为16KB的子页,小页可分成1KB的子页。
在MMU中实现虚拟地址到物理地址的映射是通过两级页表实现的:
一级页表中包含有以段为单位的地址变换条目及指向二级页表的指针。以段为单位的地
址变换过程只需要一级页表。
二级页表中包含有以大页和小页为单位的地址变换条目,以页为单位的地址变换过程需
要二级页表。
3) 快速上下文切换技术
Fast Context Switch Extension, FCSE, 通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成虚拟地址到物理地址的重映射,从而提高系统的性能。
FCSE位于CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB、清除cache等。 4) 存储器映射的输入/输出
在嵌入式系统中,I/O操作通常被映射成存储器操作,I/O输出操作可通过存储器写入操作实现,I/O的输入操作可通过存储器读操作实现,但I/O空间映射的存储空间不满足cache所要求的特性,对于存储器映射的I/O空间,连续读取两次返回的结果可能不同,这可能是由于第一次读操作有副作用。 2.2.2
嵌入式系统存储设备分类
2.2.2.1 存储器部件的分类
按系统中的地位分:主存储器(Main Memory)和辅助存储器(Secondary Memory, 辅存、外存)
主存是计算机主机的一个组成部分,用来容纳正在使用的或要经常使用的程序和数据,对于内存,CPU可以直接对它进行访问,外存也用来存储各类数据,但CPU要使用时,必须通过专门的设备将信息先传送到内存中。 内存空间的大小受到地址总线位数的,如8086微型计算机系统中,地址总线是20位的,所以最大的内存空间为2^20B=1MB, 正是内存的快速存取和容量受的特点,使他主要用来存放系统软件、参数及当前要运行的应用软件和数据。系统软件中有一部分软件如引导程序、监控程序或者操作系统中的基本输入/输出部分BIOS,都是无时无刻不用的,它们必须常驻内存,更多的系统软件和全部应用软件则在用到时由外存传送到内存。
按存储介质分:磁存储器、半导体集成电路存储器、光存储器及激光光盘存储器。其中磁存储器又分为磁芯、磁泡、磁鼓、磁带和磁盘等
37
按信息存储方式分:随机存取存储器(Random Access Memory, RAM)和只读存储器(Read Only Memory, ROM),随机存取是相对于顺序存取而言的,当要取出某一单元的信息时,无需经过中间单元而耗费不必要的时间,即随机存取能做到信息的存取时间与其所在的位置无关。
只读存储器按功能可分为掩膜式(简称ROM)、可编程只读存储器(Programmable ROM, PROM)、可改写的只读存储器(Erasable Programmable ROM, EPROM)3种。
随机存储器按信息存储方式,可分为静态RAM(Static RAM, 简称SRAM), 动态RAM(Dynamic RAM,简称DRAM)及准静态RAM(Pseudostatic RAM, 简称PSRAM)3种。 SRAM比DRAM运行速度快 SRAM比DRAM耗电多
在一个芯片上要放置更多的DRAM DRAM需要周期性刷新 2.2.2.2 存储器的组织和结构
描述存储器最基本的参数是存储器的容量,如4MB,存储器的表示并不唯一,一个1M*4位的阵列,每次存储器访问可获得4位数据项,最大共有220个不同的地址,一个4M*1位的阵列,每次存储器访问可获得1位数据项,最大共有220个不同的地址。 嵌入式存储器一般采用存储密度较大的存储器芯片,存储容量与应用的软件大小相匹配,有时会要求扩展存储器系统。 2.2.3
ROM的种类与选型
2.2.3.1 常见的ROM的种类
ROM的特点为在烧入数据后,无需外加电源来保存数据。断电数据不丢失,但速度较慢,因此适合存储需长期保留的不变数据。常见分类如下:
Mask ROM (掩膜ROM): 一次性由厂家写入数据的ROM,用户无法修改。
PROM(Programmable ROM 可编程ROM): 和掩膜ROM不同的是出厂时厂家并没有写入数据,而是保留里面的内容全0或全1,由用户来编程一次性写入数据,也就是改变部分数据为1或0.
EPROM(Erasable Programmable ROM 电可擦除ROM):EPROM是通过紫外光的照射,擦掉原先的程序。芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。
EEPROM(E2PROM)电可擦除可编程ROM:通过加电擦除原数据,通过高压脉冲可以写入数据,使用方便但价格较高,而且写入时间较长,写入较慢。
FlashROM(闪速存储器),结构简单、控制灵活、编程可靠、加电擦写快捷的优点,集成度可以做得很高,在手机、PC等电器中广泛应用。 2.2.3.2 各类型ROM的特点和不同点
PROM(Programmable Read-Only Memory), 因为只允许用户利用专门的设备(编程器)将自己的程序写入一次,一旦写入,其内容将无法改变。PROM根据写入原理可以分为两类:结破坏型和熔丝型。由于它们的写入都是不可逆的,所以只能进行一次性写入。
38
结破坏型在每行、列线的交点处,制造一对彼此反向的二极管,它们因为彼此反向而不能导通,故全部为“0”。若某位需要写入“1”,则在相应的行、列之间加上较高电压,将反偏的一只二极管永久性击穿,只留下正向导通的一只二极管,故该为被写入1,显然这种写入是一次性的,不可逆转的。
熔丝型的基本记忆单元电路是由三极管T连接一段镍-铬熔丝(电阻率高)组成的,出厂时,T与位线之间的熔丝都存在,表示全部内容均为“0”。当用户需要在某一位写入“1”时,设法将T管的电流加大为正常工作电流的5倍以上,从而使镍-铬熔丝熔断,当然不能再恢复,因此不可逆转。
EPROM(Erasable Programmable Read-Only Memory, 可擦除可编程只读存储器)不仅可以由用户利用编程器写入信息,而且可以对其内容进行多次改写。 EPROM又分为UVEPROM(紫外线擦除)和EEPROM(电擦除)
UVEPROM需要紫外线灯制作的擦抹器照射存储器芯片上的透明窗口,使芯片中原存的内容被擦除,由于用灯擦除,只能对整个芯片擦除 ,为了防止存储的信息受日光紫外线成分作用而缓慢丢失,必须用不透明的黑纸将芯片上的透明窗口封住。
EPROM虽然可读可写,但不能取代RAM,因为EPROM的编程次数是有限的,而且它的写入时间过长,即使对于EEPROM,擦除一个字节需要约10ms, 写入一个字节大约需要10us,比SRAM或DRAM时间长100~1000倍。 EEPROM用电气方法擦除,在联机条件下既可以用字擦除,也可以用数据块擦除方式擦除。 工作原理,EEPROM要写入数据“0”时,栅极也接上高电压(通常为17V),P型基底接上0V的电压,源极接上高电压,漏极也接上高电压,浮动栅极则被注入电子。EEPROM要写入“1”时,栅极接上高电压(通常为17V),P型基底接上0V的电压,源极接上0V,漏极也接上高电压,浮动栅极保持原本清除状态。
EEPROM数据写入后,源极的电压接上高电压,表示EEPROM在内存的保持状态,要读取数据时,源极电压接到0V,源-漏极为开路,表示数据为“1”,若浮动栅极没有足够的电子,则源-漏极为短路,表示数据为“0”。
要清除EEPROM上数据,就将栅极电压接到0V,P型基底接上高电压,源极与漏极接上高电压,浮动栅极的电子会穿越绝缘栅往P基底放电,完成数据清除。
EEPROM在数据清除时可以针对个别的存储单元进行清除操作,数据保持能力长达10年,而数据清除再被规划的次数可以达到一万次以上,因此比EPROM更为普遍。 2.2.4
Flash Memory的种类与选型
2.2.4.1 Flash Memory的种类
Flash Memory(闪速存储器)体积小、容量大、成本低、掉电数据不丢失,已成为嵌入式系统中数据和程序最主要的载体。
根据结构的不同可分为NOR Flash 和 NAND Flash。 Flash Memory具有如下特点:
区块结构,它在物理结构上分成若干个区块,区块之间相互,比如NOR Flash把整
个存储区分成若干个扇区(Sector), 而NAND Flash 把整个存储器分成若干个块(Block);
先擦后写,写操作只能将数据从1写成0,不能从0写成1,所以对存储器进行写入之
前必须先执行擦除操作,将预写入的数据位初始化为1,擦操作的最小单位是一个区块,
39
而不是单个字节;
操作指令,除了NOR Flash的读,Flash Memory 的其他操作不能像RAM那样,直接
对目标地址进行总线操作,比如执行一次写操作,它必须输入一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入Flash Memory。
位反转,由于Flash Memory固有的电器特性,在读写数据过程中,偶然会产生一位或
几位数据错误,位反转无法避免,只能通过其他手段对结果进行事后处理。
坏块,Flash Memory在使用过程中,可能导致某个区块的损坏,如果对其进行操作,
可能会带来不可预测的错误。尤其是NAND Flash在出厂时就可能存在这样的坏块。 NOR Flash特点是应用程序可以直接在闪存内运行,不需要再把代码读到系统RAM中
运行,NOR Flash传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响它的性能。
NAND Flash结构能提供极高的单元密度,并且写入和擦除的速度也很快,这也是为何
所有的U盘都使用NAND Flash作为存储介质的原因,应用NAND Flash的困难在于闪存需要特殊的系统接口。 2.2.4.2 NOR 和 NAND 型的Flash Memory 各自的典型特征和不同点
1. 性能比较
任何闪存器件的写入操作只能对空或已擦除的单元内进行,NAND Flash执行擦除操作十分简单,而NOR型内存则要求在近些擦除前先要将目标块内所有的位都写为0。 由于擦除NOR型内存时是以~128KB为单位的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND Flash 是以8~32KB的块进行,执行相同操作最多只需4ms. 设计师必须权衡一下的各项因素:
NOR Flash 的读速度比NAND Flash 稍快一些。 NAND Flash的写入速度比NOR Flash快很多。 NAND Flash的4ms擦除速度远比NOR Flash的5s。大多数写入操作要先进行擦除操作。 NAND Flash的随机读取能力差,适合大量数据的连续读取。 2. 接口差别
NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易获取其内部的每一个字节。NAND Flash地址、数据和命令共用8位总线(Samsung公司某些新的NAND Flash有16位总线),每次读写都要用复杂的I/O接口串行地存取数据,8个引脚用来传送控制、地址和资料信息。 3. 成本和容量
NAND Flash 的单元尺寸几乎是NOR Flash 的一半,由于生产简单,同尺寸内提供更高的容量,也相应地降低了价格。NOR Flash容量一般较小,通常在1MB~8MB之间,而NAND Flash 只是用在8MB以上的产品中,这也说明NOR Flash主要应用在代码存储介质中,NAND Flash适用于资料存储,在CompactFlash、Secure Digital(SD卡,安全数码卡)、PC Cards市场占份额最大。 4. 可靠性和耐用性
对于需要扩展MTBF的系统来说,Flash Memory 是非常合适的存储方案。MTBF,即平均无
故障时间,英文全称是“Mean Time Between Failure”。是衡量一个产品(尤其是电器产品)的可靠性指标。
寿命:NAND Flash每块最大擦写次数是一百万次,而NOR Flash的擦写次数是十万次,
NAND Flash 除了具有10:1的块擦除周期优势,典型的NAND Flash尺寸比NOR Flash
40
小8倍,每个NAND Flash的内存块在给定的时间内删除的次数要少一些。
位交换:所有的Flash Memory器件都受位交换现象困扰。NAND Flash发生的次数比
NOR Flash要多,因此使用NAND Flash的同时要使用EDC/ECC算法。 坏块处理:NAND Flash的坏块是随机分布的,需要对介质进行初始化扫描以发现坏块,
并将坏块标记为不可用,否则将导致高故障率。 5. 易用性
可以非常直接地使用基于NOR Flash,像其他内存那样连接,并可以在上面直接运行代码。 由于需要I/O接口,NAND Flash要复杂得多,各种NAND Flash的存取方法因厂家而异。在使用NAND Flash时,必须先写入驱动程序,向NAND Flash写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND Flash上自始至终都必须进行虚拟映像。
6. 软件支持
在NOR Flash上运行代码不需要任何的软件支持,位在NAND Flash上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND Flash和NOR Flash在进行写入和擦除操作时都需要MTD。 7. 市场定位
NOR Flash用于对数据可靠性要求较高的代码存储、通信产品、网络处理等领域; NAND Flash则用于对存储容量要求较高的MP3、存储卡、U盘等领域。 正是如此,NOR Flash被称为代码闪存,而NAND Flash被称为数据闪存。 2.2.5
RAM的种类与选型
常见的RAM的种类有SRAM(Static RAM, 静态随机存储器),DRAM(Dynamic RAM,动态随机存储器)、DDRAM(Double Data Rate SDRAM, 双倍速率随机存储器)。 DDRAM采用的新内存模块的时钟频率与普通SDRAM的速率一样时,它可以通过在同一时钟周期的上升和下降沿中都传送数据,使得DDRAM内存比普通SDRAM的带宽提升了一倍,即同样的时间内传送的数据量增加了一倍。 1. SRAM
它是静态的,因此只要一供电它就会保持一个值。SRAM没有刷新周期,由触发器构成基本单元,集成度低,每个SRAM存储单元由6个晶体管组成,因此成本较高,具有较高速度,常用于高速缓冲存储器。 通常SRAM有4种引脚:
CE是芯片启用输入信号,CE在低电平工作,即当CE为1时,SRAM的Data引脚被
禁用,CE=0时,SRAM的Data引脚被启用。
R/W’ 是读写控制信号W’表示低电平有效,读写通常是相对于CPU而言的,所以读意
味着从RAM中读出,有些SRAM的读写信号是分开的,分为两个控制引脚RD和WR. Address 是组地址线,用于给出读写地址。 Data用于数据传输一组双向信号线,当R/W’=1时,引脚为输出,为0时,引脚为输入。 SRAM上的读操作周期如下:
1) 当R/W’=1时,让CE=0 启用该芯片; 2) 将地址送到地址线上;
3) 经过一段时间的延迟之后,数据出现在数据线上。 SRAM上的写操作周期如下: 让CE=0,启用芯片
41
让R/W’=0
地址出现在地址总线,数据出现在数据线上。 2. DRAM
表示动态随机存取存储器,这是一种以电荷形式进行存储的半导体存储器。DRAM中每个存储单元由一个晶体管和一个电容器组成,数据存储在电容器中,电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必须有规律地定时进行刷新。
DRAM引脚稍微复杂,增加爱了行地址选择(RAS’)和列地址选择(CAS’)。需要这些信号是因为地址线只tigong 地质大饿一般。即当RAS’=0 时, 地址的行部分至于地址线(地址的高位部分),当CAS’=0时,地址的列部分(地址的地位部分)置于地址线。 DRAM通常有以下引脚:
CE片选信号,低电平有效。即CE=0,选中DRAM。
R/W’ 是读写控制信号,当R/W’=1,执行读操作;当R/W’=0,执行写操作。 RAS’=0 时, 地址的行部分至于地址线。
CAS’=0时,地址的列部分(地址的地位部分)置于地址线。 Address 是组地址线,用于给出读写地址。 Data用于数据传输一组双向信号线。
注意:DRAM必须刷新,因为它用内部电路系统存储数据,与SRAM不同,因为芯片上有寄生电阻,存储在电容上的电荷会泄露,DRAM上数据的生命周期一般为1ms,DRAM一次刷新请求可刷新一整行,它提供了一种快速刷新模式,即先CAS后RAS. 早期为提高DRAM性能开发的一种方法就是页模式,访问一次仅提供一个行地址而提供许多列地址。后来改进的一个版本是EDO,也是允许一个行地址后有多个列地址,EDO的含义是:数据被保持有效直到CAS的下降沿,而不是页模式中的上升沿。改进DRAM性能的另一个iefangfa是引入时钟。 3. DDRAM
SDRAM通常只能工作在133MHz主频,而现在很多32位处理器的主频已经达到了200MHz以上。DDRAM依靠一种叫做双倍预取的技术,即在内存芯片内部的数据宽度是外部接口数据宽度的2倍,使峰值的读写速度达到输入时钟速率的2倍,并且允许在时钟脉冲的上升沿和下降沿传输数据。同时位了保证高速运行时信号的完整性,还采用了差分输入的方式。 2.2.6
外部存储器的种类与选型
在嵌入式系呕吐那个中常用的外存有硬盘存储器和光盘存储器。 1. 硬盘
硬盘存储器具有存储量大,使用寿命长,存取速度较快的特点,硬盘存储器的硬件包括硬盘控制器(适配器)、硬盘驱动器以及连接电缆。硬盘控制器(Hard Disk Controller, 简称HDC)对硬盘进行管理,并在主机和硬盘之间传送数据。硬盘控制器以适配卡的形式插在主板上,或直接集成在主板上,然后通过电缆与硬盘驱动器相连,硬盘驱动器(Hard Disk Drive, 简称HDD)中有盘片、磁头、主轴电机(盘片旋转驱动机构)、磁头定位机构、读/写电路和控制逻辑等。
为了提高单台驱动器的存储容量,在硬盘驱动器内使用了多个盘片,它们被叠装在主轴上,构成一个盘组,每个盘片的两面都可用作及路面,所以一个硬盘的存储容量又称为盘组容量。 硬盘存储器分类:
根据头-盘是否是一个密封的整体,硬盘存储器分为温彻斯特盘(封装在一起)和非温彻斯
42
特两类。组合体不可随意拆卸,封装起来防尘性能好,可靠性高,对使用环境要求不高,而非温彻斯特的磁头和盘片不密封,因此要求有超静的使用环境,只能用于中型、大型计算机房中。
根据磁头是否可移动,分为固定头硬盘和活动头硬盘,固定头硬盘机中每个磁道对应一个磁头,工作时磁头无径向移动,存取速冻快快,省去磁头寻找磁道的时间,但磁头太多,使磁盘的道密度不可能很高,而整个磁盘机的造价却比较高。活动头硬盘,每个盘面只有一个读写头,安装在读写臂上,当需要在不同磁道上读、写时,要驱动读、写臂沿盘面做径向移动。由于需要寻找磁道,所以其存取时间比固定头硬盘要长。
最早的传统磁头是电磁感应式磁头,是读写合一的,由于硬盘读写操作的不同,这种磁头要兼顾到读写两种特性,对硬盘的设计造成了不便,后来采用MR(磁阻磁头技术)磁头这种分离式的磁头结构,写入磁头仍采用磁感应磁头,而MR磁头则作为读取磁头磁阻。MR磁头是通过阻值变化来感应信号幅度,对信号变化相当敏感,准确性也高。进入2001年后,几乎全部硬盘均采用GMR磁头(巨磁阻磁头技术),目前最新的磁头是第三代GMR。 2. 光盘
用光学方式读、写信息的圆盘称为光盘,当一束激光照射在盘面上,靠盘面上有无凹痕的不同反射率来读出程序和数据。 CD-ROM、CD-R(只能写一次)、CD-RW(可写入、擦除、重写)、DVD-ROM(Digital Versatile Disc)简称高容量CD。
光盘存储器由光盘控制器和光盘驱动器及接口组成。其中光盘控制器主要包括数据输入缓冲器、记录格式器、编码器、读出格式器、数据输出缓冲器等部分。光盘驱动器主要包括主轴电机驱动机构、定位机构、光头装置及电路等。 光盘的基片一般采用碳酸酯晶片制成,是一种耐热的有机玻璃。各种光盘的不同指出主要是这些光盘的记录层的化学成分存在差异。
CD-ROM制作和读取,显示用事先编号的程序控制激光刻盘机,对一张玻璃基板进行蚀刻,将要存储的数据内容在玻璃基板上形成一个个数据凹痕,模具制作完成,接着倒入聚碳酸酯溶液,冷却后变成凹痕一样的基片,然后在其表面喷一层铝制反光层,其作用就是将读取数据的激光反射给接收装置。此外再覆一层保护作用的透明基片。光驱的信号接收系统负责把光强的变化转换成相应的电信传送到系统总线。
CD-R盘片共有四层:基片、金属反射涂层(金或银合金)、有机染料涂层和保护涂层;其中关键的一层就是有机燃料涂层,它的主要成分是具有特殊性质的有机染料,这些染料在激光的作用下会产生变化,从而达到记录数据的目的,而不可逆转,所以只能写一次。
CD-RW的刻录原理与CD-R的刻录、播放原理大同小异。不同之处在于CD-RW利用“相变”原理,而不是“变形”。利用Laser将相变材料加热到熔点以上,再进行快速冷却,就会固定在原子排序不整齐的非晶体状态。 从而,产生被激光照到的非晶体状态部分(Pit)和没有被激光照到而留有原来晶体状态的部分(Land)。根据反射和无反射的情况,可以写入二进制编码的数据。热力学上,将被Laser照到的非晶体状态视为不稳定状态。因此,从外部提供充分的能量即可恢复到晶体状态。这就是CD-RW的数据消除原理,因此可修改。 3. 安全数据卡(Secure Digital Card, SD卡)
SD存储卡是一个完全开放的标准,多用于MP3、数码摄像机、电子图书等,尤其广泛用在超薄数码相机上。最大特点就是通过加密功能,可以保证数据资料的安全, SD卡通信基于9芯的接口,最大的操作频率是25MHz。
SD卡支持两种通信协议:SD和SPI.方式,模式的选择对于主机是透明的,由SD卡自动检测复位命令的模式,此后通信过程始终使用这种模式。 SD总线信号:
43
CLK:时钟信号
CMD:命令、响应信号
DAT0-DAT3:双向数据传输信号 VDD,VSS1,VSS2:电源和地信号
44
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务