|
50黑币
本人在开发时遇到问题,求助使用过CH375或者了解USB通信协议的前辈们指点迷津,以下是个开发过程中的介绍:
开发经历:
本人被USB通信设备困扰许久,之前是用ESP32-S3作为主控芯片,USB设备属于USB2.0标准下的供应商特定类,但是一直打不通USB通信协议进行主机与设备的收发数据。后来在ESP32与USB设备之间加了一个CH375芯片。
USB设备:
通过获取描述符得知我的USB设备除了端点0,就只有端点2,且端点2只进行IN事务,需要使用批量传输。下图是我用Bus Hound软件进行捕获到的数据,请看最后三行,根据此流程个人推断:USB主机使用端点0进行控制传输,在建立阶段首先发送对应bmRequsetType、bRequset、wValue、wIndex、wLength的8字节数据:40 FA 00 00 00 00 0D 00(此8个字节为USB设备厂商定义的固定数据);之后在数据阶段发送厂商规定的协议控制USB设备70 13 00 00 00 00 00 00 00 00 73 f6 0A;之后是状态阶段。最后USB主机对端点2进行批量传输进行IN事务,从端点2获取到USB设备返回的数据:70 13 00 00 00 00 00 00 00 00 61 e4 0A。通信过程完成。
遇到问题:
1.不知本人对此图片的分析是否正确。
2.利用我分析到的逻辑使用CH375进行控制USB设备时,未获取到USB设备返回的数据(如果需要可以给大家看我整理的使用CH375的流程)
3.利用我分析到的逻辑使用ESP32-S3进行控制USB设备时,会导致USB设备打不开(如果需要可以给大家看代码片段)
再次感谢!很需要得到你们帮助,不甚感激!
|
|