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