文章来源:http://gliethttp.cublog.cn[转载请声明出处]
当设置地址的setup包发送完之后
usb host主机会继续产生一个IN事务,进而进入这里,将setup包中设置的地址值,配置到usb从设备上--pdiusbd12
对于PDIUSBD12来说,当为OUT事务数据包时,只有包数据接收完毕之后,才会触发PDIUSBD12的中断,
当为IN事务时,一旦host发出IN事务的PID令牌值,PDIUSBD12会立即中断,mcu此时,把需要发送的数据送到USB总线即可.
如果此次操作是OUT事务操作,那么当数据全部传输完毕之后,host主机会再产生一个IN事务操作,
从机必须配合这个IN事务操作发送一个空数据包(实际51测试slave可以不用回发0字节的空数据包;但在at91rm9200下当没有待发的数据时,当出现IN事务时,at91rm9200固件驱动会发送0字节包来响应该IN事务)
如果此次操作是IN事务操作,那么当数据全部传输完毕之后,host主机会再产生一个OUT事务操作,
从机必须配合这个OUT事务操作返回正确ACK(ACK已经由usb控制器硬件自动完成)
所以从这里看,IN事务也好,OUT事务也好,他们都是host主机以逻辑为出发点"乱搞"出来的,[gliethttp]
对于不负责任的从机,可能端点0,1,2之类一旦发生数据中断,它就发数据,它不管当前发的数据是为IN事务服务的,还是为OUT事务服务的,
而对于负责任的从机,它会完全按照host提出来的IN、OUT事务的逻辑,配合IN、OUT事务,发送相应事务下的相应数据.
举一个例子:host下发一个数据,所以需要产生OUT事务,当host发送完成之后,host自己知道已经发完了,[gliethttp]
但host比较bt,他还想让slave做一个确认,让slave报告一个空数据包,他才解恨,slave怎么报告呢,slave不能主动传数据给host,
因为usb主从模式的原因,一切数据的流动都是由host单方面主动提出发送、读取,slave只是被动的响应,就像前面的OUT事务一样
host打算OUT数据时,绝不会事先知会一下slave,有了就发,比较粗鲁,大手大脚,当OUT事务完成之后,
host又强迫slave上发一个空数据包给host,完全不顾及slave的感受[gliethttp]
因为slave不能有脾气,如果slave有了脾气,不去理会host的IN事务,host以强硬的姿态让slave上发一个空数据包,
slave就是不发,那没办法,slave你是真的不想混了,host会不带商量的把你踢出去--windows提示:"非法usb设备",
所以slave为了能糊口,在windows的一亩三分地混口饭吃,那就只能顺着该死的host的规则来行事了[gliethttp],
所以IN事务也好和OUT事务,以及setup事务,这些都是给这样一个过程起的一个代号,毕竟我们要和其他人交流,
总不能说,"就是那个东西,数据发出去等着回答的那个东西,我觉得它有问题",那交流起来多麻烦,要是有个这个定义之后,
大家就可以这么说,"我对IN事务不理解,我对OUT事务理解了",简洁明了.以上是我对usb--IN、OUT事务的理解.
相关推荐
USB系列二:USB事务处理(1)
USB的数据传输按照事务处理的方式来划分,一个完整地事务处理又细分为各种信息包。USB的信息包和事务处理具有特定的格式。USB事务处理是USB总线通信协议的基础,本章主要介绍USB事务处理方式,以及USB信息包的字段格式、USB信息包、令牌包、数据包和握手包等格式。 USB事务处理是USB主机和USB设备之间进行数据通信的基础。一般来说,一个完整的USB事务处理按照顺序包含令牌阶段、数据阶段和握手阶段,如图
从零开始学USB(七、端点、管道、接口、配置、设备)
端点(endpoint):端点是USB设备的唯一可识别部分,其是主机和设备之间的通信流的终点。它是一个USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据。每个USB逻辑设备由一...
12V转5V稳压电路详细分析(7805三端稳压,LM2596稳压)
7805线性三端稳压 DCDC的意思是直流变到直流(不同直流电源值的转换),只要符合这个定义都可以叫DCDC转换器,或称之为开关电源或开关调整器。 7805属于常用的线性三端稳压器,输入电压范围不大于35V,输入输出压差2V,最大输出电流1.5A,下图为原理图,其原理简单,使 用方便,深受很多用户的喜爱。但是其不足之处就是效率低,特别是压差越大时其效率越低。比如这里12V转5V的效率为 5V/12V≈41.7%。 如上电路是最经典的7805稳压5V电路,电路中有两个电容,电容的作用如下: ...
USB通信协议详解
USB通信协议详解
卡尔曼滤波、互补滤波与Tsinghua滤波:平衡车姿态感知的三大算法对比
本文对比了平衡车姿态感知中的卡尔曼滤波、互补滤波与Tsinghua滤波三大核心算法。互补滤波计算简单,适合入门;卡尔曼滤波理论最优但实现复杂;Tsinghua滤波则是一种面向嵌入式优化的轻量级方案,通过动态权重调整和零偏估计,在资源受限的MCU上实现了性能与效率的平衡,是智能车竞赛等场景的实用选择。
基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS
一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接从ISO文件启动,无需解开 支持MBR和GPT分区格式(1.0.15+) 支持超过4GB的ISO文件 支持大部分常见操作系统, 已测试650+ 个ISO文件 不仅仅是启动,而是完整的安装过程 版本升级时数据不会丢失 Ventoy 待改进 不支持macOS和ChromeOS 准备2个空的U.
USB控制传输过程 详细解析
<br />首先,要明白两个观点。第一,USB总线上所有的事务(数据流传输)都是由USB Host主动发起,而USB设备永远永远都是只是被动地接收然后处理USB Host发来的各种各样的命令(要求)。第二,中断是USB Host和USB设备之间的信令员,USB Host所有的要求都是通过这个信令员即中断来通知USB设备。<br />. 我们可以将整个USB数据通信过程看成是由一个一个的数据包构成,而这些数据包又分很多类,比如:令牌包,数据包,握手包,帧起始包。令牌包又分In包,Out包,Setup包。有一点
逆向小记 bd-ticket-guard-client-cert | bd-ticket-guard-client-data 通过现象看本质
依然没什么花哨的直接解析出来,既然这是个X509证书,那么要么是服务器下发,要么是自己生成喽,但是如果是本地直接生成,那服务器还校验个鬼哦!既然是服务器下发的,那服务器又是怎么校验这个证书是自己下发的呢,这就要讲到CA验证了,首先根据上图我们发现证书的Issuer"(颁发者)是。怎么来的呢,因为涉及到逆向咱就不讲了,其实也是涉及到非对称加密的,就是客户端用私钥去签名数据,服务器用上传过去的证书公钥验签的过程!当服务器收到这个证书的时候,会做几件事,首先用自己的公钥解开签名获得解密后的证书hash。
USB枚举过程 (二)
https://www.cnblogs.com/shangdawei/archive/2012/11/03/2752615.html 事务 分别有IN事务、OUT事务和SETUP事务三大事务,每一种事务都由令牌包、数据包、握手包三个阶段构成,这里用阶段的意思是因为这些包的发送是有一定的时间先后顺序的,事务的三个阶段如下: 1、令牌包阶段:启动一个输入、输出或设置的事务 2、数据包阶段:按输...
RK3506开发板实战:5分钟搞定开源鸿蒙OpenHarmony5.1+星闪功能配置
本文提供了一份基于RK3506开发板快速配置开源鸿蒙OpenHarmony 5.1并启用星闪功能的实战指南。文章详细介绍了从开发环境搭建、系统镜像编译烧录,到星闪驱动加载验证、应用开发及性能调优的全流程,帮助开发者高效上手,将新一代短距无线通信技术应用于物联网项目。
飞腾X100芯片GPU状态查询
本文档对在linux系统下查看X100芯片GPU状态信息进行说明,可以帮助大家了解芯片的实时工作状态。
usb通讯——读《圈圈教你玩usb》
1. 关键概念 1.1 IN和OUT 这两个参数的主对象都是主机。IN和OUT都是主机发起的(通过令牌包)。 IN:主从IN缓冲区接收数据,从机将发送数据放到IN缓冲区; OUT:主机将数据放到OUT缓冲区,从机在OUT缓冲区取数据; 1.2 NRZI编码 NRZI:No Return Zero-Inverse 非归零反相编码 编码后电平只有正负电平之分,没有零电平,是不归零编码 在传输中,同步头SYNC为00 01H,15个翻转信号。 但是当传输连续的逻辑1位时,NRZ-I编码后,将保持上一次翻转
WPF+Prism+LiveCharts+materialdesignin 搭建WPF开发框架
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容。
USB协议学习:4、USB的数据包结构
对于批量传输,如果启动批量传输,如果USB总线中有多余的总线带宽,批量传输会立即执行,但当带宽比较紧张时,批量传输会把带宽让给其它传输类型。中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。如果最后个事务的数据长度小于端点支持的最大包长度。等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感,类似用于USB摄像设备,USB语音设备等等。
C#上位机通信层封装:西门子S7NetPlus库的优雅使用
支持S7-1200/1500(机架号0,槽号1)、S7-300/400(机架号/槽号需根据实际配置);支持位(Bit)、字节(Byte)、字(Word)、双字(DWord)、浮点数(Float/Double)等数据类型的读写;支持DB块、输入寄存器(I)、输出寄存器(Q)、内存寄存器(M)、定时器(T)、计数器(C)的操作;轻量无依赖,兼容.NET 5+。首先定义核心枚举和常量,统一规范参数类型,避免硬编码。/// 西门子PLC型号(对应不同的机架/槽号默认配置)
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
USB协议详解第25讲(USB包-同步传输包详解)
目录 1.同步传输包结构 2.同步传输DATAx数据包核心要点 3.同步传输包详解 3.1同步读包结构 3.1.1全速设备传输小于等于1023字节包结构 3.1.2全速设备传输大于1023字节包结构 3.1.3 IN令牌包波形 3.1.4 数据包波形 3.2同步写包结构 1.同步传输包结构 同步传输由一个或多个同步事务组成,每一个同步事务具有令牌包和数据数据包,没有握手包,如图下所示。 主机发出IN或OUT令牌包,如果是IN令牌,设备会发送数据包给主机,如果是OUT令牌,主机会发送数据
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
USB开设备开发学习之三:USB中的端点详细了解
原文:https://blog.youkuaiyun.com/go_str/article/details/80985717 前言 端点在实际的USB通讯过程种的具体作用与含义十分重要,但是有些难以理解,自己整理一些知识作为备忘。 (注: 1、文中的EP表示Endpoint; ) 一、端点概念。 端点(Endpoint),是主机与设备之间通讯数据的接收或来源。主机与设备之间通信...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
USB通信学习-基础概念理解
1、USB是轮询总线,USB主机发起所有数据交换。数据往返于USB设备中的端点。USB主机输出使用OUT端点,USB主机输入使用IN端点。USB主机中没有端点,数据存储于缓冲区中。从主机的FIFO到设备的端点,中间是Pipes。全速USB传输中,固定的1帧时间为1ms,在高速USB中有将一帧分为了8个微帧,每个125us。USB数据层次从小到大分为域(field),包(packet),事务(transaction),传输(transfer),管道(pipes)。域是USB数据的最小单位,其实域就像我们CAN
usb学习笔记414(一)
usb学习笔记
USB四种传输相关
温故而知新, 记录点usb四种传输相关的内容。 根据usb协议ch8, ch9等章节, 传输分四种,控制, 批量,中断, 等时。 * 一个传输由多个事务组成。如建立(setup)事务, 读数据(IN)事务, 写数据(OUT)事务等等。 * 一个事务一般有三个阶段(三种包), 即令牌->数据->握手, 这三个阶段有些是可选的。 令牌包打头: 说明我(主机)要干什么, 有...
USB协议详解第17讲(USB事务总结)
本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、Data IN事务、Data OUT事务。Setup事务:主要向设备发送控制命令;Data In事务:主要从设备读取数据;Data OUT事务:主要向设备发送数据。回顾下前面我讲的传输、事务、包的关系,“某领导和一个早起的程序员进行了一次交流,说了5件事”。
USB技术浅析(1)——USB总线
USB总线 当前计算机最重要的接口技术之一:通用串行总线(Universal SerialBus,USB)。 USB规范的产生是为了确保数据传输过程的正确性、可靠性、高效性、统一性,USB标准则将数据传输的过程进行具体化、实现化,更进一步说明USB数据传输的实现。 发展趋势:从USB出现以来,由USB1.0开始到现在的USB3.x,USB通信技术的发展历经了25年,关于USB通信的技术已经广泛的应用在各个通信领域,在通信技术占据了重要的地位。USB总线技术的发展趋势是显而易见的,USB的数据传输速率越来越快
USB小白学习之路(2)端点IN/OUT互换
端点2(out)和端点6(in)的out_in互换 注:这里的out和in都是以host为标准说的,out是host的out,在设备(Cy7c68013)这里其实是输入端口;in是host的in,在设备(Cy7c68013)这里其实是输出端口。 由于在PDF文档中,最后博主说了句将端点2改为in,端点6改为out,就想试一下。 需要改的地方有两个文件PERIPH.c和DSCR.A51 1....
USB:USB通信中的端点(endpoint)和四种传输模式
USB的传输模式有4种,分别是控制传输(Control Transfer)、中断传输(Interrupt Transfer)、批量传输或叫块传输(Bulk Transfer)、实时传输或叫同步传输(Isochronous Transfer)。每种传输方式都有其特点,其特点如下: 端点(endpoint) 端点位于USB 外设内部,所有通信数据的来源或目的都基于这些端点,是一个可寻址的FIFO。 每个USB 外设有一个唯一的地址,可能包含最多十六个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具
USB 采用“令牌包”-“数据包”-“握手包”的传输机制
USB 采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个USB 体 系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据 包。 USB 采用“令牌包”-“数据包”-“握手包”的传输机制,在令牌包中指定数据包去向 或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌 包作出响应。握手包表示了传输的成功与否。
1797



被折叠的 条评论
为什么被折叠?



