ISPl362在基于FPGA的紅外成像系統(tǒng)中的應(yīng)用
2 USB固件結(jié)構(gòu)設(shè)計(jì)
USB固件結(jié)構(gòu)設(shè)計(jì)包括枚舉過(guò)程和數(shù)據(jù)傳輸過(guò)程。數(shù)據(jù)傳輸過(guò)程與枚舉過(guò)程中的in中斷的處理方法類似。因此這里主要介紹枚舉過(guò)程的固件編寫(xiě)。
枚舉過(guò)程的流程圖如圖2所示。
枚舉過(guò)程就是主機(jī)通過(guò)向設(shè)備發(fā)送一系列請(qǐng)求來(lái)識(shí)別設(shè)備的過(guò)程。USB一共定義了11種標(biāo)準(zhǔn)USB請(qǐng)求,其中有些請(qǐng)求是必須的。例如,主機(jī)必須通過(guò)Get Descriptor請(qǐng)求來(lái)獲取設(shè)備的設(shè)備描述符、接口描述符和端點(diǎn)描述符等信息,才能識(shí)別設(shè)備;必須通過(guò)Set Address請(qǐng)求為設(shè)備分配惟一的非零地址,以便于主機(jī)識(shí)別設(shè)備并與設(shè)備進(jìn)行數(shù)據(jù)傳輸;必須通過(guò)SetConfiguration請(qǐng)求為設(shè)備分配非零的配置值等。USB請(qǐng)求只能使用控制管道來(lái)進(jìn)行傳輸。主機(jī)在沒(méi)有識(shí)別連上的是何種設(shè)備之前,會(huì)為未知設(shè)備分配一個(gè)默認(rèn)地址O,主機(jī)通過(guò)0地址與設(shè)備通信,直到主機(jī)確定真正有設(shè)備連接了之后,就會(huì)為該設(shè)備分配一個(gè)惟一的非零地址。在此之后,主機(jī)可通過(guò)這個(gè)非零地址跟設(shè)備通信,包括獲取該設(shè)備的所有配置信息、接口信息以及完成最后的數(shù)據(jù)傳輸?shù)取?br />2.1 芯片初始化
芯片的初始化主要包括工作模式、速度的選擇以及寄存器的配置等操作。工作模式的選擇可通過(guò)設(shè)置ISPl362的第62引腳A1為高電平來(lái)實(shí)現(xiàn)。這里實(shí)現(xiàn)的是全速的數(shù)據(jù)傳輸。下面主要介紹寄存器的配置。
評(píng)論