
usb协议
自先沉稳~
这个作者很懒,什么都没留下…
展开
-
UAC设备采用Feedback方案实现时钟同步
前段时间在公司设备上实现了speaker端的feedback功能,这里来总结分享一下,具体代码我就不写了,也没多少。主要是思路分析,毕竟思路在手,天下我有。下面的内容只是一个概述,有兴趣的小伙伴可以留言一起讨论学习。1.方案需求设备端通过feedback反馈功能来实现和主机设备的音视频数据在固定的一段时间内需求达成一致,从而达到数据不会丢失或者无法获取到的效果。2.方案原理USB2.0标准协议在5.12.4 Isochronous Devices 章节对于Feedback有所讲解。Source原创 2020-09-11 15:55:56 · 1865 阅读 · 1 评论 -
USB基础知识了解
USB 的重要关键字:端点:位于 USB 设备或主机上的一个数据缓冲区,用来存放和发送 USB 的各种数据,每一个端点都有唯一确定的地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)。帧:时间概念,在 USB 中,一帧就是 1ms,它是一个独立的单元,包含了一系列总线动作,USB 将 1 帧分为好几份,每一份就是一个 USB 传输动作。上行、下行:设备到主机为上行,主机到设备为下行。Q1:USB 的传输线结构是怎样的?一条 USB 传输线分别由地线、电源线、D+和 D-原创 2020-07-29 15:02:54 · 5261 阅读 · 0 评论 -
USB的编码方式及时钟同步方式
NRZI 编码像 UART、I2C、SPI 、USB 这样的串行总线,通信时连续的 0、1 信号只通过一根数据线发送给接受者。但是因为发送者和接收者运行的频率不一样,信号的同步就是个问题,比如,接受者接收到了一个持续一段时间的低电平,无法得知这究竟是代表了 5 个 0 还是 1000 个 0。一个解决办法,就是在传输数据信号的同时,附加一个时钟信号线,用来同步两端的传输,接受者在时钟信号的辅助下对数据信号采样,就可以正确解析出发送的数据了,比如 I2C 就是这样做的,SDA 来传输数据,SCL转载 2020-07-20 17:07:16 · 1776 阅读 · 0 评论 -
USB标准请求
1.USB标准设备请求的结构1.1 标准请求bmRequestType 的D6~D5为00的请求,USB协议定义了11个标准请求(bRequest),其名字与相应的bRequest的值如下表:表3.5.3是各个标准请求的结构及需要传输的数据,常用的几个请求有:GET_DESCRIPTOR、SET_ADDRESS和SET_CONFIGURATION。下面详细介绍这几个请求:1.2 GET_DESCRIPTOR 请求需要注意的是 wValue, wIndex, wLength 这三个域都是两字转载 2020-07-17 18:11:23 · 1657 阅读 · 0 评论 -
USB枚举过程
1. 枚举是什么?枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接。USB总线拓扑结构见下图(最顶端为主机转载 2020-07-17 18:00:33 · 864 阅读 · 2 评论 -
USB设备的VID与PID
一、VID和PIDPID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的。这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已。GUID只是为了标志你安装的设备是属于一个什么类当中,这个类可以显示再设备管理器中。比如:你可以定义一个类,当然这个类有与系统中任何类都不同的GUID,然后选择一个图标和类名,就可以同网卡等其他设备一起显示在设备管理器下的根目录中了根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),转载 2020-07-17 11:13:32 · 2638 阅读 · 0 评论 -
USB复合设备与组合设备的区别
关键字Communication Device Class,简称CDCUSB Compound Device,USB复合设备USB Composite Device,USB组合设备摘要Compound Device内嵌Hub和多个Function,每个Function都相当于一个独立的USB外设,有自己的PID/VID/DID。Composite Device内只有一个Function,只有一套PID/VID/DID,通过将不同的interface定义为不同的类来实现多个功能的组合。正文C转载 2020-07-17 10:58:33 · 2527 阅读 · 4 评论 -
Total Phase Data Center介绍
有一个 Beagle™ USB 480 Protocol Analyzer 协议分析工具(https://www.totalphase.com/media/datasheet/TP_Beagle_USB_480_Protocol_Analyzer-Datasheet.pdf),可以抓取USB总线上的数据。配合Data Center Software可以抓取分析USB总线上的数据。软件下载地址https://www.totalphase.com/products/data-center/根据需要选择下转载 2020-07-17 10:35:28 · 3694 阅读 · 0 评论 -
usb setup请求结构体分析
在USB通讯里,从主控器发出来的第一个配置包就是设备描述符配置包,目的只有一个,就是获取插入的USB属性,以便加载合适的驱动程序。现在就来详细地分析一下设备描述符包的定义。在USB2.0的协议里找到9.3 USB Device Requests里就找到这个结构的定义,这里我使用C的定义结构如下:typedef struct _USB_SETUP_PACKET{REQUEST_TYPE bmRequestType;BYTE bRequest;WORD_BYTE wValue;转载 2020-07-16 16:59:08 · 498 阅读 · 0 评论