精华内容
下载资源
问答
  • usb事务
    千次阅读
    2014-01-19 14:20:47

     在上一篇博客里面涉及到USB的四种传输方式,每种传输方式都包括三个阶段,第一个阶段是setup阶段,执行该传输的初始化。另外两个阶段分别是in阶段和out阶段。

    每一个阶段都有三种包,令牌包+数据包+握手包



    setup事务:

    令牌包:主机发送一个PID为setup的包给device,通知设备有setup包到来 (主机=》设备)

    数据包:发送8个字节的data0包,为64个字节(主机=》设备)

    握手包:设备接收到数据之后向主机发送ACK包(设备到主机)

    IN事务:

    令牌包: 主机发送一个PID为out的包给device,通知设备有数据发送给主机

    数据包:

    1.端点正常,向主机发出数据包,DATA0或DATA1

    2.设备正忙,发送NAK无效包

    3.端点被禁止,发送错误STALL包

    握手包:主机正确接收到数据后向设备发送一个ACK包

    OUT事务:

    令牌包:主机发送一个PID为IN的包给设备,通知设备接收数据

    数据包:主机向设备发送数据,DATA0与DATA1交替

    握手包: 

    1.设备端点接收正常,向主机返回ACK

    2.设备在忙,发送NAK无效包

    3.端点被禁用,发送STALL包


    更多相关内容
  • USB协议详解第17讲(USB事务总结)

    千次阅读 2021-01-18 19:55:13
    2.USB事务总结 3.后期内容大纲 4.传输、事务、包组成学习架构图 1.USB传输回顾 前面讲了四种传输的类型,包括控制传输,同步传输,批量传输,中断传输,我们在USB设备开发中,会实现所用到的每一个端点的端点...

    目录

    1.USB传输回顾

    2.USB事务总结

    3.后期内容大纲

    4.传输、事务、包组成学习架构图


    1.USB传输回顾

    前面讲了四种传输的类型的事务组成,包括控制传输,同步传输,批量传输,中断传输。

    2.USB事务总结

    本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、Data IN事务、Data OUT事务。

    • Setup事务:主要向设备发送控制命令;

    • Data In事务:主要从设备读取数据;

    • Data OUT事务:主要向设备发送数据。

    回顾下前面我讲的传输、事务、包的关系,"某领导和一个早起的程序员进行了一次交流,说了5件事"。其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句对话,就相当于每个事务里面的各种包。

    其实USB所有类型的事务(Setup事务、IN事务、OUT事务)都是由3个包组成(令牌包『Token packet』、数据包『Data packet』、握手包『Handshack packet』),但是,但是,但是除了同步传输所用到的事务,同步传输事务由2个包组成(令牌包、数据包),没有握手包,不会再有其他可能,USB事务组成如下图。

    图片

    其中所有传输的所有事务的令牌包总是由主机发起,所以我们说USB一切事务都是USB主机操纵的,所有的事务都是主机发起的;数据包含本次传输的数据负载;握手包主要是数据接收方回应数据发送方数据是否正常接收到。

    3.后期内容大纲

    事务其实没什么可讲的,大家只要记住事务的概念和上面的内容即可。但是接下来我们会学习到USB包(packet)的详细协议,USB协议基本上都在USB描述符和USB包上面体现的,不过大家也不用担心,我会带着大家学习包的结构和分类各类包的组成及用途四种传输的包组成,课程大纲如下。

    USB协议详解第18讲(USB包-初探)
    USB协议详解第19讲(USB包-包的组成及分类)
    USB协议详解第20讲(USB包-帧首类包SOF)
    USB协议详解第21讲(USB包-命令类包Token)
    USB协议详解第22讲(USB包-数据类包DATA)
    USB协议详解第23讲(USB包-握手类包Handshake)
    USB协议详解第24讲(USB包-控制传输包详解)
    USB协议详解第25讲(USB包-同步传输包详解)
    USB协议详解第26讲(USB包-批量传输包详解)
    USB协议详解第27讲(USB包-中断传输包详解)

    4.传输、事务、包组成学习架构图

    本架构图后期再学习中会一步一步更新,每一节之后也会逐步完善并更新,最后会完整的展示出来传输、事务、包的结构,让大家在学习过程中对协议框架不混乱。

    图片


    1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。

    2.未经原作者允许不得转载本文内容,否则将视为侵权;

    3.转载或者引用本文内容请注明来源及原作者;

    4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

    下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

    展开全文
  • 网络游戏-在无线个人区域网络上传送USB事务处理的装置和方法.zip
  • USB协议事务流程

    2021-06-17 10:45:35
    USB的数据通讯首先是基于传输(transfer)的,传输的类型有:中断传输、批量传输、同步传输、控制传输。 2.事务数据通讯 一次传输由一个或多个事务(transaction)构成,事务可以分为:in事务、out事务、setup事务。 3....

    一个transfer(传输)由一个或多个transaction(事务)构成,一个transaction(事务)由一个或多个packet(包)构成,一个packet(包)由一个或多个sync(域)构成。

    1.传输数据通信

    USB的数据通讯首先是基于传输(transfer)的,传输的类型有:中断传输、批量传输、同步传输、控制传输。

    2.事务数据通讯

    一次传输由一个或多个事务(transaction)构成,事务可以分为:in事务、out事务、setup事务。

    3.包数据通讯

    一个事务由一个或多个包(packet)构成,包可分为:令牌包(setup)、数据包(data)、握手包(ack)、特殊包。

    4.域数据通讯

    一个包由多个域构成,域可分为:同步域(sync)、标识域(pid)、地址域(addr)、端点域(endp)、帧号域(fram)、数据域(data)、校验域(crc)。

    USB传输

    传输分为四种类型:批量传输、等时(同步)传输、中断传输、控制传输。

    1、批量(大容量数据)传输(Bulk Transfers): 非周期性,突发 
    大容量数据的通信,数据可以占用任意带宽,并容忍延迟 。如USB打印机、扫描仪、大容量储存设备等。

    批量输出事务:
    (1)主机先发出一个OUT令牌包(包含设备地址,端点号)。
    (2)然后再发送一个DATA包,这时地址和端点匹配的设备就会收下这个数据包,主机切换到接收模式,等待设备返回握手包。
    (3)设备解码令牌包,数据包都准确无误,并且有足够的缓冲区来保存数据后就会使用ACK/NYET握手包来应答主机(只有高速模式才有NYET握手包,他表示本次数据成功接收,但是没有能力接收下一次传输),如果没有足够的缓冲区来保存数据,就返回NAC,告诉主机目前没有缓冲区可用,主机会在稍后时间重新该批量传输事务。如果设备检查到数据正确,但端点处于挂起状态,返回STALL。如果检测到有错误(如校验错误,位填充错误),则不做任何响应,让主机等待超时。
    批量输入事务:
    (1)主机首先发送一个IN令牌包(包含设备地址,端点号)。
    (2)主机切换到接收数据状态等待设备返回数据。如果设备检测到错误,不做任何响应,主机等待超时。如果此时有地址和端点匹配的设备,并且没有检测到错误,则该设备作出反应:设备有数据需要返回,就将一个数据包放在总线上;如果没有数据需要返回,设备返回NAK响应主机;如果该端点处于挂起状态,设备返回STALL。如果主机收到设备发送的数据包并解码正确后,使用ACK握手包应答设备。如果主机检测到错误,则不做任何响应,设备会检测到超时。注意:USB协议规定,不允许主机使用NAK来拒绝接收数据包。主机收到NAK,知道设备暂时没有数据返回,主机会在稍后时间重新该批量输入事务。

    2、中断传输(Interrupt Transfers): 周期性,低频率。
    允许有限延迟的通信 如人机接口设备(HID)中的鼠标、键盘、轨迹球等。
    中断传输是一种保证查询频率的传输。中断端点在端点描述符中要报告它的查询间隔,主机会保证在小于这个时间间隔的范围内安排一次传输。

    3、等时(同步)传输(Isochronous Transfers): 周期性 。
    持续性的传输,用于传输与时效相关的信息,并且在数据中保存时间戳的信息 ,如音频视频设备。


    等时(同步)传输用在数据量大、对实时性要求高的场合,如音频设备,视频设备等,这些设备对数据的延迟很敏感。对于音频或视频设备数据的100%正确性要求不高,少量的数据错误是可以容忍的,主要是保证数据不能停顿,所以等时传输是不保证数据100%正确的。当数据错误时,不再重传操作。因此等时传输没有应答包,数据是否正确,由数据的CRC校验来确认。
     

    4、控制传输(Control Transfers): 非周期性,突发。
    用于命令和状态的传输

    控制传输可分为三个过程:(1)建立过程 (2)数据过程(可选) (3)状态过程
    特性:  
    每个USB设备都必须有控制端点,支持控制传输来进行命令和状态的传输。USB主机驱动将通过控制传输与USB设备的控制端点通信,完成USB设备的枚举和配置 。
    方向:  
    控制传输是双向的传输,必须有IN和OUT两个方向上的特定端点号的控制端点来完成两个方向上的控制传输 。

    USB事物


     

    USB包

    包的组成:

    包的内容:

    1、PID:

    这里只用(PID0~4),PID4~7是PID0~4的取反,用来校验PID
    PID1~0:01 令牌包、11 数据包、10 握手包、00 特殊包

    2、地址:

    3、帧号:

    4、数据:

    5、CRC:

    Packet分四大类: 命令 (Token) 、Packet 帧首 (Start of Frame) 、Packet 数据 (Data) 、Packet 握手 (Handshake) Packet

    不同类型包,以上的组成部件有所不同

    1、四种Packet类型之令牌包(Token Packet):
    令牌包用来启动一次USB传输。
    输出(OUT)令牌包:用来通知设备将要输出一个数据包
    输入(IN)令牌包:用来通知设备返回一个数据包
    建立(SETUP)令牌包:只用在控制传输中,和输出令牌包作用一样,也是通知设备将要输出一个数据包,两者区别在于:
    SETUP令牌包后只使用DATA0数据包,且只能发送到设备的控制端点,并且设备必须要接收,而OUT令牌包没有这些限制

    例子:

    2、四种Packet类型之SOF Packet
    帧起始包:在每帧(或微帧)开始时发送,以广播的形式发送,所有USB全速设备和高速设备都可以接收到SOF包。

     

    例子:

    0xA5:1010 0101:对应上面PID表可知是帧起始包
    3、四种Packet类型之Data Packet

    例子:

    4、四种Packet类型之Handshake Packet 

    例子:

    USB 设备枚举及描述符介绍 
    当一个USB设备插入主机后,会有以下活动: 

     在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。设备通常有一个或多个配置,配置通常有一个或多个接口,接口通常有零个或多个端点。  

     

     

    例程分析

    我们插上鼠标后后出现如下的信息,我们先来分析第一个传输:

    我们看到第一个是控制传输,它包含了4个事物,分别是:1个setup事务,3个in事务,1个out事务,我们先打开setup事务:

     

    我们看到这个事务里包含了3个包

    第一个包是令牌包,它由主控制器发送给目标设备的0号端口,用于设置目标设备的地址和端口号,我们看到后面两个包都缺省了地址与端口号。在usb系统中,所有的通信都是由主机发出相应的令牌所引起的。

    第二个是数据包,由主控器发送给目标设备,其中数据的内容表示:

    80:表示要求设备向主机发送信息

    06:表示GET_DESCRIPTOR,即设备向主机发送设备描述符

    00与01:Word-sized field that varies according to request

    00与40:Word-sized field that varies according to request; typically used to pass an index or offset

    00:Number of bytes to transfer if there is a:Data stage

    总结一下第二个包就是向默认地址0 发送GET_DESCRIPTOR 指令包,请求设备发送设备描述符

    第三个是应答包:设备接收到主机发送的数据后会给出应答

    接着我们看第一个in事务

     

    我们看到这个事务里也有三个包

    第一个是in包:由主机发送给设备,表示要设备向主机发送上面请求的设备描述符

    第二个是数据包:由设备发送给主机,当然是发送设备描述符,我们来分析一下:

    12:表示接下来要求主机向设备发送信息

    01:CLEAR_FEATURE、

    第三个是应答包,由主机发送给设备

    接着我们来看第二个in事务

     

    这个事务里依旧是3个包

    第一个是in包:由主机发送给设备,表示需要输入

    第二个是数据包:由设备发送给主机,我们来解析一下:

    6D:表示要求主机发给设备数据

    04:Reserved for future use

    第三个是主机给设备的应答包

    最后来看out事务

    第一个是out包:由主机发给设备

    第二个是数据包:由主机发给设备,无数据

    第三个包是设备给主机的应答包

    展开全文
  • linux下的USB开发---USB事务处理. 买模块送的,资料很好很全。
  • 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了控制传输,今天我们主要讲解批量传输。 批量传输和同步传输类似,是使用...

    目录

    1.前言

    2.批量传输的结构

    3.抓包分析

    3.1批量读传输抓包分析

    3.2批量写传输抓包分析

    4.批量传输各速率下支持最大包长度

    5.批量传输事务组成

    6.传输、事务、包组成学习架构图


    声明:前面和后续提到的OUT和IN都是对主机而言的。

    1.前言

    前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了同步传输细节及事务组成,今天我们主要讲解批量传输及事务组成,批量传输也叫大容量传输

    批量传输和同步传输类似,是使用批量事务(Bulk Transactions)来传输数据。批量读使用批量输入事务,批量写使用批量输出事务。批量传输通常在数据量大、对数据的实时性要求不高的场合,例如USB打印机扫描仪大容量存储设备等,批量传输可以占用任意可用的数据带宽。

    批量传输主要包括批量读传输批量写传输两种,传输事务如下图。

    2.批量传输的结构

    批量传输的事务和同步传输一样,都有只有1个阶段,数据阶段。

    主机如果是批量读数据请求,则数据阶段为一个或者多个IN事务(批量传输事务,事务到后面讲解)

    主机如果是批量写数据请求,则数据阶段为一个或者多个OUT事务;
        
    数据阶段是由一到多个IN/OUT事务组成。这是由于有时候存在一个事务传不完的数据,所以可能存在多个连续IN/OUT事务的情况,在同一次数据传输阶段中事务类型(读写)必定相同。

    注:批量传输的事务和同步传输类似,都有只有1个数据阶段,都是使用IN事务或者OUT事务进行传输,只是两种传输的事务的组成有很小的区别,后期详细讲解。

    3.抓包分析

    3.1批量读传输抓包分析

    因为是设备给主机传输数据,所以是数据阶段是IN事务。

    3.2批量写传输抓包分析

    因为是主机给设备传输数据,所以是数据阶段是OUT事务,如下图。

    4.批量传输各速率下支持最大包长度

    批量传输不支持在低速下,高速最大包长度为512字节,全速下为64字节。

    5.批量传输事务组成

    6.传输、事务、包组成学习架构图

    本架构图后期再学习中会一步一步更新,每一节之后也会逐步完善并更新,最后会完整的展示出来传输、事务、包的结构,让大家在学习过程中对协议框架不混乱。


    1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。

    2.未经原作者允许不得转载本文内容,否则将视为侵权;

    3.转载或者引用本文内容请注明来源及原作者;

    4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

    下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

    展开全文
  • USB传输分类 控制传输是每个USB设备都会用到的一种传输,在枚举过程中主机和端点0交互所使用的传输方式。 大容量数据传输常见的例子便是U盘(CDC其中的两个端点也使用了bulk传输) 同步传输,常用于音视频灯USB...
  • USB协议详解第12讲(USB传输-初探)

    千次阅读 2021-01-12 22:59:06
    目录 1.USB传输、事务、包的关系 ...OK,其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句对话,就相当于每个事务里面的各种包。 .
  • 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了批量传输,今天我们主要讲解中断传输。 中断传输用于哪些频率不高,但是对...
  • 包标识字段 USB总线枚举
  • //当此接口当前处于活动状态时,此功能被调用,并且主机通过“设置配置”请求选择任何配置,或者主机发出USB复位,或者设备与主机分离(即,Vbus不再存在) void (*disable) (void); //当此接口当前处于活动状态时...
  • 十一、USB 的四种传输类型 1、批量传输 详细内容见 《USB2.0标准协议》 8.5.2 Bulk Transactions 章节。 批量事务类型的特点是能够通过错误检测和重试来保证在主机和设备之间无错误地传递数据。批量事务使用由令牌、...
  • usb建立事务

    2013-06-23 22:20:21
    USB 事务处理 USB 事务处理是主机和 USB 设备间数据传输的基本单位,由一系列特定格式 的信息包组成, 根据所含信息包的类型分别建立不同的事务
  • USB四大传输

    2022-05-11 11:22:15
    10.1 控制传输 控制传输分为三个过程建立过程,(可选)数据过程和...如果有数据过程一个数据过程可能有一个或者多个数据事务。在数据传输的过程中数据传输的过程方向必须是唯一的。要么全是写(OUT),要么全是读(IN)。数据
  • USB 之传输事务

    2020-08-23 19:00:00
    来源:公众号【鱼鹰谈单片机】作者:鱼鹰OspreyID :emOsprey前面的笔记,鱼鹰介绍了如何通过两根数据线完成 USB 数据的差分传输,知道了最底层的传输是如何进行的,但是仅...
  • 如何调度USB事务

    2012-11-27 18:54:38
    USB是主从模式的传输总线,只有当主机提出请求时,设备才可以进行数据传输。这种数据传输模式和通信中的蜂窝数据传输有点类似,只有当基站(BS)向终端(CS)发送读写请求时,终端才会发送或者接收数据。主从式的...
  • 目录 ...前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,今天我们主要讲解控制传输。 控制传输是一种特殊的传输方式,且
  • USB 2.0高速7端口集线器控制器 概述 7端口集线器是一款OEM可配置的低功耗MTT(多事务 转换器)集线器控制器IC,具有7个适合嵌入式USB解 决方案的下行端口。 7端口集线器完全符合USB 2.0规 范,并将作为全速集线器或...
  • 第二篇 USB2.0协议简述(包-事务-传输)

    千次阅读 2020-11-03 10:32:11
    一、 USB2.0通信协议简介 1. 包(Package) 包是USB传输的基本单元,USB协议规定了三种类型的包:令牌(Token)包、数据(DATAx)包、握手(Ack)包。其中,令牌包只能是从主机发出。数据包和握手包可由主机发出,也可是...
  • - 每个端口都有专用的事务转换器 • PortSwap - 可配置的差分对内信号交换 • PHYBoost - 用于恢复信号完整性的可编程USB收发器驱动强度 • VariSense™ - 可编程USB接收器灵敏度 • 支持USB链路电源管理(Link ...
  • 5.USB协议中的建立事务 6.HID描述符详解-en 7.USB枚举过程 8.HIDUsageTables 9.USB_HID协议中文版_USB接口HID设备 11.传输线终端阻抗匹配 12.VID-PID解释 13.通用串行总线通用类规范-en 14.usb_20 20.HID描述符工具
  • 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了控制传输,今天我们主要讲解同步传输。 同步传输用在数据量大、对实时性...
  • 该规范描述了协议定义,事务类型,总线管理以及设计和构建符合该规范的系统和外围设备所需的编程接口。 USB 3.1主要是对SuperSpeed USB 3.0的性能增强,从而为固态驱动器和高清显示器等设备提供了两倍以上的带宽。 ...
  • usb_32_20200716_0_USB协议_

    2021-10-02 10:29:43
    该规范描述了协议定义,事务类型,总线管理以及设计和构建符合该规范的系统和外围设备所需的编程接口。 USB 3.2主要是对USB 3.1的性能增强,通过为USB Type-C电缆和连接器添加双通道支持,为固态驱动器和高清显示器...
  • 第1部分是USB总线接口技术基础,介绍了USB总线接口的协议、事务处理、数据传输方式以及设备配置等;第2部分重点介绍了USB接口驱动程序的设计,包括使用DriverStudio进行驱动程序设计、使用通用USB驱动程序以及...
  • 所有的 USB 传输事务都在 USB 系统软件控制下进行, 系统软件包括 USB 设备驱动、 USB 驱动和 USB 主控制器驱动程序。 USB 设备驱动程序负责与 USB 设备进行通信,它提供了 USB 设备驱动程序和 USB 主控制器之间的接
  • 深度剖析USB协议层

    2018-10-30 21:39:42
    深度剖析USB协议层,需要的可以下载看看,希望对大家有用
  • 第1部分是USB总线接口技术基础,介绍了USB总线接口的协议、事务处理、数据传输方式以及设备配置等;第2部分重点介绍了USB接口驱动程序的设计,包括使用DriverStudio进行驱动程序设计、使用通用USB驱动程序以及...
  • - 高性能多事务转换器,每个端口提供一个事务 转换器 • PortMap - 灵活的端口映射和禁止顺序 • PortSwap - 可编程USB差分对引脚位置,它可使USB信号 线与连接器直接对齐,从而简化PCB设计 • PHYBoost - 可编程USB...
  • • 集线器中的事务转换器(Transaction Translator, TT)支持运行FS和LS外设 • 支持24 MHz单晶振 • 通过USB主机控制外设I2C器件 • 通过内部或外部稳压输出1.8V内核电压 • 支持最高2 TB的存储寻址能力 • 符合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,083
精华内容 3,233
关键字:

usb事务