USB
yhl_sophia
这个作者很懒,什么都没留下…
展开
-
USB-HID与上位机通信整理
上位机通过QT开发工具开发界面,调用hidapi库,下载网址https://github.com/signal11/hidapi调用hid_write和hid_read时,通过Bus Hound实际件事发现,单独监视USB输入设备和单独监视HID-Compliant 时得到的结果有细微的不同: 当读取数据,即调用hid_read时,单独监视USB输入设备发现并无数据返回,尽管下位机的I...原创 2018-09-21 17:11:00 · 9119 阅读 · 8 评论 -
STM32 HAL库学习(六)USB识别成Custom HID通信
一、STM32F070 USB基础知识了解:STM32F070 USB采用USB 2.0规范,时钟频率为48MHZ,有一个专用的USB数据存储区,大小为1024字节;支持16个单向传输端点、8个双向传输端点USB外设模块构成图:USB物理接口模块:USB_DM、USB_DP —— 数据正、负信号Analog Transceiver —— 模拟收发器Embedded pu...原创 2018-11-19 18:11:33 · 20608 阅读 · 1 评论 -
STM32 HAL学习(七)USB DFU升级BootLoader
DFU(Device Firmware Upgrade),即固件升级,STM32提供有专门的USB通信协议实现DFU升级BootLoader我用的开发板是STM32F070,支持DFU升级,故用来做做实验,下面对整个过程做个记录。首先是使用STM32Cube MX使能USB外设,并在Class for FS IP中选择Download Firmware Class(DFU),我这里通过判断...原创 2018-11-22 14:46:24 · 8583 阅读 · 6 评论 -
QT 正确使用hidapi库文件实现HID上位机开发
用QT做上位机界面通过USB与下位机通信,采用开源库hidapi实现HID相关功能,结果代码构建成功但运行时总是出现crash错误,而后查找发现是.dll文件没有放置在debug文件夹下,这里做一个简单记录。 总结下用QT调用hidapi库开发HID通信上位机界面需要做的前期工作如下: 1、在QT项目的头文件中将hidapi.h添加进去 2、在.pr...原创 2018-10-05 14:55:01 · 7923 阅读 · 3 评论 -
LPC11U35 USB学习
几个概念数据包——USB传输的基本单元,由5部分组成:同步字段、包标识符、数据字段、CRC和包结尾字段 包类型(由PID区分): 令牌包:OUT IN SOF SETUP 数据包:DATA0 DATA1 握手包:ACK NAK S...原创 2018-08-03 09:54:13 · 1334 阅读 · 0 评论 -
USB深入学习
USB总线是基于分层的星状拓补结构,以Hub(可将一个USB接口扩展为多个接口的装置)为中心连接周围设备。端点是主机最终的传输对象,信息包括端点号、传输类型、方向和数据包长度等。USB采用NRZI(非归零码)对数据进行编码 供电方式分为两种:1、自供电:使用外部电源供应2、总线供电:通过VBUS进行供电 USB总线信号使用差分传输模式,数据线有D+和D-,低速总线上...原创 2018-08-07 11:51:55 · 524 阅读 · 0 评论 -
USB-HID设备协议解读
参考文献:Device Class Definition for Human Interface Devices(HID)用于描述HID功能特征的有三个值:Class SubClass InterfacesSubclass Code Description 0 No Subclass 1 Boot Interface Subclass 2 - 2...原创 2018-08-08 11:37:04 · 12678 阅读 · 0 评论 -
HID 报告描述符
参考文献:HID Usage TablesMain Item共有5个:Input、Output、Feature、Collection和End Collection,其中Input、Output和Feature会产生实际的数据域并附带说明操作特性。Global Item:可对其后的所有主项目产生的数据域作用,直到出现一个新的Global Item为止。Local Item:只对其后的一个...原创 2018-10-25 09:33:35 · 4556 阅读 · 2 评论 -
Bus Hound抓包分析,USB设备识别为HID
Device:17.0 —— 表示ID为17的设备的0号端点Phase:阶段列Cmd.phase.ofs:命令数.阶段数.每个阶段中字节的偏移量 CTL:表示8字节的USB控制传输的Setup包bmRequestType —— 80:数据方向从USB到PC;标准的请求;USB设备接收bRequest —— 06:表示接下来发送的数据时GET_DESCR...原创 2018-08-21 14:45:11 · 6589 阅读 · 0 评论 -
HID用作鼠标的报告描述符解析
const uint8_t HID_ReportDescriptor[] = {USAGE_PAGE(Generic Desktop) //全局项目,用途页用作通用桌面USAGE (Mouse) //局部项目,说明接下来的应用集合用途用作鼠标COLLECTION (Application) ...原创 2018-09-14 14:11:44 · 4526 阅读 · 2 评论 -
USB-HID 中断传输
这段时间学习LPC11Uxx系列的USB-HID,研究官方的USB库文件和HID文件发现对于hiduser里面的GetReport和SetReport只在端点0的响应函数中有调用,采用USB抓包工具 Bus Hound发送指令时也可发现,如果选择HID-Compliant Device,只能发送控制类的指令,而对于实际的数据传输需要另外配置端点进行传输。 USB 的传输事务类型可在端...原创 2018-09-14 14:15:47 · 7851 阅读 · 2 评论 -
STM32 USB 学习
USB硬件接口1、Type —— Type A(普通PC端)、Type B(USB设备的接口)、Type C(属于USB3.0)2、Mini —— Mini A、Mini B(数码相机、移动硬盘等移动设备)3、 Micro —— Micro A、MicroB(手机等移动设备),属于USB2.0USB模式1、USB HOST模式2、USB OTG U...原创 2019-03-11 17:03:58 · 3013 阅读 · 0 评论