版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章嵌入式硬件平台3.1引言
3.2嵌入式硬件平台概述
3.3总线
3.4存储设备
3.5I/O设备
3.6通信设备3.7其他
思考与练习题
3.1引言
嵌入式系统的硬件除了核心部件——嵌入式处理器外,还包括存储器系统、外围接口部件以及连接各种设备的总线系统。其中,存储器是嵌入式系统存放数据和程序的功能部件,而外围设备则决定了应用于不同领域的嵌入式系统的独特功能。
本章在3.2节简要介绍嵌入式硬件平台。3.3节分析总线系统,内容包括总线协议、DMA、总线配置、总线实例。3.4节介绍嵌入式系统的存储设备,包括嵌入式系统存储器子系统的结构、RAM、ROM和Flash。在3.5节中介绍嵌入式系统的I/O设备,其中具体分析了定时器/计数器、ADC和DAC、人机接口设备(含键盘、LCD、触摸屏)。在3.6节的通信设备中,主要介绍通用异步收发器(UART)、USB设备和Ethernet设备。3.7节讲述其他附属电路的有关问题,内容包括电源、时钟、复位和中断。 3.2嵌入式硬件平台概述
嵌入式处理器是嵌入式系统中硬件的核心组成部分,但是若没有存储器和I/O设备,它就无法具有各种实用的功能。嵌入式处理器通常集成了大量的I/O模块单元(如中断控制器和通信控制器等)和存储器(Flash和RAM等)。当嵌入式处理器上集成的存储器单元和I/O单元不够时,可以通过扩充来组成强大的嵌入式硬件系统。
嵌入式系统的硬件是以嵌入式处理器为中心,由存储器、I/O单元电路、通信模块、外部设备等必要的辅助接口组成的,如图3-1所示。图3-1嵌入式系统的硬件组成
3.3总线
3.3.1总线协议
1.握手协议
总线协议中的基本构件是四周期握手协议。总线握手信号的作用是控制每个总线周期中数据传送的开始和结束,从而实现两个设备间的协调和配合,保证数据传送的可靠性。握手线用两根连线enq(查询)和ack(应答)来表示。在握手期间,使用专用的握手线来传输数据。因此,数据握手线必须以某种方式由信号的电压变化来表明整个总线传输周期的开始和结束,以及在整个周期内每个子周期的开始和结束。一般地,四周期握手过程如图3-2所示。图3-2四周期握手协议对握手过程的描述如下:
(1)设备1升高它的输出电平来发出查询信号,它告诉设备2应准备好接收数据。
(2)当设备2准备好接收数据时,它通过升高它的输出电平来发出应答信号。这时,设备1已准备好发送数据,设备2已准备好接收数据。
(3)一旦数据传送完毕,设备2降低它的输出电平表示它已经接收完数据。
(4)看到设备2的应答信号变低,设备1降低它的输出电平。
2.总线读/写
微处理器总线在握手基础上为CPU和系统其他部分建立通信。基本的总线操作包括读和写。图3-3说明了一个支持读和写的典型总线结构。图3-3典型的微处理器总线总线行为经常用时序图来说明,时序图表示了总线上的信号如何随时间变化。图3-4所示为某总线的时序图,包括读和写两部分。由于读不改变设备和存储器的任何状态,因此总线通常处于读状态。CPU可以忽略数据线直到它要使用读操作的结果为止。此外,还要注意在双向线路上数据的传输方向并未在时序图中指定。在读过程中,外设或存储器在数据线上发送数据;而在写过程中,CPU控制数据线。图3-4总线时序图通常可以用总线握手信号来执行突发传输,如图3-5所示。在这个突发读事务中,CPU发送一个地址信号,但接收的是一个数据值序列。我们给总线额外增加一根称为Burst' 的线路。当事务是突发事务时,用它来向设备发信号;用释放Burst' 信号来通知设备已传输了足够的数据。图3-5总线的突发读事务总线事务的状态图是对时序图的有效补充,图3-6展示了读操作的CPU和设备的状态图。当CPU决定执行一个读事务时,它转换到新状态,并发出让设备正确工作的总线信号;而设备状态转换图捕获了它这一端的总线协议状态。图3-6总线读事务的状态图3.3.2DMA
在每个读/写事务中间,标准总线事务要求CPU解决它与其他设备的信息交换问题。但是,某些数据传输不需要CPU介入,如I/O设备和存储器之间的数据交换。要实现这类操作,就要求CPU以外的设备单元能够控制总线上的操作。
直接存储器访问(DirectMemory-Access,DMA)是允许读/写不由CPU控制的总线操作。DMA使用一种称为DMA控制器的专用硬件来完成外设与存储器之间的高速数据传送。DMA控制器从CPU请求总线控制,得到控制权后,控制器能像CPU那样提供内存的地址和必要的读/写控制信号,实现直接在设备和存储器之间的读/写操作。图3-7展示了一个带有DMA控制器的总线配置。图3-7带DMA控制器的总线3.3.3总线配置
一个微处理器系统可能使用多条总线来连接设备。如图3-8所示,高速设备连到高速总线上,而低速设备连到低速总线上,通过一个被称为桥的逻辑电路使得总线可以互连。图3-8多总线系统3.3.4总线实例
这里以ARM的一个总线系统为例,简单分析该系统的组成和特征。
由于ARM微处理器由不同的制造商制造,因此芯片外提供的总线随芯片的变化而变化。ARM已经为单芯片系统创建了一个独立的总线规格说明——AMBA规范。AMBA总线(ARM99A)支持将多个CPU、存储器和外围设备集成在片上系统中。如图3-9所示,AMBA规格说明包括两条总线:AHB和APB。其中,AMBA高性能总线(AHB)是为高速传输而经过优化的,它直接连到CPU上并支持多种高性能总线的特性,如流水线技术、突发传输、分离事务和多总线主控器等。桥用来将AHB连到AMBA外围设备总线(APB)上。图3-9ARMAMBA总线系统 3.4存储设备
3.4.1嵌入式系统存储器子系统的结构
存储器子系统设计的首要目标是使存储器在工作速度上很好地与处理器匹配,并满足各种存取需要。因此,体系结构的特性能够提高存储系统的速度和容量。随着微电子技术的发展,微处理器的工作速度有了很大的提高。而微处理器时钟频率的提高比内存速度的提高要快,以至于内存速度远远落后于CPU速度。如果大量使用高速存储器,使它们在速度上与处理器相吻合,就能够简便地解决问题。但是,这种方法受到经济上的限制。因为随着存储器芯片速度的提高,其价格急剧上升,系统成本十分昂贵。在实际的计算机系统中,总是采用分级的方法来设计整个存储器系统。图3-10所示为这种分级存储系统的组织结构示意图,它把全部存储系统分为四级,即寄存器组、高速缓存、内存和外存。它们在存取速度上依次递减,而在存储容量上逐级递增。图3-10分级存储器系统3.4.2RAM
RAM(RandomAccessMemory,随机存储器)能够随时在任一地址读出或写入内容。RAM的突出优点是读/写方便、使用灵活;缺点是不能长期保存信息,一旦停电,所存信息就会丢失。RAM在嵌入式系统中主要用于:
(1)存放当前正在执行的程序和数据,如用户的调试程序、程序的中间运算结构以及掉电时无需保存的I/O数据和参数等。
(2)作为I/O数据缓冲存储器,如显示输出缓冲存储器、键盘输入缓冲存储器等。以显示输出缓冲存储器为例,它实质上就是在主存中开辟的一个存放字符、汉字、图形、图像等显示信息的数据缓冲区。
(3)作为中断服务程序中保护CPU现场信息的堆栈。随机存储器由两大类组成:静态随机存储器(StaticRAM)和动态随机存储器(DynamicRAM)。下面具体分析这两种随机存储器的结构特征。
1.静态RAM
静态RAM(SRAM)的存储单元电路是以双稳态电路为基础的,因此状态稳定,只要不掉电,信息就不会丢失。静态RAM的接口和操作时序如图3-11所示。
图3-11静态RAM的接口和操作时序
2.动态RAM
动态RAM(DRAM)的存储单元电路是以电容为基础的,电路简单,集成度高,功耗小。但是DRAM即使不掉电也会因电容放电而丢失信息,需要定时刷新,因此在工作时必须配合DRAM控制器。DRAM控制器是位于处理器和存储器芯片之间的一个额外的硬件,如图3-12所示。它的主要用途是执行DRAM的刷新操作,使得DRAM中的数据有效。图3-12DRAM通过DRAM控制器组成存储器系统动态RAM的接口和读/写时序有其自身的特点。基本动态RAM接口和读时序如图3-13所示。图3-13基本动态RAM接口和读时序
3.RAM的选择
在设计嵌入式系统时,随机存储器的选择一般有两种:SRAM和DRAM。选择时,通常考虑以下因素:
(1)如果系统的随机存储器的容量不是很大,则一般采用SRAM;反之,选择DRAM。
(2)对于特别高速度的应用,应使用SRAM。
(3)如果嵌入式系统对功耗敏感,可使用SRAM。因为DRAM需要定时刷新,消耗能力相对大,而SRAM在系统进入待机工作方式时,只需要微小的待机电流就可以维持数据不丢失。需要注意的是,SRAM的平均功耗低,但是工作时功耗不一定低。
(4)对于嵌入式处理器而言,有的嵌入式处理器芯片集成了DRAM控制器,这时选择DRAM比较好。一般地,小规模的嵌入式系统不建议使用分离的DRAM控制器+DRAM的方案,因为这种方案既会增加系统的复杂性(如电路板的面积、故障率等),又会增加系统的成本。因此如果选用了DRAM,那么应尽量使用带有DRAM控制器的嵌入式处理器,然后配合使用DRAM。
(5)目前,基于32位嵌入式处理器的嵌入式系统一般使用DRAM。
(6)复杂的嵌入式系统可以采用SRAM和DRAM混合设计的方案。不同要求的数据使用不同的随机存储器,以满足系统整体的优化设计。
(7)嵌入式系统的设计,在使用SRAM和DRAM的成本上,需要仔细地与整个系统的硬件一起进行核算,最终做出选择。在选择存储器类型时,一般要考虑存取时间和成本。3.4.3ROM
ROM(Read-OnlyMemory,只读存储器)中的内容一经写入,在工作过程中就只能读出而不能重写,即使掉电,写入的内容也不会丢失。ROM在嵌入式系统中非常有用,常常用来存放系统软件(如ROMBIOS)、应用程序等不随时间改变的代码或数据。
ROM可以分为工场可编程ROM和现场可编程ROM两大类。有以下几种不同类型的现场可编程ROM:
(1)可编程ROM(ProgrammedROM)。该类ROM只可编程一次,即用户一次性编程写入后就永久性地修改了芯片。
(2)紫外线可擦可编程ROM(UVErasableProgrammedROM,UV_EPROM)。该类ROM可以通过紫外线擦除后重复编程。
(3)电可擦可编程ROM(ElectricalProgrammedROM,EEPROM)。该类ROM允许用户以字节为单位多次用电擦除和改写存储内容,而且可以直接在机内进行,不需要专用设备,方便灵活。3.4.4FlashMemory
FlashMemory(按块擦除存储器)是存储器技术的最新发展。FlashMemory综合了目前为止的所有存储器件的优点,主要特点是在不加电情况下能长期保存信息,同时又能在线进行快速擦除与重写。从软件的观点来看,FlashMemory和EEPROM的技术十分类似。但是,EEPROM在擦写和编程时要加高电压,这意味着重新编程时必须将芯片从系统中拿出来。而FlashMemory使用标准电压擦写和编程,允许芯片在标准系统内部编程。这就允许FlashMemory在重新编程的同时存储新的内容。此外,EEPROM必须被整体擦写,而FlashMemory可以一块一块地擦写。理想的存储器应具有密度高、读/写速度快、价格低和非易失性的特点。但是,传统的存储器却只能满足这些要求中的一部分。FlashMemory的推出,恰好同时实现了所有这些优良的存储器特性。FlashMemory是一种高密度、低价格的高性能读/写存储器,兼有功耗低、可靠性高等特点。表3-1所示为FlashMemory与传统存储器技术的比较。表3-1FlashMemory与传统存储器技术的比较
FlashMemory的编程操作比较麻烦,主要表现在以下3个方面:
(1)每一个存储位置都必须在重写操作之前被擦除。如果旧的数据没有被擦除,那么写操作的结果会是新、旧数值的某种逻辑组合,存储的数据通常是错误的。
(2)一次只能有一个扇区或者块被擦除,而且不可能只是擦除一个单个的字节。
(3)擦除旧数据的过程和写入新数据的过程是随着制造商的不同而变化的。因此在进行FlashMemory写入操作时,提供一个软件层来完成写入和擦除操作比较方便,这个软件层叫做FlashMemory的驱动程序。
FlashMemory不仅可以用作嵌入式系统的程序存储器,还可以作许多其他的应用。
(1) FlashMemory文件系统。因为FlashMemory提供了可被重写的非易失性存储,所以它可以被看做类似于任何其他的二级存储系统,如硬盘。在作为文件系统的情况下,由驱动程序提供的函数要更加面向文件,可提供诸如open()、close()、read()、write()等标准文件系统函数。FlashMemory文件系统的组织与普通的外存基本相同。
(2)便携设备的存储装置。随着数码产品的飞速发展,FlashMemory作为一种最常用的存储装置应用于数码相机(如CF卡、XD卡、记忆棒等)、MP3等数码产品中。 3.5I/O设备
3.5.1定时器/计数器
所有的嵌入式处理器都集成了定时器/计数器单元,系统中至少有一个定时器设备用作系统时钟。定时器和计数器都是由带有保存当前值的寄存器和可令当前寄存器值加1的增量输入的加法器逻辑电路组成的。但是,定时器和计数器的用处不同,主要体现在:定时器的计数装置是连到周期性时钟信号上的,用来测量时间间隔;而计数器的计数装置是连到非周期性信号上的,用来计算外部事件的发生次数。因为同样的逻辑电路可以有这两种使用方式,所以该设备经常被称为“定时器/计数器”。嵌入式处理器上的定时器/计数器通常具有以下功能:
(1)嵌入式操作系统的任务调度,特别是具有时间片轮转调度功能的嵌入式操作系统的任务调度,必须使用定时器产生时间片。
(2)嵌入式操作系统的软件时钟需要基于硬件定时器产生定时信号。
(3)通信电路的波特率发生器。
(4)实时时钟电路。
(5)集成的片上A/D转换和D/A转换电路。
(6)具有液晶控制器的嵌入式处理器,用于液晶屏的刷新。
(7)处理器监控电路,如看门狗等。
(8)集成的动态存储器控制器,用于动态存储器的刷新。
图3-14展示了定时器/计数器的内部结构。图3-14 定时器/计数器的内部结构3.5.2模/数转换器和数/模转换器
模/数(A/D)转换器和数/模(D/A)转换器是非数字设备(即模拟信号源)和嵌入式系统之间联系的接口。
D/A转换相对简单,转换器接口仅包括输入值,输入值被连续转换成模拟信号。
A/D转换器是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。A/D转换需要更复杂的电路,所以也需要更复杂的接口。A/D转换在将模拟输入转换为数字形式前需要对模拟输入进行采样。控制信号使得A/D转换器进行采样并将其数字化。典型的A/D转换器接口除了模拟输入外还有两个主要的数字输入,一个数据端口允许A/D寄存器被读/写;另一个时钟输入信号通知什么时候开始下一次转换。A/D转换器有若干种不同的类型,主要包括逐位比较型、积分型、计数型、并行比较型和电压-频率型。选用A/D转换器时,主要应根据使用场合的具体需求,分析转换速度、精度、价格、功能以及接口条件等因素,最终决定选择的类型。3.5.3人机接口设备
1.键盘
键盘是标准的输入设备,广泛用于嵌入式产品,如微波炉、传真机、复印机、激光打印机等。依赖键盘接口,嵌入式设备能够处理用户的输入信息,将嵌入式控制器的功能发挥得更大。键盘可以用来输入数字型数据或者选择控制设备的操作模式。
键盘主要由一个开关阵列组成,此外还包括一些逻辑电路来简化它到微处理器的接口。我们首先了解一个简单开关的原理,然后再分析由微处理器控制的键盘。
开关使用机械接触实现断开或接触电路,如图3-15所示。图3-15简单的开关电路机械开关的主要问题是图3-16所示的颤动。图3-16开关颤动原始的键盘是开关的简单集合,每个开关都有自己的一对引出线,直接连到处理器的输入端口上。当开关的数目增加时,这种开关的组合方法将很快用完所有的输入端口,原始键盘会变得不实用。更加实用的键盘通过排列开关形成如图3-17所示的开关阵列。图3-17扫描键盘阵列
2.LCD显示器
液晶显示(LiquidCrystalDisplay,LCD)是一种被动的显示,它不能发光,只能使用周围环境的光。液晶显示器显示图案或字符时只需要很小的能量,因此功耗低。小型化的LCD显示器成为较佳的显示设备。一般情况下,显示设备可以直接驱动,也可以通过帧缓冲区驱动。显示元素较少的显示器直接由逻辑电路驱动,而显示元素较多的显示器用RAM帧缓冲区驱动。
1)直接驱动
3-18所示为多个数字阵列直接驱动显示的简单例子。图3-18多个数字显示器
2)帧缓冲区
如图3-19所示,帧缓冲区是一个连到系统总线上的随机存取存储区。微处理器可以以任意所需次序将值写入帧缓冲区。这种显示方式主要适用于阴极射线管(Cathode-Ray
Tube,CRT)显示。当CRT被连到帧缓冲区时,它通常以光栅的顺序读像素,一次显示一行。图3-19帧缓冲显示系统
3)液晶控制板
大平面显示器通常由LCD构成。其中每个像素都由一个液晶体构成。LCD显示器到系统的接口独具特点,这主要是因为LCD像素阵列能够被随机访问。早期的液晶显示控制板被称为被动矩阵,它依靠一个二维的电线网络来编址像素。现代液晶显示控制板使用一种主动矩阵系统,它给每个像素配置转发器,以此来控制、访问LCD显示器。主动矩阵显示器提供了更高的对比度和显示质量。
3.触摸屏
触摸屏是覆盖在输出设备上的输入设备,用来记录触摸位置。把触摸屏覆盖在显示器上,使用者可以对显示的信息作出反应。
触摸屏按其工作原理分为表面声波屏、电容屏、电阻屏和红外屏等。其中常见的触摸屏是电阻式触摸屏。电阻式触摸屏用二维电压表来探测位置。如图3-20所示,触摸屏由两层被许多细小的透明隔离球隔开的导电薄层组成。图3-20电阻式触摸屏的结构
3.6通信设备
3.6.1通用异步收发器
通用异步收发器(UniversalAsynchronousReceiverandTransmitter,UART)是用于控制计算机与串行设备的接口。
1.数据通信模式
数据通信是两台数字设备之间的数据传输。从不同的角度划分,数据通信方式大致可以分为双工通信、串行和并行通信、同步和异步通信。
1)双工通信
双工通信是对相互通信的两台通信设备之间数据流向的描述。双工通信包括单工、半双工和全双工三种方式。双工通信方式的结构如图3-21所示。图3-21双工通信方式的结构
2)串行和并行通信
并行通信是指构成字符的二进制代码在并行信道上同时传输的方式。并行传输时,一次传输一个字符,收发双方不存在同步问题,传输速度较快。但是,并行传输需要并行信道,所以线路投资大,不适合小型化产品。
串行通信是指构成字符的二进制代码在一条信道上以位(码元)为单位,按时间顺序逐位传输的方式。串行传输时,发送端按位发送,接收端按位接收,同时还要对所传输的字符加以确认,所以收、发双方要采取同步措施,否则接收端将不能正确区分出所传输的字符。虽然串行通信的速度较慢,但是只需要一条传输信道,线路投资少,易于实现,因此在数据通信吞吐量不是很大的嵌入式系统中显得更加简易、方便、灵活。
3)异步和同步通信
串行通信有两种基本工作方式:异步通信和同步通信。在异步通信方式下,传输数据以字符为单位。当发送一个字符代码时,字符前面要加一个“起”信号,其长度为1个码元,极性为“0”;字符后面要加一个“止”信号,其长度为1、1.5或2个码元,极性为“1”。加上起、止信号后,即可区分出所传输的字符。传送时,字符可以连续发送,也可以单独发送,不发送字符时线路要保持为“1”状态。异步传输方式适用于1200b/s以下的低速传输,实现起来比较简单。
同步通信传输不需要加起、止信号,因此传输效率高,适用于2400b/s以上的数据传输,但是实现起来比较复杂。
2.标准异步串行通信接口
标准异步串行通信接口主要有以下几类:RS-232C、RS-422和RS-485。RS-232C是美国电子工业协会(EIA)正式公布的、在异步串行通信中应用最广的标准总线,适合短距离或带调制解调器的通信场合。为了提高数据传输速率和通信距离,EIA又公布了RS-422和RS-485串行总线接口标准。
1) RS-232C
RS-232C是美国电子工业协会(ElectronicIndustryAssociation,EIA)制定的在数据终端设备(DataTerminalEquipment,DTE)和数据通信设备(DataCommunicationEquipment,DCE)之间进行串行二进制数据交换的接口。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232C标准是一种硬件协议,规定了21个信号和25个引脚,用于连接DTE和DCE这两种设备。
2) RS-422
RS-422是EIA公布的“平衡电压数字接口电路的电气特性”标准,是为改善RS-232C标准的电气特性、又考虑与RS-232C兼容而制定的。RS-422与RS-232C的关键差别在于把单端输入改为双端差分输入,双方的信号地不再共用。
3) RS-485
RS-485是RS-422的变型。RS-422是全双工的,可以同时发送与接收;而RS-485是半双工的,在某一时刻,只能一个发送、另一个接收。
RS-485是一种多发送器的电路标准,它扩展了RS-422的性能,允许双线总线上驱动32个负载设备。负载设备可以是被动发送器、接收器或二者组合而成的收发器。当RS-485接口用于多点互连时,可节省信号线,便于高速远距离传送。许多智能仪器设备配有RS-485总线接口,以便于将它们进行联网。
表3-2对上述三种串行通信标准的性能进行了比较。表3-2RS-232C、RS-422A与RS-485性能比较
3.UART
UART提供了RS-232C数据终端设备接口,用于计算机和调制解调器或其他使用RS-232C接口的串行设备进行通信。作为接口的一部分,UART还提供了以下功能:将计算机外部传来的串行数据转换为字节,供计算机内部使用并行数据的器件使用;将由计算机内部传送过来的并行数据转换为输出的串行数据;在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验;在输出的数据流中加入“起”、“止”标记,并从接收数据流中删除“起”、“止”标记;处理计算机与外部串行设备的同步管理问题;处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。相对于微处理器,一台UART可作为一个甚至多个存储点或I/O端口。UART一般包括一个或多个状态寄存器,用于验证数据传输和接收时的状态、进程。微处理器通过UART能够判断何时已收到一个字节、何时已发送一个字节、是否产生通信错误等。UART还可以通过一个或多个控制寄存器进行配置,配置内容包括波特率的设置、终止位数量的设置以及在发送字节时产生中断等。异步通信在UART上几乎是透明地运行,收、发数据时,只需运行程序,简单地在UART上执行读/写操作即可。
比较流行的UART有NS16550、AMDZ8530、ACIA、Motorola6850、ZilogZ-80STO等。当UART用于嵌入式设计时,嵌入式系统就能够利用通信终端、计算机,甚至是其他嵌入式微处理器上的数据资源。3.6.2USB设备
1.USB总线概述
通用串行总线(UniversalSerialBus,USB)是1995年由Microsoft、Compaq、IBM等公司联合制定的一种新的计算机串行通信协议。USB协议得到各PC厂商、芯片制造商和PC外设厂商的广泛支持。
通用串行总线是一种将USB外围设备连接到主机的外部总线结构,它通过PCI总线和PC的内部系统数据线连接,实现数据传送。USB同时又是一种通信协议,它支持主系统和USB外围设备之间的数据传送,通过一个4针的标准插头,采用菊花链形式把所有的外设连接起来。
USB主要具有以下优点:
(1)支持热插拔(hotplug)和即插即用(plug-and-play),即在不关机的情况下可以安全地插上或断开USB设备,动态加载驱动程序。
(2)为所有的USB外设提供单一的、易于操作的标准连接类型,排除了外设对系统资源的占用,因此减少了硬件的复杂性,整个USB系统只有一个端口和一个中断,节省了系统资源。
(3) USB1.1提供全速12Mb/s和低速1.5Mb/s的模式,USB2.0提供高达480Mb/s的传输速率。
(4)为了适应各种不同类型外设的要求,USB提供了四种不同的数据传输类型。
(5)易于扩展,理论上最多可支持127个设备。
2.USB总线的硬件结构
USB通过四线电缆传送信号和电能,如图3-22所示。其中两根是用来传送数据的串行通道,另两根为下游(downstream)设备提供电能。图3-22USB连接线
USB系统采用级联星形拓扑,该拓扑由三个基本部分组成:主机(Host)、集线器(Hub)和功能设备,如图3-23所示。主机也称为根或RootHub,它做在主板上或作为适配卡安装在计算机上。主机通过主机控制器与USB设备进行交互,控制着USB总线上的数据和信息的流动。每个USB系统只能有一个根集线器,它连在主控制器上。集线器是USB结构中的特定成分,它提供用于将设备连接到USB总线上的端口,同时检测连接在总线上的设备,并为这些设备提供电源管理、负载总线的故障检测和恢复。集线器可为总线提供能源,也可为自身提供能源(从外部得到电能)。图3-23USB系统级联结构
3.USB总线的软件结构
(1) USB总线接口。USB总线接口处理电气层与协议层的互连,由主控制器实现。
(2) USB系统。USB系统用主控制器管理主机与USB设备间的数据传输。它与主控制器间的接口依赖于主控制器的硬件定义。同时,USB系统也负责管理USB资源,例如带宽和总线能量,这使得客户访问USB成为可能。USB系统包括三个基本组件:主控制器驱动程序(HCD)、USB驱动程序(USBD)和主机软件。
(3) USB客户软件。
4.USB总线的数据传输方式
数据和控制信号在主机和USB设备之间的交换存在两种通道:单向通道和双向通道。USB的数据传送是在主机和某个USB设备的指定端口之间进行的。这种主机和USB设备的端口间的联系称做通道。一般情况下,各个通道之间的数据流动是相互独立的,且一个指定的USB设备可有许多通道。对任何给定的设备进行设置时,一个通道上的数据传输只能支持下列四种USB数据传输方式中的一种:同步(isochronous)、控制(control)、中断(interrupt)和批量(bulk)。
(1)同步数据传输。同步数据传输提供了确定的带宽和间隔时间(latency)。它主要用于时间要求严格并且具有较强容错性的流数据传输,或者用于要求恒定数据传输速率的即时应用中。对于同步传输来说,即时的数据传递比数据的完整性更重要。
(2)控制数据传输。控制传输是双向传输,数据量通常较小。USB系统软件主要用来进行查询、配置和给USB设备发送通用的命令。控制传输方式可以传输8、16、32和64字节的数据,这依赖于设备和传输速度。控制传输的典型应用是在主机和USB外设之间的传输。
(3)中断数据传输。中断方式传输主要用于定时查询设备是否有中断数据传输。设备的端点模式器的结构决定了它的查询频率范围是1~255 ms,这种传输方式主要用于少量的、分散的、不可预测数据的传输,如键盘、操纵杆和鼠标等就使用这一类型。中断方式传输数据是单向的,且对于主机来说只有输入的方式。
(4)批量数据传输。批量方式传输主要应用在大量传输和接收数据,同时又没有带宽和间隔时间要求的情况下。批量数据由大量的数据组成,且是连续的。这种传输方式可以等到所有其他类型的数据传输完成之后再使用。
5.USB总线的数据传输原理
在USB结构中,占主导地位的是主控制器。主控制器要保证所有与其连接的数量不同、传输方式不同的设备能够同时正常工作。为此,USB主控制器使用间隔为1ms的帧来实现数据传输。由于有许多设备连接到USB总线上,因此每1ms产生的传输帧是混合的。在几种数据传输方式都存在的情况下,中断传输和同步传输对时间要求较高,因此占用了约90%的总带宽;控制传输占用了约10%的带宽;批量传输对时间要求不高,但数据量大,它使用剩下的可用带宽。 各种USB设备就是通过这种基本的帧结构实现共享USB带宽来传输数据的。在主机端,不同设备的数据传输请求被划分成若干个块(Transaction)。为了保证连接到主机上的设备可以同时工作,主机每次从不同设备取一个块构成一个1ms帧,然后将整个帧发送到USB总线上。每一个块由三个包(Packet)组成:标志包(TokenPacket)、数据包(DataPacket)和握手信号包(HandshakePacket)。根据令牌包里定义的设备地址和端点号,设备能够确定属于自己的相应数据。一根USB总线每次最多传输三个数据包。在每次传输开始时,主机控制器发送一个描述传输种类、传输方向、USB设备地址和终端号的USB数据包,该数据包就是标志包。在数据开始传输时,由标志包来标志数据的传输方向,即是从主机到设备或是从设备到主机;然后,发送端开始发送包含信息的数据包或表明没有数据传输。接收端要相应发送一个握手的数据包,以表明数据是否传输成功。USB设备从解码后的数据包的适当位置取出属于自己的数据。
6.USB设备即插即用的实现
USB设备可以实现热插拔。当USB设备插入到主机中时,主机通过查询设备的描述符(Descriptor)来了解设备,进而建立通信,这个过程叫做对设备的枚举。
图3-24是某个设备的描述符结构。图3-24一个USB设备的描述符结构
7.USB器件的选择
在开发一个USB设备之前,首先要根据具体使用要求选择合适的USB控制器。目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)和纯粹的USB接口芯片。
带USB接口的单片机从应用上可以分成两类,一类是从底层设计,专用于USB控制的单片机;另一类是增加了USB接口的普通单片机,如Cypress公司的EZ-USB(基于8051),选择这类USB控制器的最大好处在于开发者对系统结构和指令集非常熟悉,开发工具简单,但对于简单或低成本系统,价格也是在实际选择过程中需要考虑的因素。纯粹的USB接口芯片仅处理USB通信, 必须有一个外部微处理器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(IIC接口)、PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品的系统结构作很大的改动)。
8.USB系统的开发流程
一个典型的USB系统的开发主要由以下流程组成:
(1)系统结构、功能的定义。
(2) USB接口方法的选择。
(3)选择与微处理器的接口电路。
(4)固件编程。
(5)开发PC端驱动程序与应用程序。
(6) USB系统调试。3.6.3Ethernet设备
1.以太网的特点
以太网是最广泛应用的局域网络技术,实现了在小区域(如一个办公室)范围内连接计算机的功能。以太网的数据速率为10Mb/s,而快速以太网(FastEthernet)的数据速率为
100Mb/s。最常用的以太网协议是IEEE802.3标准,媒体的存取规则采用CSMA/CD(载波检测多路存取/冲突检测)。现代的操作系统均能同时支持这些协议标准,因此对嵌入式系统的应用来说,考虑系统精简因素,只需要支持这一种就够了,除非有特殊需要,否则没有必要支持太多协议。
2.以太网的数据传输
以太网传输报文的基本格式如图3-25所示。它提供了目的地址和源地址,同时还提供了要传送的有效数据。图3-25以太网传输报文的基本格式以太网的数据传输有以下特点:
(1)所有数据位的传输由低位开始,传输的位流采用曼彻斯特编码。
(2)以太网传输的数据段长度最小为60字节,最大为1514字节。
(3)通常以太网卡可以接收来自三种地址的数据,即广播地址、多播地址(在嵌入式系统中很少使用)和它自己的地址。但当用于网络分析和监控时,网卡也可以设置为接收任何数据包。
(4)任何两个网卡的物理地址都是不一样的。网卡地址由专门结构分配,不同厂家使用不同地址段,同一厂家的任意两个网卡的地址也是唯一的。
3.嵌入式以太网接口的实现方法
在嵌入式系统中实现以太网接口的方法通常有两种。
方法一是采用嵌入式处理器与网卡芯片的组合。
方法二是直接采用带有以太网接口的嵌入式处理器。
3.7其他
3.7.1电源
大多数嵌入式系统本身都有电源,且电源的供电方式具有一种特定的电压范围。嵌入式系统中各个单元的电压范围有四种:5.0 ± 0.25V、3.3 ± 0.3V、2.0 ± 0.2V和1.5 ± 0.2 V。此外,嵌入式系统微控制器中的电可擦可编程只读存储器(EEPROM)、RS-232串行接口,均需要提供12 ± 0.2V的电压。3.7.2时钟
在嵌入式系统中,处理器需要有一个时钟振荡(clockoscillator)电路。时钟控制着CPU、系统定时器和CPU机器周期的各种时序需求。机器周期用于两个方面:一方面,从存储器中取回代码和数据,然后在处理器中对它们进行译码并运行;另一方面,将结果传回存储器中。时钟控制着执行一条指令的时间。
通用计算机可以使用分离的时钟电路,如IBMPC/XT使用专用时钟芯片8284产生时钟信号。而嵌入式系统通常为了节省电路,把时钟电路集成在嵌入式处理器上,外面只需要接晶体即可。嵌入式系统的时钟电路一般有以下几种形式:RC时钟、石英晶体、石英振荡器、锁相倍频时钟和多时钟源。
(1) RC时钟。RC时钟一般用于嵌入式微控制器。这种时钟源的振荡频率的稳定性低于时钟振荡器,但是功耗比较低。当嵌入式系统对时钟的稳定性要求不高时,例如家用电器的控制,可以采用这种电路,且其时钟频率可以动态修改。嵌入式处理器的功耗与时钟频率基本呈线性关系,因此根据处理器的负荷动态改变时钟频率以降低功耗是比较好的方法。
(2)石英晶体。基于石英晶体的时钟电路,其振荡电路集成在处理器上,处理器引出两个引脚,分别是放大器的输入和输出,石英晶体接在这两个引脚上,如图3-26所示。图3-26由石英晶体构成的振荡器电路结构
(3)石英振荡器。与石英晶体不同,石英振荡器把石英晶体和振荡电路集成一体,形成石英振荡器电路,直接输出时钟信号给处理器。石英振荡器输出的时钟信号接在处理器的输入引脚上,如图3-27所示。图3-27石英振荡器的振荡器电路
(4)锁相倍频时钟。通常在高性能的嵌入式处理器上采用锁相倍频电路。该时钟电路的锁相环是一个倍频锁相环,时钟电路外接的石英晶体通常采用32768Hz,锁相环的倍频系数可以通过编程设置,倍频得到的高频时钟经过分频器进行分频,分别送给处理器的CPU内核和各个I/O接口电路。
(5)多时钟源。高性能的嵌入式处理器如32位的处理器,功能强大,芯片上集成了众多的智能电路,很多的智能电路都需要不同频率的时钟源。此外,出于节电设计的考虑,不同I/O电路的工作状态可以由处理器的编程控制。为此,这样的处理器设计了许多时钟源,分别为CPU内核、实时时钟电路、不同的I/O电路提供时钟信号。3.7.3复位
1.复位电路概述
嵌入式处理器的复位电路就是使处理器从起始地址开始执行指令。这个起始地址是处理器程序计数器(x86系列处理器中是指令指针和代码段寄存器)加电时的默认设置。处理器复位之后,从存储器的这个地址开始取程序指令。在一些存储器(如6HC11和HC12)中有两个起始地址,一个作为加电复位向量,另一个作为执行Reset指令后或者发生超时(如来自看门狗定时器的超时)之后的复位向量。复位电路激活固定的周期数后处于无效状态。处理器电路保持复位管脚处于有效状态,然后使之处于无效状态,使程序从默认的起始地址开始执行。如果复位管脚或内部复位信号与系统中其他的单元(例如I/O接口、串行接口)相连接,那么它会被处理器再一次激活,成为一个输出管脚,用于驱动系统中其他单元处于复位状态。在处理器动作之后使复位信号无效,程序又会从起始地址开始执行。
通常使用的复位电路有以下几种形式:阻容复位电路、专用复位电路、手动复位电路、看门狗定时器的时钟输出复位电路以及软件复位电路。
2.阻容复位电路
阻容复位电路是最简单的复位电路,其电路如图3-28所示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论