USB通讯协议(通俗易懂,新手绝对入门)

合集下载

USB协议中文详解

USB协议中文详解
6
USB 体系简介
USB 体系包括主机、设备以及物理连 接三个部分。
主机是一个提供USB接口及接口管理 能力的硬件、软件及固件的复合体, 可以是PC,也可以是OTG设备。一 个USB 系统中仅有一个USB主机;
设备包括 USB功能设备和 USB HUB, 最多支持 127个设备;
物理连接即指的是USB 的传输线。 在USB 2.0系统中,要求使用屏蔽的 双绞线。
把多个功能设备通过内置的 USB HUB 组合而成的设备,比如带录音话筒 的 USB 摄像头等。 一个 USB HOST 最多可以同时支持 128 个地址,地址 0 作为默认地址, 只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个 USB HOST 最多可以同时支持 127 个地址,如果一个设备只占用一个地 址,那么可最多支持 127个 USB 设备(含USB HUB)。
USB 接口扩展
USB HUB提供了一种低成本、低复杂度的USB 接口扩展方法。HUB 的上行PORT 面向 HOST,下行 PORT 面向设备(HUB 或功能设备)。 在下行 PORT 上,HUB 提供了设备连接检测和设备移除检测的能力, 并给各下行PORT供电。
HUB可以单独使能各下行PORT,不同PORT 可以工作不同的速度等 级(高速/全速/低速)。
转发器提供了从高速和全速/低速通讯的转换能力,通过 HUB 可以在 高速 HOST 和全速/低速设备之间进行匹配。
HUB 在硬件上支持 Reset、Resume、Suspend。
17
USB 体系简介
USB HOST 在USB体系中负责设备连接/移除的检测、HOST 和设备之 间控制流和数据流的管理、传输状态的收集、总线电源的供给。
24

USB的通讯协议(通俗易懂).ppt

USB的通讯协议(通俗易懂).ppt

16.2 USB系统基本概念
• 16.2.2 USB设备
一个USB设备由三个功能模块组成:USB总线接口、USB逻辑 设备和功能单元。这里的USB总线接口指的是USB设备中的串行接口 引擎(SIE);USB逻辑设备被USB系统软件看作是一个端点的集合; 功能单元被客户软件看作是一个接口的集合。SIE、端点和接口都是 USB设备的组成单元。为了更好地描述USB设备的特征,USB提出了 设备架构的概念。从这个角度来看,可以认为USB设备是由一些配置、 接口和端点组成的,即一个USB设备可以含有一个或多个配置,在每 个配置中可含有一个或多个接口,在每个接口中可含有若干个端点。 其中,配置和接口是对USB设备功能的抽象,实际的数据传输由端点 来完成。在使用USB设备前,必须指明其采用的配置和接口。这个步 骤一般是在设备接入主机时设备进行自举时完成的,我们在后面会进 一步介绍。USB设备使用各种描述符来说明其设备架构,包括设备描 述符、配置描述符、接口描述符、端点描述符以及字符串描述符,它 们通常被保存在USB设备的固件程序中。
16.1 USB概述
• 主机定时对集线器的状态进行查询。当一个新设
备接入集线器时,主机会检测到集线器状态改变, 主机发出一个命令使该端口有效并对其进行设置。 位于这个端口上的设备进行响应,主机收到关于 设备的信息,主机的操作系统确定对这个设备使 用那种驱动程序,接着设备被分配一个唯一标识 的地址,范围从0~127,其中0为所有的设备在 没有分配惟一地址时使用的默认地址。主机向它 发出内部设置请求。当一个设备从总线上移走时, 主机就从其可用资源列表中将这个设备删除。
16.2 USB系统基本概念
• 16.2.1 USB主机
• (3) USB总线接口
USB总线接口包括主控制器和根集线器两部分。 根集线器为USB系统提供连接起点,用于给USB系 统提供一个或多个连接点(端口)。主控制器负责完 成主机和USB设备之间数据的实际传输,包括对传 输的数据进行串行编解码、差错控制等。该部分与 USB系统软件的接口依赖于主控制器的硬件实现, 开发人员不必掌握。

USB的通讯协议

USB的通讯协议

《嵌入式技术基础与实践》
第六页,编辑于星期六:十三点 四十六分。
16.2 USB系统基本概念
• 16.2.1 USB主机
• (2) USB系统软件
USB系统软件负责和USB逻辑设备进行配置通信, 并管理客户软件启动的数据传输。USB逻辑设备是程 序员与USB设备打交道的部分。USB系统软件一般包 括USB总线驱动程序和USB主控制器驱动程序这两部 分。这些软件通常由操作系统提供,开发人员不必掌 握。
第十二页,编辑于星期六:十三点 四十六分。
16.3 USB物理特性
– 16.3.1 USB接口
USB使用一根屏蔽的4线电缆与网络上的设备进行互 联。数据传输通过一个差分双绞线进行,这两根线分别标为 D+和D-,另外两根线是Vcc和Ground,其中Vcc向USB设 备供电。使用USB电源的设备称为总线供电设备,而使用自 己外部电源的设备叫做自供电设备。为了避免混淆,USB电 缆中的线都用不同的颜色标记,如表16-1所示。
• ⑥管道
在USB系统结构中,可以认为数据传输是在主机软件(USB系统 软件或客户软件)和USB设备的各个端点之间直接进行的,它们之间的 连接称为管道。管道是在USB设备的配置过程中建立的。管道是对主机 和USB设备间通信流的抽象,它表示主机的数据缓冲区和USB设备的端 点之间存在着逻辑数据传输,而实际的数据传输是由USB总线接口层来 完成的。
《嵌入式技术基础与实践》
第四页,编辑于星期六:十三点 四十六分。
16.2 USB系统基本概念
• 16.2.1 USB主机
USB的所有数据通信(不论是上行通信还是下行 通信)都由USB主机启动,所以USB主机在整个 数据传输过程中占据着主导地位。在USB系统中 只允许有一个主机。从开发人员的角度看,USB 主机可分为三个不同的功能模块:客户软件、 USB系统软件和USB总线接口。

usb协议深入解读

usb协议深入解读

usb协议深入解读USB(Universal Serial Bus)是一种通用的串行总线标准,用于连接电脑与外部设备,如键盘、鼠标、打印机、存储设备等。

USB协议定义了电脑和外部设备之间的通信规则,保证了设备的互操作性和兼容性。

USB协议的工作原理是将数据分成小的信息包(packet),通过USB线缆传输。

数据传输分为Control、Bulk、Interrupt和Isochronous四种传输类型。

控制传输用于设备配置和命令交互,批量传输用于大容量数据传输,中断传输适用于延迟要求较高的设备,同步传输用于实时流媒体数据传输。

USB协议采用主从架构。

电脑作为主机(host),外部设备作为从设备(device)。

主机负责控制和管理设备的连接和通信,从设备根据主机的指令执行任务。

每个设备都有一个唯一的设备地址,主机通过唯一的地址识别和寻找特定的设备。

USB协议还定义了一种层次结构,包括物理层、总线层、设备层和应用层。

物理层负责USB线缆的传输、信号传输和电气特性。

总线层负责数据帧的传输、错误检测和纠正,以及设备的连接和断开管理。

设备层负责设备地址分配、设备功能描述和配置管理。

应用层根据设备的功能需求进行数据交换和通信。

USB协议还支持热插拔功能,即在不关机的情况下插入或拔出外部设备。

这得益于协议对设备的供电和识别机制。

当设备插入时,主机会为其提供所需的电源,然后通过设备描述符和配置描述符来识别设备的类型和功能。

通过热插拔功能,用户可以方便地连接和断开设备,无需重新启动电脑。

在USB协议中,还有一种特殊的设备称为HID(Human Interface Device),用于连接输入设备(如键盘、鼠标)和输出设备(如显示器)。

HID设备使用标准的USB报告描述符进行通信,主机通过解读报告描述符来识别和操作设备。

这种设计使得不同品牌的键盘和鼠标可以通用于各种操作系统和电脑设备。

需要注意的是,USB协议并不仅限于连接电脑和外部设备。

USB基本知识及通信协议共33页word资料

USB基本知识及通信协议共33页word资料

串口通信协议什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。

USB的通讯协议

USB的通讯协议

USB的通讯协议
USB(Universal Serial Bus,通用串行总线)是现在计算机市场上最流行的互联技术。

它可以通过串行接口将计算机与外部设备连接起来,简化了人们和电脑之间的交流。

大多数计算机都配有USB接口,而各种外部设备,如打印机,外部硬盘,扫描仪,数码相机,数码录音机,MP3播放器等,都可以通过USB接口实现与计算机之间的传输。

USB的技术协议是一种特殊的串行接口技术,也叫做Serial Bus Protocol(SBP),它定义了计算机和外部设备之间的传输规则,也就是调制解调器(Modem)只能支持一种协议的规则,使得数据能够可靠的安全地传输。

它是由电缆和接头组成的,电缆由4根线分别为:地线(GND),速度控制线(RXD),数据线(TXD),电压线(Vcc)。

接头有A和B两种,其中A接口具有主控功能,B接口具有从控功能。

USB的功能是把一个设备(如打印机)连接到另一个设备(如PC 机),实现数据传输,它被分为两个层次:物理层和数据链路层。

物理层定义了信号和线路接口及工作电压,它主要定义了线缆,连接器,电压,电流以及信号传输形式;数据链路层定义了数据传输的方式,包括数据格式,错误控制和流量控制。

usb通信协议

usb通信协议

usb通信协议USB通信协议。

USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。

USB通信协议是指在USB接口上进行数据传输时所遵循的规范和约定。

USB通信协议的设计旨在实现设备间的高速、可靠的数据传输,同时保持简单易用的特点。

本文将介绍USB通信协议的基本原理、数据传输方式以及常见的应用场景。

首先,USB通信协议的基本原理是通过主机-设备的架构进行数据传输。

在USB接口上,主机负责发起数据传输请求和管理总线上的设备,而设备则负责响应主机的请求并进行数据传输。

USB通信协议通过定义不同的传输类型(如控制传输、批量传输、中断传输和等时传输)来满足不同设备的数据传输需求。

控制传输用于配置设备和发送命令,批量传输适用于大容量数据的传输,中断传输用于周期性的小数据传输,而等时传输则用于实时数据传输。

其次,USB通信协议的数据传输方式包括同步传输和异步传输。

在同步传输中,数据的传输速度是由主机控制的,主机会周期性地向设备发送数据请求并接收数据响应。

而在异步传输中,设备可以主动向主机发送数据,主机则负责接收和处理数据。

USB通信协议通过这种灵活的数据传输方式,可以满足各种不同设备的数据传输需求,包括打印机、键盘、鼠标、存储设备等。

最后,USB通信协议在各种应用场景中都得到了广泛的应用。

在个人电脑上,USB通信协议被用于连接鼠标、键盘、打印机、摄像头、存储设备等外部设备。

在嵌入式系统中,USB通信协议也被广泛应用于连接各种传感器、执行器和控制器。

此外,USB通信协议还被用于连接智能手机、平板电脑、电视机、音响等消费类电子产品,实现数据传输和充电功能。

综上所述,USB通信协议作为一种通用的数据传输标准,已经成为了现代计算机和外部设备之间数据传输的重要桥梁。

通过遵循USB通信协议的规范和约定,不同厂商生产的设备可以实现互连互通,为用户提供了更加便利和丰富的外部设备选择。

USB通信协议

USB通信协议

USB通信协议——数据交易表列出了组成4种传输类型的元素。

在这里,读者就需要注意一些通信协议的结构。

例如,传输与数据交易、数据交易与封包、封包与字段之间的关系。

当然,这是相当复杂且容易弄混淆的地方。

其中,传输包含1个或是更多的数据交易,每一个数据交易又包含1个、2个或是3个封包。

而封包中,又包含封包标识符(PID)字段、检查字段(CRC)以及额外的信息字段。

表传输类型、数据交易与封包的关系表*每一个封包是往下端接口传递出去的,若是低速,前面还会再放置PRE封包。

因此,若要了解完整的USB通信协议就必须从数据域谈起。

通过由下而上,从简易至复杂的通信协议单位来组合出各种复杂的通信协议,进而构建出完整的通信协议。

从表的第2栏中,可以知道其中包含了3种数据交易类型。

这3种数据交易是根据其目的与数据流方向来决定的。

其中,SETUP数据交易用来送出控制传输要求给设备;IN数据交易是数据从设各传回主机;OUT数据交易是将数据传送出去给设各。

每一个数据交易中,包含了辨识、错误检核、状态以及控制信息,同样也包含了要交换的数据等。

此外,一个完整的数据交易可能占用多个帧。

但是数据交易却是一个实现USB通信协议的最基本的结构组成。

也即是,在总线上没有任何通信能够去切断该数据交易的沟通过程。

当然,除非是错误的USB通信过程。

此外,一个小量数据的传输也许仅需一个数据交易。

如果是大量的数据,传输可能就需使用多个数据交易,每一次传输一部分数据。

读者或许会认为表的通信协议的结构非常复杂。

其中,尤其是第1栏所列的控制传输是较为严谨与必须去实现的。

根据上述不同封包的组合与搭配就可以执行各种数据交易。

但最重要的是,数据交易的格式必须与前面所提及的4种传输类型互相配合。

这是因为不同的传输类型就会执行不同的数据交易。

其中,除了等时传输外,控制传输、中断传输与批量传输都以下列的3个阶段来组成一个数据交易的动作。

等时传输却只有包含如下所列的2个阶段而已。

USB通讯协议(通俗易懂-新手绝对入门)

USB通讯协议(通俗易懂-新手绝对入门)

432 1
12
43
A型连接头
B型连接头
《嵌图入16式-2 技U第1S4术页B,连共基75页接。础头与实践》
16.3 USB物理特性
16.3.2 USB信号
(1) 差分信号技术特点 传统的传输方式大多使用“正信号”或者“负信号”二进制表达机
制,这些信号利用单线传输。用不同的信号电平范围来分别表示 1和0,它们之间有一个临界值,如果在数据传输过程中受到中低强 度的干扰,高低电平不会突破临界值,那么信号传输可以正常进行。 但如果遇到强干扰,高低电平突破临界值,由此造成数据传输出错。 差分信号技术最大的特点是:必须使用两条线路才能表达一个比特 位,用两条线路传输信号的压差作为判断1还是0的依据。这种做法 的优点是具有极强的抗干扰性。倘若遭受外界强烈干扰,两条线路 对应的电平同样会出现大幅度提升或降低的情况,但二者的电平改 变方向和幅度几乎相同,电压差值就可始终保持相对稳定,因此数 据的准确性并不会因干扰噪声而有所降低。
一个USB设备可以包含一个或多个配置,如USB设备的低功耗模式和高功耗 模式可分别对应一个配置。在使用USB设备前,必须为其选择一个合适的配 置。配置描述符用于说明USB设备中各个配置的特性,如配置所含接口的个数等。
USB设备的每一个配置都必须有一个配置描述符。
③接口 一个配置可以包含一个或多个接口,如对一个光驱来说,当用于文件传
《嵌入式技第8页术,共基75页。础与实践》
16.2 USB系统基本概念 16.2.2 USB设备
一个USB设备由三个功能模块组成:USB总线接口、USB逻辑设备和功能单元。 这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);USB逻辑设备被 USB系统软件看作是一个端点的集合;功能单元被客户软件看作是一个接口 的集合。SIE、端点和接口都是USB设备的组成单元。为了更好地描述USB设备的 特征,USB提出了设备架构的概念。从这个角度来看,可以认为USB设备是由一些配

USB基本知识及通信协议

USB基本知识及通信协议

串口通信协议什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(b yte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。

通俗易懂的USB协议详解(转载)

通俗易懂的USB协议详解(转载)

Usb详解USB作为一种串行接口,应用日益广泛。

如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握usb.但是usb的接口协议实在有点费解,linux uhci驱动作者之一Alan Stern曾经就说过“The USB documentationis downright evil. Most of it is just crap, written by a committee. You're better off ignoringmost of it ”。

本文将从整体上介绍usb协议,包括usb host ,usb hub,usb function。

希望能给读者一个总体上的了解。

也因此,文章将分成相应的三部分讲解。

一。

usb function1。

初识b是一种串行接口协议,它靠d+,d-两条数据线构成的差分线来进行数据传输,这让我们非常感兴趣它到底和我们通常熟悉两线rs232/485有何区别。

了解这种区别有助于我们对usb作一个深入的了解。

那么让我们回想一下到底一个两线rs232的数据是如何传送的,如图一:在这里我们的重点在于,我们发现要在串行口传送数据一个最体码的要求恐怕就是:要知道数据传输何时开始,何时结束。

即如何delimit.那么rs232怎么做的。

显然,在idle(空闲)时,即无数据传送时,数据线处于高电平,等到有数据开始传送,发送方首先拉低数据线(start),表示数据传输开始,接受端也因为这个“start”信号开始准备接受即将到来的数据,类似一次握手,随后,在两者之间的数据传送开始,结束后主方再次拉高数据线,表示结束传输,自此两者重新进入Idle状态。

等待下一轮传送开始。

了解了rs232,那么我们自然想到usb如何做到这个呢,既然是串行位流传输,也理所当然的解决这个问题。

没错,Usb协议必然要解决这个问题,让我们作一个类似rs232的比较吧!类似于rs232,usb的传输桢如图二:(这里我们暂时忽略这个传输所代表的意义)为了说明问题,我们对一些问题简化,我们定义这样几个状态:假设D+,D-分别表示usb信号线的电平信号。

usb协议深入解读

usb协议深入解读

usb协议深入解读
USB(通用串行总线)是一种广泛使用的计算机接口标准,主要用于连接计算机和其他外部设备。

它诞生于1994年,由微软、英特尔和惠普等公司联合开发。

USB协议是USB接口的通信协议,它定义了计算机如何与外部设备进行通信。

USB协议是一种分层协议,从上到下分为三层:应用层、传输层和物理层。

1.应用层:这一层主要负责处理应用程序的请求,例如文件传输、设备驱动程序等。

2.传输层:这一层负责将数据打包成包,并通过USB总线传输。

它提供了四种类型的传输方式:控制传输、批量传输、中断传输和同步传输。

每种传输方式都有其特定的用途和特性。

3.物理层:这一层负责实际的物理连接和信号传输。

它定义了USB设备的物理特性,如电压、电流等,并规定了USB设备的物理连接方式,如插头和插座的形状、尺寸等。

在USB协议中,数据是以数据包的形式传输的。

每个数据包都包含一个同步字段、一个包标识符字段、一个数据字段和一个校验字段。

同步字段用于同步数据包的开始和结束;包标识符字段用于标识数据包的类型;数据字段包含实际传输的数据;校验字段用于检查数据包的完整性。

USB协议还定义了设备的枚举过程,即计算机如何识别和配置外部设备。

枚举过程中,计算机通过发送请求给设备,获取设备的描述信息,然后根据这些信息对设备进行配置。

总的来说,USB协议是一种灵活、高效、易于使用的通信协议,它使得外部设备的连接和配置变得更加简单和方便。

随着USB标准的不断发展,现在USB接口已经成为计算机和其他设备的标配接口之一。

USB通信协议——深入理解

USB通信协议——深入理解

USB通信协议——深⼊理解USB通信协议——深⼊理解0. 基本概念⼀个【传输】(控制、批量、中断、等时):由多个【事务】组成;⼀个【事务】(IN、OUT、SETUP):由⼀多个【Packet】组成。

USB数据在【主机软件】与【USB设备特定的端点】间被传输。

【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。

⼀个USB设备可以有多个管道(pipes)。

1. 包(Packet)包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。

数据在 USB总线上的传输以包为单位,包只能在帧内传输。

⾼速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。

帧的起始由⼀个特定的包(SOF 包)表⽰,帧尾为 EOF。

EOF不是⼀个包,⽽是⼀种电平状态,EOF期间不允许有数据传输。

注意:虽然⾼速USB总线和全速/低速USB总线的帧周期不⼀样,但是SOF包中帧编号的增加速度是⼀样的,因为在⾼速USB系统中,SOF包中帧编号实际上取得是计数器的⾼11位,最低三位作为微帧编号没有使⽤,因此其帧编号的增加周期也为 1mS。

• USB总线上的情形是怎样的?• 包是USB总线上数据传输的最⼩单位,不能被打断或⼲扰,否则会引发错误。

若⼲个数据包组成⼀次事务传输,⼀次事务传输也不能打断,属于⼀次事务传输的⼏个包必须连续,不能跨帧完成。

⼀次传输由⼀次到多次事务传输构成,可以跨帧完成。

USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),包的基本格式如下图:1.1 PID类型(即包类型)1.2 Token Packets此格式适⽤于IN、OUT、SETUP、PING。

PID 数据传输⽅向IN Device->HostOUT Host->DeviceSETUP Host->DevicePING Device->Host1.3 Start-of-Frame(SOF) PacketsSOF包由Host发送给Device。

usb协议中文详解

usb协议中文详解
USB 接口扩展
USB HUB提供了一种低成本、低复杂度的USB 接口扩展方法。HUB 的上行PORT 面向 HOST,下行 PORT 面向设备(HUB 或功能设备)。 在下行 PORT 上,HUB 提供了设备连接检测和设备移除检测的能力, 并给各下行PORT供电。
HUB可以单独使能各下行PORT,不同PORT 可以工作不同的速度等 级(高速/全速/低速)。
从逻辑上可以分为功能层、设备层和总线接口层三个层次。
功能层完成功能级的描述、定义和行为; 设备级则完成从功能级到传输级的转换,把一次功能级的行为转换
为一次一次的基本传输; USB 总线接口层则处理总线上的Bit流,完成数据传输的物理层实现
和总线管理。途中黑色箭头代表真实的数据流,灰色箭头代表逻辑 上的通讯。
7
USB 体系简介
8
USB 体系简介
USB 采用轮询的广播机制传输数据
所有的传输都由主机发起,任何时刻整个USB体系内仅允许一个数据包的 传输,即不同物理传输线上看到的数据包都是同一被广播的数据包;
USB 采用“令牌包”-“数据包”-“握手包”的传输机制
在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint), 从而保证了只有一个设备对被广播的数据包/令牌包作出响应。
转发器提供了从高速和全速/低速通讯的转换能力,通过 HUB 可以在 高速 HOST 和全速/低速设备之间进行匹配。
HUB 在硬件上支持 Reset、Resume、Suspend。
16
USB 体系简介
USB HOST 在USB体系中负责设备连接/移除的检测、HOST 和设备之 间控制流和数据流的管理、传输状态的收集、总线电源的供给。
23
USB 数据流模型

通俗易懂的USB协议详解

通俗易懂的USB协议详解

通俗易懂的USB协议详解USB(Universal Serial Bus)是一种用于计算机外部设备的通信接口标准。

它是一种快速、易用和多功能的连接标准,广泛应用于各种设备,如键盘、鼠标、打印机、存储设备等。

本文将详细解释USB协议的工作原理和通信过程。

USB的工作原理:USB协议使用主从架构,其中主机(Host)是发起数据传输的设备,而从机(Peripheral)是被动等待命令的设备。

通信过程包括主机发送命令和从机返回响应。

USB分为各个版本,每个版本都有自己的规范和特性。

USB1.0和1.1的数据传输速率为1.5Mbps和12Mbps,USB2.0提高到了480Mbps,USB3.0达到了5Gbps,USB3.1则有10Gbps的速率。

USB Type-C是一种新的接口规范,支持更高的传输速率和更多的功能。

USB传输类型:USB传输类型主要有三种:控制传输(Control Transfer)、批量传输(Bulk Transfer)和中断传输(Interrupt Transfer)。

控制传输是主机和从机之间交换控制命令的过程,用于配置从机和获取状态信息。

这种传输类型速度较慢,但可靠性高。

常见的示例是设备初始化和配置。

批量传输用于大容量数据的传输,速度较快,但可靠性较低。

常用于大容量存储设备和打印机等。

中断传输用于低延迟和实时数据传输。

它在通信过程中不需要确定发送/接受数据的时间间隔,但传输速率较低。

示例包括鼠标和键盘输入。

USB通信过程:握手阶段是主机向从机发送命令,并等待从机的响应。

主机发送一个命令包含特定的命名和数据,从机接收并处理命令,然后发送响应给主机。

握手阶段用于确保主机和从机都能够正常通信。

命令阶段是主机和从机之间的数据传输,用于配置设备和请求数据。

命令由特定的标识符和参数组成,从机根据命令执行相应的操作,并返回主机所需的数据。

数据传输阶段是指在命令阶段之后,如果需要传输大量数据时的过程。

USB基本知识及通信协议.doc

USB基本知识及通信协议.doc

串口通信协议什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(b yte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。

USB协议中文详解讲课文档

USB协议中文详解讲课文档
数据流的管理、传输状态的收集、总线电源的供给。
17
第17页,共129页。
USB2.0 协议
USB 体系简介 USB 数据流模型 USB 物理规范 USB 电气规范 USB 协议层规范 USB 设备架构; USB 主机:硬件和软件 USB HUB 规范
18
第18页,共129页。
USB 数据流模型
22
第22页,共129页。
USB 数据流模型
四种传输类型(控制/中断/批量/同步传输)
1. 控制传输: 控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。
第一阶段为从HOST到Device的SETUP事务传输,这个阶段指定了此次控制传输的请求 类型;
第二阶段为数据阶段,也有些请求没有数据阶段; 第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。
中断传输:
用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。
批量传输:
用于对延迟要求宽松,游戏手柄等大量数据的可靠传输,如U盘等。
同步传输: 用于对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。
不同的传输类型在物理上并没有太大的区别,只是在传输机制、主机安排传输任务、可占
用USB 带宽的限制以及最大包长度有一定的差异。
USB 设备连接到 HOST 时,HOST必须通过默认的控制管道对其进行枚举, 完成获得其设备描述、进行地址分配、获得其配置描述、进行配置等操 作方可正常使用。USB 设备的即插即用特性即依赖于此。
13
第13页,共129页。
USB 体系简介
USB 体系四种传输类型的
控制传输: 主要用于在设备连接时对设备进行枚举以及其他因设备而异的特定操作。

USB协议详解

USB协议详解

USB协议详解B2.0 协议USB 协议,由于涉及内容太多,所以在此一个文档中解释清楚,是不现实的。

此处能做的和要做的,就是对于USB 协议简明地介绍一下关于USB 本身协议部分的内容。

当前最新的USB 协议,已经发展到USB3.0 了。

但是主流的USB 设备和技术,还是以USB 2.0 居多。

所以此文,主要是以USB 2.0 为基础来解释USB 协议的基础知识,当然,会在相关内容涉及到USB 3.0 的时候,也把USB 3.0 的相关内容添加进来。

关于USB 2.0 和USB 3.0 等USB 的协议规范,可以去官网下载:usb/developers/docs/其实,说实话,不论是谁,如果开始看USB 协议的时候,发现单独对于USB 2.0 规范本身这一个文档来说,竟然都有650 页,而如果再加上,新的USB 3.0 规范的482 页,和其他一些辅助的USB 相关的规范定义等文档,即使你是英语为母语的人,如果要看完这么多页的协议规范,估计也会吐的,更别说我们中国人了。

所以,此处,就来简单以USB 2.0 规范为例,分析一下,具体其都主要包含哪些内容,然后你会发现,其实和USB 协议本身相关的内容,相对则不会那么多,大概只有97 页左右的内容,是我们所要关心的。

下面就来分析看看,USB 2.0 的规范中,具体都包含了哪些内容:B 协议的版本和支持的速度USB 协议,也像其他协议一样,经历过很多个版本,但是正式发布出来的,主要有4 个。

其中,从开始的USB 1.1,发展到后来的USB 2.0,以及最新的协议版本是USB 3.0.不过这三个版本都是针对的是有线的(corded)设备来说的,在USB 2.0 和USB 3.0 之间,发布过一个是针对无线设备的USB 协议,叫做USB Wireless,也被称为USB 2.5。

其中,USB 1.1 中所支持的速度是低速(Low Speed)的1.5Mbits/s,全速(Full Speed)的12Mbits/s,而USB 2.0 提高了速度至高速(High Speed)的480Mbits/s,而最新的USB 3.0,支持超高速(Super Speed)。

USB通信协议——传输类型

USB通信协议——传输类型

USB通信协议——传输类型由于USB 最初在设计时,即是为了能够针对具备如传输率、响应时间以及错误帧错等特性的许多不同的外围类型来加以考虑的。

而其中,4 种数据传输的每一个能够掌握不同的需求。

在此,根据不同外围设各的类型与应用,定义了4 种传输类型,分别是控制传输(control transfer)、中断传输(interrupt transfer)、批量传输(bulk transfer)以及等时传输(isochronous transfer)。

其中,需要特别注意的是低速设各仅支持控制传输与中断传输。

控制传输是USB传输中最重要的传输类型,只有正确执行完控制传输,才能进一步执行其他的传输类型。

这种传输是用来提供给介于主机与设各之间的配置、命令或状态的通信协议之用的。

控制传输能够使能主机去读取与此设各相关的信号,并去设置设备地址,以及选择配置与其他的设置等。

此外,控制传输也能够送出自定义的要求,以针对任何目的送出与接收数据。

因此须以双向传输来达到这个要求。

当然,所有的USB 设各必须支持控制传输。

中断传输原本属于单向传输,并且仅从设各输人到PC 主机,作IN 的传送模式(但在规范书1.1 版中,已改为双向传输,增加了OUT 的传送模式)。

这是由于最早在开发USB 外围设备时,先以人工接口设各为设计考虑,其数据只须做输入IN 传输,如鼠标或键盘等设备。

而由于USB 不支持硬件的中断,所以必须靠PC 主机以周期性的方式加以查询,以便获知是否有设各需要传送数据给PC。

如果因为错误而发生传送失败的话,可以在下一个查询的期间重新再传送一次。

批量传输属于单向或双向的传输。

顾名思义,这类型的传输用来传送大量的数据。

这些大量的数据必须准确地加以传输,但相对的却无传输速度上的限制(即没有固定传输的速率)。

例如,送出一个文件给打印机,或是从扫描机扫描一张图片,并传送至PC主机上。

这是由于批量传输是针对未使用到USB带宽来向主机提出要求的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
管道和USB设备中的端点一一对应。一个USB设备含有多少个端点, 其和主机进行通信时就可以使用多少条管道,且端点的类型决定了管 道中数据的传输类型,如中断端点对应中断管道,且该管道只能进行 中断传输。传输类型在后面会介绍。不论存在着多少条管道,在各个 管道中进行的数据传输都是相互独立的。
《嵌入式技术基础与实践》
利用设备地址、端点号和传输方向就可以指定一个端点,并和它进 行通信。
0号端点比较特殊,它有数据输入IN和数据输出OUT两个物理单元,
且只能支持控制传输。
《嵌入式技术基础与实践》
16.2 USB系统基本概念
16.2.2 USB设备
⑤字符串
在USB设备中通常还含有字符串描述符,以说明一些专用信息,如 制造商的名称、设备的序列号等。它的内容以UNICODE的形式给出, 且可以被客户软件所读取。对USB设备来说,字符串描述符是可选的。
《嵌入式技术基础与实践》
16.1 USB概述
USB网络采用阶梯式星形拓扑结构,如图 16-1。一个USB网络中只能有一个主机。主 机内设置了一个根集线器,提供了主机上 的初始附属点。
PC主机 (根集线器)
(根阶梯) 阶梯0
集线器 (复合设备)
游戏杆
USB设备 阶梯1
集线器
扫描仪
鼠标
USB设备 阶梯2
图16-1 USB主机和USB设备的连接 《嵌入式技术基础与实践》
16.1 USB概述
主机定时对集线器的状态进行查询。当一个新设 备接入集线器时,主机会检测到集线器状态改变, 主机发出一个命令使该端口有效并对其进行设置。 位于这个端口上的设备进行响应,主机收到关于 设备的信息,主机的操作系统确定对这个设备使 用那种驱动程序,接着设备被分配一个唯一标识 的地址,范围从0~127,其中0为所有的设备在没 有分配惟一地址时使用的默认地址。主机向它发 出内部设置请求。当一个设备从总线上移走时, 主机就从其可用资源列表中将这个设备删除。
③接口
一个配置可以包含一个或多个接口,如对一个光驱来说,当用于 文件传输时使用其大容量存储接口;而当用于播放CD时,使用其音频 接口。接口是端点的集合,可以包含一个或多个可替换设置,用户能 够在USB处于配置状态时,改变当前接口所含的个数和特性。接口描 述符用于说明USB设备中各个接口的特性,如接口所属的设备类及其 子类等。USB设备的每《个嵌接入口式都技必术须基有础一与个实接践口》描述符。
引脚编号 1 2 3 4
信号名称 Vcc
Data-(D-) Data+(D+)
Ground
缆线颜色 红 白 绿 黑
表《1嵌6-入1 U式S技B缆术线基的础信与号实与践颜》色
16.3 USB物理特性
16.3.1 USB接口
从一个设备连回到主机,称为上行连接;从主机到设备的
连接,称为下行连接。为了防止回环情况的发生,上行和下
USB设备驱动程序负责和USB系统软件进行通信。通常,它 向USB总线驱动程序发出I/O请求包(IRP)以启动一次USB数 据传输。此外,根据数据传输的方向,它还应提供一个或空 或满的数据缓冲区以存储这些数据。
界面应用程序负责和USB设备驱动程序进行通信,以控制 USB设备。它是最上层的软件,只能看到向USB设备发送的原 始数据和从USB设备接收的最终数据。
432 1
12
43
A型连接头
B型连接头
《嵌图入16式-2 技US术B连基接础头与实践》
16.3 USB物理特性
16.3.2 USB信号
(1) 差分信号技术特点
传统的传输方式大多使用“正信号”或者“负信号”二 进制表达机制,这些信号利用单线传输。用不同的信号电平 范围来分别表示1和0,它们之间有一个临界值,如果在数据 传输过程中受到中低强度的干扰,高低电平不会突破临界值, 那么信号传输可以正常进行。但如果遇到强干扰,高低电平 突破临界值,由此造成数据传输出错。差分信号技术最大的 特点是:必须使用两条线路才能表达一个比特位,用两条线 路传输信号的压差作为判断1还是0的依据。这种做法的优点 是具有极强的抗干扰性。倘若遭受外界强烈干扰,两条线路 对应的电平同样会出现大幅度提升或降低的情况,但二者的 电平改变方向和幅度几乎相同,电压差值就可始终保持相对 稳定,因此数据的准确性并不会因干扰噪声而有所降低。
《嵌入式技术基础与实践》
(2)USB通信的格式
NRZI编码器 差分驱动器 电缆段
差分驱动器 NRZI解码器
D+
D-
图16-3 在USB电缆上使用双向不归零编码和差动信号的传输
USB的数据包使用反向不归零编码(NRZI)。图16-3描述了在 USB电缆段上传输信息的步骤。反向不归零编码由传送信息的 USB代理程序完成;然后,被编码的数据通过差分驱动器送到 USB电缆上;接着,接收器将输入的差分信号进行放大,将其送 给解码器。使用该编码和差动信号传输方式可以更好地保证数据 的完整性并减少噪声干扰。
第16章 USB接口与编程实例
主要内容:
USB概述 USB设备 USB物理特性 USB通信协议 JB8的USB模块的编程方法
《嵌入式技术基础与实践》
16.1 USB概述
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设备的数据传输方向称为下 行通信。
《嵌入式技术基础与实践》
16.2 USB系统基本概念
16.2.1 USB主机
USB的所有数据通信(不论是上行通信还是下行 通信)都由USB主机启动,所以USB主机在整个 数据传输过程中占据着主导地位。在USB系统 中只允许有一个主机。从开发人员的角度看, USB主机可分为三个不同的功能模块:客户软 件、USB系统软件和USB总线接口。
《嵌入式技术基础与实践》
16.2 USB系统基本概念
16.2.2 USB设备
一个USB设备由三个功能模块组成:USB总线接口、USB逻辑设备 和功能单元。这里的USB总线接口指的是USB设备中的串行接口引擎 (SIE);USB逻辑设备被USB系统软件看作是一个端点的集合;功能 单元被客户软件看作是一个接口的集合。SIE、端点和接口都是USB设 备的组成单元。为了更好地描述USB设备的特征,USB提出了设备架 构的概念。从这个角度来看,可以认为USB设备是由一些配置、接口 和端点组成的,即一个USB设备可以含有一个或多个配置,在每个配 置中可含有一个或多个接口,在每个接口中可含有若干个端点。其中, 配置和接口是对USB设备功能的抽象,实际的数据传输由端点来完成。 在使用USB设备前,必须指明其采用的配置和接口。这个步骤一般是 在设备接入主机时设备进行自举时完成的,我们在后面会进一步介绍。 USB设备使用各种描述符来说明其设备架构,包括设备描述符、配置 描述符、接口描述符、端点描述符以及字符串描述符,它们通常被保
存在USB设备的固件程序中。
《嵌入式技术基础与实践》
16.2 USB系统基本概念
16.2.2 USB设备
①设备
设备代表一个USB设备,它由一个或多个配置组成。设备描述符用 于说明设备的总体信息,并指明其所含的配置的个数。一个USB设备 只能有一个设备描述符。
②配置
一个USB设备可以包含一个或多个配置,如USB设备的低功耗模式 和高功耗模式可分别对应一个配置。在使用USB设备前,必须为其选 择一个合适的配置。配置描述符用于说明USB设备中各个配置的特性, 如配置所含接口的个数等。USB设备的每一个配置都必须有一个配置 描述符。
行端口使用不同的连接器所以USB在电缆和设备的连接中分 别采用了两种类型的连接头,即图16-2所示的A型连接头和B 型连接头。每个连接头内的电线号与图16-2的引脚编号是一 致的。A型连接头,用于上行连接,即在主机或集线器上有一 个A型插座,而在连接到主机或集线器的电缆的一端是A型插 头。在USB设备上有B型插座,而B型插头在从主机或集线器 接出的下行电缆的一端。采用这种连接方式,可以确保USB 设备、主机/集线器和USB电缆始终以正确的方式连接,而不 出现电缆接入方式出错,或直接将两个USB设备连接到一起 的情况。
(1) 客户软件 实践》
16.2 USB系统基本概念
16.2.1 USB主机
(1) 客户软件
客户软件负责和USB设备的功能单元进行通信,以实现其特 定功能。一般由开发人员自行开发。客户软件不能直接访问 USB设备,其与USB设备功能单元的通信必须经过USB系统软 件和USB总线接口模块才能实现。客户软件一般包括USB设备 驱动程序和界面应用程序两部分。
《嵌入式技术基础与实践》
(2)USB通信的格式
空闲
0 11 0
1
0 0 01 1
1
01
0
数据
反向不 归零码
图16-4 反向不归零编码
使用反向不归零编码方式可以保证数据传输的完整性,而且不
要求传输过程中有独立的时钟信号。反向不归零编码不是一个 新的编码方式。它在许多方面都有应用。图16-4给出了一个数 据流和编码之后的结果。在反向不归零编码时,遇到“0”转换, 遇到“1”保持。反向不归零码必须保持与输入数据的同步性, 以确保数据采样正确。反向不归零码数据流必须在一个数据窗
《嵌入式技术基础与实践》
16.2 USB系统基本概念
16.2.1 USB主机
(3) USB总线接口 USB总线接口包括主控制器和根集线器两部分。根
集线器为USB系统提供连接起点,用于给USB系统提 供一个或多个连接点(端口)。主控制器负责完成主 机和USB设备之间数据的实际传输,包括对传输的数 据进行串行编解码、差错控制等。该部分与USB系统 软件的接口依赖于主控制器的硬件实现,开发人员不 必掌握。
相关文档
最新文档