为什么USB使用轮询机制而不是中断来检测设备?
如果事件是
,我已在Stack Overflow上阅读然后我们可以使用民意调查。但是在USB的情况下,设备检测不常见,因此中断机制会更好。
感谢您的回复,
Zaheer这样
答案 0 :(得分:5)
USB设备无法以与其他硬件中断相同的方式“中断”其主机控制器。 USB确实支持中断传输方法,但这实际上是通过轮询1来实现的,并且可以实现的延迟大约是1 ms,但最终受到主机性能的限制。
你问了
为什么USB轮询机制代替中断来检测设备?
嗯,原因之一是USB协议在通常的硬件意义上根本不支持中断,最有可能使协议更简单。例如,如果设备想要解释正在进行的传输,则必须通过破坏现有传输或者必须将额外信号线添加到整个系统来以某种方式发出信号。对于大多数类型的设备,在硬件中快速轮询总线的速度非常快。
请注意,检测新设备会导致建议轮询的所有三个点失败。实际上,我们永远不知道何时期望新的USB设备出现在总线上(#1),它很少发生(#3),并且在设备未激活时立即检测到它不是优先级(#2)。为什么浪费时间和精力检查不太可能发生的事件?