展开

关键词

USB基础知识

PC机或OTG设备,一个USB系统只能有一个主机 设备:1.集线器HUB:扩展主机接口,设备可以过其接入主机 2.功能设备 物理连接:即USB电缆,USB使用差分号传输数据,全速/高速模式电缆必须外层屏蔽铜质传输线 驱动程序常由操作系统提供,独立于特定的应用程序和USB设备。 3. 主机端控制程序:包括硬件和软件,使USB设备能够被主机识别。 (差分号) 1 Full Speed :Differential(差分号) 0 6 USB协议 6.1 USB基本规范 USB在逻辑上被分为三层:号层、协议层、数据传输层 ,并且在数据中保存时间戳的息 中断传输(interrput transfers):周期性,低频率,允许有限延迟的 大容量数据传输(bulk transfers):非周期性,大容量突发数据的 descriptor) 获取(configuration descriptor) 获取(string descriptor)(可选) 配置 6.6.1 USB描述符 过一套描述符,USB设备向

36910

USB协议深入理解

包(Packet) 包(Packet)是USB系统中息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在 USB总线上的传输以包为单位,包只能在帧内传输。 然后,设备将数据过DATA1/DATA0数据息包回传给主机。 控制写入 是将数据从主机传到设备上,所传的数据即为对USB设备的配置息,该过程如下的图【Control Wirte】所示。对每一个数据息包而言,主机将会送出一个OUT令牌息包,表示数据要送出去。 紧接着,主机将数据过DATA1/DATA0数据息包传递至设备。 因此中断传输的方向总是从USB设备到主机。 DATA0或DATA1中的包含的是中断息,而不是中断数据。

7720
  • 广告
    关闭

    腾讯云即时通信IM,新客首月99.9元

    腾讯云即时通信,1分钟跑通DEMO,结合开源 UI 库,快速搭建IM 应用,全球多点覆盖

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

    RL-USB教程开工制作,各种常用USB协议和上位机案例统统整出来,更新至第6章(2020-10-19)

    mod=viewthread&tid=99710 ---- 说明: 1、各种的CDC,HID,MSC,虚拟网卡,WinUSB,Audio等,还有复合USB设备,Host外挂各种USB设备统统做个案例。 并且制作HID,BULK等机制的上位机例子。 2、之所以使用RL-USB作为USB协议栈的首个教程,主要是简单易用,各家M内核芯片都可以方便的移植。 3、基本上掌握了这个,大部分项目需要的USB我们基本都可以方便的实现。并且RL-USB的设备源码已经过DAPLINK开源了出来,大家要查看也十分方便。 V5-4002_RL-USB Template.7z (1.54MB) ? V5-4003_RL-USB Debug Mode.7z (1.55MB) 目录: ? ? RL-USB框图: ? 各种常用功能,基本都整好了。 ?

    36120

    Android USB转串口开发基本流程

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

    1.2K40

    树莓派和STM32USB和串口记录

    不管怎样,为了简便开发,选择串口。 pip insatll pyserial 查找可用端口 硬件连接:stm32使用ch340g的串口输出,接入到树莓派的USB口上。 过如下代码查找端口,过拔插观察实际端口。 的标号 python3 -m serial.tools.list_ports 最简测试代码 进入python3环境后,该代码实现了读取数据(这里stm32端一直在发送数据,接收到数据表示正常) 发送数据

    2.1K20

    Linux驱动开发: 使用usbmon抓取usb 总线上的数据

    一、环境介绍 操作系统: ubuntu18.04 64位 二、usbmon使用方法 2.1 功能介绍 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具。 Virtual USB Hub Bus 003 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub Bus 003 Device 000: ID 148f:5370 Ralink Technology, Corp. 2.6 监控指定总线上的数据 为了只看这个想要的设备数据,可以过滤一下。 后面的 "1:010" ,1表示总线编号。 010表示设备编号。 过lsusb命令可以看到。 cat /sys/kernel/debug/usb/usbmon/1u | grep "1:010" 输入: cat /sys/kernel/debug/usb/usbmon/3u 读取总线上全部数据

    24220

    dot net core 使用 usb 获得知读写串口LGPL

    本文告诉大家如何在 dot net core 使用 usb 首先需要打开 Nuget 安装 CoreCompat.LibUsbDotNet ,这是一个usb连接的库。 ? 获得知 如果需要获得 USB 知,那么可以过下面的代码 static void Main(string[] args) { Console.WriteLine 需要注意,过上面的这个方法只能获得hid设备的知 读写 在开始读写的时候就需要先知道 usb 的 pid 和 vid ,其中 vid 是 Vendor ID,供应商识别码。 VID由供应商向USB-IF(Implementers Forum,应用者论坛)申请,除了一些诡异的 usb 会重复之外,可以认为不同公司的 vid 是不同。 串口 如果需要在 dotnet core 引用 System.IO.Ports 可以在程序包管理器输入下面代码 Install-Package System.IO.Ports -Source https

    1K10

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

    (3)缺省态 USB在被配置之前,过地址0与主机进行。例如: ? (4)地址态 经过了配置,USB设备复位后,就可以按主机分配给它的唯一地址来与主机,这种状态就是地址态;例如: ? (5)配置态 过各种标准的USB请求命令来获取设备的各种息,并对设备的某此息进行改变或设置。例如: ? 说了这么多,那USB又是怎么来识别设备的呢?过枚举。 ? 枚举将是整个USB学习的重中之重,枚举就是主机从设备读取各种描述符息,这样主机就可以根据这些息加载合适的的驱动程序,从而知道是什么类型的设备,如何进行等等。

    45520

    平台:USB充电【转】

    USB Battery Charging V1.2 Specification 定义了USB充电器的类型或者叫做充电源。 1. 然而这些DCP端口不支持USB接口进行数据传输。 电池充电规格书定义了数据线应该被短接在这种DCP情况下。 充电类型的检查依赖于这些数据线。 高平台的电池充电是被PMIC或者外部的充电芯片所控制。它必须知到充电器类型和最大充电电流。 原生的电池驱动直接与PMIC进行交互。 这个驱动知PMIC开始使用USB VBUS进行充电并且指明可以获取的最大的电流。 PS:这里的电池驱动估计说的不对,或者我自己理解有误,从代码上看应该是USB的驱动检测到充电器类型之后,把这一知给PMIC. 3 充电检测算法 在用的充电器检测模型中,提到了几个阶段: Data

    36020

    C# 获得设备usb

    本文告诉大家如何获得设备的usb来进行判断是否有哪些usb和找不到usb可能是什么。 需要在项目右击引用,点击程序集,搜索 System.Management 然后安装他 然后使用下面的代码就可以获得设备的 usb 请看代码 static List<(string DeviceID } collection.Dispose(); return devices; } 如果需要判断是否存在某个 usb ,就过 pid vid 判断,判断的方法是拿PNPDeviceID字符串比较 参见:c# 获取移动硬盘息、监听移动设备的弹出与插入事件 - Chris Cheung - 博客园 如果发现找不到 usb ,可能是在开机的时候进行找usb,一般需要开机之后很久才会把所有的设备添加,所以如果找不到,就看开机的时间,如果太短,那么可能是因为程序太快去查。

    64310

    基于FPGA的USB接口控制器设计(VHDL)(上)

    现在大部分USB设备(比如USB接口的鼠标、键盘、闪存、U盘等等)都是采用了USB用驱动,而你的系统有USB用驱动的话(比如XP就内建了USB用驱动)就能用。 1994 年,Intel、Compaq、Digital、IBM、Microsoft、NEC、NorthernTelecom 等 7 家世界著名的计算机和公司成立了 USB 论坛,花了近两年的时间形成了统一的意见 所谓 USB 互连实际上是指一种 USB 器件和 USB 主机进行的方法。 USB 主机是整个 USB 系统的控制方,它过主机控制器与 USB设备进行交互。 本篇到此结束,下一篇带来基于 FPGA 的 USB 接口控制器设计(VHDL)(中),会介绍USB原理,包括USB 传输模型、USB 设备检测过程;USB 系统开发,包括USB 硬件系统,USB 接口芯片

    46630

    Android OTG之USB转串口模块

    Android OTG之USB转串口模块讯 微公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 1.背景简介 我们公司开发了一款室内机平板 2.分析及实现思路 智能门锁的控制是过使用 433射频(不了解的请百度)来进行讯的; 平板是没法与智能门锁直接进行讯,但是厂家提供了一个433讯模块(支持串口); 而平板(支持OTG)是支持USB 3.主要代码实现 3.1初始化USB转串口模块 由于我们选用的是CH340模块,我们先导入ch340的 jar 包,然后在代码中检查手机/平板是否支持USB HOST模式,如果支持我们就初始化讯时的相关参数 初始化完成之后,我们就可以打开USB进行讯了,同时初始化完成之后我们需要开启一个读取数据的线程,这样,一旦收到数据或者相应的响应包(一般也叫ACK)我们就可以进行相应的处理了。 USB设备等息。

    73410

    androidusb读取U盘的方法

    本文实例为大家分享了androidusb读取U盘的具体代码,供大家参考,具体内容如下 1.关联 compile ‘com.github.mjdev:libaums:+’ 2.权限设置 <uses-permission = null) { mContext.unregisterReceiver(UDiskMountedReceiver); } } /** * 检查usb设备的权限 * @param device * @ position storageDevices.length) { return null; } else { return storageDevices[position]; } } /** * 获取usb ) { mOnUDiskCallBack.onPermissionCallBack(); } break; case UsbManager.ACTION_USB_DEVICE_ATTACHED: //usb { mOnUDiskCallBack.onAttachDeviceCallBack(); } break; case UsbManager.ACTION_USB_DEVICE_DETACHED: //usb

    54410

    USB HOST与 USB OTG的区别及工作原理

    USB背景知识 USB是一种数据方式,也是一种数据总线,而且是最复杂的总线之一。 硬件上,它是用插头连接。一边是公头(plug),一边是母头(receptacle)。 USB_ID:输入号,由 USB OTG 协议定义,用于识别 USB 口所接设备的默认角色(host or device)。 2个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB 规范主机/外设的结构模型。OTG主机负责初始化数据的任务,比如:总线复位、获取USB 各种描述符和配置设备。 自供电设备配置一个默认的控制道,由他提供该设备的配置和状态等息。 一问一答: 什么是USB OTG? USB OTG是USB 2.0的补充规范 2. 设备,同时也可以发下host设备 做usb,首先要先弄清楚哪边是HOST那边是SLAVE 比如你的android手机做host,要获得slave,用UsbDevice表示slave

    3.4K30

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

    只需要用一个稍作伪装过的USB设备,插到电脑的USB口中,它就能监听临近USB接口泄露出出来的电号,如果临近USB口接了键盘的话,那么过对其进行分析就能获取到用户的键击记录。 近日, 来自澳大利亚阿德莱德大学的研究人员演示了USB小工具来监控旁边插入的USB设备的数据流动。 这个间谍小工具可以拦截相邻端口的电号,来把敏感息泄露给攻击者。 这在技术上定义为“道间串扰泄露”。 串扰: 串扰(英文:crosstalk),又称串音干扰,是电子学和学的专业术语。 串扰在电子学上是指两条号线之间的耦合现象。 “重点就是你们应该在完全任别人的情况下再连接USB,对用户来说,常就是不要轻易连接别人的设备。对于那些对安全有更高要求的企业组织者而言,就更需要在意整个供应链的安全问题了。 ? 研究人员测试了50个USB设备,其中的90%都会被道间串扰泄露攻击。 “重点就是不要随便USB连那些你不完全任的设备,”研究人员总结道。

    606110

    【STM32F407】第3章 RL-USB协议栈介绍

    过MDK的RTE开发环境可以一键添加。 使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。 注:每个USB端点要用一个号量。对于自定义类,如果用到了一个输入端点和一个输出端点,那么还需要额外占用两个号量。 3.4.4 RTX5定时器组 USB Host需要用到RTX5的定时器组。 3.4.5 RTX5号量 每个例化需要占用一个号量。 3.4.7 注意事项 USB Host的阻塞API操作是过RTX5的任务间事件标志实现,用到了bit0到bit12,用户的USB Host应用程序不可再使用这几个bit。 3.5 RL-USB优势 RL-USB的最大优势就是简单易用,创建各种类和USB复合设备都可以过MDK RTE环境一键添加: ? 一键添加后,配置也十分方便: ?

    13810

    【STM32F429】第3章 RL-USB协议栈介绍

    过MDK的RTE开发环境可以一键添加。 使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。 注:每个USB端点要用一个号量。对于自定义类,如果用到了一个输入端点和一个输出端点,那么还需要额外占用两个号量。 3.4.4 RTX5定时器组 USB Host需要用到RTX5的定时器组。 3.4.5 RTX5号量 每个例化需要占用一个号量。 3.4.7 注意事项 USB Host的阻塞API操作是过RTX5的任务间事件标志实现,用到了bit0到bit12,用户的USB Host应用程序不可再使用这几个bit。 3.5 RL-USB优势 RL-USB的最大优势就是简单易用,创建各种类和USB复合设备都可以过MDK RTE环境一键添加: ? 一键添加后,配置也十分方便: ?

    16910

    【STM32H7】第3章 RL-USB协议栈介绍

    过MDK的RTE开发环境可以一键添加。 使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。 注:每个USB端点要用一个号量。对于自定义类,如果用到了一个输入端点和一个输出端点,那么还需要额外占用两个号量。 3.4.4 RTX5定时器组 USB Host需要用到RTX5的定时器组。 3.4.5 RTX5号量 每个例化需要占用一个号量。 3.4.7 注意事项 USB Host的阻塞API操作是过RTX5的任务间事件标志实现,用到了bit0到bit12,用户的USB Host应用程序不可再使用这几个bit。 3.5 RL-USB优势 RL-USB的最大优势就是简单易用,创建各种类和USB复合设备都可以过MDK RTE环境一键添加: ? 一键添加后,配置也十分方便: ?

    13220

    基于USB的攻击向量总结

    本文,我将主要过上图的分类方式来探讨针对USB的攻击向量问题。最上层涉及到更多关于人类应用、业务的基本交互场景。传输层包括设备的固件、协议栈等。物理层则主要描述USB总线上的问题。 0xA1 外部威胁 大部分安全从业人员认为,所有的USB攻击都是主机插入了外部usb设备,而这些设备常带有不同形式的恶意代码。恶意人员会想方设法的欺骗用户,将一个不可的设备插入到他们的主机中。 0xB2 数据过滤 由于USB设备常不会对主机上正在的应用程序进行身份验证,因此应用程序可能会对USB设备写入或者读取数据。 四、物理层 物理层攻击包括对USB总线中的机密性和完整性的攻击。 0xD1 物理窃听 无论数据是否敏感,传输的过程中总是需要暴露在管道一段时间。 我们甚至可以USB电流嗅探,示波器道采集等方式进行攻击,从道数据可以获得当前主机的重要特征息,恶意智能手机可以使用该息来组成攻击目标的提权shellcode。

    49620

    基于FPGA的USB接口控制器设计(VHDL)(中)

    三、USB原理 ? USB 可以分为两大类:一类是用来设置 USB 设备的配置;另一类是用来设置应用程序的。 之后,主机会过此道向设备发送一系列的标准 USB 请求以获取所需的息,设备必须响应这些请求并且采取适当的动作。这个过程称为 USB 的总线枚举。 (1)主机控制器 USB 主机控制器的功能是实现标准的 USB 主机串口引擎(SIE)和根集线器功能,它们一般过 PCI 或其他总线和主机 CPU 。 该特性为 USB 器件、集线器和 USB 状态提供了很方便的指示,作为一个诊断工具对设备的隔离故障是很有用的。 设计的基本要求是过 FPGA 芯片控制 USB 芯片,实现实验板和 PC 机之间的 USB 接口数据,来模拟一个硬件加密设备的功能。

    33320

    相关产品

    • 即时通信 IM

      即时通信 IM

      即时通信 IM(Instant Messaging)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券