请问USB传输过程里,对于设备端的中断处理,当状态位出现挂起或者唤醒的请求包,中断进入bUX_IF_SUSPEND对应的处理。
此时对于USB挂起事件还需要自己去拉电平控延时处理嘛?还是硬件会按照USB协议进行底层处理?对于设备被挂起的情况,又应该如何让主机重新开始进行传输(不是总线复位,是如何resume唤醒)?
热门产品 :
CH390:以太网控制器芯片
请问USB传输过程里,对于设备端的中断处理,当状态位出现挂起或者唤醒的请求包,中断进入bUX_IF_SUSPEND对应的处理。
此时对于USB挂起事件还需要自己去拉电平控延时处理嘛?还是硬件会按照USB协议进行底层处理?对于设备被挂起的情况,又应该如何让主机重新开始进行传输(不是总线复位,是如何resume唤醒)?
suspend主要分两种情况,以电脑做USB HOST为例,电脑睡眠时的suspend和其他。
电脑睡眠之前通常会SET FEATURE,配置远程唤醒,那设备有需要就发送K信号去唤醒电脑就行。
其他时候的suspend多半在枚举阶段伴随总线复位出现,这种通常没啥要处理的,单片机正常清个中断就行。
当然还有些时候,因为一些数据交互上的错误,主机认为设备不太正常,发个suspend,那这是主机真的不想理你了。。。
所以suspend之后,USB设备干不了啥。尤其是在开发USB设备过程中收到了suspend,那应该再往前查查,是不是什么地方传输没做好。