前言: 昨个帮同事忙, 应下了一个Android 与PC端通信的Demo,遂今早上折腾了一会,也算是写出来了,而且发现了一个比较严重的问题:参考资料都是12年,13年的,很多的Sample 都是不能用的...---- Android Code 首先是清单文件中的权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE
1 USB系统组成 主机:提供USB接口和接口管理功能的硬件、软件、固件的复合体。...协议 6.1 USB基本规范 USB在逻辑上被分为三层:信号层、协议层、数据传输层。...PID) 奇数据包(PID) 握手 (handshake) 确认(ack) 不确认(nack) 停止(stall) 0x4B 0x5A 0x1E 接收器无错的接收数据包 接收设备忙不能接收数据 设备出错通信不上...isochronous transfers):周期性,持续性的传输,用于传输与时效相关的信息,并且在数据中保存时间戳的信息 中断传输(interrput transfers):周期性,低频率,允许有限延迟的通信...大容量数据传输(bulk transfers):非周期性,大容量突发数据的通信,数据可以占用任意带宽,并容忍延迟 6.6 USB枚举过程 当一个USB设备插入主机后,会有以下活动: 供电 复位
USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 1....包(Packet) 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在 USB总线上的传输以包为单位,包只能在帧内传输。...高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。...注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,但是SOF包中帧编号的增加速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,...输出(OUT)事务处理 输出事务处理:表示USB主机把一个数据包输出到总线上的某个USB设备接收的过程。
USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 2....包(Packet) 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在 USB总线上的传输以包为单位,包只能在帧内传输。...高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。...注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,但是SOF包中帧编号的增加速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,...输出(OUT)事务处理 输出事务处理:表示USB主机把一个数据包输出到总线上的某个USB设备接收的过程。
可以和FPGA搭配使用的USB3.0 PHY芯片 通过之前的介绍,我们大致了解到USB3.0整个协议异常复杂,就连物理层都需要SerDes(FPGA实现的情况...USB3.0 PHY简介 首先我们需要了解PHY具体完成哪些工作以及我利用FPGA能 实现哪些工作才能实现USB通信。...LEVEL0 通信连接示意图 升级的UTMI+接口 ULPI(UTMI+ Low Pin Interface) 通信连接示意图 以上三种接口都是和USB2.0 PHY通信的接口(如果还不理解的话,这三种接口类似网口中媒体接口...举例如下:我用FPGA实现USB2.0通信,我使用逻辑实现cntroller+外挂USB PHY的方式,那么我的接口基本使用ULPI接口(降低pin的数量); USB3316 芯片逻辑框图 (来源:芯片数据手册...,这里在多说一句,目前市场上为了方便开发,USB3.0芯片内部会放置一个单片机,主要还是方便扩展接口,以方便芯片不单单只在USB3.0通信方面应用。
好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信,一直忙到最近,才慢慢闲下来,趁着这个周末不忙,记录下usb转串口通信开发的基本流程...我们开发使用的是usb主机模式,即:安卓平板作为主机,usb外设作为从机进行数据通信。...2.打开设备 接下来,我们需要打开刚刚搜索到的usb设备,我们可以将平板与usb外设之间的连接想象成一个通道,只有把通道的门打开后,两边才能进行通信。...3.数据传输 到这里,我们已经可以与usb外设进行数据传输了,首先来看怎么向usb设备发送数据。...转串口通信的基本流程,有些地方写的不是很全面,比如接收usb外设数据的方法应该还有别的,不足之处欢迎指正。
(3)缺省态 USB在被配置之前,通过地址0与主机进行通信。例如: ?...(4)地址态 经过了配置,USB设备复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;例如: ?...USB的包(宏观上来说)有四种:令牌包、数据包、握手包、特殊包。包是USB传输数据的基本单位。每种类型的包都会有不同的域来构成。...来看一张我画的图,再怎么觉得难的东西,也许你看完这张图以后,也就知道自己该怎么去学习了,这张图是我使用USB逻辑分析勾出来的图,然后加上自己学习的总结,这就是一个USB中传输的过程,相信你已经明白了USB...枚举将是整个USB学习的重中之重,枚举就是主机从设备读取各种描述符信息,这样主机就可以根据这些信息加载合适的的驱动程序,从而知道是什么类型的设备,如何进行通信等等。
FPGA和USB3.0通信-联合测试(二) 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA...FX3应用中后半部分测试已经完成暨FX3和PC之间的通信: 接下来就是通过FX3这个“桥梁”实现FPGA与PC之间的通信。...在此之前我们还需要打通FPGA和FX3之间的通信,通过前面的介绍我们知道FX3和FPGA之间是可以通过一个GPIF II的接口进行连接的,上一级我们介绍了GPIF II接口,这一节我们将利用官方工具搭建及测试接口...双击桌面的快捷方式: 接下来打开工程,工程参考: 官方文档:《AN84868 - Configuring an FPGA Over USB Using Cypress EZ-USB® FX3™》 菜单...打开 USB Control Center, 在 USB Boot 方式下, 下载 SlaveFifoSync/ Debug/SlaveFifoSync.img 文件到 FX3 中。
FPGA和USB3.0通信-硬件的测试 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计...1、识别USB3.0接口(驱动安装) 将FX3 USB口插上电脑后,可以在设备管理器中看到一个未识别到的设备: 右击,更新驱动程序: 驱动所在位置和自己安装路径有关,我使用的是默认安装位置,所以驱动位置在...此时在工程目录下会生成一个Debug的文件夹,文件夹下面就生成了我们需要的固件,如下: 接下来,根据自己的硬件选择从USB引导。 插上USB,就可以在设备管理器上看到FX3设备。...(Cypress USB StreamerExample)。...FPGA和USB3.0通信-USB3.0协议介绍 FPGA和USB3.0通信-USB3.0 PHY介绍 FPGA和USB3.0通信-FX3硬件设计简谈 FPGA和USB3.0通信-SDK的安装
本文告诉大家如何在 dot net core 使用 usb 首先需要打开 Nuget 安装 CoreCompat.LibUsbDotNet ,这是一个usb连接的库。 ?...需要注意,通过上面的这个方法只能获得hid设备的通知 读写 在开始读写的时候就需要先知道 usb 的 pid 和 vid ,其中 vid 是 Vendor ID,供应商识别码。...VID由供应商向USB-IF(Implementers Forum,应用者论坛)申请,除了一些诡异的 usb 会重复之外,可以认为不同公司的 vid 是不同。...) { } 如果知道了 pid 和 vid 拿到 usb 就可以使用下面代码 var usb =...串口通信 如果需要在 dotnet core 引用 System.IO.Ports 可以在程序包管理器输入下面代码 Install-Package System.IO.Ports -Source https
一、环境介绍 操作系统: ubuntu18.04 64位 二、usbmon使用方法 2.1 功能介绍 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具。...2.4 查看usbmon可以识别到的USB总线编号 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# ls /sys/kernel...2.6 监控指定总线上通信的数据 为了只看这个想要的设备数据,可以过滤一下。 后面的 "1:010" ,1表示总线编号。 010表示设备编号。 通过lsusb命令可以看到。...cat /sys/kernel/debug/usb/usbmon/1u | grep "1:010" 输入: cat /sys/kernel/debug/usb/usbmon/3u 读取总线上全部数据...root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# cat /sys/kernel/debug/usb/usbmon/3u ffff9bbbaf235b00
FPGA和USB3.0通信-UVC摄像机 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计...FX3应用中后半部分测试已经完成暨FX3和PC之间的通信: 接下来就是通过FX3这个“桥梁”实现FPGA与PC之间的通信。...FPGA和OV5640通信也是比较简单的,网上很多配置寄存器的文件,参考一下即可。 重点就是FPGA和FX3通信。...下载固件 选择FX3启动模式从【USB启动 】,插入PC的USB3.0接口: 设备管理器的信息。...FPGA端RTL设计 这部分主要参考《FPGA和USB3.0通信-联合测试(一)》中的同步时序,这里贴一下: 对于这次应用主要使用写应用,写应用的时序如下: 1.FIFO地址稳定且SLCS#信号被激活
不管怎样,为了简便开发,通信选择串口通信。...pip insatll pyserial 查找可用端口 硬件连接:stm32使用ch340g的串口输出,接入到树莓派的USB口上。 通过如下代码查找端口,通过拔插观察实际端口。
在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次插拔设备都要关闭计算机,不支持热插拔,且通信速率很低。...USB的出现简化了计算机与外围设备的连接,增强了扩展性,支持热插拔,且通信速度很快。...每次通信都是由主机发起,从机不能主动发起通信,只能被动的应答主机的请求。USB3.0及以后的USB协议,主机也可以和集线器(Hub)通信。...每个USB设备都有端点0的控制端点,当USB设备插入到USB主机拓扑网络中时,USB主机就通过端点0与USB设备通信,对USB设备进行配置,便于后续的数据传输。USB协议保证控制传输有足够的带宽。...,需要通信,每个链路能独立的进入低功耗状态 USB2.0的信息包是广播方式,每个连接的设备解析每个信息包的地址、端点、方向信息来决定自己是否应该响应;超高速信息包有路由信息,HUB决定信息包要送达那个设备
FPGA和USB3.0通信-UVC摄像机 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计
在使用DirectShow控制USB摄像头的技术方面,需要做几件准备工作: 1、安装DirectShow SDK ,这个比较繁琐,具体可以网上搜索。
USB 设备状态切换图 2....对于一个 USB 设备,它可以多种配置(Configuration)。比如 4G 上网卡就有 2 种配置:U 盘、上网卡。第 1 次把 4G 上网卡插入电脑时,它是一个 U 盘,可以按照里面的程序。...大多数的USB设备只有一种配置。 一个配置下,可以有多个接口(Interface),接口等同于功能(Function)。比如USB 耳机有两个接口(功能):声音收发、按键控制。...一个 USB 设备, 只有一个设备描述符:用来表示设备的 ID、它有多少个配置、它的端点 0 一次最大能传输多少字节数据 可能有多个配置描述符:用来表示它有多少个接口、供电方式、最大电流 一个配置描述符下面...3.1 设备描述符 3.2 配置描述符 3.3 接口描述符 3.4 端点描述符 3.5 示例 在 Ubuntu 中可以执行lsusb -v查看 USB 设备的描述符信息: $ sudo lsusb
1、现象 HUB芯片电源噪声所引起;USB HUB芯片电压偏置电阻不合适所引起。...2、参考电路 3、原因分析 在眼图测试时发现有一个USB口的眼图有抖动碰到眼图模板,当时经过千辛万苦,屡试不成,都未找到具体原因。...4、解决方法 通过分析有二个因素影响USB host通过不了眼图模板,一个是电源1.8V PLL的电源噪声所引起,另一个是由于偏置电阻的阻值会影响眼图眼睛的睁开的大小。
主机与设备之间通信时最终会总用于设备上的各个端点,它是主机与设备间通信流的一个逻辑终端。...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...管道与USB设备中的端点逐个对应,并且各个管道的数据传输是相互独立的。 2、管道的格式分类 管带的通信格式分为两种,一种为流,另一种为消息,这两种通信格式不同且互斥。...数据从流通道一端流进的顺序与它们从流通道另一端流出时的顺序是一样的(先进先出),并且流通道中的通信流总是单向的。 2)、“消息”指具有某种USB定义格式的数据流。
FPGA和USB3.0通信-FX3硬件设计简谈 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA...1、 作为协处理器-主要 这个主要是利用USB PHY的特点,通过GPIF接口向内部写入数据,通过USB接口输出。...2、作为主处理器 这种就是利用ARM内核功能+USB,功能类似STM32F103,但是USB功能升级了。...EZ-USB FX3 有下列引导选项: 从 USB 引导 从 I2C 引导 从 SPI (支持的 SPI 器件为 M25P16 (16 Mbit)、M25P80 (8 Mbit) 和 M25P40 (4...优秀的 Verilog/FPGA开源项目介绍(五)- USB通信 FPGA和USB3.0通信-USB3.0协议介绍 FPGA和USB3.0通信-USB3.0 PHY介绍
领取专属 10元无门槛券
手把手带您无忧上云