首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏计算机工具

    Android USB口通信开发基本流程,USB传输4种模式

    (1) 控制传输模式,控制传输用于在外设初次连接时对器件进行配置;对外设的状态进行实时检测;对控制命令的传送等;也可以在器件配置完成后被客户软件用于其它目的。 Endpoint 0信道只可以采用控制传送的方式。 银行交互设备,密码键盘 (2) 块传送模式(bulk),块传送用于进行批量的、非实时的数据传输。 视屏会议 (4) 中断传输模式,对于那些小批量的、点式、非连续的数据传输应用的场合,如用于人机交互的鼠标、键盘、游戏杆等,中断传输的方式是最适合的。 ,但是,我们大部分情况下还需要对usb串口进行一些配置,比如波特率,停止位,数据控制等,不然两边配置不同,收到的数据会乱码。 3.数据传输 到这里,我们已经可以与usb外设进行数据传输了,首先来看怎么向usb设备发送数据。

    2.5K10编辑于 2024-12-16
  • 来自专栏快乐阿超

    安卓usb控制scrcpy

    ——葛洪 分享一下开源项目scrcpy GitHub - Genymobile/scrcpy: Display and control your Android device 它可以用电脑显示和控制您的 Android 设备 通过 USB 或 TCP/IP 连接的 Android 设备(视频和音频),并允许使用计算机的键盘和鼠标控制设备。 Already downloaded: /Users/achao/Library/Caches/Homebrew/downloads/91f7e7bb794aef87b7e09c4233c600cf8107e4c7a3ccec635615b23f5cac64e1 scrcpy 2.3.1 <https://github.com/Genymobile/scrcpy> ERROR: Multiple (2) ADB devices: ERROR: --> (usb device RMX3350 ERROR: Select a device via -s (--serial), -d (--select-usb) or -e (--select-tcpip) ERROR

    1K10编辑于 2024-02-11
  • 来自专栏Android 开发者

    别让 USB 传输速度影响 Android 开发效率

    为什么 USB 传输速度很重要 无论 "Delta Push" 是否被启用,总会有数据传输到设备上。 如果用的是模拟器,数据会通过 TCP/IP 进行传输,但是如果用的是真机则会用到 USBUSB 传输速度越快,等待时间越短,程序迭代速度也就越快。 好消息是 USB 传输速度现在越来越快了: 1996 年时,USB 仅能够提供 12 Mb/s 的传输速度,到了 2019 年 8 月发布 USB 4.0 版本的时候,已经可以达到几个 Gb/s 的速度了 但坏消息是,USB 3.0 的设备常常以 USB 2.0 的速度在传输数据。 4 根线缆。

    1.9K20发布于 2020-04-30
  • 来自专栏CSDN搜“看,未来”

    TCP:传输控制协议

    TCP还能提供流量控制。 TCP连接的每一方都有固定大小的缓冲空间。 TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。 收方可以分 4次接收这80个字节,每次接收 20字节。一端将字节流放到 TCP连接上,同样的字节流将出现在TCP连接的另一端。 另外,TCP对字节流的内容不作任何解释。 TCP不知道传输的数据字节流是二进制数据,还是ASCII字符、EBCDIC字符或者其他类型数据。对字节流的解释由 TCP连接双方的应用层解释。 这意味数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。 T C P的流量控制由连接的每一端通过声明的窗口大小来提供(滑动窗口技术)。 TCP将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据进行确认,对失序的数据重新排序,丢弃重复数据; TCP提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。

    1.2K20发布于 2020-08-26
  • 来自专栏小脑斧科技博客

    传输控制协议 -- TCP

    TCP 的传输过程与可靠性 1. TCP 接收端接收到数据后,会先确认检验和,如果有差错则丢弃报文段并期待发送端的重发,否则在几毫秒的延迟后会发送一个确认 4. TCP 的每一端都有固定大小的缓冲空间,用于提供流量控制,TCP 接收端只允许另一端发送接收端缓冲区所能容纳的数据,以防止较慢主机的缓冲区溢出 3. 用来通知另一端具有某种方式的紧急数据已经被放置在数据流中,16bit 的紧急指针用来方式一个偏移量,通过该偏移量与 TCP 首部中的序号字节相加可以得出紧急数据的最后一个字节的序号,这样接收端不需要考虑数据流的处理而优先处理紧急报文段 4.

    69220编辑于 2022-06-27
  • 来自专栏开源鸿蒙OpenHarmony

    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例

    本文介绍OpenHarmony开源鸿蒙系统的USB控制传输功能实现及相关代码示例,演示设备:触觉智能RK3576开发板Purple Pi OH2演示,相关参数可以查看我的社区主页。 OpenHarmony的USB通信介绍实现OpenHarmony开源鸿蒙设备与外部USB设备之间的连接管理、数据收发及设备信息交互,支持对USB 设备的枚举、配置及数据传输控制,适用于各类USB接口进行设备通信的场景 USB控制传输主要用于主机(Host)和设备(Device)进行设备状态的获取和设置,进行设备属性状态的的控制。根据设备支持的端点类型支持控制传输读和写。 hasRight) { this.log = 'USB设备权限获取失败'; return; }      /数据传输模块实现与 USB 设备的双向数据传输,支持批量传输 主机→USB 设备进行数据发送,适用于向 USB 设备发送配置命令、控制参数等场景,需选择 OUT方向端点(端点地址 direction=0),流程包括:解析用户输入的16进制数据、建立设备通信管道、声明目标接口

    63210编辑于 2025-09-18
  • 来自专栏物流IT圈

    科普:USB 4全面解读

    USB4 只采用USB Type-C 连接器,USB4 讯号采双通道传输;而过去的连接器如USB Type-A 或Micro-B,仅支援单通道传输,无法支援USB4。 2. USB 传输速度最快支援40G (20Gbps x2),并可同时传送DisplayPort 影音。旨在将多种协议组合到单个物理接口,可以动态共享USB4 架构的整体速度和性能。 3. 例如USB4 Host在传输USB3 资料(如图二),由内部USB3 Host 透过USB3 Adapter 进行协定封装成USB4 Tunneled Packet。 Transport Layer:定义封包格式、路径、流量控制与时序控制,并产生link management Packets 以提供时间同步封包、流量控制封包等。 图六 USB4支援的传输速率 USB4 支援USB4 Gen2 的20Gbps 及USB4 Gen3 的40Gbps 速度,是不是宣告支援USB4 就一定要支援这两个速度?

    1.7K10发布于 2020-03-12
  • 来自专栏韦东山嵌入式

    4章_USB 设备编程

    答 1:是 USB 控制器,是 USB 控制器内嵌的 root hub 问 2. 既然还没有"驱动程序",为何能知道是"android phone"? 控制传输:由建立事务、批量事务组成,所有的 USB 设备都必须支持控制传输, 用于" 识别/枚举" 暂时记住这个关系: BIT 组成域(Field) 域组成包(Packet) 包组成事务(Transaction 《圈圈教你玩 USB》中有详细的示例: 4.中断传输 中断传输用中断事务来实现,用于传输小量的、周期性的数据,数据的正确性和时效 都有保证。 控制传输 在使用批量传输时, 使用 IN 令牌包或 OUT 令牌包表示数据传输方向。 控制传输的令牌包永远是 SETUP,怎么分辨是读数据, 还是写数据? USB 设备状态切换图 4.5.2 标准设备请求 1.SETUP事务的数据格式 Host 使用控制传输来识别设备、设置设备地址、启动设备的某些特性, 对于控制传输, 它首先发出"setup 事务",如下

    1.2K10编辑于 2024-06-29
  • 来自专栏linux驱动个人学习

    USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析(七)

    执行流程如下: 判断输入的USB控制器名称,若输出为空或者是none,则解除usb_gadget_driver和底层USB控制器的绑定。 反之调用usb_udc_attach_driver函数进行匹配USB设备控制器。 遍历udc_list链表,查找fe800000.dwc3 USB设备控制器。 调用UDC驱动接口usb_gadget_udc_start使能USB设备控制器。 调用UDC驱动接口usb_udc_connect_control连接USB主机控制器,这样USB主机就能识别并枚举USB设备。 4.总结 本节以uac2为例,介绍了USB gadget configfs用户空间的使用方法及内核中的工作流程。

    13K20编辑于 2023-01-01
  • 来自专栏PD sink受电端芯片

    手机同时充电+OTG传输USB2.0数据方案

    OTG是一种新的USB传输技术,是On-The-Go的缩写,是一项新兴技术,主要应用于不同的设备或移动设备间的联接,进行数据交换。 图片手机上的OTG功能的作用1、作为电源给另一台手机或平板供电需要设备:一根OTG线+一根USB数据线手机A插OTG线,通过USB数据线将另一端与手机或平板B相连,就可以用A给B充电了。 Type-C 标准中的 Bridge 设备而开发的 USB-C DRP 接口 USB PD 通信芯片。 具备切换 Data Role 功能,实现边充电边听歌需求,并针对各大手机品牌的 USB-C 兼容性进行了 特别优化,适合于手机音频,USB2.0数据传输转接器应用场景。 图片从下图我们可以看到,此PD芯片的外部元器件非常简洁,仅需要2颗MOS控制充放电管理,就能实现边充电边OTG的功能,D+D-直接连到所需的功能处IC即可。图片

    4K21编辑于 2023-07-07
  • 来自专栏全栈程序员必看

    虚拟机usb控制器_显示器上的USB接口

    关于USB显示器跟HDMI之类的显示器有本质区别,我们需要实现的有两个: 在USB上插入一个显示器,怎么让windows系统能识别到显示器 如何让USB显示器显示对应的屏幕内容。 1 WDDM驱动向Dxgkrnl发送DeviceIOControl,请求入口函数地址 2 Dxgkrnl返回入口函数地址给WDDM驱动 3 驱动实现各个miniport回调函数,复制给结构体 4 步骤 操作 备注 1 WDDM驱动向Dxgkrnl发送DeviceIOControl,请求入口函数地址 2-3-4 Dxgkrnl返回入口函数地址DpiInitialize给WDDM驱动,被DisplayProxy 增加过滤驱动后,整个WDDM显示框架变成了如图4所示。 图4 wddm过滤驱动框架 https://live.csdn.net/v/embed/231441 windows7下的虚拟显示器效果 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    2.1K10编辑于 2022-09-24
  • 来自专栏linux驱动个人学习

    USB总线-RK3399 USB3.0控制器特性介绍(二)

    1.RK3399 USB 下图是RK3399 SOC的框图。RK3399包含了2个USB2.0 Host控制器;两个USB3.0 OTG控制器,同时兼容USB2.0。 ERDY和burst 基于流(Stream-based)的批量端点可以自动控制启动数据移动 在数据缓冲区中使用等时数据的等时端点 灵活的描述符,具有丰富的功能集,以支持缓冲区中断调节,多次传输,同步,控制和分散的缓冲支持 (4USB特定类设备特性 UASP(USB Attached SCSI Protocol)应用程序的流支持 分散数据包聚合以支持虚拟USB以太网 非中断调度多以太网数据包 每端点的FIFO缓冲区分配可变 过程中,设备资源被重新配置以满足配置或alternate设置的要求 (4USB3.0 xHCI控制器特性 最多支持64个设备 拥有一个interrupter 拥有1个USB2.0 port和1个Super-Speed 控制器内部的USB2.0和USB3.0的PHY和MAC是独立的,各自使用自己的硬件。

    3.5K31编辑于 2022-12-09
  • 来自专栏linux驱动个人学习

    USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)

    1.概述 如下图所示,USB控制器可以呈现出两种不同的状态。USB控制器作为Host时,称为USB主机控制器,使用USB主机控制器驱动。 USB控制器作为Device时,称为USB设备控制器,使用UDC(usb device controller)驱动。本节只分析USB控制器作为Device时的驱动框架。 USB设备控制器通过USB线缆连接USB主机控制器,负责USB数据的发送和接收。 *fi) // 回调free_func销毁usb_function void usb_put_function(struct usb_function *f) 4.Composite层 USB Composite )(struct usb_gadget *, const struct usb_ctrlrequest *); // 当主机断开时,所有传输停止后调用,可能会在中断中调用,不可睡眠 void

    12.8K20编辑于 2022-12-13
  • 来自专栏石开之旅

    硬件笔记(7)----USB学习笔记4

    数据包 ID(PID) — (8 位:4 个类型位和 4 个错误检测位)。 USB 规范支持多达 32 个端点。虽然 4 位地址最多仅支持 16个端点,但我们具有一个 IN PID 和一个 OUT PID,它们各自使用了端点地址 1 到 16,因此共有 32 个端点。 (仅 HS) PING:接收到 NYET 握手数据包后,检查批量传输 OUT 或控制写入的状态。(仅 HS) ? 9.2数据传输类型 USB 数据传输是指主机和设备之间的数据传输方式。 控制数据传输框图 建立阶段(或建立数据包)仅用于一个控制数据传输。需要将大小为 8 字节的数据包(包含 USB 请求)从主机发送到设备。设备必须始终确认建立阶段,不能否认一个建立阶段。 ? USB 通信一共有三种控制数据传输类型:控制写入、控制读取和控制无数据。下图分别显示了这些数据传输的示例。 ? 控制无数据传输 ? 控制写入数据传输示例 ? 控制读取数据传输示例

    1K10发布于 2019-07-02
  • 来自专栏后端码事

    传输控制协议--- Transmission Control Protocol (TCP)

    Transmission Control Protocol (TCP) 用于网络通信的传输控制和网络协议套件,包括很多协议,其中最主要的是TCP和IP协议。 网络自适应:TCP会根据网络状况,动态的进行传输控制,以在不影响网络的情况下,达到最大吞吐。 流控制:TCP负责管理数据缓冲区,协调处理网络冲突以避免缓冲区溢出。 头信息长度:4字节的头信息长度 标志位:6位标志位用以标识传输数据的类型及状态,部分标志位可以同时使用 校验数据 流控制:流控制是通过数据序号进行控制的,发送序号及确认序号。 客户端接收到SYN信息后,发送ACK数据包,包含确认序号(k+1) 随机值每4s递增1,以避免数据包序号混淆。 连接关闭 有序的关闭一个TCP连接需要4此数据交换,主动关闭的一端发送FIN关闭数据包,接收端接收到FIN数据包会通知应用程序关闭此次连接。

    93330发布于 2020-09-11
  • 来自专栏cwl_Java

    速读原著-TCPIP(TCP:传输控制协议)

    第17章 TCP:传输控制协议 17.1 引言 本章将介绍T C P为应用层提供的服务,以及 T C P首部中的各个字段。随后的几章我们在了解T C P的工作过程中将对这些字段作详细介绍。 第1 8章描述如何建立和终止一个T C P连接,第1 9和第2 0章将了解正常的数据传输过程,包括交互使用(远程登录)和批量数据传送(文件传输)。 最后,第2 4章概述T C P新的特性以及T C P的性能。

    45520发布于 2020-03-11
  • 来自专栏linux驱动个人学习

    USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)

    XferNRdyEn)Bit 9: XferInProgress Enable (XferInProgEn)Bit 8: XferComplete Enable (XferCmplEn) 7:5 Reserved 4: 检查各种传输类型的参数是否设置正确。 对于控制传输直接返回0,控制传输使用端点0,无法被匹配 对于等时传输,若使用全速模式则最大包长为1023字节。 为了解决STALL,主机会发送另一个设置信息包,开始新的控制传输USB 2.0规范称这种失败类型为“协议失败”(protocol stall)。 功能失败的控制端点必须正常响应其他请求,以监视和控制失败状态。端点”能够响应请求“是指能够通信且因此不能被设为设备。等时传输不使用STALL。超高速控制端点不使用功能失败。 清除ep0_out端点pending_list上所有USB请求。 设置ep0_ou端点控制传输的阶段为EP0_SETUP_PHASE,准备被主机枚举。

    12K20编辑于 2022-12-31
  • 来自专栏全栈程序员必看

    android 4怎么打开usb调试?「建议收藏」

    手机连接电脑,刷机,等都需要打开手机USB调试模式,你才能进行操作的。所以买了手机建议都要打开这个USB调试,手机锁屏密码忘记也需要打开这个。这个比较重要。 然后返回到设置页面 返回到 设置 页面之后,点击《 其他 》 进入以下页面,选择《开发者选项》进入下一步操作 点击《开发者选项》之后,会进入图例页面,就会看到《USB

    1.4K40编辑于 2022-10-02
  • 来自专栏linux驱动个人学习

    USB总线-Linux内核USB3.0控制器初始化代码分析(三)

    只有两个模块都初始化完毕,USB3.0控制器才能正常工作。本节只分析USB驱动早期初始化部分。 2.设备树 下面是USB3.0控制器的设备树节点。 // 端点0控制传输的trb // 使用kzalloc函数分配的, 不是dma_alloc_coherent函数 // Get Status和Set Sel等标准请求需要用到该预分配的 ]; // USB主机控制器资源 // 事件buffer,控制器会将传输的事件信息保存到该缓冲区中,由软件统一处理 struct dwc3_event_buffer 控制器事件传输到dwc3_event_buffer后由CPU处理 (4)核心初始化和USB模式初始化,后面详细分析 (5)初始化调试文件,具体如下图所示,用户可以在用户空间获取USB控制器信息和控制USB 根据dr_mode,选择是否复位USB控制器 (3)从USB控制器寄存器缓存中获取USB控制器端点数量,此处端点表示的是一组资源 (4)建立scratch_buffers,采用流式DMA映射,RK3399

    8K40编辑于 2022-12-09
  • 来自专栏大前端(横向跨端 & 纵向全栈)

    计算机网络之传输层-传输控制协议(TCP)

    TCP报文段结构 TCP即传输控制协议(Transmission Control Protocol ),它是Internet传输层协议,提供面向连接、 可靠、 有序、 字节流 传输服务。 SYN=1:建立连接请求控制段 。 seq=x:表示传输的报文段的第1个数据字节的序列号是x,此序列号代表整个报文段的序号,(sequence number,序号的意思)。 seq=v+1:表示自己传输的第一个数据字节的序号是 v+1。 服务器状态由CLOSE_WAIT进入LAST_ACK(最后确认状态)。 4. (4). 收到一个报文段,部分或完全填充接收数据间隔。 ? 4. 查错检测,利用差错编码实现数据包传输过程中的比特查错检测(甚至纠正)。 5. 重传,发送发重新发送接收方没有正确接收的数据。 ? TCP流量控制 流量控制:协调发送方与接收方的数据发送与接收速度。 在通信过程中,接收方设置报文段的接收窗口字段来将窗口大小通知给发送方。 ? 5.

    6.9K14发布于 2020-11-26
领券