社区
Linux_Kernel
帖子详情
关于BULK传输的IN令牌轮询的时间间隔问题?
PowerAll777
2010-07-21 08:01:38
我在使用usbserial驱动程序时碰到这样一个问题,我采用一对bulk端点进行bulk数据传输。
我使用usb分析仪卡捕获了host和device之间的数据,发现usb host为了读取usb设备的数据,每1ms之内发送了107个IN令牌包,因为usb device 没有数据可读,因此包都收到的是NAK的应答。
我现在想减少1ms内IN令牌包的个数,我认为太频繁了会影响效率,我应该在那里进行修改?谢谢!
...全文
553
5
打赏
收藏
关于BULK传输的IN令牌轮询的时间间隔问题?
我在使用usbserial驱动程序时碰到这样一个问题,我采用一对bulk端点进行bulk数据传输。 我使用usb分析仪卡捕获了host和device之间的数据,发现usb host为了读取usb设备的数据,每1ms之内发送了107个IN令牌包,因为usb device 没有数据可读,因此包都收到的是NAK的应答。 我现在想减少1ms内IN令牌包的个数,我认为太频繁了会影响效率,我应该在那里进行修改?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
阿莫西林夹馍
2012-05-20
打赏
举报
回复
我也有同样的问题
xiaoQ008
2010-08-19
打赏
举报
回复
设备回nak,说明数据没有准备好,nak多,楼主应该去检查device为什么要这么久才把数据准备好。
PowerAll888
2010-07-29
打赏
举报
回复
如果是usb host硬件发送的,那可以通过寄存器设置这个发送的时间间隔码?
因为我看PC的usb host发送的频率比我的嵌入式usb host发送的频率要低很多。并且在PC上遇到NAK时候,一般PC重发3次,就可以收到ACK了;可是在我的嵌入式平台上遇到NAK时,嵌入式平台要重发2000多次,持续时间500ms,才能收到NAK应答。
我怀疑是嵌入式平台的读取操作发送的频繁(因为没有数据,收到NAK,因此不断发送读取操作)了,导致usb device太忙造成的,因此我想降低遇到NAK时的重发频率,不知道观点是否正确。
seasoblue
2010-07-28
打赏
举报
回复
个人认为这个IN令牌应该是usbHost硬件芯片发出的,不是操作系统发的。可以看一下usbHost的芯片有没有相关设置。
PowerAll777
2010-07-21
打赏
举报
回复
补充一下,我的usb device的块传输端点的属性中 Interval的值都是0。
我在PC机上使用相同的usb device,也使用usb分析仪进行了数据捕捉,发现每1ms usb host发送的IN令牌包才24个,并且pc上传输的速率远远高我使用的嵌入式平台。
USB协议基本知识
USB 基本知识 USB的重要关键概念: 1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的
传输
特性(如输入端点、输出端点、配置端点、批量
传输
端点) 2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的
传输
动作。 3、upstream、...
从零开始学USB(十三、USB的四种
传输
类型(2))
虽然USB定义了数据在总线上
传输
的基本单位是包,但是我们还不能随意地使用包来
传输
数据。必须按照一定的关系把这些不同的包组织成事务(Transaction)才能
传输
数据 一、USB事务 那么事务...
USB
传输
方式
USB 4种
传输
方式介绍
USB基础知识1
USB USB 总线是一种
轮询
式总线。协议规定所有的数据
传输
都必须由主机发起,由主机控制器初始化所有的数据
传输
,各种设备紧紧围绕在主机周围。 USB 通信最基本的形式是通过 USB 设备中一个叫 Endpoint(端点)的东西,而主机和端点之间的数据
传输
是通过 Pipe(管道)。 端点就是通信的发送点或者接收点,要发送数据,只需把数据发送到正确的端点就可以了。 而管道,实际上只是为了让我们能够找到端点,就相当于我们日常说的邮编地址。 ...
USB协议
传输
结构
USB作为数据通信标准,固件可分为枚举配置和类协议部分,枚举配置实现USB主机对设备的枚举和配置,类协议实现设备各自的数据
传输
。USB协议
传输
结构 集合关系:
传输
类型 -> 事务 -> 包 -> 域
传输
类型: 控制、中断、同步、批量 事务: IN、OUT、SETUP 包:
令牌
包、数据包、握手包 域: 同步序列域、包标识域、地址域、端点域、帧号域、数据域、CRC校验域 注: 1、 USB基本
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章