|
50黑幣
本人在開發(fā)時(shí)遇到問題,求助使用過CH375或者了解USB通信協(xié)議的前輩們指點(diǎn)迷津,以下是個(gè)開發(fā)過程中的介紹:
開發(fā)經(jīng)歷:
本人被USB通信設(shè)備困擾許久,之前是用ESP32-S3作為主控芯片,USB設(shè)備屬于USB2.0標(biāo)準(zhǔn)下的供應(yīng)商特定類,但是一直打不通USB通信協(xié)議進(jìn)行主機(jī)與設(shè)備的收發(fā)數(shù)據(jù)。后來在ESP32與USB設(shè)備之間加了一個(gè)CH375芯片。
USB設(shè)備:
通過獲取描述符得知我的USB設(shè)備除了端點(diǎn)0,就只有端點(diǎn)2,且端點(diǎn)2只進(jìn)行IN事務(wù),需要使用批量傳輸。下圖是我用Bus Hound軟件進(jìn)行捕獲到的數(shù)據(jù),請(qǐng)看最后三行,根據(jù)此流程個(gè)人推斷:USB主機(jī)使用端點(diǎn)0進(jìn)行控制傳輸,在建立階段首先發(fā)送對(duì)應(yīng)bmRequsetType、bRequset、wValue、wIndex、wLength的8字節(jié)數(shù)據(jù):40 FA 00 00 00 00 0D 00(此8個(gè)字節(jié)為USB設(shè)備廠商定義的固定數(shù)據(jù));之后在數(shù)據(jù)階段發(fā)送廠商規(guī)定的協(xié)議控制USB設(shè)備70 13 00 00 00 00 00 00 00 00 73 f6 0A;之后是狀態(tài)階段。最后USB主機(jī)對(duì)端點(diǎn)2進(jìn)行批量傳輸進(jìn)行IN事務(wù),從端點(diǎn)2獲取到USB設(shè)備返回的數(shù)據(jù):70 13 00 00 00 00 00 00 00 00 61 e4 0A。通信過程完成。
1.jpg (34.06 KB, 下載次數(shù): 57)
下載附件
2023-9-12 13:38 上傳
遇到問題:
1.不知本人對(duì)此圖片的分析是否正確。
2.利用我分析到的邏輯使用CH375進(jìn)行控制USB設(shè)備時(shí),未獲取到USB設(shè)備返回的數(shù)據(jù)(如果需要可以給大家看我整理的使用CH375的流程)
3.利用我分析到的邏輯使用ESP32-S3進(jìn)行控制USB設(shè)備時(shí),會(huì)導(dǎo)致USB設(shè)備打不開(如果需要可以給大家看代碼片段)
再次感謝!很需要得到你們幫助,不甚感激!
|
|