USB的通讯协议(通俗易懂)ppt课件_第1页
USB的通讯协议(通俗易懂)ppt课件_第2页
USB的通讯协议(通俗易懂)ppt课件_第3页
USB的通讯协议(通俗易懂)ppt课件_第4页
USB的通讯协议(通俗易懂)ppt课件_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

选择,第1、16章USB接口和编程实例,主要内容:USB概述USB设备USB物理特性USB通信协议JB8的USB模块编程方法,选择,2,16.1USB概述,USB协议有两种:USB1.1和USB2.0。USB2.0和USB1.1完全兼容。USB1.1支持12Mbps的数据传输速率和1.5Mbps的数据传输速率(用于较慢的外围设备),USB2.0支持高达480Mbps的数据传输速率。对于最终用户,USB系统是通过USB电缆和PC连接外围设备。外围设备称为USB设备,连接的PC称为USB主机。USB主机的数据传输方向称为上行链路通信,USB设备的数据传输方向称为下行通信。使用分步星形拓扑的USB网络,选择,3,16.1概述,如图16-1所示。一个USB网络只能有一台主机。在主机内设置根集线器,以提供主机的初始连接点。图16-1USB主机和USB设备连接、选择、4,16.1USB概述,主机定期查询集线器的状态。将新设备连接到集线器后,主机将检测集线器状态更改,并发出命令使端口有效并进行设置。位于此端口的设备响应,主机接收有关设备的信息,主机操作系统确定该设备使用的是该类型的驱动程序,然后设备分配一个范围为0到127的唯一标识的地址。其中0是未分配唯一地址时所有设备使用的默认地址。主机发出内部设置请求。当设备在总线上上移时,主机将从可用资源列表中删除设备。精选的5,16.2USB系统基本概念,16.2.1USB主机USB上的所有数据通信(无论是上行链路通信还是下行链路通信)均源自USB主机,因此USB主机在整个数据传输过程中占据优势。USB系统仅允许有一台主机。从开发人员的角度来看,USB主机可以分为三个功能模块:客户软件、USB系统软件和USB总线接口。(1)客户软件(2)USB系统软件(3)USB总线接口、选择、6,16.2USB系统基本概念、16.2.1USB主机(1)客户软件客户软件为实现特定功能,将与USB设备的功能设备进行通信。通常,开发人员自己开发。客户软件不能直接访问USB设备,与USB设备功能设备的通信只能通过USB系统软件和USB总线接口模块进行。客户软件通常包含两个部分:USB设备驱动程序和接口应用程序。USB设备驱动程序负责与USB系统软件通信。通常,向USB总线驱动程序发布I/O请求包(IRP)以开始传输USB数据。另外,根据数据传输的方向,还必须提供空的或满的数据缓冲区以存储相应的数据。接口应用程序通过与USB设备驱动程序通信来控制USB设备。顶级软件,仅查看发送到USB设备的原始数据和从USB设备接收的最终数据。选择,7,16.2USB系统基本概念,16.2.1USB主机(2)USB系统软件USB系统软件负责与USB逻辑设备的配置通信,管理客户软件启动的数据传输。USB逻辑设备是程序员处理USB设备的部分。USB系统软件通常包含USB总线驱动程序和USB主控制器驱动程序。这些软件通常在操作系统中提供,不需要开发人员掌握。可选,8,16.2USB系统基本概念,16.2.1USB主机(3)USB总线接口USB总线接口由主控制器和根集线器组成。root hub为用于为USB系统提供一个或多个连接点(端口)的USB系统提供连接起点。主控制器完成主机和USB设备之间数据的实际传输,例如传输数据的串行编解码器和错误控制。与USB系统软件的接口取决于主控制器的硬件实现,开发人员无需了解。可选、9,16.2USB系统基本概念、16.2.2USB设备USB设备由三个功能模块组成:USB总线接口、USB逻辑设备和功能设备。USB总线接口表示USB设备的串行接口引擎(sie)。USB逻辑设备被USB系统软件视为端点集合。功能单元被客户软件视为一个接口集合。SIE、endpoint和接口是USB设备的配置单元。为了更好地说明USB设备的特性,USB提出了设备体系结构的概念。从这个角度看,USB设备包括一些配置、接口和端点。这意味着一个USB设备可以包含一个或多个配置,每个配置可以包含一个或多个接口,每个接口可以包含多个端点。其中配置和接口抽象了USB设备功能,实际数据传输是端点进行的。使用USB设备之前,必须指示使用的配置和接口。此步骤通常在设备访问主机时在引导状态下执行,稍后将进一步讨论。USB设备使用各种描述符(包括设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符)描述其设备体系结构,通常存储在USB设备的固件程序中。选择,10,16.2USB系统基本概念,16.2.2USB设备设备设备是指包含一个或多个配置的USB设备。设备描述符描述设备的总体信息,并指示包含的配置数。USB设备只能有一个设备描述符。 USB设备配置可能包含一个或多个配置。例如,USB设备的低功耗模式和低功耗模式分别对应于一个配置。使用USB设备之前,请确保为该设备选择正确的配置。配置描述符用于描述USB设备的每个配置特性,例如配置中包含的接口数。USB设备的每个配置都必须具有配置描述符。连接器配置可以包含一个或多个接口。例如,一个光驱可以使用大容量存储接口传输文件。播放CD时使用音频界面。接口是一组端点,可以包含一个或多个可替换设置,在配置了USB的情况下,可以更改当前接口中包含的数量和特性。接口描述符用于描述USB设备的各个接口属性,例如接口所属的设备类和子类。USB设备的每个接口都必须有接口描述符。选择,11,16.2USB系统基本概念,16.2.2USB设备端点是主机和USB设备的每个端点之间USB设备的实际物理单位。端点通常由USB接口芯片提供(例如,在Freescale中为MC68HC908JB8)。USB设备的每个端点都有唯一的端点编号,通常还确定每个端点支持的数据传输方向。或者,您可以配置输入(IN)或输出(OUT)或某些芯片提供的端点的数据方向。例如,MC68HC908JB8具有两个用于发送和接收数据的端点:端点1和端点2。其中end1只能用于数据传输。这意味着支持输入(IN),end2既可用于数据传输,也可用于数据接收。也就是说,支持“输入”(IN)和“输出”(OUT)操作。需要注意的是,在这里,数据的传输方向可以从主机的角度来看。例如,端点1只能发送数据,在主机上,端点1向主机输入数据,即IN运算配置为:端点2接收数据,主机将输出端点2,即OUT作业。这是初学者容易混淆的地方。可以使用设备地址、端点编号和传输方向指定端点并进行通信。0号端点有两个物理设备:数据输入IN和数据输出OUT,仅支持控制传输。选择,12,16.2USB系统基本概念,16.2.2USB设备字符串通常表示特定信息,如制造商的名称(包括USB设备上的字符串描述符)、设备的序列号等。内容以unicode格式提供,可以在客户软件中阅读。对于USB设备,字符串描述符是可选的。管道在USB系统结构中直接在主机软件(USB系统软件或客户软件)和USB设备的各种端点之间进行数据传输,它们之间的连接可以称为管道。管道是在配置USB设备的过程中创建的。管道是主机和USB设备之间通信流的抽象,表示主机的数据缓冲区和USB设备的端点之间存在逻辑数据传输,实际数据传输是由USB总线接口层执行的。管道和USB设备的端点一一对应。USB设备具有与主机通信时可用的端点数量,端点类型决定管道(例如中断端点匹配中断管道)的数据传输类型,此管道只能进行中断传输。传输类型稍后将介绍。无论存在多少管道,在每个管道上执行的数据传输都是相互独立的。可选,13,16.3USB物理特性,16.3.1USB接口USB使用屏蔽4线电缆连接网络中的设备。数据传输分别通过标有D和D的差分对进行,其馀两条线为Vcc和Ground,其中Vcc为USB设备供电。使用USB电源的设备称为总线电源设备,使用自身外部电源的设备称为自身电源设备。为避免混淆,USB电缆的线条都用不同的颜色标记,如表16-1所示。表16-1USB电缆的信号和颜色、选择、14,16.3USB物理属性和16.3.1USB连接器从一个设备连接回主机,称为上行链路。从主机到设备的连接,称为下行链路。上行链路和下行链路端口使用不同的连接器以防止环路情况,因此USB在电缆和设备连接中使用两种类型的连接器:图16-2中所示的a型和b型连接器。每个连接器内的线号与图16-2中的端号匹配。用于上行连接的a型连接器(主机或集线器上有a型插槽,连接到主机或集线器的电缆一端有a型插头)。USB设备具有b型插槽,b型插头位于连接主机或集线器的下游电缆的一端。此连接允许USB设备、主机/集线器和USB电缆始终以正确的方式连接,而不会出现电缆访问错误,或者允许直接连接两个USB设备。部分,15,16.3USB物理特性,16.3.2USB信号差分信号技术特性传统的传输方式使用“正信号”或“负信号”二进制表示机制,大多数使用单线传输。在不同的信号级别范围中,存在分别表示1和0的阈值,并且在数据传输过程中被中低强度干扰的情况下,如果上下级别不超过阈值,则信号传输正常进行。但是,如果发生强碰撞,则上下级别将超过阈值,从而导致数据传输错误。差分信号技术的最大特点是,必须使用2个线路来表示1位,并使用2个线路传输信号的差压作为确定1或0的标准。这种方法的优点是有很强的抗干扰能力。在外部强干扰的情况下,与两条线路相对应的级别也大幅增加或减少,但在两条线路的级别变化几乎相同的情况下,电压差异总是相对稳定的,不会降低干扰噪声引起的数据准确性。选择,16,(2)USB通信格式,图16-3在USB电缆上使用双向零编码和差分信号传输,USB数据包使用反转零代码(NRZI)。图16-3显示了从USB电缆段传输信息的步骤。反向零编码由传递信息的USB代理完成。然后,编码的数据通过差分驱动器传输到USB电缆。接收器随后放大输入的差分信号,并将其发送到解码器。使用这种编码和差分信号传输方法,可以进一步保证数据完整性,减少噪声干扰。选择,17,(2)USB通信格式,图16-4反向非零编码,反向非零编码方案确保了数据传输的完整性,在传输过程中不需要单独的时钟信号。反向零编码不是一种新的编码方式。在很多方面都有应用。图16-4显示了数据流和编码后的结果。反向编码而不是返回到0时,发生“0”转换,保持“1”。反向非返回代码必须保持与输入数据的同步,以确保数据采样正确。必须在数据窗口中采样反向非零数据流,无论是否转换了之前的位时间。解码器在每个位时间对数据进行采样,以确定是否存在转换。选择,18,(2)如果相同的“1”信号继续传入,则长时间内无法转换数据,并逐渐累积,接收器最终失去同步信号,因此读取定时可能发生严重错误。因此,在NRZI编码之间还必须执行称为位填充的操作。如果数据流中有6个连续的“1”,则位填充需要强制转换。接收器将检测反向零码数据流中的跳跃,最多每7位。这将使接收器与输入数据流保持同步。非零发射器将“0”(填充位)插入数据流。接收器必须设计为识别6个连续“1”之后的自动跳跃,立即丢弃6个“1”之后的“0”位。图16-5的第一行是发送到接收器的原始数据。数据流包含8个连续的“1”。第二行表示原始数据按位填充,原始第六个和第七个“1”之间填充“0”。第七个“1”延迟一个位小时以插入填充位。接收器知道6个“1”连续后将出现填充位,因此将忽略该位。如果原始数据的第七位为“0”,则同样插入填充位,并且填充数据流中有两个连续的“0”。选择,19,16.3USB物理特性16.3.3检测USB系统在连接USB设备时自动检测和使用的数据传输速率的设备连接和速度。USB将牵引电阻添加到D或D线,以标识低速和全速设备。USB支持三种类型的传输速率:1.5Mb/s的低速传输、12Mb/s的全速传输和480Mb/s的高速传输。图16-6和图16-7所示。当USB设备未连接到主控制器或集线器的下游端口时,D和D线的下拉电阻导致两条数据线的电压均为近(0v)。连接全速/低速设备后,电流通过由集线器下拉电阻和d/d上电阻组成的分压器流动。下拉电阻的电阻为15K,向上抗拉电阻的电阻为1.5k,因此D/D-line上出现大小为(Vcc*15/(15 1.5)的直流高电平电压。如果USB主机接近D /D线电压较高的水平,而另一条线检测到保持接地状态,则表明已连接全速/低速设备。严格,20,16.3USB物理特性16.3.3测试设备连接和速度,低速USB设备电缆和电阻连接,全速USB设备电缆和电阻连接,严格,21,16.4USB通信协议,16.4.1包USB程序包包含五个部分:同步字段(SYNC)、程序包标识符字段(PID)、数据字

温馨提示

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

评论

0/150

提交评论