打印
[技术问答]

nuc980使用usb gadget hid功能和pc电脑通信问题

[复制链接]
784|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2024-12-13 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
nuc980使用usb0作为从机,在linux内核驱动中开启gadget hid功能,从机需要和pc上位机进行大数据量(1k)通信时,从机每发一包(一个packet 8字节),必须延时50ms以上,不然上位机会丢失部分信息,用usb bus hound抓包工具查看,如果监控了从机设备号usb input device数据是没问题,但是Hid-compliant device数据就丢失了。我自己尝试改了linux内核里面hid.c文件
static struct usb_composite_driver hidg_driver = {
        .name                = "g_hid",
        .dev                = &device_desc,
        .strings        = dev_strings,
        .max_speed        = USB_SPEED_FULL,//by zl
        .bind                = hid_bind,
        .unbind                = hid_unbind,
};

把高速改成全速,但是好像没起到作用,设备信息里还是高速。请问,从机一次性需要把许多数据发给上位机,每发一个packet必须长时间延时,这是什么原因导致的。

使用特权

评论回复
沙发
huangcunxiake| | 2024-12-13 14:43 | 只看该作者
有没有调试设备,看看那个延时是什么导致的在哪儿停下来了

使用特权

评论回复
板凳
riplay| | 2024-12-13 16:46 | 只看该作者
用usb bus hound抓包是,数据是否正确呢?如果正确应该是主机端的应用接收数据有遗漏。

使用特权

评论回复
地板
白马过平川| | 2025-2-13 16:48 | 只看该作者
使用USB抓包工具(如USB Bus Hound)分析PC端接收到的数据,确认问题是否出在PC

使用特权

评论回复
5
失物招領| | 2025-2-14 01:31 | 只看该作者
如果你的设备配置为高速模式(High-Speed, HS),理论上它应该能够以更高的速率传输数据。然而,如果端点(Endpoint)配置不当或缓冲区大小不足,可能会导致数据丢失

使用特权

评论回复
6
她已醉| | 2025-2-14 02:38 | 只看该作者
你已经尝试将速度改为全速(Full-Speed, FS),但设备仍然显示为高速。这可能是因为设备描述符或其他配置信息未正确更新,或者PC端的USB主机控制器仍然以高速模式识别设备

使用特权

评论回复
7
将爱藏于深海| | 2025-2-14 03:21 | 只看该作者
检查设备描述符中的bMaxPacketSize0和各个接口的端点描述符中的wMaxPacketSize,确保它们与所选速度相匹配

使用特权

评论回复
8
温室雏菊| | 2025-2-14 04:29 | 只看该作者
HID设备通过报告(Report)与主机通信。报告描述符定义了报告的结构和内容

使用特权

评论回复
9
春日负喧| | 2025-2-14 05:27 | 只看该作者
如果你的HID报告描述符配置不当,或者报告大小超过了端点的处理能力,可能会导致数据丢失

使用特权

评论回复
10
故意相遇| | 2025-2-14 06:28 | 只看该作者
检查报告描述符,确保它适合你的数据传输需求,并且没有超出端点的限制

使用特权

评论回复
11
捧一束彼岸花| | 2025-2-14 07:23 | 只看该作者
USB HID通常用于低延迟、小数据包的应用,如键盘、鼠标等。对于大数据量传输,HID可能不是最佳选择

使用特权

评论回复
12
西洲| | 2025-2-14 08:29 | 只看该作者
考虑使用USB大容量存储(Mass Storage)或自定义类设备(如CDC ACM用于通信),这些类通常更适合大数据传输

使用特权

评论回复
13
风凉| | 2025-2-14 09:41 | 只看该作者
PC端的USB主机堆栈和HID类驱动程序负责处理来自设备的数据。如果它们存在缺陷或配置不当,可能会导致数据丢失

使用特权

评论回复
14
白马过平川| | 2025-2-14 10:51 | 只看该作者
使用USB抓包工具(如USB Bus Hound)分析PC端接收到的数据,确认问题是否出在PC

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

406

主题

2483

帖子

3

粉丝