由于我们计划为您的下一个设备使用 MTP(媒体传输协议),因此我们评估使用 MTP 作为当前发布设备中当前(不稳定)USB 驱动程序的替代品。
此设备的限制是,其处理器 (Strong Arm) 最多仅支持 3 个端点:
“串行端口 0 是一个通用串行总线设备控制器 (UDC),它支持三个端点,并且可以以 12 Mbps 的波特率运行半双工(仅从属,而不是主机或集线器控制器)。”
但根据规范,MTP 至少需要 4 个端点(来自 PTP 规范):
“设备应包含至少四个端点:默认、数据输入、数据输出和中断端点。”
现在的问题是:我们可以跳过设备上的中断端点吗?我知道它违反了规范 - 但如果我们这样做会发生什么?
从我们目前的评估软件中,我可以看到以下场景:
- “可用空间”未更新 - 用户将看到有 100Mb 的可用内存,但放置 1Mb 文件会出现错误“内存不足”
- 非主机驱动的操作在主机上不可见(因此当在设备上删除、创建或移动文件时,连接的主机不知道)
如果我们可以忍受它,是否建议以这种方式实现它?
更新:该死的......当我上次测试它时,我刚刚删除了中断EP数据传输的代码。现在我还删除了端点定义(我不再创建端点),从这一点开始,无法再建立 MTP 连接:(
似乎 Windows 驱动程序 (wpd) 需要中断端点——即使它没有被使用。厄运...
有没有人知道,是否以及如何让 MTP 与 3 个端点一起工作?