USB PROTOCOL
USB的VID和PID以及分类
USB的VID和PID,以及分类(Class,
SubClass,Protocol)
USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB 设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码)。
VID由供应商向USB-IF(Implementers Forum,应用者论坛)申请。
每个供应商的VID是唯一的,PID由供应商自行决定。
主机通过VID和PID来识别不同设备,根据它们(以及设备的版本号),可以给设备加载或安装相应的驱动程序。
VID和PID的长度都是两个字节的。
常见的各大供应商的VID和PID,可以在这里查询到:/usb.ids
USB定义了种类代码信息,它被用来识别设备的功能,根据这些功能,以加载设备驱动。
这种信息包含在名为基类,子类和协议的3个字节里(注意:“基类”在本文中,用来标识三个字节的种类代码的的首字节;在USB规范中没有使用这个术语)。
设备中有两个地方可以存放种类代码信息,一个是设备描述符,另一个是接口描述符。
已经定义的种类代码,有些只能用在设备描述符里,有些只能用在接口描述符里,有些两种描述符里都可用。
下表给出现在已经定了的基类的值的集合,通常用法是什么,基类用在什么场合(设备描述符或接口描述符)。
其具体定义参见USB官方网址:/developers/defined_class
各种类的定义参见:/developers/devclass_docs。
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协议并不仅限于连接电脑和外部设备。
usbip 源码编译
随着网络技术的不断发展,人们越来越注重对于互联网的接入和移动性要求,因此,USBIP技术应运而生。
USBIP(USB Internet Protocol)是一种将USB设备虚拟化,使得USB设备能够在网络上传输和接收数据的技术。
它在不同的操作系统中使用,包括Linux和Windows。
在本篇文章中,我们将主要介绍如何使用GCC交叉编译器来编译USBIP源码。
1. GCC交叉编译介绍交叉编译是指在一台计算机上编译出可以在另一台计算机上运行的程序。
本篇文章将详细介绍如何在Linux系统上使用GCC交叉编译器来编译USBIP源码。
2. 准备编译环境在Linux系统上编译USBIP源码,需要先安装一些编译工具和依赖库。
(1)首先,需要安装Git和GCC交叉编译器。
使用命令:sudo apt-get install git build-essential gcc-arm-linux-gnueabi(2)然后,安装USBIP的依赖库。
使用命令:sudo apt-get install libusb-dev libcap-dev libreadline-dev3. 下载USBIP源码(1)使用Git工具将USBIP源码克隆到本地。
命令如下:git clone usbip.git(2)切换到USBIP的源码目录,使用命令:cd usbip4. 编译USBIP源码在编译USBIP源码之前,需要使用-Werror选项将所有警告视为错误。
(1)首先,使用命令:make distclean(2)然后,使用命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-(3)在编译过程中,可能会出现一些警告。
使用-Werror选项将所有警告视为错误,就可以解决这些警告。
如果你已经在编译驱动的makefile中加入语句取消了“-Werror”标记,那么可以忽略这些警告。
(4)编译完成后,使用命令:make install5. 使用USBIP编译完成后,就可以使用USBIP了。
usb通讯协议书
usb通讯协议书USB通讯协议书写USB通讯协议(Universal Serial Bus Communication Protocol)是一种用于计算机和外部设备之间进行数据传输的通信协议。
它是USB接口的核心部分,负责规定了设备之间传输数据的格式、时序和流程等。
下面将详细介绍USB通讯协议的主要内容。
一、USB物理层USB物理层定义了传输介质的特性和接口的电气特性。
它规定了USB接口的引脚定义、电压和信号的时序等。
USB接口是一种通用的接口,可以连接各种不同类型的设备,因此物理层要能适配不同类型的传输介质和设备。
二、USB传输层USB传输层定义了USB通信中的数据传输方式和协议。
它包括以下几个方面的内容:1. 端点(Endpoint):USB设备通过端点来进行数据传输。
每一个USB接口都可以有多个输入端点和输出端点,它们分别用来接收和发送数据。
端点可以是控制端点、批量传输端点、中断传输端点或等时传输端点。
2. 端点描述符(Endpoint Descriptor):每个端点都要有一个对应的端点描述符,它包含了端点的特性和属性信息,包括端点的类型、方向、最大数据包大小等。
3. 传输类型:USB定义了多种数据传输方式,包括控制传输、批量传输、中断传输和等时传输。
每一种传输类型都有对应的传输协议和时序,用于实现数据的可靠传输。
三、USB协议层USB协议层定义了USB设备之间进行数据传输的规则和协议。
它包括以下几个方面:1. 控制传输:控制传输是USB通信中最基本的传输方式,用于设备之间的初始化和配置。
控制传输由设备请求和主机响应组成,通过控制传输可以发送命令和查询设备的状态信息。
2. 握手协议:USB通信中的数据传输是通过握手协议来进行的。
握手协议包括设备端点发送数据、主机端点接收数据和确认传输完成等步骤,用于确保数据的正确传输。
3. 帧结构:USB通信中的数据是按帧的形式进行传输的。
一帧包含了同步标记、包头、数据和CRC等字段。
usb的协议
USB的协议引言USB(Universal Serial Bus)是一种常见的计算机外部设备连接标准。
它提供了一种快速、便捷的方式,使我们能够连接各种外围设备,如打印机、键盘、鼠标和存储设备等。
USB的协议是USB设备和主机之间通信的规范。
USB的发展历史USB最早由英特尔等公司合作开发,于1996年发布了USB 1.0规范。
随着技术的发展,USB 2.0于2000年发布,提供了更快的数据传输速度和更高的带宽。
USB 3.0于2008年发布,进一步提升了速度和性能。
目前,USB 3.1和USB 3.2已经发布,能够提供更高的传输速度和更多的功能。
USB的基本原理USB的协议基于主机-设备模型,主机控制设备的操作和数据传输。
USB使用一对差分信号线进行通信,分别是D+和D-。
USB设备通过电缆连接到主机的USB接口上,其中一个信号线用于传输数据,另一个信号线用于同步信号。
USB的通信是通过传输层协议(Transaction Protocol)来实现的。
传输层协议定义了数据包的格式和传输的规则。
每个数据包都有一个起始标记、数据部分和结束标记。
USB设备和主机之间的通信是通过USB传输类型(Transfer Type)来区分的。
USB定义了四种传输类型:1.控制传输(Control Transfer):用于设备的配置和管理。
2.批量传输(Bulk Transfer):用于大量数据的传输,如打印机的打印数据。
3.中断传输(Interrupt Transfer):用于实时数据传输,如鼠标的移动数据。
4.同步传输(Isochronous Transfer):用于流式数据传输,如音频和视频数据。
每种传输类型都有不同的传输速度和延迟要求,根据实际需求选择合适的传输类型。
USB的协议栈USB协议栈包括物理层、数据链路层、传输层和应用层。
1.物理层:负责传输电信号和管理电源,定义了USB的电气特性和连接规范。
2.数据链路层:负责数据的可靠传输,处理数据包的发送和接收,提供差错检测和纠正机制。
usb通讯协议
usb通讯协议USB通讯协议。
USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。
USB通讯协议是指USB设备与主机之间进行通讯时遵循的一套规则和约定,它包括物理层、数据链路层、传输层和应用层等内容。
USB通讯协议的规范和标准化,使得不同厂家生产的设备可以在不同的计算机系统上进行通讯和交互,极大地方便了用户的使用。
首先,USB通讯协议的物理层是指USB设备与主机之间的物理连接和电气特性。
USB接口采用了四根线进行数据传输,分别是VCC(电源线)、D+(数据+线)、D-(数据-线)和GND(地线)。
通过这四根线,USB设备可以与主机进行电源供给和数据传输。
同时,USB接口还采用了热插拔技术,用户可以在不关闭计算机的情况下插拔USB设备,极大地方便了用户的使用。
其次,USB通讯协议的数据链路层是指USB设备与主机之间的数据传输和协议规范。
在USB通讯中,数据传输采用了主从式架构,主机负责控制数据传输的发起和管理,而从设备则被动地响应主机的指令。
此外,USB通讯协议还规定了数据传输的速率和格式,以及数据的校验和纠错机制,保证了数据传输的可靠性和稳定性。
另外,USB通讯协议的传输层是指USB设备与主机之间的数据传输方式和协议规范。
USB通讯采用了端点(Endpoint)的概念,分为控制端点、批量传输端点、中断传输端点和等时传输端点等不同类型,用于满足不同数据传输的需求。
同时,USB通讯协议还规定了数据的传输方式,包括同步传输和异步传输,以及数据的打包和解包方式,保证了数据传输的高效和稳定。
最后,USB通讯协议的应用层是指USB设备与主机之间的通讯协议和接口规范。
USB通讯协议规定了USB设备的通讯方式和协议格式,包括设备描述符、配置描述符、接口描述符和端点描述符等内容,以及设备的状态转换和通讯协议的规范,保证了USB设备在不同的主机系统上可以正常地通讯和交互。
USB Protocol 10_USB协议详细分析
2.7 Data Signaling Rate
• Low speed device: 1.50 Mb/s ±1.5% (15,000 ppm) • Full speed device: 12.000 Mb/s ±0.25% (2,500 ppm) • High speed device: 480.00Mb/s ±0.05% (500 ppm)
• What is USB? ---- Universal Serial Bus
– The USB is specified to be an industry-standard extension to the PC architecture with a focus on PC peripherals that enable consumer and business applications. – USB device can be divided to:
D- > VOH (min) and D+ < VOL (max) (D-) - (D+) > 200 mV and D- > VIH (min)
D+ and D- < VOL(max) D+ and D- > VOSE1(min)(note 2) Differential “0” Differential “1” D+ and D- < VIL (max) D+ and D- > VIL (max) Differential “0” Differential “1”
Chapter 2: USB Electrics Character
• • • • • • • Device Speed Definition Power-on and Connection Events Timing USB Signal Definition and Signal Level Reset Signal and Requirement Suspend and Resume Voltage Drop and Inrush Current Limiting Data Signaling Rate
usb接口协议
usb接口协议USB接口协议。
USB(Universal Serial Bus)是一种通用的串行总线标准,用于连接计算机和外部设备。
USB接口协议是指USB设备与主机之间进行通信和数据传输时所遵循的规范和规则。
首先,USB接口协议包括物理层、数据链路层、传输层和应用层四个层次。
在物理层,USB接口使用四根线进行数据传输,分别是VCC(电源线)、D+(数据+线)、D-(数据-线)和GND(地线)。
这四根线构成了USB接口的基本物理连接。
在数据链路层,USB接口协议采用差分信号传输技术,通过差分信号的变化来表示0和1的状态,从而提高了数据传输的稳定性和抗干扰能力。
在传输层,USB接口协议采用主从式的通信方式,主机控制数据传输的开始和结束,从设备响应主机的指令并传输数据。
在应用层,USB接口协议规定了一系列的通信协议和数据格式,以便不同的USB设备之间进行通信和数据交换。
其次,USB接口协议还规定了USB设备的工作模式和通信流程。
USB设备可以分为主机设备和从设备两种类型。
主机设备负责控制和管理整个USB总线,从设备则根据主机的指令进行数据传输和处理。
在通信流程上,USB设备之间的通信是通过一系列的请求和应答来完成的。
主机设备向从设备发送请求,从设备接收到请求后进行相应的处理,并向主机发送应答,从而完成一次数据传输的过程。
另外,USB接口协议还规定了USB设备的插拔和识别流程。
当用户将USB设备插入主机时,主机会通过USB接口协议进行设备的识别和初始化。
主机会向设备发送一系列的探测信号,设备在接收到信号后进行应答,主机根据设备的应答信息来识别设备的类型和功能,并加载相应的驱动程序。
当用户拔出USB设备时,主机会发送相应的命令给设备,设备在接收到命令后进行相应的处理并断开与主机的连接。
最后,USB接口协议还规定了USB设备的电源管理和数据传输速率。
USB设备在空闲状态下可以进入低功耗模式以节省能源,当有数据传输时再恢复到正常工作状态。
usb协议中文详解
第二阶段为数据阶段,也有些请求没有数据阶段; 第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。 控制传输通过控制管道在应用软件和 Device 的控制端点之间进行,控制传输过程中 传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的数据含义。 其他三种传输类型都没有格式定义。 控制传输对于最大包长度有固定的要求。对于高速设备该值为 64Byte;对于低速设备 该值为 8;全速设备可以是 8或 16或 32或 64。 高速端点的控制传输不能占用超过 20%的微帧,全速和低速的则不能超过 10%的帧。 在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。
物理连接即指的是USB 的传输线。 在USB 2.0系统中,要求使用屏蔽的 双绞线。
USB 体系采用分层的星型拓扑来连接 所有USB设备
6
USB 体系简介
以 HOST-ROOT HUB为起点,最多支持 7 层(Tier),也就是说任何一 个USB 系统中最多可以允许 5个 USB HUB 级联。一个复合设备 (Compound Device)将同时占据两层或更多的层。
20
USB 数据流模型
物理上,USB设备通过分层的星型总线连接到 HOST,但在逻辑上HUB是透明的,各USB 设备 和HOST直接连接,和 HOST上的应用软件形成 一对一的关系。如下图所示:
各应用软件-功能设备对之间的通讯相互独立,应用软件 通过USB设备驱动程序(USBD)发起 IRQ 请求,请求数 据传输。
ROOT HUB 是一个特殊的 USB HUB,它集成在主机控制器里,不占用地址。 “复合设备(Compound Device)”可以占用多个地址。所谓复合设备其
USB的描述符详解总结
USB的描述符详解总结
USB是一种通用串行总线,全称Universal Serial Bus,通常被称为USB。
它是由Intel公司于1996年推出的,由7组信号和4根线组成,支持高速数据传输。
使用USB接口,各个计算机硬件设备可以连接在一起,实现数据的传输和共享。
USB描述符是一类标准文件,是用来描述USB设备的硬件特性,如设备的功能、总线的速率等。
它由USB设备厂商设计,是由设备驱动程序识别和使用USB设备的关键文件。
据统计,USB描述符已经在全球范围内普及,可以应用于任何USB设备。
USB描述符通常由Device Descriptor(设备描述符)、Configuration Descriptor(配置描述符)、Interface Descriptor(接口描述符)、Endpoint Descriptor(端点描述符)和Class Descriptor (类描述符)组成。
这5种描述符是USB设备描述文件的基本类型,它们描述了USB设备的功能、规格、总线协议等信息。
Device Descriptor(设备描述符)是USB设备的基本描述文件,主要包括设备的VID(vendor ID,厂商编号)、PID(产品编号)、Class、Subclass、Protocol(协议版本)、MaxPower(最大功耗)等。
设备描述符是其他描述符的基础,可以用来识别和枚举设备。
Configuration Descriptor(配置描述符)是描述USB设备配置的描述文件,主要包括配置属性、总线电源类型、接口数。
usb协议详解
usb协议详解USB协议详解。
USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。
它的出现极大地方便了人们的生活和工作,成为了现代计算机设备中不可或缺的一部分。
USB协议作为USB接口的核心,对于理解USB接口的工作原理和应用具有重要意义。
本文将对USB协议进行详细解析,帮助读者更好地理解和应用USB接口。
首先,USB协议包括了物理层、数据链路层、传输层和应用层四个部分。
在物理层,USB接口采用了差分信号传输技术,能够有效地抵抗噪声干扰,提高数据传输的可靠性。
数据链路层负责数据的分组和错误检测,保证数据的完整性和正确性。
传输层则负责数据的传输和管理,包括数据的打包和解包,以及数据的流控等功能。
应用层则是USB协议的最上层,负责定义USB设备的功能和通信协议。
其次,USB协议定义了大量的标准设备类别,包括存储设备、打印设备、音频设备、视频设备等。
这些标准设备类别使得不同厂家生产的设备可以在不同的计算机上通用,大大提高了设备的兼容性和可扩展性。
此外,USB协议还定义了大量的通信协议,包括控制传输、批量传输、中断传输和等时传输等,这些传输方式适用于不同的数据传输场景,满足了各种设备的需求。
另外,USB协议还规定了设备的插拔管理、电源管理和配置管理等功能。
设备的插拔管理包括了设备的识别和初始化过程,保证设备可以正确地被计算机识别和使用。
电源管理则包括了设备的供电和节能管理,使得设备可以根据需要进行供电和节能,延长设备的使用寿命。
配置管理则包括了设备的配置和控制,使得设备可以根据不同的需求进行灵活的配置和控制。
最后,USB协议的发展也在不断地完善和演进。
USB 1.0、USB 2.0、USB 3.0和USB 3.1等不同版本的USB协议相继推出,不断地提高了USB接口的传输速度和功能特性。
同时,USB Type-C接口的出现也使得USB接口在连接方式和功能上有了更大的突破,成为了未来计算机设备的主流接口标准。
usb协议深入解读
usb协议深入解读
USB(通用串行总线)是一种广泛使用的计算机接口标准,主要用于连接计算机和其他外部设备。
它诞生于1994年,由微软、英特尔和惠普等公司联合开发。
USB协议是USB接口的通信协议,它定义了计算机如何与外部设备进行通信。
USB协议是一种分层协议,从上到下分为三层:应用层、传输层和物理层。
1.应用层:这一层主要负责处理应用程序的请求,例如文件传输、设备驱动程序等。
2.传输层:这一层负责将数据打包成包,并通过USB总线传输。
它提供了四种类型的传输方式:控制传输、批量传输、中断传输和同步传输。
每种传输方式都有其特定的用途和特性。
3.物理层:这一层负责实际的物理连接和信号传输。
它定义了USB设备的物理特性,如电压、电流等,并规定了USB设备的物理连接方式,如插头和插座的形状、尺寸等。
在USB协议中,数据是以数据包的形式传输的。
每个数据包都包含一个同步字段、一个包标识符字段、一个数据字段和一个校验字段。
同步字段用于同步数据包的开始和结束;包标识符字段用于标识数据包的类型;数据字段包含实际传输的数据;校验字段用于检查数据包的完整性。
USB协议还定义了设备的枚举过程,即计算机如何识别和配置外部设备。
枚举过程中,计算机通过发送请求给设备,获取设备的描述信息,然后根据这些信息对设备进行配置。
总的来说,USB协议是一种灵活、高效、易于使用的通信协议,它使得外部设备的连接和配置变得更加简单和方便。
随着USB标准的不断发展,现在USB接口已经成为计算机和其他设备的标配接口之一。
usb协议简介
Class_06&SubClass_01&Prot_01) Printer打印机
Mass Storage 大容量存储(可能是手机,
C&Prot_50) Hub集线器
09h
0Ah
Device
Interface
CDC-Data通信设备(手机,
Class_0A&SubClass_00&Prot_00)
表表usb描述符的类型值类型描述符描述符值标准描述符设备描述符devicedescriptor0x01配置描述符configurationdescriptor0x02字符串描述符stringdescriptor0x03接口描述符interfacedescriptor0x04端点描述符endpontdescriptor0x05类描述符集线器类描述符hubdescriptor0x29人机接口类描述符hid0x21厂商定义的描述符0xffusb的设备类型deviceclassbaseclassdescriptorusagedescription00hdeviceuseclassinformationintheinterfacedescriptors种类信息定义在接口描述符中01hinterfaceaudio音频设备02hbothcommunicationsandcdccontrol通信设备手机class02subclass02prot0103hinterfacehidhumaninterfacedevice人机接口设备05hinterfacephysical物理设备06hinterfaceimage图像设备可能是iphone手机class06subclass01prot0107hinterfaceprinter打印机08hinterfacemassstorage大容量存储可能是手机class08subclass06prot5009hdevicehub集线器0ahinterfacecdcdata通信设备手机class0asubclass00prot00表表usbclass表表0bhinterfacesmartcard智能卡0dhinterfacecontentsecurity内容安全设备0ehinterfacevideo视频设备摄像头class0esubclass03prot000fhinterfacepersonalhealthcare个人健康设备dchbothdiagnosticdevice诊断设备usb2兼容设备e0hinterfacewirelesscontroller无线控制器蓝牙设备等efhbothmiscellaneous杂项activesyncpalmsync各种协会等fehinterfaceapplicationspecific应用专有规范固件升级红外usb测试与测量等ffhbothvendorspec
USB设备协议(USB Device Protocol)字段
USB设备协议(USB Device Protocol)字段
USB设备协议(USB Device Protocol)涉及多个字段,以下是一些常见的USB设备协议字段:
1.头部(Header):用于描述USB设备协议的版本和长度。
2.设备描述符(Device Descriptor):提供了关于USB设备的基
本信息,如设备类别、供应商ID、产品ID、设备协议等。
3.配置描述符(Configuration Descriptor):描述USB设备的配
置信息,包括配置数量、最大功率等。
4.接口描述符(Interface Descriptor):描述USB设备提供的接
口信息,包括接口号、传输类型、端点数量等。
5.端点描述符(Endpoint Descriptor):描述USB设备的端点特
性,包括端点地址、传输类型、最大包大小等。
6.字符串描述符(String Descriptor):提供了USB设备的可读
描述信息,用于向用户展示设备的名称、厂商信息等。
7.设备请求(Device Request):用于主机与USB设备之间进行
通信和控制,包括设备请求类型、目标接口/端点等。
8.同步帧(Synchronization Frame):用于定义帧同步信号。
9.帧(Frame):USB设备数据传输的基本单位,包括帧开始标
记、数据包、帧号等。
10.错误检测(Error Detection):用于检测和纠正数据传输中的
错误,如CRC校验等。
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_Protocol
Less than endpoint size
USB State Machine
USB Setup --- Enumeration
HUB inform host the changing of attached Host querying the hub Host reset USB device USB can draw 100mA now Host assigns a unique address to USB device Address state Host reads the configurations of the device Host assigns a configuration value to device-configured state And now USB device can draw the current as the descriptor described.
Transaction and Transfer
Transfer size = n*transactions + m
One Transfer Transaction 1
Transaction 2 . . .
Transaction n-1 Transaction n
Packet size is the endpoint size
USB Protocol 2.0
PC&BT group Qiu Xiaohong
USB Bus Topology
USB host and USB slave Tiered start topology Max number of tiers is seven Max 5 non-root hubs supported Support up to 127 physical device (compound device?): More interface, one address Physical device and logic device
usb协议 工作原理
usb协议工作原理USB(Universal Serial Bus)是一种通用串行总线协议,用于在计算机系统和外部设备之间传输数据和提供电力供应。
USB协议的工作原理是通过定义了一套规范,使得不同的设备能够通过USB接口与计算机进行连接和通信。
USB协议的具体工作原理如下:1. 物理连接:USB协议使用了一对差分信号线进行数据传输,其中D+和D-分别用于传输数据的正负信号。
USB接口还包括VCC线用于提供电力供应,以及地线用于连接设备的共地。
2. 握手协议:当设备插入USB接口时,计算机会发送一个复位信号给设备,设备收到复位信号后会进行初始化操作。
然后,计算机和设备之间会进行握手协议,以确定设备的功能和性能。
3. 枚举过程:在握手协议完成后,计算机会开始进行设备的枚举过程。
计算机会发送一个控制命令给设备,设备会返回一些基本信息,如设备的供应商ID、产品ID等。
通过这些信息,计算机可以确定设备的类型和功能。
4. 数据传输:一旦设备被枚举成功,计算机和设备之间就可以进行数据传输。
USB协议支持多种数据传输方式,包括控制传输、批量传输、中断传输和等时传输。
控制传输用于设备的配置和管理,批量传输用于大量数据的传输,中断传输用于实时性要求较高的数据传输,等时传输用于音视频等对实时性要求极高的数据传输。
5. 端点和管道:USB协议中定义了端点和管道的概念。
一个设备可以包含多个端点,每个端点有一个唯一的端点地址。
端点可以是输入端点(IN)用于从设备传输数据到计算机,也可以是输出端点(OUT)用于从计算机传输数据到设备。
管道则是连接计算机和设备之间的数据通道,用于实现数据传输。
6. 电力供应:USB接口不仅可以传输数据,还可以提供电力供应。
USB接口包含VCC线用于提供电源,设备可以通过接口从计算机获取所需的电力。
USB协议规定了不同设备的电力需求,计算机会根据设备的需求提供相应的电力。
总结起来,USB协议是一种通用的串行总线协议,通过定义了一套规范,使得不同的设备能够通过USB接口与计算机进行连接和通信。
LeCroy USB Protocol Suite使用教程
LeCroy USB Protocol Suite使用教程1、首先点击“设置>关于手机”,再连续点击“版本号”7次,将会提示进入了开发者模式了。
2、然后返回“设置”列表,会新出现“开发人员选项”。
再点击进入“开发人员选项”,打开“USB调试”开关,点击“确定”就可以了。
3、最后将手机和电脑使用数据线连接,在通知栏将“仅充电”更换为“管理文件”或“查看照片”就可以连接电脑了。
也可以在电脑上安装HISuite(华为手机助手)。
使用数据线连接电脑后,再打开该软件,在主页面点击“点击连接设备”,会有连接电脑的相关提示的,根据提示完成操作就可以了,还能使用它管理手机中的应用及文件的。
当USB设备需要传输大量数据的时候,bulk传输可以作为一个好的选择。
例如,传输文件到闪存设备,或者扫描仪,打印机的数据收发。
USB的full speed,high speed,和super speed设备可以支持bulk endpoint。
low speed设备不支持bulk endpoint。
endpoint是没有特定方向的,可以作为IN或者OUT。
bulk IN是指从设备把数据送到主机,而bulk OUT则是把数据从主机传输到设备。
endpoint提供CRC bit来检测错误,以此来保证数据的完整性。
对于CRC错误,数据自动重新传输。
注:Superspeed bulk endpoint可以支持streams。
stream允许主机发送传输到不同的steam pipe。
最大支持的包大小(MaxPackageSize)由设备的总线速度决定。
full speed,high speed和super speed,最大包大小对应的为64、512、1024bytes。
1、Bulk传输介绍分析和其他的USB传输一样,主机总是初始化bulk传输。
通信发生在主机与目标endpoint之间。
在bulk传输中,USB协议不会强制任何的数据格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/view/192267d8ce2f0066f5332225.html/view/339c456baf1ffc4ffe47aca0.html/view/c99688630b1c59eef8c7b4b9.html/view/57dfded126fff705cc170af8.html/view/464c5885ec3a87c24028c447.htmlUSB的一些基本概念1. 管道(Pipe) 是主机和设备端点之间数据传输的模型,共有两种类型的管道:无格式的流管道(Stream Pipe)和有格式的信息管道(Message Pipe)。
任何USB 设备一旦上电就存在一个信息管道,即默认的控制管道,USB 主机通过该管道来获取设备的描述、配置、状态,并对设备进行配置。
2. 端点(Endpoint)是USB 设备中的可以进行数据收发的最小单元,支持单向或者双向的数据传输。
设备支持端点的数量是有限制的,除默认端点外低速设备最多支持 2 组端点(2 个输入,2个输出),高速和全速设备最多支持15 组端点。
3. 接口(Interface) 。
应用软件通过和设备之间的数据交换来完成设备的控制和数据传输。
通常需要多个管道来完成数据交换,因为同一管道只支持一种类型的数据传输。
用在一起来对设备进行控制的若干管道称为设备的接口.4. 设备和端点之间关系: 一个USB 设备可以包括若干个端点,不同的端点以端点编号和方向区分。
不同端点可以支持不同的传输类型、访问间隔以及最大数据包大小。
除端点0 外,所有的端点只支持一个方向的数据传输。
端点0 是一个特殊的端点,它支持双向的控制传输。
管道和端点关联,和关联的端点有相同的属性,如支持的传输类型、最大包长度、传输方向等。
5. 描述符(Descriptor) 描述设备的属性(Attributes). 它本身是一个数据结构, 第一个字节表示描述符的大小(字节数), 第二个字节表示描述符的类型(Type). 描述符的种类有:1) 设备描述符(Device), 描述一个设备的一般信息.2) 设备修饰描述符(Device_Qualifier), 描述一个高速设备在其它速度下该如何变化的信息.3) 配置描述符(Configuration), 描述一个特定的设备配置, 如接口的数目等. 一个USB设备有一个或多个配置描述符. 每个配置有一个或多个接口并且每个接口有0个或多个端点.4) 其它速度配置描述符(Other_speed_configuration), 描述高速设备在其它可能的速度下的一个配置.5) 接口描述符(Interface), 描述一种配置中的一个特定的接口.6) 端点描述符(Endpoint), 描述主机需要的去决定端点所需带宽的信息. 这个描述符只能附加在GetDescriptor()或GetDescriptor()请求中传送, 不能单独传送. 端点0没有此描述符.7) 字符串描述符(String), 第0个字符串描述符指定设备支持的语言, 其它的描述符则各包含一个UNICODE字符串. 设备描述符, 配置描述符和接口描述符可能会包含字符串描述符.6. USB设备请求(USB Device Request) 请求是从主机通过控制管道发送到设备.标准的设备请求有:1) Clear Feature2) Get Configuration3) Get Descriptor4) Get Interface5) Get Status6) Set Address7) Set Configuration8) Set Descriptor9) Set Feature10) Set Interface11) Synch FrameUSB3.0系统拓扑结构系统是最多只能有7层的树状结构最多只能支持127个设备和HubHost+RootHub永远是在第一层复合(Compound)设备一般占两层功能设备不能作为非叶节点, 只有Hub才可以USB3.0 Hub其实包含了一个USB2的Hub和一个SuperSpeed HubUSB3.0的重要特性:1. 增加了一个重要的数据传输速率2. 点对点方式传输包, 使活动链路数目达到最少3. 异步方式的通知功能, 去除了轮询方式的必要4. 基于链路级的电源管理, 这是总线结构的基础设计5. 向后兼容USB2.0, 驱动级和物理层级别上都达到了兼容的目的USB3.0与USB2.0的区别1. 数据传输速率, 3.0是SuperSpeed 5.0Gbps,2.0是1.5Mbps, 12Mbps或480Mbps2. 数据接口,3.0是全双工,独立于USB 2.0信号的四路差分信号,支持同时双向数据传输2.0是半双工,双路差分信号, 单向数据传输, 需要事先协商好总路线的传输方向3. 信号线数目, 3.0是4路SuperSpeed数据线, 2路HighSpeed数据线和2路电源及地线2.0是2路LS/FS/HS数据线, 2路电源及地线4. 总线事务协议, 3.0是主机主导的异步方式的传输流量控制, 包传输是能显式地进行路由2.0是主机主导的轮询方式的传输流量控制, 包传输是通过广播方式到所有设备5. 电源管理, 3.0是多级别的链路电源管理, 支持Idle, sleep和suspend状态2.0是在端口级进行管理, 可以在entry/exit上有两种级别的挂机状态6. 总线电源, 3.0是和USB 2.0差不多, 只是未配置的电源有50%的增幅, 已配置的电源有80%的增幅7. 主机控制器,3.0用的是xHCI,2.0则是EHCI。
xHCI中提供了虚拟化技术支持。
USB3.0电源状态1. U0, Link active2. U1, Link idle - fast exit. 退出延时us级3. U2, Link idle - slow exit. 退出延时us-ms级4. U3, Link suspend. 无时钟信号, 退出延时us-ms级USB3.0数据包类型1. Link Management Packets, 链路管理包, 仅发生在两个相连的端口之间,主要是用来进行链路管理2. Transaction Packets, 事务包, 发生在设备和主机之间, 用来控制数据包的流量, 配置设备和Hubs. 它没有数据3. Data Packets, 数据包, 发生在设备和主机之间. 它包括两部分:包头和实际数据. 其中数据部分还包括一个32位的CRC校验码来保证数据的完整性.4. Isochronous Timestamp Packets, 同步时间戳包, 它是唯一的多播方式发送的. 发送方向是从主机到所有U0状态的设备.USB传输类型1. 控制传输(Control Transfers)控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。
第一阶段为从HOST 到Device 的SETUP 事务传输,这个阶段指定了此次控制传输的请求类型;第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。
控制传输通过控制管道在应用软件和Device 的控制端点之间进行,控制传输过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的数据含义。
其他三种传输类型都没有格式定义。
控制传输对于最大包长度有固定的要求。
对于高速设备该值为64Byte;对于低速设备该值为8;全速设备可以是8 或16 或32 或64。
2. 批量传输(Bulk Transfers)批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。
低速USB 设备不支持批量传输,高速批量端点的最大包长度为512,全速批量端点的最大包长度可以为8、16、32、64。
批量传输在访问USB 总线时,相对其他传输类型具有最低的优先级,USB HOST 总是优先安排其他类型的传输,当总线带宽有富余时才安排批量传输。
高速的批量端点必须支持PING 操作,向主机报告端点的状态,NYET表示否定应答,没有准备好接收下一个数据包,ACK 表示肯定应答,已经准备好接收下一个数据包。
3. 中断传输(Interrupt Transfers)中断传输是一种轮询的传输方式,是一种单向的传输,HOST 通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。
中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。
对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8 Bytes。
高速中断传输不得占用超过80%的微帧时间,全速和低速不得超过90%。
中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是1~255mS,低速端点为10~255mS,高速端点为(2interval-1)*125uS,其中interval 取1到16 之间的值。
除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达3072 字节的数据。
4. 同步传输(Isochronous Transfers)同步传输是一种实时的、不可靠的传输,不支持错误重发机制。
只有高速和全速端点支持同步传输,高速同步端点的最大包长度为1024,低速的为1023。
除高速高带宽同步端点外,一个微帧内仅允许一次同步事务传输,高速高带宽端点最多可以在一个微帧内进行三次同步事务传输,传输高达3072 字节的数据。
全速同步传输不得占用超过80%的帧时间,高速同步传输不得占用超过90%的微帧时间。
同步端点的访问也和中断端点一样,有固定的时间间隔限制。
在主机控制器和USB HUB 之间还有另外一种传输——分离传输(Split Transaction),它仅在主机控制器和HUB 之间执行,通过分离传输,可以允许全速/低速设备连接到高速主机。
分离传输对于USB 设备来说是透明的、不可见的。
USB协议中的基本概念2010年08月15日星期日 23:051、端点,位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)。
2、帧,时间概念,在USB中,一帧就是1mS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。
3、上行、下行:设备到主机为上行,主机到设备为下行。
一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500mA(可以在编程中设置的,至于硬件的实现机制,就不要管它了)。