《最新嵌入式硬件平台PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式硬件平台PPT课件.ppt(122页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式硬件平台嵌入式硬件平台第3章嵌入式硬件平台 3.1 引引 言言 嵌入式系统的硬件除了核心部件嵌入式处理器外,还包括存储器系统、外围接口部件以及连接各种设备的总线系统。其中,存储器是嵌入式系统存放数据和程序的功能部件,而外围设备决定了应用于不同领域的嵌入式系统的独特功能。第3章嵌入式硬件平台 第3章嵌入式硬件平台 第3章嵌入式硬件平台 第3章嵌入式硬件平台 第3章嵌入式硬件平台 第3章嵌入式硬件平台 PCI力不从心n南桥/北桥nIntel 440系列以后nPCI地位大大降低nHost/PCI为北桥nPCI/ISA为南桥第3章嵌入式硬件平台 使用这样的总线配置主要考虑到以下几个原因:(1)高
2、速总线通常提供较宽的数据连接。(2)高速总线通常要更昂贵的电路和连接器,可以通过使用较慢的、比较便宜的总线来降低低速设备成本。(3)桥允许总线独立操作,因此可以在I/O操作中提供并行性。在高速总线和低速总线之间的总线桥是高速总线的受控器,是低速总线的主控器。桥从高速总线上获取指令并将其传到低速总线,将结果从低速总线传到高速总线上。第3章嵌入式硬件平台 3.3.4 3.3.4 总线实例总线实例这里以ARM的一个总线系统为例,简单分析该系统的组成和特征。由于ARM微处理器由许多不同制造商制造,因此芯片外提供的总线随芯片变化而变化。ARM已经为单芯片系统创建了一个独立的总线规格说明AMBA规范。AM
3、BA总线(ARM99A)支持将多个CPU、存储器和外围设备集成在片上系统中。如图3-9所示,AMBA规格说明包括两条总线:AHB和APB。其中,AMBA高性能总线(AHB)是为高速传输而经过优化的,它直接连到CPU上并支持多种高性能总线的特性:流水线技术、突发传输、分离事务和多总线主控器等。桥用来将AHB连到AMBA外围设备总线(APB)上。第3章嵌入式硬件平台 图3-9 ARM AMBA总线系统 第3章嵌入式硬件平台 3.4 存存 储储 设设 备备 3.4.1 3.4.1 嵌入式系统存储器子系统的结构嵌入式系统存储器子系统的结构嵌入式系统的存储器子系统与通用计算机的存储器子系统的功能并无明显
4、的区别,这决定了嵌入式系统的存储器子系统的设计指标和方法也可以采用通用计算机的方法,尤其是嵌入通用计算机的大型嵌入式系统更是如此。第3章嵌入式硬件平台 图3-10 分级存储器系统 第3章嵌入式硬件平台 1、寄存器组是最高一级的存储器,一般是微处理器内含的。2、高速缓冲存储器(Cache)。其存取速度足以与微处理器相匹配。一般透明使用。可减少内存平均访问时间。3、内存。运行的程序和数据都放在内存中。分RAM和ROM。4、大容量的外存。目前嵌入式系统中常用闪存作为大容量硬盘存储各种程序和数据。第3章嵌入式硬件平台 3.4.2 RAM3.4.2 RAMRAM(Random Access Memory
5、,随机存储器)分为:1静态静态RAM2动态动态RAM第3章嵌入式硬件平台 图3-12 DRAM通过DRAM控制器组成存储器系统 第3章嵌入式硬件平台 3 3RAMRAM的选择的选择在设计嵌入式系统时,随机存储器的选择一般有两种:SRAM和DRAM。选择时,通常考虑以下因素:(1)如果系统的随机存储器的容量不是很大,则一般采用SRAM;反之,选择DRAM。(2)对于特别高速度的应用,使用SRAM。(3)如果嵌入式系统对功耗敏感,可使用SRAM。因为DRAM需要定时刷新,消耗能力相对大,而SRAM在系统进入待机工作方式时,只需要微小的待机电流就可以维持数据不丢失。需要注意的是,SRAM的平均功耗低
6、,但是工作时功耗不一定低。第3章嵌入式硬件平台(4)对于嵌入式处理器而言,有的嵌入式处理器芯片集成了DRAM控制器,这时选择DRAM比较好。一般的,小规模的嵌入式系统不建议使用分离的DRAM控制器DRAM的方案,因为这种方案既会增加系统的复杂性(如电路板的面积、故障率等),又会增加系统的成本。因此如果选用了DRAM,那么尽量使用带有DRAM控制器的嵌入式处理器,然后配合使用DRAM。(5)目前,基于32位嵌入式处理器的嵌入式系统一般使用DRAM。(6)复杂的嵌入式系统可以采用SRAM和DRAM混合设计的方案。不同要求的数据使用不同的随机存储器,以满足系统整体的优化设计。第3章嵌入式硬件平台(7
7、)嵌入式系统的设计,在使用SRAM和DRAM的成本上,需要仔细并与整个系统的硬件一起进行核算,最终做出选择。在选择存储器类型时,一般要考虑存取时间和成本。SRAM提供了极快的存取时间,一般比DRAM快4倍,但是造价十分昂贵。通常,SRAM只是用于那些存取速度极端重要的场合。在需要使用大容量的RAM时,一般选择使用DRAM。很多嵌入式系统混合使用两种RAM,如关键数据通道上的一小块SRAM(几百至几千个字节)和其他所有地方的一大块DRAM(以兆计)。第3章嵌入式硬件平台 3.4.3 ROM3.4.3 ROMROM(Read-Only Memory,只读存储器)可以分为:掩模ROM PROM:一次
8、性编程ROM EPROM:紫外线擦除PROM EEPROM:电可擦可编程 第3章嵌入式硬件平台 3.4.4 Flash Memory3.4.4 Flash MemoryFlash Memory(按块擦除存储器)使用标准电压擦写和编程,允许芯片在标准系统内部编程。这就允许Flash Memory在重新编程的同时存储新的内容。此外,EEPROM必须被整体擦写,Flash Memory可以一块一块地擦写。大部分Flash Memory允许某些块被保护,这一点对存储空间有限的嵌入式系统非常有用,即将引导代码放进保护块内而允许更新设备上其他的存储器块。第3章嵌入式硬件平台 表表3-1 Flash Mem
9、ory与传统存储器技术的比较与传统存储器技术的比较 第3章嵌入式硬件平台 根据工艺的不同,Flash Memory主要有两类:NOR Flash Memory和NAND Flash Memory。NOR Flash Memory是在EEPROM的基础上发展起来的,它的存储单元由N-MOS构成,连接N-MOS单元的线是独立的。NOR Flash Memory的特点是可以随机读取任意单元的内容,适合于程序代码的并行读/写、存储,所以常用于制作计算机的BIOS存储器和微控制器的内部存储器等。NAND Flash Memory是将几个N-MOS单元用同一根线连接起来,可以按顺序读取存储单元的内容,适合
10、于数据或文件的串行读/写。第3章嵌入式硬件平台 Flash Memory不仅可以用作嵌入式系统的程序存储器,也可以作许多其他的应用。(1)Flash Memory文件系统:因为Flash Memory提供了可被重写的非易失性存储,所以它可以被看作类似于任何其他的二级存储系统,如硬盘。在作为文件系统的情况下,由驱动程序提供的函数要更加面向文件,提供诸如open()、close()、read()、write()等标准文件系统函数。Flash Memory文件系统的组织与普通的外存基本相同。(2)便携设备的存储装置:随着数码产品的飞速发展,Flash Memory作为一种最常用的存储装置应用于数码相
11、机(如CF卡、XD卡、记忆棒等)、MP3等数码产品中。第3章嵌入式硬件平台 3.5 I/O 设设 备备 3.5.1 3.5.1 定时器定时器/计数器计数器所有的嵌入式处理器都集成了定时器/计数器单元。系统中至少有一个定时器设备,用作系统时钟。定时器和计数器都是由带有保存当前值的寄存器和向当前寄存器值加1的增量输入的加法器逻辑电路组成的。但是,定时器和计数器的用处不同,主要体现在:定时器的计数装置是连到周期性时钟信号上的,用来测量时间间隔;而计数器的计数装置是连到非周期性信号上的,用来计算外部事件的发生次数。因为同样的逻辑电路可以有这两种使用方式,所以该设备经常被称为“定时器/计数器”。第3章嵌
12、入式硬件平台 嵌入式处理器上的定时器/计数器通常具有以下功能:(1)嵌入式操作系统的任务调度,特别是具有时间片轮转调度功能的嵌入式操作系统的任务调度,必须使用定时器产生时间片。(2)嵌入式操作系统的软件时钟需要基于硬件定时器产生定时信号。(3)通信电路的波特率发生器。(4)实时时钟电路。(5)集成的片上A/D转换和D/A转换电路。(6)具有液晶控制器的嵌入式处理器应用液晶屏的刷新。(7)处理器监控电路,如看门狗等。(8)集成的动态存储器控制器用于动态存储器的刷新。第3章嵌入式硬件平台 图3-14展示了定时器/计数器的内部结构。当计数信号被确认时,一个n位的定时器/计数器使用一个n位的寄存器来保
13、存当前计数值并使用半减器阵列减去该计数器的值。组合逻辑电路用来检查计数值是否为0。输出Done发出0计数信号。为了对控制超时进行响应而不是确切要求2n次事件发生,使用一个复位寄存器提供给计数寄存器装入的值。定时器/计数器用逻辑电路来装载复位寄存器。此外,大部分计数器提供循环和非循环的操作模式。在循环模式中,一旦计数器达到Done状态,它自动重装并继续计数;在非循环操作模式,定时器/计数器等待一个来自微处理器的明确信号来重新计数。第3章嵌入式硬件平台 图3-14定时器/计数器的内部结构 第3章嵌入式硬件平台 3.5.2 3.5.2 模模/数转换器和数数转换器和数/模转换器模转换器模/数(A/D)
14、转换器和数/模(D/A)转换器是非数字设备(即模拟信号源)和嵌入式系统之间联系的接口。D/A转换相对简单,转换器接口仅包括数据值,输入值被连续转换成模拟信号。第3章嵌入式硬件平台 A/D转换器是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。A/D转换需要更复杂的电路,所以也需要更复杂的接口。A/D转换在将模拟输入转换为数字形式前需要对模拟输入进行采样。控制信号使得A/D转换器进行采样并将其数字化。典型的A/D转换器接口除了模拟输入外还有两个主要的数字输入,一个数据端口允许A/D寄存器被读/写;另一个时钟输入信号通知什么时候开始下一次转换。A/D转换器有若干
15、种不同的类型,主要包括:逐位比较型、积分型、计数型、并行比较型和电压频率型。选用A/D转换器时,主要应根据使用场合的具体需求,分析转换速度、精度、价格、功能以及接口条件等因素,最终决定选择的类型。第3章嵌入式硬件平台 3.5.3 人机接口设备人机接口设备 1 1键盘键盘键盘是标准的输入设备,广泛用于嵌入式产品,如微波炉、传真机、复印机、激光打印机等。依赖键盘接口实现用户的输入,使得嵌入式设备能够处理用户的输入信息,将嵌入式控制器的功能发挥得更大。键盘可以用来输入数字型数据或者选择控制设备的操作模式。键盘主要由一个开关阵列组成,此外还包括一些逻辑电路来简化它到微处理器的接口。我们首先了解一个简单
16、开关的原理,然后再分析由微处理器控制的键盘。第3章嵌入式硬件平台 开关使用机械接触实现断开或接触电路,如图3-15所示。当开关打开时,通过处理器I/O接口的一个上拉电阻提供逻辑1;当开关闭合时,处理器I/O接口的输入被拉到逻辑0。机械开关的主要问题是图3-16所示的颤动。当通过按下连接到开关臂上的按钮将开关压上时,接触点可能看起来稳定而且很快闭合,但实际上压力导致接触点颤动几次才停下来。这种颤动显现为按了几次开关,持续时间通常维持在530 ms之间。为了避免这种颤动,可以使用一个单步定时器形成硬件消颤电路,也可以用软件来消除开关输入颤动。第3章嵌入式硬件平台 图3-15 简单的开关电路 第3章
17、嵌入式硬件平台 图3-16 开关颤动 第3章嵌入式硬件平台 原始的键盘是开关的简单集合,每个开关有自己的一对引出线,直接连到处理器的输入端口上。这种开关的组合方法使得当开关的数目增加时,将很快用完所有的输入端口,原始键盘会变得不实用。更加实用的键盘通过排列开关形成如图3-17所示的开关阵列。一个瞬时接触开关放置在每一行与每一列的交叉点处,使用编码来表示被按下的开关,形成编码键盘,通过扫描开关阵列来确定是否有键被按下。与原始键盘不同,扫描键盘阵列每次只读开关的一行。阵列左边的多路分路器选择要读的行。当扫描输入为1时,该值被送到该行的每一列,如果某个键被按下,那么该列的1被探测到。由于每列只有一个
18、键被激活,因此该值唯一代表了一个键。行地址和列输出被用来编码,或者用电路来给出不同的编码。第3章嵌入式硬件平台 图3-17 扫描键盘阵列 第3章嵌入式硬件平台 键盘编码可能使得多个键的组合无法被识别。例如,在PC键盘中,必须选择一种编码使Ctrl+Q之类的键能被识别并送进PC。另外,键盘编码还可能导致不允许同时按键。例如,在大部分应用中,如果按1,在未释放之前再按2,那么大多数应用是想要键盘先发送1再发送2。这种编码电路的一种简单实现是在一个键被按下而未释放之前,丢弃已按下的其他任何字符。键盘的微控制器可以被编程处理多个键被同时按下(即多键滚转),这使得同时按键被识别、入栈,而在键被释放时,再
19、依次传输。第3章嵌入式硬件平台 2 2LCDLCD显示器显示器1)直接驱动如图3-18所示,多个数字阵列是直接驱动显示的简单例子。单数字显示器通常有七段,每段可以是发光二极管,也可以是液晶显示器。这种显示用数字输入来选择当前要更新的数字,被选择的数字在当前数据值的基础上激活它的显示元件。显示驱动器复杂,重复扫描数字并将当前值送到显示器上。第3章嵌入式硬件平台 图3-18 多个数字显示器 第3章嵌入式硬件平台 2)帧缓冲区如图3-19所示,帧缓冲区是一个连到系统总线上的随机存取存储区。微处理器可以以任意所需次序将值写入帧缓冲区。这种显示方式主要适用于阴极射线管(Cathode-Ray Tube,
20、CRT)显示。当CRT被连到帧缓冲区时,它通常以光栅的顺序读像素,一次显示一行。第3章嵌入式硬件平台 图3-19 帧缓冲显示系统 第3章嵌入式硬件平台 3)液晶控制板大平面显示器通常由LCD构成。其中每个像素都由一个液晶体构成。LCD显示器到系统的接口独具特点,这主要因为LCD像素阵列能够被随机访问。早期的液晶显示控制板被称为被动矩阵,它依靠一个二维的电线网络来编址像素。现代液晶显示控制板显示器使用一种主动矩阵系统,它给每个像素配置转发器,以此来控制、访问LCD显示器。主动矩阵显示器提供了更高的对比度和显示质量。第3章嵌入式硬件平台 3 3触摸屏触摸屏触摸屏是覆盖在输出设备上的输入设备,用来记
21、录触摸位置。把触摸屏覆盖在显示器上,使用者可以对显示的信息作出反应。触摸屏按其工作原理不同分为表面声波屏、电容屏、电阻屏和红外屏等。其中常见的触摸屏是电阻式触摸屏。电阻式触摸屏用二维电压表来探测位置。如图3-20所示,触摸屏由两层被许多细小的透明隔离球隔开的导电薄层组成。当手指或笔触摸屏幕时,平常互相绝缘的导电层在触摸点位置有了一个接触。在顶层的导电层上加上电压,它的电阻就在穿过该层时产生电势差;然后顶层在接触点对电压采样;最后用模/数转换器来测量电压,以此得出位置。触摸屏通过交替使用水平和垂直电压梯度来获得x和y坐标位置。第3章嵌入式硬件平台 图3-20 电阻式触摸屏的结构 第3章嵌入式硬件
22、平台 3.6 通通 信信 设设 备备 3.6.1 3.6.1 通用异步收发器通用异步收发器通用异步收发器(Universal Asynchronous Receiver and Transmitter,UART)是用于控制计算机与串行设备的接口。我们在介绍数据通信模式和串行通信标准的基础上,分析通用异步收发器的原理和功能。1 1数据通信模式数据通信模式数据通信是两台数字设备之间的数据传输。从不同的角度划分,数据通信方式大致可以分为双工通信、串行和并行通信、同步和异步通信。第3章嵌入式硬件平台 1)双工通信双工通信是对相互通信的两台通信设备之间数据流向的描述。双工通信包括单工、半双工和全双工三种
23、方式。双工通信方式的结构如图3-21所示。第3章嵌入式硬件平台 图3-21 双工通信方式的结构 第3章嵌入式硬件平台(1)单工通信方式是指两台通信设备间数据只能在一个方向上传送。在单工方式下,两台通信设备一台为发送设备,另一台为接收设备,它们之间只有一条通信链路。(2)半双工通信方式是指两台相互通信的设备均具有收发数据的能力,但在某一时间内它们只能执行一种操作(收或发),不能同时执行收、发两种操作;在它们之间的通信线路的两个方向上均可传输数据,但在某一时间内只能在一个方向上传输数据。为实现半双工通信,两台通信设备间只需一条通信线路,但各通信设备必须配备收发切换开关。(3)全双工通信方式是指相互
24、通信的两台设备可以同时发送和接收数据,即数据在同一时刻可在两个方向上传输,因此它们之间至少需要两条通信线路。第3章嵌入式硬件平台 2)串行和并行通信并行通信是构成字符的二进制代码在并行信道上同时传输的方式。并行传输时,一次传输一个字符,收发双方不存在同步问题,传输速度较快。但是,并行传输需要并行信道,所以线路投资大,不适合小型化产品。串行通信是指构成字符的二进制代码在一条信道上以位(码元)为单位,按时间顺序且按位传输的方式。串行传输时,发送端按位发送,接收端按位接收,同时还要对所传输的字符加以确认,所以收、发双方要采取同步措施,否则接收端将不能正确区分出所传输的字符。虽然串行通信的速度慢,但是
25、只需要一条传输信道,线路投资少,易于实现,因此在数据通信吞吐量不是很大的嵌入式系统中显得更加简易、方便、灵活。第3章嵌入式硬件平台 3)异步和同步通信串行通信有两种基本工作方式:异步通信和同步通信。在异步通信方式下,传输数据以字符为单位。当发送一个字符代码时,字符前面要加一个“起”信号,其长度为1个码元,极性为“0”;字符后面要加一个“止”信号,其长度为1、1.5或2个码元,极性为“1”。加上起、止信号后,即可区分出所传输的字符。传送时,字符可以连续发送,也可以单独发送,不发字符时线路要保持为“1”状态。异步传输方式适用于1200 b/s以下的低速传输,实现起来比较简单。同步通信传输不需要加起
26、、止信号,因此传输效率高,适用于2400 b/s以上的数据传输,但是实现起来比较复杂。第3章嵌入式硬件平台 2 2标准串行通信接口标准串行通信接口标准异步串行通信接口主要有以下几类:RS-232C、RS-422和RS-485。RS-232C是美国电子工业协会(EIA)正式公布的、在异步串行通信中应用最广的标准总线,适合短距离或带调制解调器的通信场合。为了提供数据传输速率和通信距离,EIA又公布了RS-422和RS-485串行总线接口标准。第3章嵌入式硬件平台 1)RS-232CRS-232C是美国电子工业协会(Electronic Industry Association,EIA)制定的在数据
27、终端设备(Data Terminal Equipment,DTE)和数据通信设备(Data Communication Equipment,DCE)之间进行串行二进制数据交换的接口。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232C标准是一种硬件协议,规定了21个信号和25个引脚,用于连接DTE和DCE两种设备。第3章嵌入式硬件平台 RS-232C标准规定的数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19 200 b/s;驱动器允许有不超过2500 pF的电容负载,通信距离将受此电容限制。例如,当信号传输速率为20
28、 kb/s时,最大传输距离为15 m。传输距离短的另一个原因是RS-232C属于单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于短距离通信。第3章嵌入式硬件平台 RS-232C接口的缺点主要表现在两个方面:数据传输速率慢和传输距离短。RS-232C规定的20 kb/s的传输速率虽然能够满足异步通信要求(通常异步通信速率限制在19.2 kb/s以下),但对某些同步系统来说不能满足传输速率要求。此外,RS-232C接口的一般设备之间电缆长度为15 m,最长也不会超过60 m。第3章嵌入式硬件平台 2)RS-422RS-422是EIA公布的“平衡电压数字接口电路的电气特性”标准,是为
29、改善RS-232C标准的电气特性、又考虑与RS-232C兼容而制定的。RS-422与RS-232C的关键差别在于把单端输入改为双端差分输入,双方的信号地不再共用。RS-422给出了对电缆、驱动器的要求,规定了双端电气接口形式,并使用双绞线传送信号。与RS-232C相比,RS-422传输信号距离长、速度快。传输率最大为10 Mb/s,在此速率下,电缆允许长度为120 m。如果采用较低传输速率,如90 kb/s,则最大距离可达1200 m。第3章嵌入式硬件平台 3)RS-485RS-485是RS-422的变型,RS-422是全双工的,可以同时发送与接收;而RS-485是半双工的,在某一时刻,只能一
30、个发送另一个接收。RS-485是一种多发送器的电路标准,它扩展了RS-422的性能,允许双线总线上驱动32个负载设备。负载设备可以是被动发送器、接收器或二者组合而成的收发器。当用于多点互连时,可节省信号线,便于高速远距离传送。许多智能仪器设备配有RS-485总线接口,便于将它们进行联网。第3章嵌入式硬件平台 表表3-2 RS-232C、RS-422A与与RS-485性能比较性能比较 第3章嵌入式硬件平台 3 3UARTUARTUART提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其他使用RS-232C接口的串行设备进行通信。作为接口的一部分,UART还提供了以下功能:将计
31、算机外部传来的串行数据转换为字节,供计算机内部使用并行数据的器件使用;将由计算机内部传送过来的并行数据转换为输出的串行数据;在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验;在输出的数据流中加入“起”、“止”标记,并从接收数据流中删除“起”、“止”标记;处理计算机与外部串行设备的同步管理问题;处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。第3章嵌入式硬件平台 相对于微处理器,一台UART是作为一个甚至多个存储点或I/O端口的。UART一般包括一个或多个状态寄存器,用于验证数据传输和接收时的状态、进程。微处理器能够判断何时已收到一个字节、何时已发送一个字节、是否
32、产生通信错误等。UART还可以通过一个或多个控制寄存器进行配置,配置内容包括波特率的设置、终止位数量的设置以及在发送字节时产生中断等。异步通信在UART上几乎是透明地运行,为了收、发数据,只需运行程序,简单地在UART上执行读/写操作。比较流行的UART有NS16550、AMD Z8530、ACIA、Motorola 6850、Zilog Z-80 STO等。当UART用于嵌入式设计时,嵌入式系统就能够利用通信终端、计算机甚至是其他嵌入式微处理器上的数据资源。第3章嵌入式硬件平台 3.6.2 USB3.6.2 USB设备设备1 1USBUSB总线概述总线概述连接计算机外设的串行数据总线,其技术
33、的发展一直非常缓慢。1969年EIA推出的RS-232C串行总线至今仍是连接计算机外设的主流串行总线。尽管在20世纪70年代和80年代陆续推出了RS-422A、RS-449、RS-485和RS-530等串行总线(其中RS-449的设计初衷是想取代 RS-232C,而RS-530则是想取代RS-449),但由于种种原因都没有改变RS-232C先入为主的主导地位。因此,长期以来,串行总线只用于连接慢速外设或用作低速网络的总线。第3章嵌入式硬件平台 通用串行总线(Universal Serial Bus,USB)是1995年Microsoft、Compaq、IBM等公司联合制定的一种新的计算机串行通
34、信协议。USB协议得到各PC厂商、芯片制造商和PC外设厂商的广泛支持。从当初的0.7、0.8版本到现在广泛采用的1.0、1.1版本,甚至到正在逐步推广的2.0版本,USB本身也在不断地发展和完善。通用串行总线是一种将USB外围设备连接到主机的外部总线结构,它通过PCI总线和PC的内部系统数据线连接,实现数据传送。USB同时又是一种通信协议,它支持主系统和USB外围设备之间的数据传送,通过一个4针的标准插头,采用菊花链形式把所有的外设连接起来。第3章嵌入式硬件平台 USB主要具有以下优点:(1)支持热插拔(hot plug)和即插即用(Plug-and-Play),即在不关机的情况下可以安全地插
35、上或断开USB设备,动态加载驱动程序。(2)为所有的USB外设提供单一的、易于操作的标准连接类型,排除了外设对系统资源的需求,因此减少了硬件的复杂性和对端口的占用,整个USB系统只有一个端口和一个中断,节省了系统资源。(3)USB1.1提供全速12 Mb/s和低速1.5 Mb/s的模式,USB2.0提供高达480 Mb/s的传输速率。(4)为了适应各种不同类型外设的要求,USB提供了四种不同的数据传输类型。(5)易于扩展,理论上最多可支持127个设备。第3章嵌入式硬件平台 2 2USBUSB总线的硬件结构总线的硬件结构USB通过四线电缆传送信号和电能,如图3-22所示。其中两根是用来传送数据的
36、串行通道,另两根为下游(Downstream)设备提供电能。第3章嵌入式硬件平台 图3-22 USB连接线 第3章嵌入式硬件平台 D+、D-是一对差模信号线,它支持两种数据传输率。以USB1.1为例,对于高速外设,USB以全速12 Mb/s传输数据,但必须使用屏蔽的双绞线且长度不超过5 m;对于低速外设,USB则以1.5 Mb/s的速率传输数据,这种模式下可以使用无屏蔽的非双绞线,但长度不超过3 m。为了保证能够提供一定电平的信号并且与终端的负载匹配,在电缆的每一端都使用不平衡终端负载。这种终端负载既能保证检测出外设与端口的连接和分离,又能区分高速与低速USB总线,可以根据外设情况在两种传输模
37、式中自动动态切换。VBUS通常为+5 V的电源,GND是地线。第3章嵌入式硬件平台 USB总线是基于令牌的总线,类似于令牌环网络。USB主控制器广播令牌,总线上的设备检测令牌中的地址是否与自身相符,通过接收或者发送数据来响应主机。USB通过支持悬挂/恢复操作来管理USB总线电源。USB系统采用级联星型拓扑,该拓扑由三个基本部分组成:主机(Host)、集线器(Hub)和功能设备,如图3-23所示。主机也称为根或Root Hub,它做在主板上或作为适配卡安装在计算机上。主机通过主机控制器与USB设备进行交互,控制着USB总线上的数据,并控制信息的流动。每个USB系统只能有一个根集线器,它连在主控制
38、器上。集线器是USB结构中的特定成分,它提供用于将设备连接到USB总线上的端口,同时检测连接在总线上的设备,并为这些设备提供电源管理,负载总线的故障检测和恢复。集线器可为总线提供能源,也可为自身提供能源(从外部得到电能)。第3章嵌入式硬件平台 图3-23 USB系统级联结构 第3章嵌入式硬件平台 3USB总线的软件结构总线的软件结构每个USB仅有一个主机,在USB通信过程中占主导地位。主机包括USB总线接口、USB设备层和功能层三层结构。主机各层具有的功能包括:检测连接和移去的USB设备、管理主机和USB设备间的数据流、连接USB状态和活动统计、控制主控制器和USB设备间的电气接口等。(1)U
39、SB总线接口。USB总线接口处理电气层与协议层的互连,由主控制器实现。(2)USB系统。USB系统用主控制器管理主机与USB设备间的数据传输。它与主控制器间的接口依赖于主控制器的硬件定义。同时,USB系统也负责管理USB资源,例如带宽和总线能量,这使得客户访问USB成为可能。USB系统包括三个基本组件:主控制器驱动程序(HCD)、USB驱动程序(USBD)和主机软件。第3章嵌入式硬件平台 主控制器驱动程序:该程序可以把不同主控制器设备映射到USB系统中。通用主控制器驱动程序(UHCD)处于软结构的最低层,实现了USB主控制器通信和控制USB主控制器,并且对系统软件的其他部分是隐蔽的。系统软件中
40、的对高层通过UHCD的软件接口与主控制器通信。USB驱动程序:该程序在UHCD驱动器之上,提供驱动器级的接口,以满足现有设备驱动器设计的要求。主机软件:这些软件本来是用于向设备驱动程序提供配置信息和装载结构的,但在某些操作系统中没有提供USB系统软件,设备驱动程序将应用操作系统提供的接口而不是直接访问USB驱动程序接口。第3章嵌入式硬件平台(3)USB客户软件。USB客户软件是软件结构的最高层,负责处理特定的USB设备驱动。客户程序层描述所有直接作用于设备的软件入口。当设备系统被检测到后,这些客户程序将直接作用于外围硬件。这种共享特性将USB系统软件置于客户和它的设备之间,客户程序要根据USB
41、在客户端形成的设备映像对它进行处理。第3章嵌入式硬件平台 4USB总线的数据传输方式总线的数据传输方式数据和控制信号在主机和USB设备之间的交换存在两种通道:单向通道和双向通道。USB的数据传送是在主机和某个USB设备的指定端口之间进行的。这种主机和USB设备的端口间的联系称作通道。一般情况下,各个通道之间的数据流动是相互独立的,且一个指定的USB设备可有许多通道。对任何给定的设备进行设置时,一个通道上的数据传输只能支持下列四种USB数据传输方式中的一种:同步(isochronous)、控制(control)、中断(interrupt)和批量(bulk)。第3章嵌入式硬件平台(1)同步数据传输
42、。同步数据传输提供了确定的带宽和间隔时间(latency)。它主要用于时间要求严格并且具有较强容错性的流数据传输,或者用于要求恒定数据传输速率的即时应用中。对于同步传输来说,即时的数据传递比数据的完整性更重要。例如,即时通话的网络电话常常使用同步传输模式。第3章嵌入式硬件平台(2)控制数据传输。控制传输是双向传输,数据量通常较小。USB系统软件主要用来进行查询、配置和给USB设备发送通用的命令。控制传输方式可以传输8、16、32和64字节的数据,这依赖于设备和传输速度。控制传输的典型应用是在主机和USB外设之间的传输。例如,当USB设备初次安装时,USB系统软件使用控制数据对设备进行设置,设备
43、驱动程序通过特定方式使用控制数据来传输,且数据传送是无损性的。第3章嵌入式硬件平台(3)中断数据传输。中断方式传输主要用于定时查询设备是否有中断数据传输。设备的端点模式器的结构决定了它的查询频率范围是1255 ms,这种传输方式典型应用在少量的、分散的、不可预测数据的传输,如键盘、操纵杆和鼠标就属于这一类型。中断方式传输数据是单向的,且对于主机来说只有输入的方式。(4)批量数据传输。批量方式传输主要应用在大量传输和接收数据,同时又没有带宽和间隔时间要求的情况下。批量数据由大量的数据组成,且批量数据是连续的。这种传输方式可以等到所有其他类型的数据传输完成之后再传输和接收数据。第3章嵌入式硬件平台
44、 5USB总线的数据传输原理总线的数据传输原理在USB结构中,占主导地位的是主控制器。主控制器要保证所有与其连接的数量不同、传输方式不同的设备能够同时正常工作。为此,USB主控制器使用间隔为1 ms的帧来实现数据传输。由于有许多设备连接到USB总线上,所以每1 ms产生的传输帧是混合的。在几种数据传输方式都存在的情况下,中断传输和同步传输对时间要求较高,因此占用了约90%的总带宽;控制传输占用了约10%的带宽;批量传输对时间要求不高,但数据量大,它使用剩下的可用带宽。各种USB设备就是通过这种基本的帧结构实现共享USB带宽来传输数据的。第3章嵌入式硬件平台 在主机端,不同设备的数据传输请求被划
45、分成若干个块(Transaction)。为了保证连接到主机上的设备可以同时工作,主机每次从不同设备取一个块构成一个1 ms帧,然后将整个帧发送到USB总线上。每一个块由三个包(Packet)组成:标志包(Token Packet)、数据包(Data Packet)和握手信号包(Handshake Packet)。根据令牌包里定义的设备地址和端点号,设备能够确定属于自己的相应数据。第3章嵌入式硬件平台 一根USB总线每次最多传输三个数据包。在每次传输开始时,主机控制器发送一个描述传输种类、传输方向、USB设备地址和终端号的USB数据包,该数据包就是标志包。在数据开始传输时,由标志包来标志数据的传
46、输方向,数据传输方向不是从主机到设备就是从设备到主机;然后,发送端开始发送包含信息的数据包或表明没有数据传输。接收端要相应发送一个握手的数据包,以表明数据是否传输成功。USB设备从解码后的数据包的适当位置取出属于自己的数据。第3章嵌入式硬件平台 6USB设备即插即用的实现设备即插即用的实现USB设备可以实现热插拔。当USB设备插入到主机中时,主机通过查询设备的描述符(Descriptor)来了解设备,进而建立通信,这个过程叫做对设备的枚举。图3-24是某个设备的描述符结构。USB设备被分成了许多类(class),某一特定类的设备又可以划分成若干子类(subclass),划分子类后的软件就可以搜
47、索总线并选择所有它支持的设备了。一个USB设备只有一个设备描述符(Device Descriptor),它指明了设备所属的类。每个设备可以有一个或多个配置(Configuration),配置用于定义设备的功能。如果一个设备有几种不同的功能,则每个功能都需要一个配置。配置是接口(Interface)的集合。接口用来指定设备中与USB交换数据的硬件。每一个与USB交换数据的硬件就叫做一个端点(Endpoint)。第3章嵌入式硬件平台 因此,接口是端点的集合。例如,以一个能播放CD的USB接口的CD-ROM作为一个设备。它具有两种功能:读取光盘和播放CD,所以有两个配置描述符。一种功能的实现要涉及许
48、多接口,如当CD播放机使用时,需要音频接口,同时还需要控制CD机的接口,因此具有两个接口描述符。而控制命令接口又由许多端点组成,如有的端点负责向CD机发送命令,有的端点负责接收来自CD机的反馈,因此又有若干个端点描述符。第3章嵌入式硬件平台 图3-24 一个USB设备的描述符结构 第3章嵌入式硬件平台 7USB 器件的选择器件的选择在进行一个USB设备开发之前,首先要根据具体使用要求选择合适的USB 控制器。目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)和纯粹的USB接口芯片。带USB接口的单片机从应用上可以分成两类,一类是从底层设计专用于USB 控制的单片机;另一类
49、是增加了USB接口的普通单片机,如Cypress公司的EZ-USB(基于8051),选择这类USB控制器的最大好处在于开发者对系统结构和指令集非常熟悉,开发工具简单,但对于简单或低成本系统,价格也是在实际选择过程中需要考虑的因素。第3章嵌入式硬件平台 纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(IIC接口)、PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设
50、计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构作很大的改动。第3章嵌入式硬件平台 8USB系统的开发流程系统的开发流程(1)系统结构、功能的定义。首先要选择所要开发的USB系统的结构类型,即是作主机(Host)还是作USB设备(Device)。其次,要选择该系统的功能,即是作为数据采集器(要求实时性)还是作为存储设备。最后,要选择采用的USB标准,即是用USB1.1标准还是用USB2.0标准。(2)USB接口方法的选择。常用的USB接口方法有两种:一种是采用专用的USB接口芯片,一种是选用内部集成