中断对挂起和唤醒的处理的问题

请问USB传输过程里,对于设备端的中断处理,当状态位出现挂起或者唤醒的请求包,中断进入bUX_IF_SUSPEND对应的处理。

此时对于USB挂起事件还需要自己去拉电平控延时处理嘛?还是硬件会按照USB协议进行底层处理?对于设备被挂起的情况,又应该如何让主机重新开始进行传输(不是总线复位,是如何resume唤醒)?

suspend主要分两种情况,以电脑做USB HOST为例,电脑睡眠时的suspend和其他。

电脑睡眠之前通常会SET FEATURE,配置远程唤醒,那设备有需要就发送K信号去唤醒电脑就行。

其他时候的suspend多半在枚举阶段伴随总线复位出现,这种通常没啥要处理的,单片机正常清个中断就行。

当然还有些时候,因为一些数据交互上的错误,主机认为设备不太正常,发个suspend,那这是主机真的不想理你了。。。


所以suspend之后,USB设备干不了啥。尤其是在开发USB设备过程中收到了suspend,那应该再往前查查,是不是什么地方传输没做好。


只有登录才能回复,可以选择微信账号登录