USB協議規定了4中傳輸類型:批量傳輸,等時傳輸,中斷傳輸和控制傳輸。我們已經有相關文章介紹了批量傳輸,接著下面我們來說說中斷傳輸和等時傳輸。
中斷傳輸是一種保證查詢頻率的傳輸中斷端點在端點描述符中要報告它的查詢間隔,主機會保證在小于這個時間間隔的范圍內安排一次傳輸這里所說的中斷,跟我們硬件上的中斷是不一樣的。它不是由設備主動地發出一個中斷請求,而是由主機保證在不大于某個時間間隔內安排一次傳輸。中斷傳輸通常用在數據量不大,但是對時間要求較嚴格的設備中,例如人機接口設備(HID)中的鼠標、鍵盤、軌跡球等。中斷傳輸也可以用來不斷地檢測某個狀態,當條件滿足后再使用批量傳輸來傳送大量的數據。除了在對端點查詢的策略上不一樣之外中斷傳輸和批量傳輸的結構基本上是一樣的,只是中斷傳輸中沒有PING和NYE兩種包。中斷傳輸使用中斷事務(interrupt-transaction),中斷事務的流程圖如圖1所示
?
等時傳輸(同步傳輸)用在數據量大、對實時性要求高的場合,例如音頻設備、視頻設備等,這些設備對數據延遲很敏感。對于音頻或者視頻設備來說,對數據的100%正確要求不高,少量數據的錯誤還是能夠容忍的,主要的是要保證不能停頓;所以等時傳輸是不保證數據100%正確的。當數據錯誤時,并不進行重傳操作。因此等時傳輸也就沒有應答包。數據是否正確,可以由數據包的CRC校驗來確認。至于出錯的數據如何處理,由軟件來決定。等時傳輸使用等時事務(isochronous-transaction)來傳輸數據。圖2是等時事務的流程圖
?
以上就是中斷傳輸和等時傳輸了,你明白了嗎?