三種返回確認信息
ACK 、NAK 、STALL
【ACK 包】
ACK(確認) 表示 主機和設備已經收到數據,沒有出現錯誤。設備必須在Setup 事務的交換包中返回ACK,設備也必須在OUT事務的交換中返回ACK。
主機在IN事務的交換包中返回ACK。
【NAK 包】(NAK包只能從設備發向主機)
NAK(未確認) 表示設備正忙或沒有數據要返回。如果主機在設備太忙而不能接受數據時發送數據,
則設備在交換包中發出NAK。如果主機在設備沒有數據可發送時向設備請求數據,則設備在數據包
中發出NAK。在上述兩種情況的任何一種下,NAK表示一個暫時的狀況,而主機會在以後重試。
【STALL包】
不支持的控制請求,控制請求失敗或終端失敗
當一個設備接收到一個終端不支持的控制傳輸請求,那麼這個設備返回一個STALL 給主機。設備
在它支持這個請求但是由於某些原因不能採取請求的動作時,也會發出STALL給主機。
STALL 的另一個用途是在終端暫停特性設置的情況下來響應傳輸請求,表示終端根本不能發送
或接收數據。規範稱這個類型的延遲爲功能延遲。
批量和中斷終端必須支持功能延遲。
在接收到一個功能STALL後,主機停止所有與設備懸而未決的請求,並且不會恢復通信直到它
已經發送一個成功的請求來清除設備的暫停特性。
主機絕不會發送STALL