[求助]USB設(shè)備和USB主機(jī)描述符上傳過程

當(dāng)USB線插入PC后,(1)PC首向通過372向單片機(jī)發(fā)送USB總線復(fù)位命令,然后單片機(jī)進(jìn)入中斷處理總線復(fù)位命令后退出中斷。(2)PC向單片機(jī)發(fā)送要求單片機(jī)上傳設(shè)備描述符的命令,單片機(jī)進(jìn)入中斷將描述符的前8個(gè)字節(jié)通過端點(diǎn)0返回給PC。當(dāng)這8個(gè)字節(jié)上傳完了,單片機(jī)會(huì)進(jìn)入U(xiǎn)SB_INT_IN中斷么?(3)PC發(fā)送要求設(shè)置372地址命令,PDF上說(shuō)這個(gè)地址先保存起來(lái),不寫入372,那地址啥時(shí)候?qū)懭?72呢?(4)PC第2次發(fā)送要求上傳設(shè)備描述符的命令,這次與第1次不同之處是本次要上傳全部的設(shè)備描述符。謝謝

2:會(huì)產(chǎn)生中斷的. 3:這個(gè)地址在應(yīng)答完ACK后就可以寫入到CH372中. 4:至于上傳完不完你都不用去關(guān)心,CH372做為設(shè)備,只要主機(jī)來(lái)要數(shù)據(jù)你就傳,你不用關(guān)心是第幾次. 到在線下載CH372EVT.ZIP.找到XFIRM文件夾,里面有參考程序.


那第2步不是只需要傳8個(gè)字節(jié)么?如果進(jìn)入了中斷那還繼續(xù)傳不傳剩下設(shè)備描述符呢? 在第2步執(zhí)行完后,PC這下不是要發(fā)設(shè)置地址命令么?那是先傳剩下的描述符還是執(zhí)行設(shè)置地址命令呢?


2按照你說(shuō)的回產(chǎn)生中斷,那進(jìn)入了中斷是啥也不做就退出么?


在主機(jī)發(fā)送獲取描述符的命令的時(shí)候,設(shè)備就應(yīng)該把描述符準(zhǔn)備好,先上傳8個(gè)字節(jié)數(shù)據(jù),如果主機(jī)取走數(shù)據(jù)之后,CH372會(huì)產(chǎn)生上傳成功中斷,然后在上傳后續(xù)數(shù)據(jù),至于后面主機(jī)取不取數(shù)據(jù),對(duì)設(shè)備沒有影響,只要主機(jī)發(fā)送什么命令,設(shè)備執(zhí)行相應(yīng)的操作就可以了,總有一次 主機(jī)會(huì)獲取一個(gè)完整的描述符的


聽你這么一說(shuō),明白了。 紅桃六說(shuō)的在應(yīng)答完ACK后就可以把PC發(fā)來(lái)的地址寫入到CH372中是啥意思?能不能具體一點(diǎn)點(diǎn)。謝謝 是上傳完0長(zhǎng)度的信息包后么 ?


是的.設(shè)置地址的命令是以設(shè)備上傳0長(zhǎng)度包結(jié)束的.CH372上傳完0長(zhǎng)度包后產(chǎn)生USB_INT_EP0_IN中斷,這時(shí)可以對(duì)CH372發(fā)CMD_SET_USB_ADDR來(lái)設(shè)置新的地址.以便使用新的地址來(lái)和PC通訊.


另外在控制傳輸?shù)臓顟B(tài)階段,發(fā)送0長(zhǎng)度的數(shù)據(jù)包就表示ACK.正確應(yīng)答. 關(guān)于流程建議你看一下我們提供的程序,這樣了解的快一點(diǎn).不知道你用CH372做什么設(shè)備.如果只要和電腦通訊,對(duì)安裝什么驅(qū)動(dòng)不做要求的話,設(shè)置內(nèi)置固件模式就可以了.不需要去做控制傳輸部分了.


端點(diǎn)0的SETUP成功,使用RD_USB_DATA3命令返回設(shè)備描述符的前8個(gè)字節(jié)后,接下來(lái)進(jìn)入U(xiǎn)SB_INT_EP0_IN中斷,進(jìn)入這個(gè)中斷的意思是CH372上傳完了8個(gè)字節(jié)的設(shè)備描述符,然后由CH372通知單片機(jī)進(jìn)行處理還是372把數(shù)據(jù)給了PC,然后PC發(fā)送了包之類的給372,然后372再通知單片機(jī)呢?如果是第1種理解,那PC再發(fā)送SET_ADDERESS命令之前,單片機(jī)不是還得進(jìn)入U(xiǎn)SB_INT_EP0_IN中斷,繼續(xù)返回剩余的描述符么?是不是雖然執(zhí)行了返回剩余描述符的程序,而主機(jī)現(xiàn)在不與理睬。有沒有可能在執(zhí)行USB_INT_EP0_IN中斷的程序過程中,PC發(fā)來(lái)了設(shè)置地址的命令,當(dāng)USB_INT_EP0_IN中斷執(zhí)行完退出中斷再執(zhí)行SET_ADDRESS命令。


所有的通訊都是由主機(jī)發(fā)起,.CH372只是把數(shù)據(jù)寫到緩沖區(qū)了,如果PC把數(shù)據(jù)取走則產(chǎn)生中斷,如果不取的話,即使寫進(jìn)去了,也不會(huì)產(chǎn)生中斷.這個(gè)中斷的意思是上傳完成中斷.上傳沒完成則不產(chǎn)生中斷.所以如果PC不取,則SET_ADDERESS之前不產(chǎn)生中斷了.中斷不會(huì)產(chǎn)生就談不上推出中斷了.


恩 這下是相當(dāng)清楚拉。謝謝你


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频