精华内容
下载资源
问答
  • usb中断传输
    2021-06-03 12:23:32

    也许我误解了这里的问题.

    作为来自第12级的API包的一部分的示例导弹漫游器应用程序使用queue()和requestWait()方法来处理中断类型端点.

    请求是In或Out,取决于EndPoint的方向.

    一个漂亮的noddy请求 – >回复的代码看起来像这样.你会想要构建不同的实际代码,但这给你需要发生什么的要点(我希望)

    public void run() {

    int bufferMaxLength=mEndpointOut.getMaxPacketSize();

    ByteBuffer buffer = ByteBuffer.allocate(bufferMaxLength);

    UsbRequest request = new UsbRequest(); // create an URB

    request.initialize(mConnection, mEndpointOut);

    buffer.put(/* your payload here */;

    // queue the outbound request

    boolean retval = request.queue(buffer, 1);

    if (mConnection.requestWait() == request) {

    // wait for confirmation (request was sent)

    UsbRequest inRequest = new UsbRequest();

    // URB for the incoming data

    inRequest.initialize(mConnection, mEndpointIn);

    // the direction is dictated by this initialisation to the incoming endpoint.

    if(inRequest.queue(buffer, bufferMaxLength) == true){

    mConnection.requestWait();

    // wait for this request to be completed

    // at this point buffer contains the data received

    }

    }

    }

    如果您实际上正在寻找一种以异步方式运行此IO的方式,而不会将线程绑定到其上,那么我认为您需要考虑使用DeviceConnection.getFilehandle()方法来返回一个标准文件句柄,理论上可以这样处理使用它就像是任何其他文件类型的资源.不过我会注意到我没有尝试过.

    如果这两个都不解决问题,请修改问题,以澄清您正在努力寻找的例子.我希望这有帮助.

    更多相关内容
  • usb_int.rar_usb中断传输

    2022-09-24 19:22:37
    Linux下的usb驱动编程,这个是实现主机的中断传输方式的驱动
  • 传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了批量传输,今天我们主要讲解中断传输中断传输用于哪些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对...

    目录

    1.前言

    2.中断传输的结构

    3.抓包分析

    3.1中断读传输抓包分析

    3.2中断写传输抓包分析

    4.中断传输各速率下支持最大包长度

    5.中断传输事务组成

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


    1.前言

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

    中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。对于全速端点,中断传输的时间间隔在1ms到255ms之间,对于低速端点,时间间隔限制在10ms到255ma之间,对于高速端点,时间间隔为2^(bInterval-1) x 125us,bInterval的值在1-16之间。

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

    2.中断传输的结构

    中断传输的事务只有1个阶段,数据阶段。

    主机如果是中断读数据请求,则数据阶段为一个IN事务;

    主机如果是中断写数据请求,则数据阶段为一个OUT事务。

    3.抓包分析

    3.1中断读传输抓包分析

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

    3.2中断写传输抓包分析

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

    4.中断传输各速率下支持最大包长度

    中断传输中,低速传输一个事务最大传输8字节,全速传输一个事务最大传输64字节,高速传输一个事务最大传输1024字节。

    5.中断传输事务组成

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

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


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

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

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

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

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

    展开全文
  • 1.中断传输包结构 2.中断传输DATA数据包实现同步操作 3.中断传输包详解 3.1中断读传输抓包 3.2中断写传输抓包 4.中断传输小知识 1.中断传输包结构 中断传输和批量传输类似,中断只由一个中断事务组成,中断...

    目录

    1.中断传输包结构

    2.中断传输DATA数据包实现同步操作

    3.中断传输包详解

    3.1中断读传输抓包

    3.2中断写传输抓包

    4.HID设备工作原理


    1.中断传输包结构

    中断传输和批量传输类似,中断传输只由一个中断事务组成,中断事务包含令牌包、数据包、握手包,如图下所示。中断事务类型的特点是能够通过错误检测和重试来保证主机和设备之间数据的无错误传递。 需要理解和注意以下点。

    (1)当主机准备接收数据时,它发出IN令牌,设备端点通过返回数据包或(如果无法返回数据)NAK或STALL握手来响应主机。 NAK表示设备暂时无法返回数据,而STALL表示端点永久停止。 如果主机收到 一个有效的数据包,它用ACK握手来响应。 如果主机在接收数据时检测到错误,则不会向设备返回握手包

    (2)当主机准备发送数据时,它首先发出一个OUT令牌包,然后是一个数据包。 如果设备接收数据包时没有错误,则设备将返回三个握手中的一个。

    ACK:表示没有错误,并通知主机它可以发送下一个数据包。

    NAK:表示接收数据没有错误,但是主机应该重新发送数据,因为有可能设备处于临时条件拒绝接受数据(例如缓冲区满)。

    STALL:如果端点被停止,则返回STALL以指示主机不应该重试传输,表示设备可能存在错误。

    (3)如果收到的数据包带有CRC或位错误,则不返回握手。

    中断传输事务包组成如下图。

    2.中断传输DATA数据包实现同步操作

    中断传输使用数据包切换实现同步操作,就是通过数据DATA0包和DATA1包的切换来实现主机和设备传输错误检测以及重发机制。这里和上一节讲解的批量传输同步操作原理是一样的,大家可以直接点击USB协议详解第26讲(USB包-批量传输包详解)查看。

    3.中断传输包详解

    首先介绍下中断传输低速、全速、高速数据包最大长度大小,如下图。

    3.1中断读传输抓包

    3.2中断写传输抓包

    中断写传输和中断读传输相反,中断写传输主机使用OUT令牌包进行事务请求,这里不再贴图。

    4.HID设备工作原理

    我们前面在USB协议详解第16讲(USB传输-中断传输及事务组成)讲过中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。对于全速端点,中断传输的时间间隔在1ms到255ms之间,对于低速端点,时间间隔限制在10ms到255ma之间,对于高速端点,时间间隔为2^(bInterval-1) x 125us,bInterval的值在1-16之间。

    中断传输常用于HID设备,比如鼠标和键盘,当鼠标键盘接上之后,主机会按照端点配置的查询时间周期对设备进行数据请求,在这里就是周期的获取鼠标和键盘数据,其实周期请求是驱动帮我们做了这件事。

    但是当我们设备类型是自定义HID设备,或者是自定义标准USB设备(使用中断端点实现),驱动会帮我们周期查询吗?

    其实应用层软件在使用CreateFile打开一个自定义HID设备的时候,相应驱动程序会一直挂起IRP,到了设备端点指定的时间时主机控制器如果检测到IRP挂起,会对设备进行数据请求,设备如果把数据准备好了,则会把数据发送给主机,主机驱动程序会把接收到数据放入消息队列等待应用软件使用ReadFile函数来取数据,应用如果长时间不取数据,数据就会丢失。当然设备如果没有准备好数据,则会返回主机NACK握手信号


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

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

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

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

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

    展开全文
  • USB 传输方式(中断

    千次阅读 2021-11-04 15:10:26
    USB中断传输和我们传统意义上的中断不一样。它不是由设备主动地发起一个中断请求,主机响应再操作,而是由主机保证在不大于某个时间间隔内按排的一次传输,所以USB的中断实际意义是实时查询操作,即USB的中断传输是...


    中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。

    USB中断传输和我们传统意义上的中断不一样。它不是由设备主动地发起一个中断请求,主机响应再操作,而是由主机保证在不大于某个时间间隔内按排的一次传输,所以USB的中断实际意义是实时查询操作,即USB的中断传输是主机在一定的时间不断地主动轮询设备检查其是否有数据需要传输,对此有3个重要参数需要在端点描述符中进行配置:

    • 传输类型
    • 每次传输的最大数据包大小
    • 轮循时间间隔

    中断端点需指定一个范围在1-255毫秒内的询查周期。主机保留足够的带宽以确保在指定频率上直接向中断端点发出IN或OUT事务。

    中断传输的特点

    • 高速设备和低速设备均可使用中断传输。
      全速模式最大包长上限为64个字节;
      低速模式最大最大包长上限为8个字节。
    • 高速模式的最大包长上限为1024个字节;中断传输端点要指定其可以在超高速总线上接受或传输的最大数据包负载大小。对于支持突发大小大于 1 的中断端点,唯一允许的最大的数据包负载大小为 1024 字节;对于突发大小等于 1 的中断端点,最大的数据包负载大小可以在 1 到 1024 之间任意大小。中断端点的最大突发大小是 3。

    中断传输事务

    USB中断数据流传输包括IN传输和OUT传输,分别对应于数据的读和写,其也分为3个阶段,分别为为令牌阶段、数据段和握手段。

    中断传输和批量传输的结构基本一致,只只是中断传输没有ping和nyet两种包。

    • 当主机准备接收中断时,其发送IN令牌包,USB设备响应并返回DATAx数据包,NAK或STALL握手包。
    • 当主机发送中断数据时,其发送OUT令牌包和DATAx数据包,而USB设备将向其返回ACK、NAK和STALL握手包。
      在这里插入图片描述

    令牌段:

    • 主机发出令牌包,寻址从机。

    数据段:

    • 从机如果接收令牌包出错,无响应;
    • 从机端点不存在,回送STALL;
    • 从机端点数据未准备好,回送NAK;
    • 从机端点数据准备好,回送数据包。

    握手段:

    • 主机如果接收数据包出错,无响应;
    • 主机如果接收数据包正确,回送ACK。
      在这里插入图片描述
    展开全文
  • STM32 USB主机传输中断过程

    千次阅读 2021-05-16 18:04:31
    1、STM32F USB主机 本文介绍STM32F USB OTG FS主机的中断过程及时序,关于USB通信的原理与报文...2、USB主机OUT传输中断 应用程序调用USB主机驱动发送数据到USB设备,这个过程会在USB总线上面产生OUT传输过程。...
  • C8051F340 USB 中断传输方式应用,包括HOST 和 底层原码,可直接使用
  • usbd_ioreq.c,usbd_core.c,STM32_USB_OTG_Driver,inc,usb_otg.h,usb_bsp.h,usb_core.h,usb_hcd.h,usb_dcd_int.h,usb_dcd.h,usb_defines.h,usb_hcd_int.h,usb_conf_template.h,usb_regs.h,src,usb_hcd.c,usb_otg.c,...
  • USB-HID 中断传输

    千次阅读 2018-09-14 14:15:47
    采用USB抓包工具 Bus Hound发送指令时也可发现,如果选择HID-Compliant Device,只能发送控制类的指令,而对于实际的数据传输需要另外配置端点进行传输。  USB传输事务类型可在端...
  • USB四大传输

    2022-05-11 11:22:15
    10.1 控制传输 控制传输分为三个过程建立过程,(可选)数据过程和状态过程。 建立过程 建立过程使用的是SETUP令牌包,然后是数据包,SETUP只能使用DATA0包。最后才是握手包,设备只能使用ACK回应(除非出错),不能使用...
  • USB传输模式(控制传输、批量传输、中断传输、同步传输)介绍    控制传输、批量传输、中断传输、同步传输    USB 有上述四种传输类型。枚举期间外设告诉主机每个端点支持哪种传输类型。    USB设备驱动向...
  • USB协议详解第12讲(USB传输-初探)

    千次阅读 2021-01-12 22:59:06
    2.4中断传输 3.传输总结及后期内容 1.USB传输、事务、包的关系 USB传输、事务、包是从不同层次上去说明一次数据交互的三个概念。 举个例子可能更好些,"某领导和一个早起的程序员进行了一次交流,说了5件事"。 ...
  • 通用USB测试工具-TeenyUSB_tool支持中断传输,批量传输,同步传输 支持HID设备,支持串口设备,入需要测试的设备VID和PID,点击Refresh按钮,选择需要测试的设备后点击Open,USB View窗口中可以测试所有libusb支持的...
  • USB传输类型简介

    2020-11-13 05:42:23
    在此,针对不同的外围设备类型与应用,定义了4种传输类型,分别是控制传输(control transfer)、中断传输(interrupt transfer)、批量传输(bulk transfer)以及等时传输(isochronous transfer)。其中,要特别...
  • 目录 1、事务 2、控制传输 3、同步传输 4、批量传输 PING事务: ...5、中断传输 ...在介绍USB传输类型之前,请允许我...USB协议规定了四种传输类型:控制传输、批量传输、同步传输、中断传输。下面简答介绍一下这四种传
  • 当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始处理中断事件。 2.事件 dwc3 USB设备控制器事件使用dwc3_event数据结构描述,由4个字节...
  • 1.STM32两个USB中断入口 2.CTR_LP() 3.CTR_HP() 4.CTR_LP 和 CTR_HP 各自处理的事务类型 1.STM32两个USB中断入口 STM32中断入口有两个,分别是USB_HP_CAN1_TX_IRQHandler()和USB_LP_CAN1_RX0_IRQHandler...
  • USB2.0实际传输速度

    万次阅读 2021-01-08 17:03:37
    USB2.0规范中传输速度是480 Mbps(即60 MB/s)。但是很多USB2.0设备在实际工作时的数据传输速度却与此相差甚远,比如用PC用U盘拷个东西,往往比60MB/s慢很多,这是为什么呢? 其实想想也能知道一些原因,USB总线中...
  • usb传输类型

    千次阅读 2017-03-08 00:14:52
    usb 4种传输类型:控制传输,中断传输,等时传输(同步传输),批量传输。中断传输,等时传输(同步传输),批量传输每传输一次数据都是一个事务,而控制传输包括2个或者多个事务,建立过程(setup) 状态过程,或者...
  • USB的协议对 USB 的数据传输类型进行了详细的分类,按照传输数据量的大小、传输速率的高低以及对时间的要求,可以分为 4 种传输类型:块传输、中断传输、同步传输和控制传输。USB 功能设备和USB 主机程序之间便是...
  • win7上使用cpress USB驱动,可以使用高带宽的中断传输了吗? cypress的论坛上说xp上是不支持中断高带宽的(如下)。 ...keywords=high-bandwidth&cat=technical_documents
  • 本文档主要介绍了USB的总线结构,传输类型,包括控制传输,同步传输,中断传输,批量传输,USB的协议层,USB包格式,USB的设备状态,设备请求,数据结构等等
  • 传输是指每次传输一个数据块,区别于中断传输方式。块传输是PCI的基本传输方式,也是DMA中基本传输方式。  USB 即“Universal Serial Bus ”,中文名称为通用串行总线。这是近几年逐步在PC 领域广为应用的新型...
  • USB的数据传送的方式下,有4种传输方式:控制(Control)、同步(Isochronous)、中断(Interrupt)、大量(Bulk)。通常所有传送方式下的主动权都在PC边,也就是host边。 (1)控制(Control)方式传送:控制...
  • USB笔记 USB2.0 不同传输类型下的理论最大速率 USB2.0协议中定义了三种速率,低速(low speed),全速(full speed),高速(high speed)。 最大速率如下: 最大速率(bps) 低速(low speed) 1.5Mb/s 全速(full ...
  • USB的四种传输模式

    千次阅读 2021-07-28 17:15:29
    本文转载自 这里 ... USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Trans
  • usb 传输协议

    2022-07-31 18:21:22
    USB,是英文UniversalSerialBus(通用串行总线)、支持设备的即插即用和热插拔功能。在1994年底由英特尔、IBM、...USB正是为了解决速度,扩展能力,易用性等而出现的,本文阐述了usb协议的特点及其四种传输模式。......
  • USB协议架构及驱动架构

    千次阅读 2017-12-26 16:51:31
    1. USB协议1.1 USB主机系统在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、...1.3 主机和设备之间通信模型上图展示了USB主机和USB设备之间的数据传输过程
  • 传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了控制传输,今天我们主要讲解批量传输。 批量传输和同步传输类似,是使用批量事务(Bulk Transactions)来传输数据。批量读使用批量输入事务...

空空如也

空空如也

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

usb中断传输