安全認(rèn)證系統(tǒng)中嵌入U(xiǎn)SB接口技術(shù)
3 硬件設(shè)計(jì)
將USB接口嵌入到安全認(rèn)證系統(tǒng)中,從圖1和圖2可以看出,二者的時(shí)序不匹配,不能直接連接,因此在硬件上要進(jìn)行時(shí)序匹配設(shè)計(jì),其硬件原理如圖3所示。首先將地址和片選信號(hào)展寬一個(gè)周期。對(duì)于寫(xiě)時(shí)序,將寫(xiě)信號(hào)往后延遲一個(gè)時(shí)鐘周期,即能滿(mǎn)足寫(xiě)時(shí)序要求;對(duì)于讀時(shí)序,因?yàn)樽x信號(hào)有效時(shí),數(shù)據(jù)必須已出現(xiàn)在數(shù)據(jù)總線(xiàn)上。從圖1(a)可看出,FIFO的數(shù)據(jù)在地址有效一個(gè)時(shí)鐘周期后才出現(xiàn)在數(shù)據(jù)總線(xiàn)上,也就是說(shuō),微處理器必須先給出一個(gè)周期的地址,然后讀信號(hào)有效,才能得到正確的結(jié)果。為解決這個(gè)問(wèn)題,采取了讀FIFO時(shí),先寫(xiě)一次FIFO,緊接著讀FIFO。但此時(shí)要將寫(xiě)信號(hào)屏蔽掉,以免影響FIFO的狀態(tài)。因此設(shè)立一個(gè)讀控制端口,讀FIFO時(shí),將其置1,其余時(shí)刻清零。假如MCU要從FIFO讀取8個(gè)字節(jié),則程序如下:
TMOV Z, 01H //讀控制端口98置1
ZOUT 98H
MOV I, 7
TMOV MD, bmRequestType //讀FIFO的數(shù)據(jù)到bmRequestType[...]
LX1: ZOUT FIFO0
ZIN FIFO0
MOV T, Z
MOV T, MD
MOV I, T
TMOV [I], T
MOV T, MD
INC
MOV MD, T
NEXT LX1
TMOV Z, 00H //數(shù)據(jù)讀完,98端口清0;
ZOUT 98H
4 軟件設(shè)計(jì)
USB系統(tǒng)通過(guò)一個(gè)列舉過(guò)程來(lái)識(shí)別和配置一個(gè)新接入的USB設(shè)備,這個(gè)過(guò)程分5步來(lái)完成:
(1)用默認(rèn)0地址取得設(shè)備描述;
(2)設(shè)置設(shè)備地址;
(3)用新地址取得設(shè)備描述;
(4)取得配置描述;
(5)設(shè)置配置。
評(píng)論