安全認(rèn)證系統(tǒng)中嵌入U(xiǎn)SB接口技術(shù)
列舉過程由控制傳輸來實(shí)現(xiàn)。控制傳輸有三種類型:
控制讀 SETUP-IN-IN-IN……OUT
控制寫 SETUP-OUT-OUT-OUT……IN
無數(shù)據(jù)相 SETUP-IN
通信開始時(shí),PC首先發(fā)SETUP包,SETUP包是8個(gè)字節(jié)的命令包。當(dāng)USB接收完8個(gè)字節(jié)的命令,即向MCU發(fā)出中斷請求,MCU讀取這8個(gè)字節(jié),對其進(jìn)行分析。當(dāng)USB設(shè)備給PC發(fā)數(shù)據(jù)時(shí),執(zhí)行控制讀操作;當(dāng)PC要給USB設(shè)備輸出數(shù)據(jù)時(shí),執(zhí)行控制寫操作。輸入或輸出數(shù)據(jù)時(shí),數(shù)據(jù)包的最大傳送字節(jié)為8字節(jié)。
執(zhí)行控制寫操作時(shí),當(dāng)USB將接收到的數(shù)據(jù)包寫到了FIFO時(shí),OUT_PKT_RDY標(biāo)志位置1。MCU查詢標(biāo)志位,讀取數(shù)據(jù)。當(dāng)MCU讀空FIFO數(shù)據(jù),即將OUT_PKT_RDY標(biāo)志位清0;當(dāng)MCU讀完了最后一個(gè)數(shù)據(jù)包時(shí),將DATA_END標(biāo)志位置1, 告知USB控制寫操作完成。
執(zhí)行控制讀操作時(shí),當(dāng)MCU寫了一個(gè)數(shù)據(jù)包到FIFO時(shí),將IN_PKT_RDY標(biāo)志位置1,USB成功發(fā)送完這個(gè)數(shù)據(jù)包時(shí)將IN_PKT_RDY標(biāo)志位清0,MCU查詢此標(biāo)志位,裝入下一個(gè)數(shù)據(jù)包。當(dāng)MCU裝完最后一個(gè)數(shù)據(jù)包,即將DATA_END標(biāo)志位置1,告知USB控制讀操作完成。
無數(shù)據(jù)相接收到SETUP包即告控制傳輸結(jié)束,MCU讀完SETUP數(shù)據(jù)即將OUT_PKT_RDY標(biāo)志位清0,并將DATA_END標(biāo)志位置1。其列舉過程的軟件實(shí)現(xiàn)流程如圖4所示。
該方案已在PC上通過驗(yàn)證。具有USB接口的安全認(rèn)證系統(tǒng),通信速度快、便于攜帶、使用方便,插入PC的USB接口即可。
評論