本章导读
本章讲述一个底层驱动软件工程师必备的硬件基础,给出了嵌入式系统硬件原理及分析方法的一个完整而简洁的全景视图。
2.1节描述了微控制器、微处理器、数字信号处理器以及应用于特定领域的处理器各自的特点,分析了处理器的体系架构和指令集。
2.2节对嵌入式系统中所使用的各类存储器与CPU的接口、应用领域及特点进行了归纳整理。
2.3节分析了常见的外设接口与总线的工作方式,包括串口、I2C、USB、以太网接口、ISA、PCI和cPCI等。
嵌入式系统硬件电路中经常会使用CPLD和FPGA,作为驱动工程师,我们不需要掌握CPLD和FPGA的开发方法,但是需要知道它们在电路中能完成什么工作,2.4节讲解了这项内容。
2.5~2.7节给出了在实际项目开发过程中硬件分析的方法,包括如何进行原理图分析、时序分析及如何快速地从芯片手册获取有效信息。
2.8节讲解了调试过程中常用仪器仪表的使用方法,涉及万用表、示波器和逻辑分析仪。
2.1 处理器
2.1.1 通用处理器
通用处理器(GPP)并不针对特定的应用领域进行体系结构和指令集的优化,具有一般化的通用体系结构和指令集,以求支持复杂的运算并容易添加新开发的功能。一般而言,在嵌入式微控制器(MCU)和微处理器(MPU)中会包含一个通用处理器核。
MPU通常代表一个CPU(中央处理器),而MCU则强调把中央处理器、存储器和外围电路集成在一个芯片中。早期,微控制器被称为单片机,意指把计算机集成在一个芯片内。嵌入式微控制器也常被称作片上系统(SOC),含义是在一个芯片上设计了整个系统。芯片厂商在推出MCU时,往往会有明确的市场定位,如定位于PDA、MP3、ADSL等。定位不同的产品可能包含共同的CPU核,但是集成的扩展电路则不一样。图2.1给出了一个典型的集成了外围电路的MCU的结构。
举个例子,Intel的80386属于微处理器,而内部集成了80386处理器、片选单元、中断控制、定时器、看门狗定时器、串行I/O、DMA和总线仲裁、DRAM控制器等的386EX则是80386微处理器的微控制器版本。但是,GPP、MCU和MPU等概念非常含混,许多地方并不加以区分,而明确区分这些概念在技术上本身也没有太大的意义。
图2.1 典型的MCU内部结构
嵌入式微控制器一般由一个CPU核和多个外围电路集成,目前主流的CPU核有:
• Advanced RISC Machines公司的ARM
ARM内核的设计技术被授权给数百家的半导体厂商,做成不同的SOC芯片。ARM的功耗很低,在当今最活跃的无线局域网、3G、手机终端、手持设备、有线网络通信设备等中应用非常广泛。
• Silicon Graphics公司的MIPS
两个最重要的MIPS芯片厂商为PMC和IDT,PMC-Sierra公司的MIPS处理器被CISCO公司大量采用在高端路由器上。IDT公司在MIPS核上集成PCI接口,广泛用于以太网交换,另外也尝试增加了HDLC、Ethernet、串口、SDRAM控制器、片选、DMA控制器等外设接口,以用于底端通讯产品。
• IBM和Motorola的PowerPC
PowerPC处理器是通信和工控领域应用最广泛的处理器,国内包括华为、中兴在内的通信公司都大量使用PowerPC。PCMPC860和MPC8260是其最经典的两款PowerPC内核的嵌入式处理器。
• Motorola公司独有的内核68K/COLDFIRE
68K内核是最早在嵌入式领域广泛应用的内核,其最著名的代表芯片是68360。Coldfire则继承了68K的特点并对其保持了兼容。Coldfire内核被用于DSP模块、CAN总线模块以及一般嵌入式处理器所集成的外设模块,在工业控制、机器人研究、家电控制等领域被广泛采用。
提示:Motorola的半导体部已经独立为飞思卡尔半导体公司(Freescale Semiconductor Inc.),因为历史原因,上文仍然使用Motorola。
中央处理器的体系架构可以分为两类,一类为冯•诺伊曼结构,一类为哈佛结构。
冯•诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。而哈佛结构将程序指令和数据分开存储,指令和数据可以有不同的数据宽度。此外,哈佛结构还采用了独立的程序总线和数据总线,分别作为CPU与每个存储器之间的专用通信路径,具有较高的执行效率。图2.2描述了冯•诺伊曼结构和哈佛结构的区别。
图2.2 冯•诺伊曼结构与哈佛结构
从指令集的角度来讲,中央处理器也可以分为两类,即RISC(精简指令集计算机)和CISC(复杂指令集计算机)。CSIC强调增强指令的能力,减少目标代码的数量,但是指令复杂,指令周期长;而RISC强调尽可能减少的指令集,指令单周期执行,但是目标代码会更大。ARM、MIPS、PowerPC等CPU内核都采用了RISC指令集。目前,RISC和CSIC二者的融合非常明显。
2.1.2 数字信号处理器
数字信号处理器(DSP)针对通信、图像、语音和视频处理等领域的算法而设计。它包含独立的硬件乘法器,乘法指令在单周期内完成,优化了卷积、数字滤波、FFT(快速傅立叶变换)、相关、矩阵运算等算法中的大量重复乘法。
DSP一般采用如图2.3所示的改进的哈佛架构,它具有独立的地址总线和数据总线,两条总线由程序存储器和数据存储器分时共用。
DSP分为两类,一类是定点DSP,一类是浮点DSP。浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其浮点运算处理速度高于定点DSP。而定点DSP只能用定点运算模拟浮点运算。
德州仪器(TI)、美国模拟器件公司(ADI)是全球DSP的两大主要厂商。
TI的TMS320™DSP 平台包含了功能不同的多个系列:2000系列、3000系列、4000系列、5000系列、6000系列,工程师也习惯称其为2X、3X、4X、5X、6X。除了2000与5000系列是定点DSP外,其余的均为浮点DSP。
ADI主要有16位定点的21xx系列、32位浮点的SHARC系列、从SHARC系列发展而来的TigerSHARC系列及高性能16位DSP信号处理能力与通用微控制器方便性相结合的blackfin系列等。
图2.3改进的哈佛结构
通用处理器和数字信号处理器也有相互融合以取长补短的趋势,如数字信号控制器(DSC)即为MCU+DSP,blackfin系列属于DSC。目前,芯片厂商推出了许多ARM+DSP的双核处理器。
除了上面讲述的通用微控制器和数字信号处理器外,还有一些针对特定领域而设计的专用处理器(ASP),它们都是针对一些特定应用而设计的,如用于HDTV、ADSL、Cable Modem等的专用处理器。
网络处理器是一种可编程器件,它应用于电信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。网络处理器器件内部通常由若干个微码处理器和若干硬件协处理器组成,多个微码处理器在网络处理器内部并行处理,通过预先编制的微码来控制处理流程。而对于一些复杂的标准操作(如内存操作、路由表查找算法、QoS的拥塞控制算法、流量调度算法等)则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。
INTiME公司的IME6400是一款典型的多通道数字音、视频编码系统级芯片,该芯片可以支持MPEG4/2/1视频压缩编码标准,同时支持I、P和B帧压缩,并可支持48/44.1/32/24/ 22.05/16KHZ音频采样。它运行存放在内部ROM或外部扩展ROM的固件,为了压缩视频、音频数据并存储编码流,一般外部需要扩展SDRAM,SDRAM的大小与要压缩的图像大小和模式相关。
对于某些应用场合,使用ASIC(专用集成电路)往往是低成本且高性能的方案。ASIC专门针对特定应用而设计,不具备也不需要灵活的编程能力。如ADV202是ADI公司推出的一款单片实现JPEG2000编解码的ASIC。
在实际项目的硬件方案中,往往会根据应用的需求选择通用处理器、数字信号处理器、特定领域处理器或ASIC之一的解决方案,在复杂的系统中,这些芯片可能会同时存在,协同合作,各自发挥自己的长处。如在一款智能手机中,可使用MCU处理图形用户界面和用户的按键输入并运行多任务操作系统,使用DSP进行音视频编解码,而在射频方面则采用ASIC。
综合2.1节的内容,我们可得出如图2.4所示的处理器分类。
图2.4 处理器分类