已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 usb接口与应用,王亚伟 平顶山学院,2,通用串行总线usb,usb(universal serial bus)通用串行总线是由compaq、digital equipment、intel、microsoft、ibm、nec及northern telecom等7家公司联合开发的一种流行的外设接口标准。,1996年2月公布了usb 1.0版本,传输速率有低速1.5mbps和高速12mbps两种模式。usb 2.0已于2000年4月27日由compaq、hp、intel、lucent、micrsoft、nec、philips正式对外发布,作为新一代usb标准,usb 2.0兼容所有usb 1.0外部设备及电缆线等,传输速率达480mbps。usb 2.0不仅使usb大大提速,而且使更多的设备可以经usb连接到pc,3,一、usb系统概述: usb是一种电缆总线,支持在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准协议使各种设备分享usb带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。,通用串行总线usb,1、usb系统的组成 一般usb系统被分成usb的连接、usb的设备和usb的主机。 usb的连接是指设备和主机之间进行连接的交互动作。usb的物理连接是有层次性的星型布局,每个集线器在星型的中心,每条线段是点对点连接的。,4,1、usb系统的组成(续) 任何usb系统中,只有一个主机。 usb的设备包括集线器(hub)和功能器件(function)。集线器为usb提供更多的连接点,一个usb系统最多可连接127个设备,功能部件是指键盘、打印机、数码相机等为系统提供具体功能的设备。 usb设备和usb主机的接口称为主机控制器(host controller),它是硬件和软件综合实现的。根集线器是综合于主机系统内部的,用以提供usb的连接点。,通用串行总线usb,5,usb的性能特点,使用方便,具有热插拔和即插即用功能。 传输速度快。 支持异步和同步传输 数据传输可靠 连接灵活 独立供电,耗电少。 接口灵活方便 ,易于扩展,通用串行总线usb,6,使用usb接口可以连接多个不同的设备,连接简单快捷,可以进行热插拔。即设备连到usb时,不必打开机箱,也不必关闭主机电源。 在软件方面,为usb设计的驱动程序和应用软件可以自动启动,无需用户干预。usb设备也不涉及irq冲突等问题,它单独使用自己的保留中断,不会同其它设备争用pc机有限的资源,为用户省去了硬件配置的烦恼。usb设备能真正做到“即插即用”。,使用方便,usb的性能特点,通用串行总线usb,7,传输速度快,usb 1.0 提供了两种速度:usb低速1.5mbps,低速的usb支持低速设备,例如,调制解调器、键盘、鼠标、优盘、硬盘、光驱、网卡、扫描仪、数码相机等;usb全速12mbps,usb全速的数据传输速度比rs-232c串口的9600bps快1000多倍,它用于大范围的多媒体设备。而usb 2.0的数据传输速度可以高达480mbps。 usb3.0接口的传输率可达5gb/s。,usb的性能特点,通用串行总线usb,8,连接灵活,一个usb接口理论上可以连接127个usb设备。连接的方式也十分灵活,既可以使用串行连接,也可以使用中枢转接头(hub),把多个设备连接在一起,再同pc机的usb口相接。在usb方式下,所有的外设都在机箱外连接,不必打开机箱;允许外设热插拔,而不必关闭主机电源。usb采用“级联”方式,即每个usb设备用一个usb插头连接到一个外设的usb插座上,而其本身又提供一个usb插座供下一个usb外设连接用。通过这种类似菊花链式的连接,一个usb控制器可以连接多达127个外设。标准usb电缆长度为3m(低速5m)。通过hub或中继器可以使外设距离达到30m。,usb的性能特点,通用串行总线usb,9,独立供电,由usb总线提供电源到外部设备,usb能提供+5v/500ma的电源,供低功耗usb设备如usb键盘、usb鼠标、优盘等作电源使用;但需高功耗的usb设备,如扫描仪等仍需自带电源;usb还采用apm(advanced power management)技术,可以有效地节省电源功耗。,usb的性能特点,通用串行总线usb,10,接口灵活方便,usb共有4种传输模式:控制传输(control)、同步传输(synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。usb还能智能识别usb链上外围设备的接入或拆卸。usb接口支持即插即用和热插拔,具有强大的可扩展性,为外围设备提供了低成本的标准数据传输形式。无论是键盘、鼠标、游戏摇杆之类的简单输入设备,还是打印机、扫描仪、存储设备、modem、摄像头之类的高级外部设备,都可以采用usb接口。所有使用ps/2、串行、并行传统接口的外围设备均可采用usb接口形式。,usb的性能特点,通用串行总线usb,11,usb使用一个4芯的标准接口,2芯是数据线,另2芯分别是+5v电源线和地线。接头有两种,扁平的a型和梯形的b型。通常b型供集线器(hub)的设备使用。,usb接口引脚,接口灵活方便,通用串行总线usb,红,白,绿,黑,12,usb系统的基本框架有三部分组成: usb主机控制器/根集线器、 usb集线器 usb设备。,usb的基本框架,通用串行总线usb,13,usb主机控制器/根集线器,通用串行总线usb,负责激活usb系统删的处理动作;根集线器;为usb设备或集线器提供usb连接端口。,usb集线器,除了根端口以外,usb系统还提供附加的集线器,为连接其它设备提供一个或多个端口。usb集线器可集成到键盘或显示器设备中去,也可以成为一个独立的设备。,14,usb设备,通用串行总线usb,泛指各种类型的usb外围设备,usb设备能够以高速、低俗、全速中的任何一种方式运行。,低速设备:如键盘鼠标,传输速率为1.5mb/s。 全速设备:如ccd、移动硬盘等,传输速率为12mb/s. 高速设备:如ccd、移动硬盘等设备,传输速率480mb/s。,15,usb的物理接口和电气特性,一、接口信号线,3、电气特性,16,3、电气特性,d+、d-线电气特性: 无驱动:高速vd+ 2.7v, vd-0.8v, 低速反之; 有驱动:高速vd+ 2.0v, vd-2.0v, 低速反之,收发器:对地电源电压为4.755.25v,设备吸入的最大电流值为500ma ,d+、 d-上不加电压 usb设备:高速在d+上加3.03.6v电压, 低速反之,17,3、电气特性 在usb总线上的两个端点之间传送数据时,总是采用平衡发送差分接收的方式工作,这样可以极大地提高传输速率,并能减少噪声。驱动器和接收器采用差分电路可抵消噪声的干扰。,18,3、电气特性(续) usb传送信号和电源是通过一种四线的电缆。 两根双绞线是信号线d+和d-,用于发送信号。 usb为适应不同的设备需要,具有不同的数据传输率。可在用同一usb总线传输的情况下自动地动态切换。因为过多的使用低速模式,将降低总线的利用率,所以该模式只支持有限的个别低带宽的设备(如鼠标)。 vbus和gnd两条线,为设备提供电源,vbus的电压为5v。 usb设备可从总线和上行集线器上获得电压,也可以自行供电,设备获取的电量也可进行设置。,usb电缆,19,3、电气特性(续) usb具有省电模式,即进入挂起状态,usb支持两种类型的挂起方式:全部挂起和选择挂起,全部挂起是所有的usb设备进入挂起状态;选择挂起是仅被选择的设备进入挂起状态。当3ms内没有检测到总线行为,设备将会进入挂起状态,当设备进入挂起状态时,它消耗的电流不超过500a。当设备被唤醒时(远程唤醒或由唤醒信号唤醒),必须限制从总线上获取的电流,设备必须有足够大的分流电容,以保证当设备处在恢复过程时,从集线器获取的电流不超过端口的最大电流允许值。,通用串行总线usb,20,usb数据编码和解码 当pc主机对设备各发出控制信号时,所有连接的设备都通过根集线器收到同样的信号,但是经过对比所配置的设备地址后,只能有一个设备作出相对应的动作。因此对一个设备而言,不仅要无误地接收主机端所送来的数据,还要正确地发出响应的信号。因此,在d与d-的差动数据线上就必须采用一种特别的编号方式再加以传送出去,以解决在usb缆线所产生信号延迟以及误差等问题。,4、usb的编码方式,21,usb数据编码和解码(续) usb采用了nrzi(non return to zero invert,翻转非零码)的编码方式,无须同步的时钟信号也能产生同步的数据存取。 nrzi的编码规则是,当数据位为“1”时不转换,为“0”时再作转换。,4、usb的编码方式,22,usb数据编码和解码(续) nrzi的编码方式会遇到一个很严重的问题:若重复相同的“1”信号一直进入时,就会造成数据长时间无法转换,逐渐地累积而导致“塞车”的状况,使得读取的时序就会发生严重的错误。因此,在nrzi编码之间,还需执行所谓的位填充(bit-stuffing)的工作。 若原始的串行数据中含有连续6个“1”位,就在其后填塞一个“0”位,强制在nrzi编码的数据流中加入跳变,执行位填塞的工作。,如果原始数据的第七位是0,填充位还是会被加入的,而且还加在同样的位置,这就导致了在填充后的数据流中会有两个连续的0。,4、usb的编码方式,23,usb数据编码和解码(续) 若原始的串行数据中含有连续6个“1”位,就在其后填塞一个“0”位,强制在nrzi编码的数据流中加入跳变,执行位填塞的工作。,4、usb的编码方式,24,usb数据编码和解码(续) 位填充操作从同步数据段开始,贯穿于整个传送过程,在同步数据段的数据“1”作为真正数据流的第一位。位填充操作毫无例外由传送端强制执行。 在发送端进行数据传输之前,须先执行位填塞和nrzi编码的工作。相对的,在接收端进行数据接收之前,就必须先执行nrzi译码,识别插入位并去掉它们,然后再做位反填塞(unbit-stuffing)的工作。如果接收端发现数据包中任一处有七个连续的“1”,则将会产生一个位插入错误,该数据包将被忽略。,4、usb的编码方式,25,usb协议将通信逻辑上分为三层: 总线接口层、协议层和数据层。 总线接口层是真正的物理对应关系,也是最底层结构,而其他两层则是逻辑对应关系。总线接口层为主机接口和设备接口的连接,传送的是二进制比特流;协议层逻辑上是usb协议栈和usb逻辑设备之间的对应,其中传送的是包字节流;数据层则是主机端驱动程序或者应用软件和设备端功能单元的对应,传送的是有一定意义的信息。usb协议在区分三层结构中不同的信息流时候使用了不同的称谓来描述:总线接口层的位信息流为信息包;协议层的包信息流为事务处理;数据层的信息流为数据传输。,5、usb通信的逻辑结构,6.1 包 包(packet)是usb系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。usb包由五部分组成,即同步字段(sync)、包标识符字段(pid)、数据字段、循环冗余校验字段(crc)和包结尾字段(eop),包的基本格式如下图:,1、sync字段由8位组成,作为每个数据封包的前导,用来产生同步作用,使usb设备与总线的包传输率同步,它的数值固定为00000001。 2、pid字段用来表示数据封包的类型。pid字段如下图所示:,6、usb总线的协议,各种封包的类型与规范,6、usb总线的协议,6.1 包,3、数据字段是用来携带主机与设备之间要传递的信息,其内容和长度根据包标识符、传输类型的不同而各不相同。并非所有的usb包都必须有数据字段,例如握手包、专用包和sof令牌包就没有数据字段。在usb包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。 4、crc字段由不同数目的位所组成。其中重要的数据封包采用crc16的数据域(16个位),而其余的封包类型则采用crc5的数据域(5个位)。 5、包结尾字段即发送方在包的结尾发出包结尾信号。它表现为差分线路的两根数据线保持2比特低位时间和1比特空闲位时间。usb主机根据eop判断数据包的结束。,6、usb总线的协议,6.2 封包格式,起始(sof)封包 sof封包属于令牌封包的一种,但具有独自的pid类型名:sof。这个封包常用于等时传输,并不应用于低速设备。格式如下:,令牌(token)封包 由于usb的数据交换是由pc主机端所激活的,所以在每一个数据交换中必须以sync、pid、addr、endp与crc5这5个数据域组合而成的令牌封包为起始。格式如下:,6、usb总线的协议,数据(data)封包,数据封包含有4个域:sync、pid、data与crc16。data数据域的位值是根据usb设备的传输速度及传输类型而定,且须以8字节为基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的也不足8字节,仍须传输8字节的数据域。格式如下:,握手(handshake)封包 握手封包仅包含sync和一个pid数据域,格式如下:,特殊(special)封包 pre是主机从高速传输变成低速传输时送来的封包。格式如下:,6、usb总线的协议,事务处理(transaction):在usb上数据信息的一次接收或发送的处理过程。 (1)输入(in)事务处理 输入事务处理表示usb主机从总线上的某个usb设备接收一个数据包的过程。 正常的输入事务处理 设备忙时的输入事务处理 设备出错时的输入事务处理,6.3 事务,6、usb总线的协议,正常的输出事务处理,(2)输出(out)事务处理,设备忙时的输出事务处理,设备出错时的输入事务处理,6、usb总线的协议,正常的设置事务处理,(3)设置(setup)事务处理,设备忙时的设置事务处理,设备出错时的设置事务处理,(4)帧起始(sof)事务处理 (5)帧结束(eof)事务处理,6、usb总线的协议,在usb的传输中,制定了4种传输类型:控制传输、中断传输、批量传输以及等时传输。 控制传输是usb传输中最重要的传输。它包含3种类型:控制读取、控制写入以及无数据控制。这3种控制传输类型又分为23个阶段:设置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。 阶段一:设置阶段 主机从usb设备获取配置信息,并设置设备的配置值。 设置阶段的数据交换包含了setup令牌封包、紧随其后的data0数据封包以及ack握手封包。它的作用是执行一个设置(概念含糊)的数据交换,并定义此控制传输的内容。,6.4 usb的数据传输,6、usb总线的协议,数据传输阶段用来传输主机与设备之间的数据。控制读取将数据从设备移到主机上;控制写入将数据从主机传到设备上。,阶段二:数据传输阶段,6、usb总线的协议,状态阶段用来表示整个传输的过程已完全结束。 状态阶段传输的方向必须与数据阶段的方向相反,即原来是in令牌封包,这个阶段应为out令牌封包;反之,原来是out令牌封包,这个阶段应为in令牌封包。对于控制读取而言,主机会送出out令牌封包,其后再跟着0长度的data1封包。而此时,设备也会做出相对应的动作,送ack握手封包、nak握手封包或stall握手封包。相对地对于控制写入传输,主机会送出in令牌封包,然后设备送出表示完成状态阶段的0长度的data1封包,主机再做出相对应的动作:送ack握手封包、nak握手封包或stall握手封包。,阶段三:状态阶段,6、usb总线的协议,第二节 芯片的主要性能指标,usb接口芯片大致可以分为两大类: 1.仅包含usb串行接口引擎(sie)、fifo内存、收发器以及电压调整器的芯片。 2.针对某种特殊目的所开发的专用usb微处理器,内部包含了通用型的cpu或mpu。 常用的usb微处理器有cypress公司的m8系列与ez-usb系列;atmel公司的at43usb321 microchip公司的pic16c745与pic16c765,scanlogic公司的sl16-usb,motorala公司的68hc705jb2、b3、b4系列等,串行接口引擎(sie)主要功能,封包辨识,数据交换的持续产生。 包开始、包结束、reset、resume的信号检测/产生。 时钟/数据的分离。 nrzi数据译码/编码以及位填充。 crc的产生与检查、令牌封包(crc5校验)与数据封包(crc16校验)。 包标示符(pid)的产生以及检查/译码。 串行-并行/并行-串行转换。 usb地址与端点译码。 端点阶层流程控制 作为usb数据缓冲器。 维持data toggle位的状态。 提供之后段区域设备控制器或专用控制器或县城可编程门列阵的接口。,usb芯片中的硬件单元sie,第三节 sl811hs接口芯片,slh811hs 是cypress公司生产的、可支持全速数据传输的usb控制芯片。该芯片采用脚plcc和脚tqfp(薄四方扁平封装 )两种封装形式,且内含usb主从控制器, 支持全速(full-speed)低速 (low-speed)数据传并能自动识别低速或全速设备。 slh811hs所提供的接口遵从usb 标 准,可与微处理器、微控制器、dsp相连,也可直接与isa、pcmcia及其它总线相连。 slh811hs的数据接口与微处理器进行接口可提供位数据 或双向通道,并能以从机操作方式支持数据传输。此外,通过中断支持还可以轻松地与motorola、intel 及其它众多类型的标准微处理器或微控制器相连。 slh811hs内部有一个字节的ram,可用做控制寄存器或数据缓冲器,sl811hs内部结构框图,sl811hs实物图,一、sl811hs的主要特点 sl811hs能工作在host/slave两种模式。 能通过硬件设置或软件设置的方法使该芯片工作在host/slave模式。 自动探测所接设备是低速设备还是高速设备。 8位双向数据总线。 片内包含sie、usb收发器。 自动产生sof令牌包,以及自动生成令牌包、数据包中所需要的crc5/crc16数据。 内部256bram,支持乒乓操作;支持suspend/resumewake up、low-power模式。,二、 sl811hs管脚说明。 sl811hs采用脚和脚两种封装形 。,sl811hs的管脚图,三、sl811hs的工作原理 sl811hs的内部寄存器一共有256个单元,每个单元是一个字节,地址为00h-ffh。其中前16个单元是sl811hs的状态寄存器或控制寄存器(统称为特殊寄存器)。07h单元为预留寄存器;10h-ffh为数据缓冲寄存器。,sl811hs对usb设备的启动过程,1.初始化 (1)sl811hs芯片的复位 (2)usb总线复位 (3)设备插拔检测和设备usb数据传输速的检测。,sl811hs对usb设备的启动过程,2.传输事务的实现 一个事务的传输一般包括三个包的传输,分别为标记包、数据包和握手包,在usb四中数据传输方式中,控制传输方式至少由两个传输事务构成,其他三种传输方式均由一个传输事务构成。 使用sl811hs设计usb主机系统时,用户只需让单片机设置sl811hs内部及相关的特殊寄存器,然后把传输事务启动位置为“1”,就可以让接口芯片自动完成这个包的发送与接收。,第四节 ch375接口芯片,概述 ch375 是一个usb总线的通用接口芯片,支持usb-host主机方式和usb-device/slave设备方式。在本地端,ch375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/dsp/mcu/mpu等控制器的系统总线上。在usb主机方式下,ch375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/dsp/mcu/mpu 等相连接。,一、特点 全速usb-host 主机接口,兼容usb v2.0,外围元器件只需要晶体和电容。 全速设备接口,完全兼容ch372 芯片,支持动态切换主机与设备方式。 主机端点输入和输出缓冲区各64 字节,支持常用的12mbps 全速usb 设备。 支持usb 设备的控制传输、批量传输、中断传输。 自动检测usb 设备的连接和断开,提供设备连接和断开的事件通知。 内置控制传输的协议处理器,简化常用的控制传输。, 内置固件处理海量存储设备的专用通讯协议,支持bulk-only传输协议和scsi、ufi、rbc 或等效命令集的usb 存储设备(包括usb 硬盘/usb 闪存盘/u 盘)。 通过u 盘文件级子程序库实现单片机读写usb 存储设备中的文件。 并行接口包含8 位数据总线,4 线控制:读选通、写选通、片选输入、中断输出。 串行接口包含串行输入、串行输出、中断输出,支持通讯波特率动态调整。 支持5v 电源电压和3.3v 电源电压,ch375a 芯片还支持低功耗模式。 采用sop-28 封装,可以提供sop28 到dip28 的转换板。,ch375 采用28脚sop封装形式,芯片内部集成了pll 倍频器、主从usb 接口sie、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等。,二、ch375管脚说明,ch375管脚图,二、ch375管脚说明,管脚说明,ch375芯片内部具有7个物理端点。 端点0是默认端点,支持上传和下传,上传和下传缓冲区各是8b; 端点1包括上传端点和下传端点,上传和下传缓冲区各是8b,上传端点的端点号是81h,下传端点的端点号是01h; 端点2包括上传端点和下传端点,上传和下传缓冲区各是64b,上传端点的端点号是82h,下传端点的端点号是02h。,三、ch375接口芯片工作原理,主机端点包括输出端点和输入端点,输出和输入缓冲区各是64b,主机端点与端点2合用同一组缓冲区,主机端点的输出缓冲区就是端点2的上传缓冲区,主机端点的输入缓冲区就是端点2的下传缓冲区。 其中,ch375的端点0、端点1、端点2只用于usb设备方式,在usb主机方式下只需要用到主机端点。,三、ch375接口芯片工作原理,ch375 芯片在本地端提供了通用的被动并行接口和点对点的串行接口。 在 ch375 芯片的复位期间,txd 引脚用于选择通讯接口。如果 ch375 在复位期间检测到 txd 引脚为低电平则启用并行接口,否则启用串行接口。如果启用串行接口,那么复位完成后 txd 引脚将用于串行数据输出,并且 ch375 芯片只能工作于 usb 主机方式。,并行接口,这是 ch375 与普通的 mcs-51 单片机的连接电路。ch375 的 txd 引脚通过 1k左右的下拉电阻接地或者直接接地,从而使 ch375 工作于并口方式。 电容 c3 用于 ch375 内部电源节点退耦,c3 是容量为 4700pf 到 0.02f 的独石或者高频瓷片电容。电容 c4 和 c5 用于外部电源退耦,c4 是容量为 0.1f 的独石或者高频瓷片电容。晶体 x1、电容 c1 和 c2 用于 ch375 的时钟振荡电路。usb-host 主机方式要求时钟频率比较准确,晶体 x1 的频率是 12mhz0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论