完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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必须长时间延时,这是什么原因导致的。 |
|
相关推荐
1个回答
|
|
有几个可能的原因可以导致这个问题:
1. USB传输带宽限制:USB 2.0的传输速率较低,可能无法满足高速传输大数据量的需求。如果数据包太多,传输速率就会受到限制,导致延迟增加。 2. USB传输协议的设计限制:USB传输协议中可能存在某些设计限制,导致每个数据包之间必须有指定的延时间隔。这可能是为了避免数据包丢失或冲突。 3. USB驱动程序的实现:USB从机设备的驱动程序可能存在某些问题,导致发送数据之间必须有额外的延时。你所提到的改变内核中hid.c文件可能会影响传输延时,但也可能引入其他问题。 解决这个问题的一种方法是尝试使用更高速的USB接口,如USB 3.0或USB 3.1。另外,你还可以检查USB从机设备的驱动程序,确保其实现正确,并符合USB传输协议的要求。如果问题仍然存在,你可能需要咨询相关的硬件和软件厂商,以获取更详细的技术支持。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
852 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
705 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
926 浏览 2 评论
657 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11992 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:43 , Processed in 0.808239 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号