Hugh
USB传输Transfer.xmind
从当前文章继续阅读它所在合集中的前后内容。
本作品集介绍USB基础知识,解析USB通信协议,学习USB工作原理,制作USB设备,编写USB上位机软件。
优先推荐同专题、同标签和同作者内容,补足热门文章。
这段代码是 CH32V 系列微控制器的 USB 设备中断处理函数(USBD_IRQHandler),主要负责处理 USB 传输事件、设置请求和连接状态变化。以下是详细解析:一、函数概述功能:处理 USB 设备端的各种中断事件,包括传输完成、设置包接收和连接状态变化。核心逻辑:读取中断标志寄存器(INT_FG)判断中断类型。根据不同中断类型执行相应处理:传输完成(USBHS_TRANSFER
这段代码实现了 USB DAP 协议的核心功能:请求接收:通过 OUT 端点回调(dap_out_callback)将数据存入环形队列,队列满时暂停接收(USB_RequestIdle),处理完成后恢复。请求处理:主函数(chry_dap_handle)循环处理队列中的请求,生成响应,并协调队列状态。响应发送:通过 IN 端点回调(dap_in_callback)将响应发送回主机,队列
DAP 数据发送过程:1)当 USB 配置完成后,根据协议 DAP 主机发来 IN 事务,表示要从下载器获取数据,若 DAP 没有数据需要发送,则在数据阶段发送 NAK 告诉主机数据还没准备好;2)当 DAP 有数据需要发送时,在主函数中调用 usbd_ep_start_write(DAP_IN_EP, USB_Response[n], USB_RespSize[n]);,作用为:给 USB DM
一、IN 事务(设备 → 主机数据传输)1. 事务流程主机发送 IN 令牌包:通知设备准备发送数据。设备响应:若数据准备好:发送数据包(DATA0/DATA1)。若未准备好:发送 NAK 握手包。若设备错误:发送 STALL 握手包。主机确认:成功接收数据后,向设备发送ACK 握手包,表示 “数据已收到”。若接收数据错误(如 CRC 校验失败),不返回任何握手包,设备需重试。2.
DAP 数据传输过程:1)首先进入枚举阶段,在 USB 配置完成中断(USBD_EVENT_CONFIGURED)中第一次调用 usbd_ep_start_read(DAP_OUT_EP, USB_Request[0], DAP_PACKET_SIZE); 目的为:初始化端点接收缓存;2)当主机 DAP 端点发来数据时,OUT 事务完成时,此时数据已经通过 DMA 放到 USB_Request[0
USB 描述符文件分析该文件定义了一个 USB 设备的描述符数组 cmsisdap_descriptor,用于描述 USB 设备的各种属性和配置。下面将详细分析这个描述符数组。整体结构USB 描述符是一种数据结构,用于向 USB 主机描述设备的特性和功能。描述符通常由多个部分组成,每个部分都有特定的用途。这个描述符数组包含了设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和设备限定符等
On this page