第5章 CHAPTER 5 总 线 技 术 计算机系统具有微处理器、存储器、各类I/O设备,它们之间如何互联互通?这是计算机系统结构必须解决的问题。前面已经提及,计算机系统各个模块通过总线方式实现互联,但是比较抽象。本章将详细介绍这方面的内容。 学完本章内容,要求掌握以下知识:  计算机系统总线结构特点;  总线的基本性能指标和操作方式;  AXI片内总线特点、信号类型、基本操作;  PCI局部总线特点、信号类型、基本操作;  常见外部总线特点以及信号类型。 5.1计算机总线结构 计算机系统各个模块通过系统总线实现互联互通,如图51所示,该结构掩盖了计算机系统各个模块之间的差别。 图51计算机系统结构 随着技术的发展,无论是存储器还是I/O接口访问速度都存在较大差别。因此,为提高计算机系统性能,根据各模块结构特点,计算机系统存在多种总线结构,如单总线结构、双总线结构和多总线结构等,且以多总线结构为主。 5.1.1单总线结构 单总线结构是指计算机系统各个模块均通过系统总线相连,所以又称为面向系统总线的单总线结构。单总线结构中CPU与存储器之间、CPU与I/O设备之间、I/O设备与存储器之间都通过系统总线交换信息。 单总线结构的优点是控制简单,扩充方便。但由于所有设备均挂接在同一总线上,只能分时工作,即同一时刻只能在两个设备之间传送数据。这就使系统总体数据传输效率和速度受到限制,这是单总线结构的主要缺点。 5.1.2双总线结构 双总线体系结构分为面向CPU的双总线结构和面向存储器的双总线结构。 面向CPU的双总线结构如图52所示。其中一组总线是CPU与内存之间进行信息交换的公共通路,称为存储器总线。另一组是CPU与I/O设备之间进行信息交换的公共通路,称为I/O总线。I/O设备通过连接在I/O总线上的接口电路与CPU交换信息。 由于在CPU与存储器之间、CPU与I/O设备之间分别设置了总线,从而提高了计算机系统信息传送的速率和效率。但是由于外部设备与存储器之间没有直接通路,它们之间的信息交换必须通过CPU才能进行中转,从而降低了CPU的工作效率或增加了CPU的占用率,这是面向CPU双总线结构的主要缺点。一般来说,外设工作时要求CPU干预越少越好。 面向存储器的双总线结构保留了单总线结构的优点,即所有设备和模块均可通过总线交换信息。与单总线结构不同的是,在CPU与存储器之间又专门设置了一条高速存储器总线,如图53所示,CPU可以通过它直接与存储器交换信息。面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。 图52面向CPU的双总线结构 图53面向存储器的双总线结构 5.1.3多总线结构 随着计算机系统的性能要求越来越高,现代计算机系统已不再采用单总线或双总线结构,而是采用更复杂的多总线结构,如图54所示。不同总线分别适应于不同速率的设备或模块互联需求。如现代PC主板总线结构如图55所示,具有多种不同总线,以适配计算机系统不同模块通信速率需求。 图54多总线结构 图55现代PC主板总线结构 5.2总线技术基础 总线的特点在于其公用性,即它可同时挂接多个设备。总线上任何一个设备发出的地址信息,计算机系统内所有连接到该总线上的设备都可以接收到。但在进行信息传输时,每一次只能有一个发送设备可以利用总线给一个接收设备发送信息。 总线把计算机各主要模块连接起来,并使它们组成一个可扩充的计算机系统,因此总线在计算机的发展过程中起着重要的作用。总线不但和CPU、存储器一样关系到计算机的总体性能,也关系到计算机硬件的扩充能力,特别是扩充和增加各类外部设备的能力。因此,总线随着CPU的不断升级和存储器性能的不断提高也在不断地发展与更新。每种总线标准都有详细的规范说明,它们通常有上百页、几十万字。这些标准主要包括以下几个部分: (1) 机械结构规范: 确定总线物理尺寸、总线插头、边沿连接器插座等规格及位置。 (2) 功能规范: 确定总线每根线(引脚)信号名称与功能,对它们相互作用的协议(例如定时关系)进行说明。 (3) 电气规范: 规定总线每根线工作时的有效电平、动态转换时间、负载能力、各电气性能的额定值及最大值。 5.2.1分类 计算机内拥有多种总线,它们分布在计算机系统各层次,为各模块之间通信提供通路。总线按所处计算机系统不同层次和位置分为片内总线、系统总线、局部总线和外部总线4类。 1. 片内总线 片内总线处于集成芯片内部,连接集成芯片内部各功能模块。嵌入式微处理器芯片内部集成了存储器和常用I/O接口模块,这些模块通过片内总线在集成电路内部实现互联互通。常见的片内总线标准有ARM公司的AMBA总线标准、IBM公司的CoreConnect总线标准等。 2. 系统总线 系统总线又称板级总线,计算机系统各功能模块通过系统总线连接,构成一个完整的计算机系统,所以称之为系统总线。系统总线是计算 图56系统总线连接结构 机系统中最重要的总线,人们平常所说的计算机总线即是指系统总线。系统总线是多处理器系统及高性能超级计算机系统中连接各插件板的信息通道,用来支持多个CPU并行处理。系统总线在计算机系统中的连接结构如图56所示。 3. 局部总线 局部总线是在印制电路板上连接主板各个主要模块的公共通路。计算机系统主板上都有并排的多个插槽,这就是局部总线扩展槽。添加某个外设扩展系统功能时,只要在其中任何一个扩展槽内插上符合该总线标准的适配器(或称接口卡),再连接适配器相应的外设便可。局部总线扩展槽可以连接各种接口卡,例如显卡、声卡、网卡等。因此,局部总线是计算机系统设计人员和应用人员最关心的一类总线。局部总线类型很多,而且不断翻新。1992年推出的外部设备互联PCI(Peripheral Component Interconnect)局部总线得到了几乎所有厂商的支持,成为使用最广泛的局部总线。 4. 外部总线 外部总线又称为通信总线,它用于计算机系统与系统; 计算机系统与外部设备,如打印机、磁盘设备; 计算机系统与仪器仪表之间的通信。这种总线数据传送方式可以是并行或串行。不同设备所用总线标准不同,常见的有用于连接目前大多数外设的通用串行总线(Universal Serial Bus,USB)、用于连接硬盘和光驱的SATA(Serial Advanced Technology Attachment)总线、用于连接串行外设的SPI(Serial Peripheral Interface)总线、用于连接集成电路的I2C(InterIntegrated Circuit)总线等。 总线按线路上传输信号类型的单一性分为专用总线和复用总线。总线信号通常包含地址、数据、控制等信号类型,如果采用不同的总线线路分别传输这些信号,就称为专用总线; 如果采用同样的线路传输两种或两种以上类型的总线信号,就称为复用总线。如系统总线属于专用总线,分别有地址总线、数据总线和控制总线。而部分局部总线则将地址与数据信号复用在同一线路上,属于复用总线。专用总线提高了总线的吞吐率,但是增加了系统的成本和体积。 5.2.2性能指标 总线性能通常采用以下技术指标描述: (1) 总线宽度w。总线宽度通常指一次总线操作可以传输二进制数据的最大位数。通常计算机系统总线宽度不超过CPU外部数据总线宽度。 (2) 总线时钟频率f。总线通常都有一个基本时钟,这个时钟的频率是总线工作的最高频率。 (3) 总线周期T。通过总线完成一次数据传输所需的总线时钟周期数,称为总线周期,通常是总线时钟周期的整数倍。不同总线传输方式,一次总线操作传输的数据个数n不同。 (4) 总线带宽B。每秒传输的二进制位数,通常以比特每秒(bps)为单位。总线带宽与总线宽度、时钟频率以及总线周期之间满足以下关系: B=w×n÷T×f PCI总线传送一个数据为1个时钟周期,通过上面3个指标,可以计算出PCI总线的带宽,如: PCI=4(字节数据宽)×33.3(MHz)×1(每时钟周期数据量)=133MBps=1064Mbps PCI2=8(字节数据宽)×66.6(MHz)×1(每时钟周期数据量)=533MBps=4264Mbps 5.2.3总线通信流程 计算机系统挂接到总线上的设备通常不止一个,而是多个。这些设备通过总线相互通信,根据通信双方的从属关系将挂接到总线上的设备分为主设备和从设备。主设备指能够获取总线控制权的设备,它可以通过总线寻址从设备,并实现与某个指定从设备的通信,属于通信的主动方。从设备指不能控制总线,只能由总线主设备寻址之后,才能与主设备进行通信的设备,属于通信的被动方。也有部分设备既是主设备,也是从设备。 总线能否保证各模块间通信通畅,是衡量总线性能的关键。兼顾一个以上主设备同时请求总线的信息传输,把总线实现一次信息传输的过程分解为请求总线、总线裁决、寻址、信息传送和错误检测。 当有多个主设备都要使用总线进行信息传送时,由它们向总线仲裁机构提出使用总线请求,经总线仲裁机构仲裁确定,把下一个总线周期的总线使用权分配给其中一个主设备。取得总线使用权的主设备,通过总线发出本次要访问的从设备的地址及有关命令,选中参与本次传送操作的从设备,并开始数据交换。总线周期结束后主设备和从设备的有关信息均从总线上撤除,主设备让出总线,以便其他主设备继续使用。 5.2.4仲裁策略 总线仲裁方法按照总线占有权的获取方式可分为静态和动态两种。 静态总线仲裁方法是指将总线分时分配给每个主设备,每个主设备占用一个固定的时间片。这种方法造价低,但总线利用率低。因为当某个主设备不需使用分配给该主设备的时间片时,总线的时间片就浪费了。 动态仲裁方法是指主设备有总线请求时,才分配总线时间片。动态仲裁方法按照裁决策略又分为集中式和分布式两种。集中式仲裁方法由总线控制器(总线仲裁器)分配总线时间。计算机系统中总线控制器可以是独立的模块,也可以是CPU的一部分。分布式仲裁方法没有集中的总线控制器,而是每个总线主设备都包含了访问控制逻辑,由这些主设备共同作用分享总线。 5.2.5信息传输与错误检测 主设备占有总线之后,紧接着进行信息传输。信息传输需在主设备与从设备之间协调进行,因此,总线需要规定信息传输协议。总线信息传输过程需遵循一致的传输协议,严格的传输协议需要多个步骤才能实现一次信息传送,图57是信息传输一般需遵循的协议过程。但是不同总线协议,各类信号的表现形式各不相同。 图57信息传输协议过程 一个总线周期经过这种传输应答过程协同主/从设备之间的信息传输。 随着总线时钟和传输速率的提高,总线上信息因随机出现的干扰而产生的出错概率相应增加。为此速度较高的总线通常需要一定的错误检测电路及总线信号来发现或纠正出现的错误。常见错误检测方法有奇偶校验法、周期冗余检验码等。 5.2.6定时方式 定时方式是指总线上主设备与从设备之间如何进行信息的传送,包括各类信号之间的协调方式。主要有以下几种方式。 1. 同步定时 同步定时信息传送由公共时钟控制,总线中包含时钟线。时钟信号连接到总线所有模块上,一个典型的同步总线读/写操作时序如图58所示。所有信号都在确定的时钟周期内出现,而且与时钟同步。如读操作,CPU在T1时钟周期内输出有效的状态信号和地址信号,以及地址使能信号; 然后在T2时钟周期输出有效的控制信号——读控制信号; 从设备在接收到该读控制信号之后,在T3时钟周期内输出有效的数据,CPU在T3时钟周期内把数据读入。而写操作,在T1时钟周期内CPU与读操作一样输出地址、状态等信号; 在T2时钟周期内由CPU输出数据到数据总线之后,再输出写控制信号; 从设备在接收到写控制信号后,在T3时钟周期内把数据写入。 图58同步定时方式总线读/写操作时序 2. 异步定时 异步定时信息传送的每一个操作都由源或目的特定信号的跳变所确定,总线上每一个事件的发生取决于前一个事件的发生。异步定时方式总线读/写操作时序如图59所示。CPU给出有效的地址和状态信号之后,如果是读操作,则首先由CPU输出读控制信号。从设备在接收到该信号之后,输出数据,数据稳定之后,从设备输出读响应信号。CPU在接收到读响应信号之后才读入数据。如果是写操作,CPU首先输出数据并维持数据线稳定状态,然后输出写控制信号。从设备在接收到写控制信号之后,读入数据,然后再发出写响应信号。CPU接收到写响应信号之后才能释放总线。总线信息传输过程完全不用公共时钟来同步源和目的,而是依赖各个事件发生的先后关系。 图59异步定时方式总线读/写操作时序 3. 半同步定时 半同步定时是指总线上各操作之间的时间间隔可以变化,但仅允许为公共时钟周期的整数倍,信号的出现、采样和结束仍以公共时钟为基准。计算机系统内大多数总线都采用此定时方法,如AXI总线、PCI总线等。半同步定时方式读/写操作时序如图510所示。该定时方式具有时钟信号,但是数据传输并不以总线时钟为唯一的定时信号,同时还必须参考源和目的双方其他事件的发生,地址、读、写控制信号有效等,若这些信号无效,信息传输将延长时钟周期的整数倍。 图510半同步定时方式总线读/写操作时序 同步定时的实现和测试都较简单,但没有异步定时灵活。因为同步定时方式总线上的所有模块都要遵循固定的时钟频率,系统不能发挥高性能设备的优势,也不能把太慢的设备融于较高速的总线上。异步定时,不论设备是快还是慢,使用的技术是新还是旧都可以共享总线。但异步定时对信号有更高的要求(无尖峰且转换快),总线的综合延迟也较长。半同步总线定时则包含了上述两种方式各自的优点,因此应用较为广泛。 5.2.7操作类型 对于只有一个主设备的单处理器系统,不存在总线请求、分配和撤除问题,总线的控制权始终归CPU所有,CPU随时都可以和从设备进行数据传送。为不失一般性,本书把一次总线操作认为主设备已经获得了总线控制权,仅指主设备与从设备之间传送一次信息所需要进行的操作。 计算机系统中各种读写操作,包括存储器以及I/O读写操作,本质上都是通过总线进行信息交换,统称为总线操作。不同总线规范对总线操作具有不同设定,常见的总线操作有读(read)、写(write)、读修改写(readmodifywrite)、写后读(readafterwrite)、突发(burst)等。 所有总线都支持读、写操作,读操作指数据从其他模块传输到CPU,而写操作指数据从CPU传输到其他模块。不管是读还是写操作首先都必须给出有效地址,然后再给出控制信号,最后才是数据传输。从设备接收到控制信号之后,响应通常都会有一定时延,这为地址信号和数据信号复用提供了可能。各种总线操作信息传输方式示例如图511所示。 图511各种总线操作数据传输方式 5.3AXI片内总线 AXI(Advanced eXtensible Interface)是一种片内总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)协议中最重要的部分,它是一种面向高性能、高带宽、低延迟的片内总线。AXI总线使SoC以更小面积、更低功耗,获得更加优异性能的一个主要原因,就是它的单向通道体系结构。单向通道体系结构使得片上信息流仅单方向传输,减少了延时。 AXI总线是一种多通道传输总线,将读地址、写地址、读数据、写数据、写响应信号在不同通道中传送。且不同通道之间的访问顺序可以打乱,用BUSID表示各个访问的归属。主设备在没有得到返回数据的情况下可发出多个读写操作,读回的数据顺序可以被打乱,同时还支持非边界对齐数据访问。AXI总线支持32位、64位、128位等不同宽度的数据总线。 5.3.1AXI总线结构 AXI总线拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。 AXI总线读地址、读数据通道信息流向如图512所示,AXI总线写地址、写数据、写响应3条通道的信息流向如图513所示。AXI总线规定一次读操作或一次写操作分别称为一个读事务(transaction)或一个写事务。 图512AXI总线读数据各通道信号流向 图513AXI总线写数据各通道信号流向 由于AXI总线各个通道信息都是单向传输,因此设备与总线之间的接口区分为主设备接口(M_AXI)和从设备接口(S_AXI)。AXI总线多个主、从设备互联拓扑如图514所示,主设备通过M_AXI接口连接到AXI总线控制器提供的S_AXI接口,从设备通过S_AXI接口连接到AXI总线控制器提供的M_AXI接口。 图514AXI总线多个主、从设备互联拓扑 5.3.2AXI总线信号 AXI总线控制器可根据主、从设备的数量产生相应数量的S_AXI、M_AXI接口。AXI总线控制器提供的S_AXI、M_AXI接口信号如图515所示。无论是S_AXI还是M_AXI接口都有5组通道: 读地址通道、写地址通道、读数据通道、写数据通道、写响应通道。 图515AXI总线控制器提供的接口信号 32位AXI总线全局信号以及各个通道主要引脚信号及其含义如表51所示。 表51AXI总线信号含义 信号来源含义 全局信号 ACLK系统时钟模块总线时钟信号 ARESETN系统复位模块总线复位信号,低电平有效 从设备接口信号 S_ACLK系统时钟模块从设备接口时钟信号 S_ARESETN系统复位模块从设备接口复位信号,低电平有效 主设备接口信号 M_ACLK系统时钟模块主设备接口时钟信号 M_ARESETN系统复位模块主设备接口复位信号,低电平有效 写地址通道 AWID[3:0]主设备写地址通道BUSID 续表 信号来源含义 AWADDR[31:0]主设备写地址通道地址 AWLEN[3:0]主设备写地址通道突发写长度,共传输AWLEN[3:0]+1个数据 AWSIZE[2:0]主设备写地址通道突发写数据类型。每个数据AWSIZE[2:0]+1个字节 AWBURST[1:0] 主设备写地址通道突发写类型: 固定地址、增量地址、环绕地址 AWLOCK[1:0]主设备写地址通道锁类型 AWCACHE[3:0]主设备写地址通道Cache类型。该信号指明Cache写策略 AWPROT[2:0]主设备保护类型 AWVALID主设备写地址通道地址有效指示,高电平有效 AWREADY从设备写地址通道设备准备就绪,高电平有效 写数据通道 WID[3:0]主设备写数据通道BUSID,必须与AWID匹配 WDATA[31:0]主设备写数据通道数据 WSTRB[3:0]主设备写数据通道字节使能信号 WLAST主设备写数据通道最后一个数据指示信号,高电平有效 WVALID主设备写数据通道数据有效指示,高电平有效 WREADY从设备写数据通道设备准备就绪,高电平有效 写响应通道 BID[3:0]从设备写响应通道BUSID,这个数值必须与AWID匹配 BRESP[1:0]从设备写响应通道响应类型。可能的响应: OKAY、EXOKAY、SLVERR、DECERR BVALID从设备写响应通道响应有效指示,高电平有效 BREADY主设备写响应通道接受响应就绪,高电平有效 读地址通道 ARID[3:0]主设备读地址通道BUSID ARADDR[31:0]主设备读地址通道地址 ARLEN[3:0]主设备读地址通道突发读长度,共传输ARLEN[3:0]+1个数据 ARSIZE[2:0]主设备读地址通道突发读数据类型,每个数据ARSIZE[2:0]+1个字节 ARBURST[1:0]主设备读地址通道突发读类型: 固定地址、增量地址、环绕地址 ARLOCK[1:0]主设备读地址通道锁类型 ARCACHE[3:0]主设备读地址通道Cache类型 ARPROT[2:0]主设备读地址通道保护类型 ARVALID主设备读地址通道读地址有效指示,高电平有效 ARREADY从设备读地址通道设备准备就绪,高电平有效 读数据通道 RID[3:0]从设备读数据通道BUSID。RID的数值必须与ARID匹配 RDATA[31:0]从设备读数据通道读数据 RRESP[1:0]从设备读数据通道读响应。响应类型: OKAY、EXOKAY、SLVERR、DECERR RLAST从设备读数据通道最后一个数据指示,高电平有效 RVALID从设备读数据通道读数据有效,高电平有效 RREADY主设备读数据通道设备准备就绪,高电平有效 5.3.3AXI总线操作时序 AXI总线全部5个通道使用相同的VALID/READY握手机制传输信息。信息发送端产生VALID信号指明何时信息有效,信息接收端产生READY信号指明何时准备接收信息,信息传输发生在VALID和READY信号同时有效的时间段。 AXI突发读时序如图516所示,从设备从读地址通道接收到有效的读地址后,将数据通过读数据通道发送给主设备,地址的有效传输发生在ARVALID与ARREADY同时有效的时间段,每个数据的有效传输发生在RVALID与RREADY同时有效的时间段。突发读操作结束时,从设备用RLAST信号表示最后一个有效数据。 图516AXI突发读时序 AXI重叠突发读时序如图517所示,主设备通过读地址通道先后传输两次突发读操作地址,从设备在完成第一次突发读数据传输后,继续传输第二次突发读数据。每次突发读数据传输结束时RLAST有效。 图517AXI重叠突发读时序 AXI突发写时序如图518所示,主设备首先通过写地址通道发送写地址到从设备,然后再通过写数据通道发送写数据给从设备。地址的有效传输发生在AWVALID与AWREADY同时有效的时间段,每个数据的有效传输发生在WVALID与WREADY同时有效的时间段。当主设备发送最后一个数据时,WLAST信号变为高电平。当从设备接收完所有数据之后它将通过写响应通道发送一个写响应信号给主设备来表明写事务的状态。 图518AXI突发写时序 AXI协议支持乱序传输,每一个通过接口的事务具有一个BUSID。相同BUSID的事务必须有序完成,而不同BUSID的事务可以乱序完成。 AXI总线规定突发式读写采用信号AWLEN或信号ARLEN指定每一次突发式读写所传输数据的个数。而ARSIZE信号或AWSIZE信号指定每一个时钟节拍所传输数据的字节个数,但是任何SIZE都不能超过数据总线的宽度。 AXI协议定义了3种突发式读写的类型: 固定突发读写、增值突发读写、环绕突发读写。用信号ARBURST或AWBURST来选择突发式读写的类型。 (1) 固定突发读写是指读写过程中地址固定。这样的突发式读写是指对一个相同位置进行数据存取,例如FIFO。 (2) 增值突发读写是指每一次读写地址都比上一次数据的地址增加一个固定的值。 (3) 环绕突发读写与增值突发读写类似。环绕突发读写地址达到最大值之后又重新从低地址开始。环绕突发读写有两个限制: ①起始地址必须是传输数据类型边界对齐地址; ②突发读写长度必须是2、4、8或者16。 5.4PCI局部总线 PCI(Peripheral Component Interconnect)总线是当前流行的局部总线之一,它是由Intel公司推出的一种局部总线。它定义了32位或64位数据总线。PCI总线支持突发读写操作,最大传输速率可达132MBps,可同时支持多组外围设备。 PCI总线最突出的特点是实现了外部设备自动配置功能。按PCI总线规范设计的设备连入系统后,能自动配置I/O端口地址、存储缓存区、中断资源与自动检测诊断等一系列复杂而烦琐的操作,无须用户人工介入,真正做到设备即插即用(Plug & Play)。 5.4.1PCI总线信号 PCI总线有120个引脚,大部分是双向的。PCI信号的分类以及各个引脚的命名、传输方向和有效电平如图519所示。图519中左边的总线信号是32位总线必不可少的,右边则多数是扩展为64位总线的信号。32位PCI总线有62对引脚位置,其中有2对用作定位缺口,故实际上只有60对引脚。 图519PCI总线信号及分类 PCI总线各类信号的含义如表52所示。 表52PCI总线信号名称及含义 名称源含义 32位地址/数据信号 AD31~AD0双向低32位地址/数据复信号 C/BE3~C/BE0主设备命令/字节使能复用信号 PAR双向对AD31~AD0以及C/BE3~C/BE0的偶校验 总线控制信号 FRAME主设备数据帧传输使能 IRDY主设备主设备就绪 TRDY从设备从设备就绪 STOP从设备停止数据传输请求 DEVSEL从设备从设备选中指示 IDSEL从设备从设备初始化选中指示 出错指示信号 PERR双向数据奇偶校验错误 SERR从设备系统地址奇偶校验错误 总线仲裁信号 REQ主设备请求总线控制权 GNT总线控制器响应总线请求 LOCK总线控制器总线锁定 续表 名称源含义 系统信号 RST系统信号总线复位信号 CLK系统信号总线时钟信号 64位地址/数据信号 AD63~AD32双向高32位地址/数据复用信号 BE7~BE4主设备命令/字节使能复用信号 PAR64双向对AD63~AD32以及C/BE7~C/BE4的偶校验 REQ64主设备请求64位数据传输 ACK64从设备响应64位数据传输 中断请求信号 INTA~INTD从设备4个不同的中断请求信号 高速缓存测试返回信号 SBO高速缓存控制器行查询测试命中 SDONE高速缓存控制器查询测试周期结束 测试信号 TDO总线控制器串行输出数据测试 TDI测试设备串行输入数据测试 TCK测试设备串行时钟测试 TMS测试设备测试模式选择 TRST测试设备测试复位信号 5.4.2PCI总线时序 1. 读操作时序 PCI总线读操作时序如图520所示。通信开始于FRAME信号有效,一旦FRAME信号有效,地址期就开始,并在时钟2的上升沿处稳定有效。在地址期内,AD上包含有效地址,C/BE含有一个有效的总线命令。数据期从时钟3的上升沿开始,在此期间,AD上传送的是数据,而C/BE线上的信息指出数据线上的哪些字节是有效的。要特别指出的是,无论是读操作还是写操作,从数据期的开始一直到传输完成,C/BE必须始终保持有效状态。 图520PCI总线读操作时序 图520所示的设备选择号DEVSEL信号和TRDY信号是由被地址期内所发地址选中的设备提供的,但要保证在IRDY之后出现。而IRDY信号是发起读操作的设备(主设备)根据总线的占用情况自动发出的。数据的真正传输是在IRDY和TRDY同时有效的时钟上升沿进行,这两个信号其中之一无效时,就表示插入等待周期,此时不进行数据传输。这说明,一个数据期可以包含一次数据传输和若干个等待周期。图520中,时钟4、6、8处进行了一次数据传输,而时钟3、5、7处插入了等待周期。 读操作中的地址期和数据期之间,AD线上有一个交换期,由从设备利用TRDY强制实现。但交换期过后并且有TRDY信号时,从设备必须驱动AD线。 时钟7处尽管是一个数据期,但由于IRDY此时无效不能完成最后一次数据传输,故FRAME不能撤销,只有在时钟8处,IRDY变为有效后,FRAME信号才能撤销。 2. 写操作时序 PCI总线写操作时序如图521所示,与读操作类似,也是FRAME信号的有效预示着地址的开始,并且在时钟2上升沿达到稳定有效,整个数据期也与读操作基本相同。只是在第三个数据期中由从设备连续插入了3个等待周期,时钟5处传输双方均插入等待周期。 值得注意的是,DEVSEL撤销必须要有FRAME发出为前提,以表明是最后一个数据期。 写操作中,地址期与数据期之间没有交换周期,这是因为写操作数据和地址是由同一个设备(主设备)发出的。 图521PCI总线写操作时序 上述读/写操作时序均是以多个数据期为例来说明的。如果是一个数据期时,FRAME信号在没有等待周期的情况下,应在地址期(读操作在交换期)过后即撤销。 5.5常见外部总线简介 外部总线又称通信总线,是连接计算机系统之间或计算机与其他外围设备的通路。外部总线按传输线路的不同,可分为两种方式: 并行传输和串行传输。如果一组信息在多条线上同时传递,那么这种传输方式称为并行传输。相反,如果一组信息是通过一根传输电缆逐位传输,则称为串行传输。 并行传输多个数据位同时传送,传输的高效率是串行传输所无法比拟的,多用于实时性好、时间响应好的场合。并行传送的数据宽度可以是1~128位,但其所需数据线多,因而成本高; 并行传输的距离通常小于30m,这也是限制其应用的主要因素。 串行比并行传输复杂,通常与串行接口连接的设备需要将串行传输转换成并行数据才能使用。串行总线是按位顺序进行传递的,因此它具有很多并行传输所不具备的优点: (1) 串行传输只需要一根传输线即可,在成本上可以有一定的节约。 (2) 传输距离长,有的可达到几千米,在长距离内串行数据传输速率会比并行数据传输速率快,同时串行通信的时钟频率很容易提高。 (3) 抗干扰能力极强,同一根电缆线的数据传输可以不受其他线路的干扰,这也是串行总线应用极广的原因之一。 随着CPU技术的高速发展,外部总线带宽要求越来越高。提高总线带宽有两种方法: 增加数据线的根数或增加时钟频率。增加数据线的根数,势必增加系统硬件的复杂度,使系统可靠性下降。若提高总线的时钟频率,则并行总线的串扰和同步问题表现得越来越突出,使总线不能正常工作。因此,现代计算机系统外部总线大都采用串行传输方式。下面简要介绍几种计算机系统设备互联的异步串行总线和芯片互联的同步串行总线。 5.5.1SATA总线 SATA是Serial ATA的缩写,即串行ATA(Advanced Technology Attachment)。SATA采用串行连接方式,相比并行ATA具备更强的纠错能力,结构简单、支持热插拔,已经成了桌面硬盘的主力接口。主板上标有SATA1、SATA2标志的7针插座就是SATA接口,通过扁平SATA数据线,即可与SATA硬盘连接,每个SATA接口只能连接一块SATA硬盘。 SATA接口为7针插座,排线也很细,有利于机箱内部空气流动,从而加强散热效果。SATA接口、线缆外形如图522所示,其中图(a)为硬盘SATA接口,图(b)为SATA硬盘电源接口,图(c)为连接硬盘SATA接口电缆,图(d)为连接SATA硬盘电源接口电缆,图(e)为连接主板SATA接口电缆,图(f)为主板SATA接口,图(g)为主板上与图(a)、图(b)配套的SATA信号及电源接口。SATA接口共7个引脚,引脚依次为1~7,引脚名称及含义如表53所示。 SATA主设备与从设备之间可以采用点对点连接方式,如图523所示; 也可以通过总线适配器(Host Bus Adapter,HBA)以及端口多路器和多个SATA从设备通信,如图524所示; 还可以通过端口选择器实现多个主设备与一个SATA从设备通信,如图525所示。 SATA总线协议结构如图526所示,规定了各个层级之间传输数据的结构以及状态机,本书不再详述,有兴趣的读者请查阅相关协议。 图522SATA接口、线缆外形 表53SATA接口引脚名称及含义 引脚名称含义引脚名称含义 1GND 地,一般和负极相连5B-数据接收负极信号 2A+数据发送正极信号6B+数据接收正极信号 3A-数据发送负极信号7GND地,一般和负极相连 4GND地,一般和负极相连 图523SATA总线点对点连接方式 图524SATA总线一对多连接方式 图525SATA总线多对一连接方式 图526SATA总线协议结构 5.5.2USB通用串行总线 USB(Universal Serial Bus)通用串行总线标准,设计初衷是用一个USB端口连接所有不带适配卡的外设,而且可以在不开机箱的情况下增减设备,支持即插即用功能。USB总线既可用于连接低速的外围设备,如键盘、鼠标等,也可用于中速装置,如移动硬盘、光驱、Modem、扫描仪、数码相机和打印机等。USB可使中速、低速的串行外设很方便地与主设备连接,不需要另加接口卡,并在软件配合下支持即插即用功能。 USB总线之所以能被广泛接受,主要是其具有以下主要特点: (1) 速度快。USB2.0接口支持的数据传输速率最高为480Mbps; USB3.0接口支持的数传输速率高达5.0Gbps。 (2) 连接简单快捷,可进行热插拔。 (3) 无须外接电源。USB提供内置电源,能向低压设备提供+5V的电源。 (4) 扩充能力强。USB支持多设备连接,减少了PC的I/O口的数量。使用USB HUB最多可扩充127个外围设备。 (5) 良好的兼容性。USB接口标准具有良好的向下兼容性。系统在自动监测到低版本的接口类型时,会自动按照低版本接口的数据传输速率进行传输,而其他采用高版本标准接口的设备,并不会因为接入了一个低版本标准的设备而减慢它们的数据传输速率,还是能以高版本标准所规定的高速进行传输。 USB总线连接方式很简单,只需用一条长度可达5m的4芯电缆,如图527所示,包括电源线VBUS,地线GND,差分信号传输数据线D+、D-。USB2.0总线接口外形如图528所示,分为标准USB接口(Type A、Type B)、Mini USB接口(Mini -A、-B)、Micro USB接口(Micro -A、-B)。USB2.0接口信号引脚定义如表54所示。USB总线数据流采用差分信号传输,可以有效提高信号的抗干扰能力。 图527USB总线传输电缆 图528USB接口类型 表54USB接口引脚名称及含义 引脚名称电缆颜色功能 1VBUS红+5V 2D+白数据线+ 3D-绿数据线- 4ID无USB主设备连接到信号地,USB从设备不连接 5GND黑地 USB总线采用星形连接拓扑,如图529所示,通过USB集线器(HUB)最多可连接7级USB设备。USB总线只有一个主设备,其余的都是USB设备(集线器或从设备)。 图529USB总线拓扑 USB设备初次接入USB总线时,主设备就会为USB外设分配一个唯一的USB地址,并作为该USB外设的唯一标识,USB总线最多可以分配127个地址,这个过程称为USB总线枚举(Bus Enumeration)过程。USB使用总线枚举方法在计算机系统运行期间动态检测外设的连接和摘除,并动态分配USB地址,从而真正实现“即插即用”和“热插拔”。 USB主设备在USB总线中所起的作用是: ①检测USB设备的加入或去除状态; ②管理主设备与USB设备之间的控制流; ③管理主设备与USB设备之间的数据流; ④收集USB设备的状态与活动属性; ⑤提供有限的电源,驱动USB设备。 USB协议结构如图530所示,详细规定了各个层级的功能以及数据传输机制、传输数据的结构等,本书不予详述,有兴趣的读者可参考相关文献。 图530USB协议结构 USB以包的方式进行数据传输,每一次数据传输通常由3个包构成: (1) 主设备发出令牌(token)包,内含USB从设备地址、输入/输出操作方式等。 (2) 从设备通过地址译码,被选中的USB从设备接收或发送数据包。 (3) 接收数据方发出握手(ACK)包,表示传输正确与否。 USB事务分为IN、OUT、SETUP 3个事务。每个事务由令牌包、数据包、握手包3个阶段构成。 USB数据传输方式分为4种: 同步传输、中断传输、控制传输和批量传输。 (1) 同步传输。该方式用来连接需要连续传输,且对数据正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等。同步传输方式以固定的传输速率,连续不断地在主设备与USB设备之间传输数据,在传输数据发生错误时,USB并不处理这些错误,而是继续传送新的数据。在这种传送方式下,数据接收方不需要发送握手包。 (2) 中断传输。该方式传输的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上。USB不支持硬件中断,所以必须靠主设备以周期性地方式加以轮询,以便知悉是否有装置需要传输数据给主设备。 (3) 控制传输。该方式用来处理主设备到USB设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当USB设备收到这些数据和命令后,将依据先进先出的原则按队列方式处理到达的数据。 (4) 批量传输。该方式用来传输要求正确无误,且数据量较大的数据。通常打印机、扫描仪和数码相机以这种方式与主设备连接。 不是任何USB设备都需要支持以上4种传输方式,各USB设备根据不同场景确定自身应该支持的传输方式。 5.5.3UART通用异步串行通信总线 UART(Universal Asynchronous Receiver/Transmitter)是一种通用异步串行通信总线,可以实现全双工传输和接收,主要用于低速设备与计算机系统之间的串行通信。嵌入式设计中,UART用于主机与嵌入式设备通信,UART作为嵌入式系统的标准输入/输出接口。 图531UART点对点三线 通信连接电路 UART接口采用4线接口,分别为VCC、GND、RXD(接收端)、TXD(发送端)。采用UART接口实现点对点通信时,连接三线即可,连接电路如图531所示。 UART规定了数据串行通信格式,数据通信以帧为单位,每一帧包含以下信息: ①1位起始位; ②5~8位数据位; ③0~1位奇或偶校验位; ④1位、1.5位或2位停止位。数据位低位优先传送,信息位宽度由波特率(每秒传输的信息位数,以bps为单位)决定,UART支持的波特率为300、1200、2400、4800、9600、19.2k、38.4k、57.6k、115.2k…。波特率越高,通信距离越短。UART总线空闲时,信号线维持高电平,若信号线出现下降沿表示通信的开始。UART一帧数据的通信格式如图532所示,若采用7位数据位、1位奇校验、1位停止位传送字符“A”的ASCII码,则得到如图533所示的逻辑波形。 图532UART一帧数据的通信格式 图533UART传送字符“A”的ASCII码的逻辑波形 UART定义的数据通信格式属于链路层协议,UART接口采用TTL电平,信号传输距离较短,为提高信号传输距离以及抗干扰能力,电子工业协会(EIA)提出了针对异步串行通信数据接口的标准RS232、RS422与RS485,这些标准只对接口电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以定义高层通信协议。 RS232标准采用单端通信,收、发端的数据信号都相对于信号地。典型的RS232信号在正负电平之间摆动,发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V。接收器典型的工作电平在+3~+12V与-3~-12V。RS232标准采用负逻辑,即正电平表示逻辑0,负电平表示逻辑1。由于RS232发送电平与接收电平的差仅为2~3V,所以共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15m,最高数据传输速率为20kbps。 EIA规定RS232标准有9、25针的针状连接器,如图534所示。各引脚功能描述如表55所示。 图534RS232标准9、25针的针状连接器 表55RS232标准25针与9针连接插头的引脚名称及功能 插 头 型 号 9针25针方向缩写符号功能 12输入DCD载波检测 23输入RXD数据接收端 34输出TXD数据发送端 45输出DTR数据终端就绪 56接地GND信号地 67输入DSR数据设备就绪 78输出RTS准备发送 820输入CTS发送清零 922输入RI振铃指示 RS232标准制定之初主要为了通过调制解调器(Modem)实现远距离通信,因此在引脚功能描述中有数据终端、数据设备之称,其中数据终端是指数据的宿主,即计算机系统; 数据设备是指完成数据通信的设备,即Modem。计算机采用Modem通过RS232接口进行数据通信的拓扑如图535所示,RS232作为计算机与Modem之间的接口。 图535计算机采用Modem通过RS232接口进行数据通信的拓扑 为改进RS232标准通信距离短、速率低的缺点,RS422标准定义了差分通信接口,数据信号采用差分传输方式,也称作平衡传输,使用一对双绞线,将其中一线定义为A,另一线定义为B。发送器A、B之间的正电平在+2~+6V,负电平在-2V~-6V,另有一个信号地C。RS422标准将数据传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100kbps时),并允许在一条差分总线上连接最多10个接收器。RS422标准是一种单机发送、多机接收的单向、差分传输规范,被命名为TIA/EIA422A标准。 为扩展应用范围,EIA又于1983年在RS422基础上制定了RS485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA485A标准。RS485标准支持在一条差分总线上连接最多32个节点。 RS422、RS485接口支持3种连接方式: 链式、总线或点对点。链式连接电路如图536所示,总线连接电路如图537所示。图中A、B分别表示差分信号的阳极和阴极。 图536RS422、RS485链式连接电路 图537RS422、RS485总线连接电路 RS422、RS485接口构建的链式、总线连接拓扑中各个设备之间属于对等关系,为实现各个设备之间的一对一通信,还必须在UART总线基础上定义通信协议,以实现各个设备的地址映射关系,如Modbus协议。Modbus协议、UART总线、RS422\RS485接口之间的关系如图538所示。 图538Modbus协议、UART总线、RS422\RS485接口之间的关系 以上介绍的几种外部总线可以实现计算机与外设、计算机与计算机之间的通信,它们都采用异步通信方式,为实现远距离传输,通常采用差分方式传输信号。下面再介绍几种在嵌入式系统中广泛应用的同步串行外部总线,它们主要实现芯片与芯片之间的串行通信。 5.5.4SPI串行外设总线 SPI(Serial Peripheral Interface,串行外设接口)总线是一种同步串行外设总线,它可以使微控制器与各种外围设备以串行方式进行通信以交换信息。SPI总线可直接与各个厂家生产的多种标准外围器件相连,包括Flash存储器、网络控制器、LCD显示驱动器、A/D转换器等。SPI接口一般使用4条线: 串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从设备选择线SS。 SPI总线支持4种不同的时序,如图539所示。由SCLK时钟极性(Clock Polarity,CPOL)以及时钟相位(Clock Phase,CPHA)决定时序种类。CPOL为0表示空闲时时钟线为低电平,为1表示空闲时时钟线为高电平; CPHA为0表示数据在时钟相位为0°(第一个边沿)采样,为1表示数据在时钟相位为180°(第二个边沿)采样。SPI数据线串行数据位传输的先后顺序可由通信双方事先约定,数据传送过程中被选中从设备的SS必须为低电平。 图539SPI总线4种不同时序 SPI总线支持多种不同的拓扑结构,如点对点、点对多点链式、点对多点总线方式等,如图540所示。SPI总线通信必须事先定义总线主设备和从设备。 图540SPI通信拓扑结构 SPI总线仅提供SS从设备片选信号,若与SPI接口的Flash存储芯片通信,如对Flash存储芯片读、编程必须首先发送读、编程命令以及存储单元地址等相关信息,然后才能进行数据通信。读、编程命令以及存储单元地址等信息通过SPI数据线传送,因此,与其他外部串行通信总线一样,在SPI总线基础上,必须定义相关协议规定SPI设备通信事务的传送规则,如SPI接口Flash存储芯片需定义命令、地址、数据传送规则。Flash存储芯片S25FL512S采用SPI接口读数据时序如图541所示。 图541Flash存储芯片S25FL512S采用SPI接口读数据时序 SPI总线支持全双工通信,但是大多数设备之间并不需要全双工通信,为提高通信效率,出现了改进的SPI总线: DSPI(Dual SPI)和QSPI(Quad SPI)。 DSPI总线信号线数不变,SPI总线的MOSI、MISO改为双向数据线,分别命名为I/O0、I/O1。DSPI仍然遵循SPI的4种时序,且I/O0、I/O1在传输命令时功能仍然与SPI总线一样,即I/O0输出命令信息,但是传输地址、数据时由I/O0、I/O1共同完成。如Flash存储芯片S25FL512S采用DSPI接口的读数据时序如图542所示。 图542Flash存储芯片S25FL512S采用DSPI接口读数据时序 QSPI总线比SPI、DSPI新增2根数据线,且都为双向数据线,分别命名为I/O0、I/O1、I/O2、I/O3,同样遵循SPI的4种时序,传输命令时仅I/O0有效,传输地址、数据时4根数据线可同时传输。如Flash存储芯片S25FL512S采用QSPI接口的读数据时序如图543所示。 图543Flash存储芯片S25FL512S采用QSPI接口读数据时序 5.5.5I2C总线 I2C(InterIntegrated Circuit)集成电路总线是由飞利浦半导体公司在20世纪80年代初设计出来的一种简单、双向、二线制、同步串行总线,被广泛用于嵌入式计算机微控制器和I/O设备之间的串行通信。I2C总线利用两根信号线实现集成电路之间的信息传递,一根为数据线SDA,另一根为时钟线SCL。 I2C总线连接拓扑如图544所示,为避免总线信号混乱,I2C总线要求各设备连接到总线的输出端必须是漏极开路(OD)输出或集电极开路(OC)输出。总线空闲时,因各设备都是开路输出,上拉电阻Rp使SDA和SCL都保持高电平。任一设备输出低电平都将使相应总线信号线变低,也就是说,各设备的SDA、SCL是“线与”关系。设备上的串行数据线SDA接口是双向的,输出用于向总线上发送数据,输入用于接收总线上的数据。串行时钟线也是双向的,作为主设备时,一方面通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平; 作为从设备时,一方面按总线上SCL信号发出或接收SDA上的信号,另一方面也可以向SCL线发出低电平以延长总线时钟信号周期。 图544I2C总线连接拓扑 I2C多点通信系统中任一确定时刻,只能由一个主设备控制总线启动和结束通信,并由它产生通信所需的时钟脉冲。且同一个系统中通信设备数量可大于2个,I2C总线上每个设备均具有一个唯一的地址,通信软件在访问设备时加上所需地址信息以选中不同设备。这一方法可以避免利用设备的片选线进行寻址,使硬件系统扩展灵活简便。 I2C总线采用全分布式仲裁策略,当总线空闲时,任何一个设备都可以通过拉低SDA数据线占用总线。总线上一旦有其他设备占用总线则不能继续占用总线。通信时,主设备产生启动信号,当SCL为高电平时,SDA从高到低地变化表示启动。通信结束后由主设备发出通信结束信号,即在SCL高电平时,将SDA信号从低变为高。由上述可知,在SCL高电平期间,SDA信号的变化决定了通信的启动和结束。数据传输时,必须保证SDA线上的数据在SCL高电平时是稳定的,只有当SCL为低电平时,数据线上的数据才可以改变,I2C总线链路层通信时序如图545所示,由主设备产生通信所需的时钟脉冲。 图545I2C总线链路层通信时序 I2C总线启动后即可在SCL信号的同步下传输指令、地址或数据。I2C总线传送的每一帧信息均为一个字节。传送的字节数没有限制,但要求每传送一个字节以后,对方回应一个应答位(ACK或ACK)。应答所需的时钟脉冲由主设备产生,如从设备处于接收状态,则在收到应答时钟脉冲后,将SDA转为发送状态,并将SDA置为低电平(ACK); 如从设备处于发送状态,则在收到应答时钟脉冲后,释放SDA,由主设备发回应答信号。I2C总线每一帧数据高位优先传送。 I2C总线使用7位或10位地址寻址模式。无论哪种寻址模式传输的第一帧信息都为地址,7位寻址模式下,只需一帧信息即可实现寻址,第一帧信息格式如表56所示。10位寻址模式下,需要两帧信息才能实现寻址,寻址信息格式如表57所示。 表567位地址寻址模式第一帧信息格式 数据位 含义 第一帧信息 76543210 A6A5A4A3A2A1A0 7位地址1=读 0=写ACK 表5710位地址寻址模式两帧信息格式 第一帧信息 数据位76543210 值11110xx 含义10位地址特征A9A81=读 0=写ACK 第二帧信息 76543210 xxxxxxxx A7A6A5A4A3A2A1A0ACK 主设备通过I2C总线7位地址寻址模式读写从设备的时序分别如表58、表59所示。如果读写过程中转换读写方式,需要再次发送地址信息帧,如表510所示。其中阴影部分为主设备产生的信号,其余部分为从设备产生的信号。10位地址寻址模式时序基本类似,仅地址信息帧格式稍有差别。 表58I2C总线7位地址寻址模式读时序 启动 7位地址 1ACK数据 ACK… ACK 结束 表59I2C总线7位地址寻址模式写时序 启动 7位地址 0ACK 数据 ACK … ACK/ACK 结束 表510I2C总线7位地址寻址模式写/读转换时序 启动 7位地址 0ACK 数据 ACK 7位地址 1 ACK 数据 ACK … ACK 结束 本章小结 计算机系统采用总线结构,具有单总线、双总线以及多总线结构等不同结构。随着计算机技术的发展,计算机系统中的总线种类越来越多,但都可根据总线所处计算机系统的不同层次和位置,将它们分为片内总线、系统总线、局部总线以及外部总线等。 总线的性能是影响计算机系统整体性能的一个重要因素,总线性能指标包括位宽、频率、带宽等,带宽是描述总线性能的一个最直接的指标。总线是信息传输的公共通道,总线传输信息通常分为以下几个步骤: ①主设备申请总线; ②总线仲裁; ③寻址从设备; ④数据传输; ⑤数据校验。总线实现主、从设备之间的通信,可采取同步、异步、半同步等定时机制。根据总线传输的信号类型可将总线分为复用总线和专用总线,根据总线传输数据位的宽度可分为串行总线和并行总线。总线操作根据信息的传输方式分为读操作、写操作、突发操作等。 AXI总线是AMBA片内总线的一个子集,它将读写地址、读写数据都分为不同的通道传输,且写操作时,还需配合一个写响应通道,共5个通道。各个通道信息独立传输,每个通道都具有控制信号,通道之间的配合通过BUSID实现。 PCI总线是PC机上常见的一种局部总线,可支持32位、64位数据访问,且地址、数据线复用。AXI总线以及PCI总线都采用半同步定时方式,即既具有时钟信号,同时还具有握手控制信号。只有在通信双方都就绪的情况下,通信才能正在进行,且通信时间以时钟周期为最小单位。 随着计算机技术的快速发展,设备间通信速率要求越来越高。由于并行总线存在串扰,不适合长距离传输,因此现代计算机系统外部总线大都为串行总线。本章简要介绍了计算机系统中与存储设备(硬盘、光盘)通信的SATA总线、与大多数嵌入式设备通信的USB总线、用作嵌入式计算机系统STDIO的UART接口以及嵌入式计算机系统中芯片间通信的SPI总线和I2C总线。SATA总线以及USB总线都属于高速串行总线,UART、SPI、I2C都属于低速串行总线。其中SATA、USB、UART为异步串行总线,SPI、I2C为同步串行总线。为实现设备间通信,串行总线协议通常都可分为3层: ①物理层描述总线或接口的机械、电气特性; ②链路层描述信息的传输格式; ③传输层描述总线读写操作实现方式。 限于篇幅,本书没有详细阐述各个总线的协议,有兴趣的读者可参考各总线协议手册。 思考与练习 1. 计算机系统各模块采用什么方式进行连接?计算机系统发展过程中具有哪几种连接方式?各有什么优缺点? 2. 总线按所处计算机系统的不同层次和位置分为哪几类?试分别针对各类总线举一个总线规范实例。 3. 描述总线性能指标有哪些参数?它们之间存在什么关系?总线带宽的单位通常是什么? 4. 挂接到总线上的设备分为哪几类?分别具有什么特点? 5. 总线周期是指什么? 6. 总线操作一般分为哪两类?分别指什么? 7. 总线仲裁是指什么?请列举几个典型的总线仲裁策略。 8. 总线上的信息传输一般经历一个什么样的过程?试举例说明。 9. 总线具有哪些定时方式?各具有什么特点? 10. AXI总线是什么类型的总线?试举例说明AXI总线支持哪些拓扑结构?AXI总线的定时方式是哪种类型? 11. AXI总线写操作需通过哪些通道传输信息?各个通道传输的信息类型是什么?一个有效的写地址信号传输要求哪些信号同时有效?一个有效的写数据信号传输要求哪些信号同时有效? 12. AXI总线读操作需通过哪些通道传输信息?各个通道传输的信息类型是什么?一个有效的读地址信号传输要求哪些信号同时有效?一个有效的读数据信号传输要求哪些信号同时有效? 13. AXI总线读写操作采用什么方式进行?哪个信号分别标志读写数据的结束? 14. AXI总线读、写操作传输的数据类型分别通过哪个信号指示? 15. PCI总线属于哪种总线?总线仲裁信号的名称是什么?分别表示什么含义? 16. PCI总线采用什么定时方式?哪个信号表示一次通信的开始与结束?一次有效的数据传输要求哪些信号同时有效?哪个信号表示从设备被选中?PCI总线通过什么信号传输读、写命令? 17. SATA总线采用几根数据线传输数据,分别表示什么含义,采用哪种信号类型? SATA总线分别通过什么器件实现一对多或多对一的拓扑连接? 18. USB2.0总线采用几根数据线传输数据,分别表示什么含义,采用哪种信号类型?USB总线采用什么器件实现一对多的拓扑连接? 19. USB数据传输一般包含哪几个阶段?分别实现什么功能? 20. UART采用几根信号线传输数据,分别表示什么含义,采用哪种信号类型?支持哪几种电气接口?其中哪几种接口支持多个设备之间的通信? 21. UART一帧数据包含哪几个部分?如何表示数据传输的开始和结束? 22. 若已知某UART接口设置的通信格式为8位数据、无校验位。试说明UART接口TXD信号上出现如题图51所示波形时,表示传输的数据为多少? 题图51TXD信号波形 23. SPI总线采用几根信号线传输数据,分别表示什么含义,采用哪种信号类型?哪种通信方式?SPI总线中SS信号线的作用是什么?如何表示数据传输的开始和结束?SPI总线是否需要设计总线仲裁策略?DSPI、QSPI总线与SPI总线存在什么区别? 24. I2C总线采用几根信号线传输数据,分别表示什么含义,采用哪种信号类型?哪种通信方式?如何表示数据传输的开始和结束?I2C总线仲裁策略是什么?I2C总线如何实现从设备寻址? 25. 本书介绍的外部串行通信总线中,哪些采用异步定时策略,哪些采用同步定时策略?