首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

USB通信基础知识

协议 6.1 USB基本规范 USB在逻辑上被分为三层:信号层、协议层、数据传输层。...0x4B 0x5A 0x1E 接收器无错的接收数据包 接收设备忙不能接收数据 设备出错通信不上 专用包 (special) 前同步(PRE) 0x2C 主机发送的前同步字。...,用于传输与时效相关的信息,并且在数据中保存时间戳的信息 中断传输(interrput transfers):周期性,低频率,允许有限延迟的通信 大容量数据传输(bulk transfers):...非周期性,大容量突发数据通信数据可以占用任意带宽,并容忍延迟 6.6 USB枚举过程 当一个USB设备插入主机后,会有以下活动: 供电 复位 获取device descriptor 复位(可选...的协议类型、端点的包数据的最大长度等,每个USB设备只有一个设备描述符。

2K10
您找到你想要的搜索结果了吗?
是的
没有找到

USB通信协议深入理解

USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 1....包(Packet) 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据USB总线上的传输以包为单位,包只能在帧内传输。...主机从总线上的某个USB设备接收一个数据包的过程。...输出(OUT)事务处理 输出事务处理:表示USB主机把一个数据包输出到总线上的某个USB设备接收的过程。...3.1.2 数据阶段 根据数据阶段的数据传输的方向,控制传输又可分为3种类型: 控制读取(读取USB描述符) 控制写入(配置USB设备) 无数据控制 数据传输阶段:用来传输主机与设备之间的数据

91520

深入理解 USB 通信协议

USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 2....包(Packet) 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据USB总线上的传输以包为单位,包只能在帧内传输。...主机从总线上的某个USB设备接收一个数据包的过程。...输出(OUT)事务处理 输出事务处理:表示USB主机把一个数据包输出到总线上的某个USB设备接收的过程。...4.1.2 数据阶段 根据数据阶段的数据传输的方向,控制传输又可分为3种类型: 控制读取(读取USB描述符) 控制写入(配置USB设备) 无数据控制 数据传输阶段:用来传输主机与设备之间的数据

1.1K20

FPGA和USB3.0通信-USB3.0 PHY介绍

USB3.0 PHY简介 首先我们需要了解PHY具体完成哪些工作以及我利用FPGA能 实现哪些工作才能实现USB通信。...要实现USB通信大致需要两部分:Controller和PHY两部分,Controller大多为数字逻辑实现(逻辑控制主要分为:MAC、CSR以及FIFO,MAC部分主要按照USB协议进行数据的打包和分解...大致的通信方式如下图所示: PHY部分负责最底层的信号转换,作用类似于网口的PHY,这里如果大家需要了解具体的工作可以查看usb specification,因为和本文关系不大,所以不过多介绍了。...举例如下:我用FPGA实现USB2.0通信,我使用逻辑实现cntroller+外挂USB PHY的方式,那么我的接口基本使用ULPI接口(降低pin的数量); USB3316 芯片逻辑框图 (来源:芯片数据手册.../601Q 芯片逻辑框图 (来源:芯片数据手册) 上图中可以看到FPGA和controller通信方式为FIFO或者SPI等接口,SPI主要时用在2.0/1.1时代,典型代表(MAX3421E)。

2.9K30

Android USB转串口通信开发基本流程

好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信,一直忙到最近,才慢慢闲下来,趁着这个周末不忙,记录下usb转串口通信开发的基本流程...我们开发使用的是usb主机模式,即:安卓平板作为主机,usb外设作为从机进行数据通信。...2.打开设备 接下来,我们需要打开刚刚搜索到的usb设备,我们可以将平板与usb外设之间的连接想象成一个通道,只有把通道的门打开后,两边才能进行通信。...3.数据传输 到这里,我们已经可以与usb外设进行数据传输了,首先来看怎么向usb设备发送数据。...转串口通信的基本流程,有些地方写的不是很全面,比如接收usb外设数据的方法应该还有别的,不足之处欢迎指正。

3.3K40

浅谈总线通信机制----USB学习指南与总结

(3)缺省态 USB在被配置之前,通过地址0与主机进行通信。例如: ?...(4)地址态 经过了配置,USB设备复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;例如: ?...USB的包(宏观上来说)有四种:令牌包、数据包、握手包、特殊包。包是USB传输数据的基本单位。每种类型的包都会有不同的域来构成。...USB的域是USB传输中最小的单位,域主要分为7类,分别是:同步域(SYNC)、标识域(PID)、地址域(ADDR)、端点域(ENDP)、帧起始域(SOF)、数据域(DATA)、CRC校验域(CRC)。...枚举将是整个USB学习的重中之重,枚举就是主机从设备读取各种描述符信息,这样主机就可以根据这些信息加载合适的的驱动程序,从而知道是什么类型的设备,如何进行通信等等。

1.2K20

USB数据收发过程

USB是一种主从通信机制,所有互相连接在一起的设备中只有一个主机,其余的都是从机。从机不能主动发起通信,主机轮流对各从机进行访问。...USB协议比较复杂,这是因为USB的硬件接口线比较少,要完成很多的功能就只能把协议做的复杂。...USB协议里面有个描述符,分为好多个子类(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、设备限定符描述符)。这些描述符其实就是一个个数据结构,对应程序里的几个结构体。...表征USB的状态,在主机询问时,将自身的状态汇报给主机。比如: 主机:性别? 从机:男 主机:身高? 从机:180 ...... 从机回答的这些自身属性的就是那些描述符中的数据。...不考虑USB具体的协议的话,数据传输并不复杂,就是主机轮询各个从机数据,传输按照功能等分了四种,分别是控制传输,中断传输,同步传输,批量传输。不同的USB设备使用各种传输进行数据收发。

19110

FPGA和USB3.0通信-硬件的测试

FPGA和USB3.0通信-硬件的测试 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计...设备管理器的VID/PID 2、基于内部DMA的loopback传输测试 何为LoopBack,通俗点就是FX3接收到什么数据就发送什么数据(类似串口回环)。...在上诉过程中,FX3内部ARM核(ARM9)是不参与数据本身传输的,固件配置好后,内部通过DMA进行数据的搬运。 在上一节基础上测试FX3的硬件。...3、FX3数据吞吐量测试 编译固件 本次使用的是SDK目录下: ❝C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples...FPGA和USB3.0通信-USB3.0协议介绍 FPGA和USB3.0通信-USB3.0 PHY介绍 FPGA和USB3.0通信-FX3硬件设计简谈 FPGA和USB3.0通信-SDK的安装

2.1K20

FPGA和USB3.0通信-联合测试(二)

FPGA和USB3.0通信-联合测试(二) 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA...FX3应用中后半部分测试已经完成暨FX3和PC之间的通信: 接下来就是通过FX3这个“桥梁”实现FPGA与PC之间的通信。...同时也可以在ILA窗口读取到相应的数据,结合发送数据可以查看一下我们设计的时序对不对。...StreamOUT 实例、Streamer 中查看数据吞吐量等测试 《AN65974 - Designing with the EZ-USB® FX3™ Slave FIFO Interface》这个文件夹下...上面的测试就不一一展示了,具体可以查看上面的官方文档,每一个步骤都有详细的说明和图示说明。

1.4K30

如何用Wireshark捕获USB数据

事实上通过wireshark,我们可以捕获到usb设备发送给我们主机的数据,这样就可以进一步研究了。...如下图: 上图是连接在我电脑上的USB设备列表,通过lsusb查看命令。 例如说,我有一个无线鼠标Logitech。它是属于HID设备。...这个设备正常的运行,并且通过lsusb这个命令查看所有usb设备,现在大家能找出哪一条是这个鼠标吗??...Bus 003 Device 010代表usb设备正常连接,这点需要记下来。 准备 我们用root权限运行Wireshark捕获USB数据流。但是通常来说我们不建议这么做。...通过这些,我们可以了解到usb设备与主机之间的通信过程和工作原理,也许我们就可以把这些知识用到逆向工程中,得到一些东西。好了,就到这里!!! ‍‍

2.8K70

对atbus的小数据包的优化

atbus是我按之前的思路写得服务器消息通信中间件,目标是简化服务器通信的流程,能够自动选择最优路线,自动的断线重连和通信通道维护。能够跨平台并且高效。...虽然现在忘记了那些个框架的名字,我以前接触过的一些用于游戏的通信中间件,QPS在10w-20w/s之间已经算是比较高的了。...而且这个中间件主要是面向游戏服务器的通信,而在一个游戏服务器进程中,一般不会有这么高的请求频次。而且游戏服务器一般是逻辑比较复杂,CPU和内存比较容易成为瓶颈。...这个设计详见:关于BUS通信系统的一些思考(二) 或 https://github.com/atframework/libatbus/tree/master/doc 对于网络通道的大数据包,读性能仍然是差不多...现在如果某个连接有数据正在发送,则需要先把要发送的数据保存下来,直接返回成功,然后发送完毕后对保存的数据做合包,然后再一起发送。

6.8K20

研究人员演示:用USB设备能够秘密窃取临近USB接口的数据

近日, 来自澳大利亚阿德莱德大学的研究人员演示了通过USB小工具来监控旁边插入的USB设备的数据流动。 这个间谍小工具可以拦截相邻端口的电信号,来把敏感信息泄露给攻击者。...串扰: 串扰(英文:crosstalk),又称串音干扰,是电子学和通信学的专业术语。 串扰在电子学上是指两条信号线之间的耦合现象。...“在我们的项目中,我们演示了可以从USB集线器上的相邻端口监控USB数据线的电压起伏。” “我们的研究表明,如果在USB hub上的相邻端口上插上恶意设备或被篡改的设备,那么敏感信息可能会泄露。...在攻击场景下,恶意的USB设备插入被攻击设备的相邻端口,攻击者可以监控被攻击设备的数据流动,收集这些信息并将这些信息发送回自己的服务器。在恶意设备相邻端口传输的任何未被加密的数据都会被收集到。...串扰泄露可以收集到相邻端口的任何未加密的数据。 研究人员将一个现成的USB台灯进行改装,用它来记录相邻USB键盘的每一次键击,并通过蓝牙将数据发送回另一台计算机。

1.4K110
领券