USB 中断传输 在linux 及波形上的表现

总介

linux 参考
波形 参考

参考 https://blog.csdn.net/u011011827/article/details/128050613
整个过程中只有一个urb
linux函数总结 :
	调用 usb_submit_urb , 对应一次 transfer

usb 波形总结:
	每次 usb_submit_urb 对应一次 中断传输Transfer,
	当有数据时 , 包括
		1次IN Transaction
			1 一次 IN令牌包
			2 一次 数据包
			3 一次 握手包(ACK)
	当没有数据时 , 包括
		1次IN Transaction
			1 一次 IN令牌包
			2 一次 握手包(NAK)

linux urb
  • urb 的创建
对于鼠标来说
usb_mouse_probe/usbhid_start
	创建urb
  • urb 的发送
打开/dev 文件时, urb 被 usb_submit_urb 发出到 hcd
hcd 处理之后,将数据呈现到usb线(D- D+)
  • urb 在 usb 总线(D- D+)上的表现
没有数据时,8ms一次的中断传输,每次都一样
参考 https://blog.csdn.net/u011011827/article/details/128194575
一次中断传输如下
NAK 之后 不会产生中断

在这里插入图片描述

左键按下时 ,对应三次中断传输,间隔8ms
参考 https://blog.csdn.net/u011011827/article/details/128194575
三次中断传输如下
每次中断传输 ACK 之后 , 都会产生一次中断

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1ms的保活 和 8ms的中断数据传输
只要插上鼠标,
	就有1ms间隔的 "保活波形",但是没有8ms间隔的中断数据传输
只要插上鼠标并开始读鼠标数据
	就有1ms间隔的 "保活波形",且有8ms间隔的中断数据传输

可见 1ms 是 鼠标插入时决定的
可见 8ms 是 open时决定的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值