安全認證系統中嵌入USB接口技術
列舉過程由控制傳輸來實現。控制傳輸有三種類型:
控制讀 SETUP-IN-IN-IN……OUT
控制寫 SETUP-OUT-OUT-OUT……IN
無數據相 SETUP-IN
通信開始時,PC首先發SETUP包,SETUP包是8個字節的命令包。當USB接收完8個字節的命令,即向MCU發出中斷請求,MCU讀取這8個字節,對其進行分析。當USB設備給PC發數據時,執行控制讀操作;當PC要給USB設備輸出數據時,執行控制寫操作。輸入或輸出數據時,數據包的最大傳送字節為8字節。
執行控制寫操作時,當USB將接收到的數據包寫到了FIFO時,OUT_PKT_RDY標志位置1。MCU查詢標志位,讀取數據。當MCU讀空FIFO數據,即將OUT_PKT_RDY標志位清0;當MCU讀完了最后一個數據包時,將DATA_END標志位置1, 告知USB控制寫操作完成。
執行控制讀操作時,當MCU寫了一個數據包到FIFO時,將IN_PKT_RDY標志位置1,USB成功發送完這個數據包時將IN_PKT_RDY標志位清0,MCU查詢此標志位,裝入下一個數據包。當MCU裝完最后一個數據包,即將DATA_END標志位置1,告知USB控制讀操作完成。
無數據相接收到SETUP包即告控制傳輸結束,MCU讀完SETUP數據即將OUT_PKT_RDY標志位清0,并將DATA_END標志位置1。其列舉過程的軟件實現流程如圖4所示。
評論