32入式系统开发圣经 其他的一般性8位嵌入式系统微处理器还有 National Semiconductor公司所推出的 NsC800微处理器,这是一个很不错的8位微处理器,它可以使用Z80微处理器的指令集 采用CMOS方式制作,因此有很低的功率消耗。 Hitachi公司所推出的HD64180微处理器是 个与Z80兼容的8位微处理器,微处理器包含了一个双通道的直接内存存取控制器、两个 并行输入输出装置接口、一个串行输入输出装置接口、两个16位的计时器、一个内存管理 单元,可以寻址512K字节的内存、一个等待状态产生器及一个控制逻辑。除此之外,它还 提供了新的指令集 在看完了一般性的8位嵌入式系统微处理器后,我们现在要来看看单片机型的嵌入式系 统微处理器,目前小型的嵌入式系统仍然有许多是以8位的单片机微处理器为主要控制核心, 8位的微处理器核心具有低成本、可扩展内存及外围设备等优点。8位的单片机微处理器有 很多种不同世代产品,一开始是由两个划时代产品开启8位的嵌入式系统微处理器,一个是 Intel公司所推出的8048,另一个是 Fairchild及 Mostek公司所推出的3870, Intel公司的8048 在当时是一种新的架构,并未延续其他已存在的微处理器架构,因此在指令集及架构的开发 上变的有点困难,但是因为它属于嵌入式系统的微处理器,定位在具弹性并且低成本的产品 控制单元,所以至今仍被广泛地使用,其所衍生的第二代产品8051,更是可以在各种电子产 品上见到它的踪迹, Intel的8041及8042是延续8048的系统,作为附属微处理器( Slave Processor)之用,8044是8051的延续微处理器,它包含了一个额外的串行接口,可以连到 主微处理器,做其他的数据处理。 Intel公司陆续推出8051家族的产品,如MCS51家族系列,像是MCS51家族中的 8XC51RX这颗嵌入式系统微处理器,它最高的工作频率可以达到24MHz,拥有512K字节 的RAM,有三个16位的计数器,32个可程序化控制的输入输出端,6个中断来源,并且功 耗很低等特性,所以现在有很多的初级嵌入式系统还是采用MCS51家族的系列产品作为控 制核心 Fairchild的3870也是一个早期的8位嵌入式微处理器,它具有低功耗及低成本的优势, 所以它在早期的电子应用产品上还满受厂商使用,但是它缺乏完整健全的指令集,所以目前 已经很少厂商在使用这个嵌入式微处理器来作为产品的控制核心。 经过Inel公司的8048及 Fairchild与 Mostek的3870两种第一代8位嵌入式系统微处 理器带给电子业界的重大影响, Motorola公司也不甘示弱地推出了更具威力的8位嵌入式 系统微处理器,就是 motorola6801,6801微处理器在指令集的使用上跟 Motorola6800兼 容,因此对原本6800广大的用户来说,这是一项很好的推广利器,只要原本具有6800软 件编写的能力,也就能轻易的开发出6801应用的程序,可以大幅缩短开发的时程,减少产 品开发的复杂度。6801的处理效率大约介于8048及8051之间,6801包含了128字节的 RAM,2K字节的ROM,一个串行式的对外通信接口,及一个可程序化计时器。开发人员 可以直接将6800平台上的系统放在6801上执行,但是ROM大小只有8051的一半,而其 他延续产品包括了6803,是不含ROM的嵌入式微处理器,68701则在微处理器上内含了 EPROM,6805包含了比较简单的指令集和很少的内存,与6804皆是主打低成本的微处理 器市场。在 Motorola的6801微处理器系列产品之中,有许多不同的特性,一般开发人员 可以由微处理器上头的编号看出一些端倪,例如CMOS的微处理器,会在编号前头打上14 这个数字,而内含 EPROM的微处理器变会在68之后加上一个7,例如CMOS版本的6805
第2章纸A式SOC硬件系统概论3 它的编号就为146805,若是内含了 EPROM,编号就会成为1468705。在更快速的CMOS 产品, Motorola以HC来表示,例如6801使用了加强型的CMos,它的编号便为68HC01, 这个嵌入式系统微处理器包含了512字节的 EPROM,4K字节的ROM,256子节的RAM, 及一个额外的8位AD转换器。另外68HC805c4是6805含有4K字节的 EPROM版本。 zilog公司推出的8位嵌入式系统微处理器Z8有独立的指令集,它的功能及执行效率大 概和6801不相上下,其中编号Z8601的微处理器,包含2K字节的ROM及128字节的RAM, 个串行输入输出接口,两个可程序计时器,而Z8602有另外的外部总线及输入输出接凵 可以不必动用到基本的输入输出接口,连接到扩充的外部内存。Z86ll则拥有4K字节ROM。 其他的8位单片机型嵌入式系统微处理器还有 Rockwell公司所推出的6800/1,这是延 续6502所推出的嵌入式系统微处理器。内含有2K字节的ROM及64K字节的RAM。RCA 公司所推岀的1804嵌入式系统微处理器是CMOS微处理器,延续了1805微处理器的核心, 而这些微处理器都是承接于早期的1802微处理器,加强了一些功能后所推出的NEC的7801 提供了8085的总线及输入输出接口,包含了4K字节的ROM及与Z80类似的指令集架构, 编号为7802的嵌入式微处理器包含了6K字节的ROM 2.2216位以上的嵌入式系统微处理器 继8位的嵌入式系统微处理器后,许多厂商为因应更高级的产品应用层面,陆续推出16 位的嵌入式系统微处理器,第一个商品化的16位的嵌入式系统微处理器是T公司所推出的 9940,它是延续9900的基本架构所发展的,但是真正让16位系列的产品发扬光大的,是 Intel 公司所推出的8096及 Thompson/ Mostek公司所发展的68200 16位微处理器包含了许多的新指令集及硬件架构,并且拥有多种的寻址模式及数据类型 的声明。德州仪器公司所推出的9600微处理器是第一个商用的16位微处理器,因为它的功 能与指令集的贫乏,所以并未造成很大的注意,反而大家比较熟悉的16位微处理器产品是 Inel公司所发展的8086微处理器及 Motorola公司所发展的68000微处理器。 inte公司所推出的8086微处理器是第个被大家所重视及熟悉的16位微处理器,因为 它开创了 IBM PC市场的一股旋风,当时IBM所推出的个人电脑即是采用8086做为个人电 脑的数据处理及控制核心,8086微处理器也是延续了Inel公司之前的8080及8085微处理 器的基本架构,加上了些加强式的硬件架构与指令集。8088微处理器基忄:与j8086微处 理器架构相同,不过有一个地方有不同的设计,就是数据总线的部分,8088微处理器的数据 总线是8位的,因此必须要先执行两个总线的周期时间才能完成一个16位的字符数据传送 如此设计可以使用8088微处理器应用在现成的8位的外围设备上,因此以往的8似的架构 电子产品可以直接采用8088微处理器作为控制核心,用以人幅提升数据处理的效率,却不 需要大幅修改原本电子设备的线路。 Intel随后在1982年二月又推出了第¨代的8086产品 就是 Intel180286微处理器,这个微处理器包含了许多以往微处理器需额外加上的外围装置组 件,它已经将这些组件整合进微处理器中,包含了一个时钟脉冲发生器、两个直接内存行取 通道、个中断信号控制器、个可程序化时计单元、可程序化芯片选择逻辑丫元及-个等 待状态产生器;除此之外,它很受市场的欢迎,最要的原因,就是它可以与8086及8088 微处理器的软件兼容,如此可以套用原本在8086微处理器上大量使用的和序代码及应用程 序,而不需要另外再去开发其特殊的应用程厅。80286微处理器还包含了虚拟内仔所需要的
34入式系犹开发经 内存管理单元及指令重新执行功能,它的工作频率可以分为6MHz、10MH及12MHz,相对 的工作效率大约在09MPS到266MIPS之间,内部的电晶体大约有134000个,可以对16M 字节的内存做寻址存取,它的工作效率大约是8086的六倍,主要是用在以前很受欢迎的IBM PCAT个人电脑及一些个人电脑的应用产品上。 Intel公司所推出的8096是从 Intel为了福特汽车公司设计的一个电子引擎控制系统芯片 -EEC-ⅣV发展而来,EECⅣV这颗控制芯片拥有很快速的运算能力,而且也有很准确的脉冲控 制,可以控制引擎中所有的设置参数,并且依照这些参数来调整引擎的相关控制,提高引擎 的运转效率及降低燃料的损耗。8096主要的特征就是拥有高速的输入输出接口及数据运算能 力,最大工作频率可以达到12MHz,8096包含了一个串行式输入输出接口,以及并行式输 入输出接口,有两个并行式接口可以作为数据总线之用,连接扩充的外部内存。ntel公司随 后又推出了80%6微处理器的改良产品,就是8XC196KB,这也是一个16位的嵌入式系统微 处理器,它内含有8K字节的ROM,并且有更低的功耗,工作频率最高可以达到16MHz, 它还有8个通道、10位的模拟数字转换接口。 Impson公司所堆出的68200嵌入式系统微处理器是一个16位的微处理器,它是延续 了68000微处理器的核心部分做改良,主要是修改了字节宽度部分,以便能更有效地处理数 据。68200微处理器包含有4K字节的ROM、256字节的RAM、三个16位的计时器以及 个40位输入输出接口。它的中断功能也很强大,包含了有十五种向量式中断。 National semiconductor公司所推出的32000系列是第一个32位的商用微处理器,而且 在当时满受许多厂商使用。 National semiconductor公司随后又推出NS32系列的嵌入式系统 微处理器,是针对传真机所设计,对于传真机内部电路配合NS32系列嵌入式系统微处理器 如图2-1所示,它内嵌有步进马达、打印机及扫描仪的驱动电路装置,另外还有 Sigma-Delta CODEC、 elapsed· time counter、DMA控制器、中断控制器等等,NS32FX200这个嵌入式系 统微处理器最高的工作频率可以达到24MHz NS32X200 NS32FX161 controls N532FV100 NS32FX164 To scanner≠scnr!/F MICROWIRE channel To motors Molor Drivers DAA I/F UART channel DMA chennels 图21 National semiconductor公司NS32系列传真机控制电路方块图 Intel公司所推出的80386系列微处理器是32位的微处理器,它也是延续了8086的微处 理器基本架构,它的位置总线及数据总线采用32位宽度寄存器也改为32位方式存取80386
2聿就入式SC更件系统概论35 DX微处理器先在1985年十月推出,最高工作脉冲可以达到16MHz,相当于5~6MIPS的工 作效率。而后又推出了许多不同工作频率的微处理器版本。 M ARM 026 1995 2000 图2232位以上嵌入式系统微处理器代表性产品及出现年代团 32位及64位的嵌入式系统微处理器出现的年代及代表性产品如图22所示,这些产品 是目前高级嵌入式系统所比较喜欢采用的控制核心,各式嵌入式系统微处理器都朝着髙度整 合性、低消耗功率及更快速的数据处理速度在进步着,我们会在后面的内容中,谈到目前流 行的32位及64位的嵌入式系统微处理器。 223协处理器(Co- processor) 协处理器算是一种辅助性的嵌入式系统微处理器,它并不是嵌入式系统的数据处理核心 部分。为什么有些嵌入性系统中可以见到协处理器呢?这是因为嵌入式系统微处理器大部分 都是针对于整数运算做设计,在微处理器中的逻辑运算单元主要也是负责整数运算的部分 对于浮点数的运算方面,嵌入式系统微处理器会利用整数模拟浮点数的运算方式,进行数据 的运算,受限于原本硬件架构设计的限制,在模拟浮点数运算的工作流程,往往运算所需要 的指令周期是整数运箅的几十倍到百倍,这样的运算能力对于嵌入式系统微处理器是一个很 大的负担,所以在处理大量的浮点数据时,则需要另外加上一颗特别的协处理器进行浮点数 的数据处理。 协处理器是针对浮点运算的数据处理而设计,它拥有先天上硬件架构的优势,在处理浮 点运算时会大幅缩短运算所需要的时间,也可以减轻嵌入式系统微处理器的负担。我们这里 列出一些协处理器,如表2-3所列,是Inel公司所推出的X86架构微处理器及相对应的协处 理器。 表23nte公司所推出的协处理器及搭配的X86架构微处理器 微处理名称 协处理名称 Intel 8088 Intel 8087 Intel 80287 Intel 80386SX Intel 80387 Intel 80486SX Intel 8048 目前有一些微处理器已经内置浮点数运算架构的逻辑运算单元,对于浮点数的运算能力 也就大幅提高不少,例如 Intel pentium、 Pentium I或是 PentiumⅢ等等,其他还有德州仪器
36入式系统开犬圣经 公司所推出的一些数字信号处理器也有包含具备浮点运算功能,几乎各大做处理器设计厂商 都有提供浮点运算的微处理器产品。 224cIsC与RISC 在嵌入式系统微处理器的发展上,以微处理器的指令集部分的特性,可以将嵌入式系统 微处理器分成两种主要的架构,一种是CISC(复杂指令集 Complex Instruction Set Computer) 架构,另一种则是RISC(精简指令集 Reduced Instruction Set Computer)架构。 在1960年代左右,CISC的架构是微处理器的设计主流,经过了近二十年左右的时间 就所发展的产品的使用效率来看,这种设计已经没办法在一般固定的功能及用途上发挥最大 的使用效益,这个时候,有一项新的架枃被提岀来,那就是RISC架构,这种指令集架构的 出现,可以大幅提升CISC架构所难以达到的指令执行及数据运算效率 RISC架构的性质有下列几点,主要是跟以前的CSC架构微处理器做比较,所得到的 些差异性 ■使用相当少的指令型别及寻址模式。 ■微程序控制尽量采用软件架构实现。 ■在单一执行的周期内完成指令 ■微处理器中拥有更多的寄存器。 使用最佳化的程序代码编译。 微处理器的内存存取主要是用在指令的载入及储存。 简易的解码指令格式。 高度平行化处理。 RIsC架构主要用于有规律并且常用的指令解码及数据处理,因此不需使用到复杂的硬 件控制线路的设计及指令集解码,所以RISC架构的微处理器中线路可以做到很精简,并且 个指令所需要的执行时间也会变得比较少,但是指令集比较精简的话,有许多复杂的工作 便需要许多指令结合起来,才能完成,这样的能力必须要靠程序的编译才能完成,RISC架 构的微处理器遇到复杂的指令就会需要很复杂的程序编译,相反的,CISC架构的微处理器 所拥有的指令集比较多,有很多CISC架构微处理器所拥有,RISC架构微处理器所没有的指 令,在程序编译时,CISC架构微处理器只需要简单的编译过程,就可以轻松地完成程序的 编译 举个例子来说,比如微处理器需要解一个积分问题,利用CSC架构微处理器处理相关 的问题时,只需要十儿个机器指令来处理这些运算,但是RISC架构微处理器因为还得处理 浮点的相关问题,因此可能需要百余个指令来完成相同的工作,但是RISC架构微处理器指 令的执行时间大多只需要CISC做处理器的十分之一的时间,所以算一算运算所需要的时间 两者几乎很难分出高下。 不过现在的嵌入式系统产品已经体会到RsC架构微处理器的硬件设计单纯,成本低廉 省电效益佳等特性,纷纷采用RISC架构的微处理器,例如 ARM RISC Core及 MIPS RISC Core,都是目前相当热门,而且也相当受欢迎的RIsC架构的嵌入式系统微处理器,我们在 后面会比较详细地谈到这些RSC架构的嵌入式系统微处理器的一些特性