第 7 章-第 6 讲 USB 操作_第1页
第 7 章-第 6 讲 USB 操作_第2页
第 7 章-第 6 讲 USB 操作_第3页
第 7 章-第 6 讲 USB 操作_第4页
第 7 章-第 6 讲 USB 操作_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五次课在现代微型计算机中,采用两片类8237模块级连来组成DMA控制逻辑,除一个通道用于级连外,具有7个独立的可编程通道。第一个DMA控制器提供通道0~通道3,第二个DMA控制器提供通道5~通道7,DMA的通道4用于两个DMA控制器的级连。每个DMA控制器中各通道的优先级可采用固定模式或旋转模式

。高级DMA操作过程-8237级连应用

DMA控制器级连结构图

通道0通道1通道2通道3DMA控制器1HRQ(到CPU)DMA控制器2通道4通道5通道6通道7第一个DMA控制器在应用上与IBMPC/XT机中8237保持兼容,所提供的通道0~通道3按字节传输进行计数;而通道5~通道7为16位传输,按字传输进行计数。这种级连的DMA控制器组遵从ISA兼容规范的24位寻址,每个通道包括一个16位ISA兼容的当前寄存器,用于存放24位地址中的低16位,与ISA兼容的页面寄存器保存24位地址中的高8位。通道0~通道3占用的I/O端口地址为00h~0Fh,页面寄存器分别为87h、83h、81h、82h。通道4~通道7占用的I/O端口地址为C0h~DFh中的偶数地址,通道5~通道7页面寄存器地址分别为8Bh、89h、8Ah。8237级连应用

有两种协议支持PCI设备与存储器之间的DMA传输:PC/PCI协议和分布式DMA协议。

PC/PCI方式的DMA通过专门的REQUEST和GRANT信号,允许PCI设备请求DMA控制器中指定的DMA通道进行DMA传输,在DMA控制器接收到一个请求,并获得对PCI总线的控制权之后,便执行一次两周期的传输。在总线转换桥逻辑功能0配置空间中,有一个16位的配置寄存器(偏移地址通常为90h),它分成7个2位域,这些域用于配置7个DMA通道。PCI总线上的DMA操作

PCIDMA执行过程与标准DMA执行过程不同,标准DMA执行过程中的DMA控制器通过DREQ/DACK信号直接支持各通道的DMA请求与应答,对于PCIDMA执行过程中的DMA请求与应答采用的是一种以信号对REQ#/GNT#为参考的PC/PCI串行协议,该协议也称为扩展通道通过协议。

PCI请求设备必须对通道的请求信息进行编码,为了响应DMA通道请求0~7,CH0~CH7必须维持一个时钟周期的有效高电平。

PCIDMA扩展协议

PCIDMA扩展协议

PCICLKREQ#GNT#CH0CH1CH2CH3CH4CH5CH6CH7起始位0位1位2起始

DMA控制器在GNT#上给出许可通道的编码信息,这些二进制位与图7-24所显示的意义相同。例如:编码值[起始:位0:位1:位2]=0100时,表示DMA控制器许可通道1上的DMA请求;编码值[起始:位0:位1:位2]=0011时,表示DMA控制器许可通道6上的DMA请求。

由于标准的DMA控制器并不提供对PCIDMA扩展协议的支持,因此必须在标准DMA控制器的基础上,提供一个扩展的PCIDMA辅助逻辑来完成这种协议与标准DMA控制器之间的接口。按PC/PCIDMA串行协议设计的这种接口满足如下3条要求,以支持现代微型计算机对DMA传输的灵活应用。

PCIDMA扩展协议

1.如果PCIDMA辅助逻辑上有多个DMA请求有效,必须在其中之一被允许使用总线并完成其传输之后重新发出DMA请求串行协议。

2.如果PCIDMA辅助逻辑在DMA控制器驱动GNT#有效之前已经使一个DMA请求变为无效,则它必须根据新请求向PCIDMA辅助逻辑重新发出扩展通道通过协议。

3.如果PCI辅助逻辑已经发送其串行请求信息,并且在接收到GNT#之前又接收到一个新的DMA请求,该辅助逻辑则必须按新的请求信息重新发送串行请求。PCIDMA扩展协议与支持ISA中的直接传输周期(即相当于一次I/O读/写周期)不同,DMA控制器采用双周期传输来支持PC/PCIDMA传输,该双周期由先读取I/O设备周期后写入存储器周期组成,或由先读取存储器周期后写入I/O设备周期组成。该双周期中与存储器相关的部分产生一个PCI类型的存储器读或存储器写总线周期,以此来寻址所选择的存储器,存储器单元的地址由DMA控制器的当前地址寄存器提供;与I/O相关的部分产生一个PCI类型的I/O周期,其I/O端口地址根据PCI周期类型的不同而不同,对于正常的I/O读/写周期,传输期间为00h,最后一次传输为04h;对于校验方式I/O读周期,传输期间为0C0h,最后一次传输为0C4h。PCIDMA扩展周期

智能驱动电路IDE(IntelligentDriveElectronics)亦称作ATA(PC/ATAttached-PC/AT附属)端口,支持微型计算机系统与硬盘等外部存储器的连接。硬盘驱动器的接口实际上是ISA总线信号的一个子集,这种接口就称为IDE接口,IDE接口最大支持528MB的硬盘驱动器。

智能驱动电路IDE接口

IDE接口信号定义

引脚编号功能定义引脚编号功能定义引脚编号功能定义引脚编号功能定义1:RESET复位键11:DD3D_321:DMARQDMA请求31:INTRQ中断请求2:GND地12:DD12D_1222:GND地32:IOCS1616位I/O3:DD7D_713:DD2D_223:DIOWI/O写33:DA1地址位A14:DD8D_814:DD13D_1324:GND地34:PDIAQ诊断信号5:DD6D_615:DD1D_125:DIORI/O读35:DA0地址位A06:DD9D_916:DD14D_1426:GND地36:DA2地址位A27:DD5D_517:DD0D_027:IORDYI/O准备好37:CS0片选08:DD10D_1018:DD15D_1528:CSEL电缆选择38:CS2片选29:DD4D_419:GND地29:DMACKDMA应答39:DASP设备有效10:DD11D_1120:键位30:GND地40:GND地通过改进IDE接口性能,使其支持对多个驱动器接口(一般支持两个接口:第一个IDE接口和第二个IDE接口),提高数传输率,扩大对单个硬盘驱动器容量的支持,这种增强型的IDE接口称为EIDE或ATA-2接口,通过EIDE接口连接的单个硬盘容量最大为8GB。

EIDE规范中还通过一种称为ATAPI(ATAttachedPackedInterface-AT附属包接口)的新标准,使IDE或ATA接口支持CD-ROM驱动器。

EIDE接口的数据传输率达到16MB/s

。增强型IDE(EIDE)ATA-2接口

通过对IDE接口信号的重新定义,采用DMA传输协议可使源设备与目标设备之间的数据传输率达到33MB/s或66MB/s,但需要双方接口的支持。超级DMA/33/66协议并不要求在IDE连接器的基础上增加额外的信号引脚,当工作在超级DMA/33/66模式时,只是对一些标准的IDE控制信号进行了重新定义。使IDE接口工作在超级DMA/33/66模式时,必须预先进行初始化编程,这种初始化编程分成两部分:一个是对IDE接口的使能和配置,一个是对IDE设备的使能和配置。

超级DMA/33/66接口协议

超级DMA/33/66接口协议

DMARQ(驱动)DMACK#(主)STOP(主)DMARDY#(主)STROBE(驱动)DD[15:0]DA[2:0],CS[1:0]启动一次突发读突发操作终止一次DMA突发CRC在数据传输相位期间,可连续执行数据的突发传输,数据在STROBE的上升沿和下降沿被接收者锁存,数据发送者可以通过STROBE信号的高低电平来暂停数据的突发传输,STROBE状态翻转时又恢复数据的突发传输,接收者则可以通过驱动DMARDY#无效来暂停数据的突发传输,通过驱动DMARDY#有效来恢复数据的突发传输。通过IDE接口来暂停突发传输是用于防止内部的数据缓冲发生溢出,如果用于数据缓冲区计数的当前PRD字节计数器计完,IDE接口也可以暂停传输,而在下一次RPD装载时又可以恢复。

超级DMA/33/66接口协议通用串行总线(USB)

为了规范众多接插件的不同接入标准,提出并现实了一种称为通用串行总线USB(UniversalSerialBus)接口标准。USB规范支持三种数据传输速率:1.5Mb/s(USB1.1)、12Mb/s(USB1.1)和480Mb/s(USB2.0)。电缆最大连接长度为5米,最多可连接127个设备(含主机、集线器和各功能节点),支持各设备的智能配置。USB规范要求主控器具有根集线器的功能,为USB设备与主控器之间提供电气接口,两个对外连接端口,连接形式具有星型拓扑结构。进行数据的控制传输,甚至还可以具有电源管理的能力。通常根集线器被集成在主控器中。USB集线器的拓扑结构

功能功能功能功能功能功能功能功能功能集线器1集线器2集线器3主控器主控器/根集线器端口1端口2通用串行总线组成结构

客户驱动软件通用串行总线驱动程序(USBD)通用主控器驱动程序(HCD)(数据结构的形成与管理)通用主控器(HC)(传输数据包的形成与管理)USB设备系统软件硬件通用主控器接口(UHCI)范围客户驱动软件层(ClientDriverSoftware):位于主PC上的该软件层用于与某一特定的USB设备进行通信,该客户软件通常作为操作系统的一部分或者由USB设备生产商所提供。USB驱动程序USBD(USBDriver)层:该层是某一特定操作系统中支持USB操作的USBD系统软件。主控制器驱动程序HCD(HostControllerDriver):该驱动程序为USB主控器硬件与USBD之间的软件层,用于USB主控硬件为USBD解释/建立帧列表、传输描述子、队列头以及数据缓冲和数据结构。HCD还在系统主存储器中建立数据结构,用于主控器中的客户软件与USB设备进行点对点通信。USB主控器HC(HostController):USB主控器由HCD软件层进行管理,按HCD产生的指令列表进行执行:根据命令产生串行总线令牌和/或数据包,启动USB上的数据传输,报告USB与HCD信息交换时的状态。对于需要从USB上接收数据的命令,主控器接收数据,将它们传送到命令所指的系统主存储器中。USB设备:用户终端设备,通过USB的硬件层和软件层与计算机进行数据交换。通用串行总线组成结构等时传输:位于USB设备与主控器之间的数据传输速率为常数。其中采用等时传输的典型USB接口设备有音频数据流设备和电话设备。但这种传输并不能绝对保证数据传输的完整性,传输失败后不再重传。中断传输:用于支持传输数据量少、但具有突发性的一类设备,中断传输类型用于支持要求一个可预测的服务时间片断,但不需要产生一个可预测的数据流的一类设备,因此中断传输只能用于数据输入传输,通常用于键盘和位置点采集(如鼠标、数字化仪等)一类设备。控制传输:用于传输针对各设备控制、状态读取和配置写入等类型的信息。控制传输用于提供一条从主控器到USB设备的控制通道,总是由一个建立相位和紧跟在一个状态相位之后的多个数据相位(也可以无数据相位)所组成,按先进先出FIFO方式进行传输。分块传输:为客户与主控器之间允许较大延迟的大容量数据传输提供传输途径,适应这种传输的USB设备(如打印机)必须忍受较大的传输延迟。USB数据结构与类型

在USB上,传输数据的帧时长为1毫秒,每一次传输帧由一个起始帧(SOF)开始,如果需要传输的数据为等时数据,主控器首先传输等时数据。主控器确保有足够的时间完成所有待传的等时数据,以及随后的中断传输和分块传输。USB数据结构与类型

SOF等时帧中断帧控制帧分块帧EOF1毫秒数据传输帧时间

控制SOF计数器帧计数器帧计数寄存器SOF修正寄存器帧列表基地址寄存器主控器12MHz7位11位20位低10位1毫秒帧列表基地址(A[31:12])10230帧列表索引(A[11:2])(每一帧时间增量1)帧列表系统存储器指针指针控制指针控制指针控制在UHCI数据结构中,包含一个帧列表、等时传输描述子、队列头、和队列传输描述子。这些信息被HCD软件调用,用于构造一个位于主存储器中指令序列表,再供USB主控器执行。根据帧列表中的连接指针、传输描述子TDs(TransferDescriptors)、和队列头QH(QueueHead),可以执行所有相关指令序列。

通用主控器接口UHCI数据结构

通用主控器接口UHCI数据结构

帧列表基地址寄存器帧计数器基地址索引00帧指针QT帧指针QT帧指针QT帧指针QTTDTDTDTDTDTDTDTDTDQHTDTDTD连接指针元素连接指针T=终止Q=传输描述子或队列头帧列表横向执行等时传输描述子横向执行QHTDTDTD连接指针元素连接指针311211210TDQHTDTDTD连接指针元素连接指针QHTDTDTD元素连接指针TDTD纵向执行队列头控制和块队列头中断帧列表是一个最多具有1024个入口的存储阵列,作为帧调度缓冲区位于系统存储器中,每个入口与一个特定的帧(1毫秒)相对应,为USB主控器处理数据交换时提供控制信息。每个入口中包含一个指向其它数据结构(如传输描述子或队列头)和控制位的指针,USB主控器不能修改帧列表中的这些域,帧列表入口中的域由HCD软件进行管理。帧列表传输描述子TD包含一个指向数据缓冲区(32字节,注意:该数据缓冲区并非帧列表区)的指针、用于数据交换的控制和状态域。如果指针无效,说明该传输描述子没有数据缓冲区(即为空数据)。传输描述子分等时传输描述子和队列传输(包括中断描述子、控制描述子和成堆描述子)描述子,它们的结构相同。

传输描述子TDs(TransferDescriptors)传输描述子TDs(TransferDescriptors)

(前16字节定义)包识别PID3130292827262524232120191816151411108743210缓冲区指针最大许可长度实际传输长度设备地址终节点状态连接指针RSPDC_ERRLSISOIOCRDR0VfQT队列头QH用于组织非等时传输描述子进入传输队列中,队列头及其相关的传输描述子、中断、控制、数据块、数据传输类型都能够被保存在队列中。队列头中包含两个连接指针:一个纵向指针,选择被处理队列内容中下一个传输描述子;一个横向指针,连接下一个队列头或被处理的传输描述子。队列头QH由两个双字组成,用于控制、分块、中断传输的特殊结构信息。第一个双字为队列头连接指针,该指针指向在队列中任何要求处理的请求完成之后下一个被处理的数据对象。第二个双字为队列元素连接指针,该指针指向在该队列中的第一个数据对象TD(也可能是QH)。队列头QH(QueueHead)

USB主控器模块包含有两组软件可以访问的寄存器组,即:输入/输出寄存器组和可选择使用的PCI配置寄存器组,只有使用了USB主控器的PCI设备才需要PCI配置寄存器。其中的USB命令寄存器给出USB主控器执行时采用的命令,对该寄存器进行一次写入操作将引起USB主控器执行一次写入的命令。状态寄存器反映USB主控器在被读取是时未处理的中断和所处的状态。通用串行总线编程寄存器组

USB包传输

SOF数据包数据包结尾包结尾包结尾包空包SOFSOFSOFSOF情况A情况B情况C取取EOF时间EOF时间EOF时间EOF时间空64字节可用包大小举例64字节32字节超前SOF点帧周期(1毫秒)n毫秒n+1毫秒情况A说明:如果在取下一个命令的传输描述子期间,或初始写数据取期间,超前SOF点到达,命令被终止;情况B说明:此时无数据写回到系统存储器;情况C说明:如果主控器在超前SOF之前,在总线上启动数据交换,命令将执行到结束,只有当前帧列表中最后的传输描述子才被执行。

USB包传输USB内部数据传输-传输基本描述令牌数据包队列访问数据HSK预交换存储器访问读数据1读数据N读描述子总线到系统存储器串行总线第N次交换延后交换存储器访问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论