由于我们计划为您的下一个设备使用MTP(媒体传输协议),我们会评估使用MTP替代当前发布设备中的当前(不稳定)USB驱动程序。
该设备的限制是,其处理器(Strong Arm)最多只支持3个EndPoints:
“串行端口0是一个通用串行总线设备控制器(UDC),支持三个端点,可以12 Mbps的波特率运行半双工(仅限从机,而不是主机或集线器控制器)。”
但根据规范,MTP至少需要4个端点(来自PTP规范):
“设备应包含至少四个端点:默认,数据输入,数据输出和中断端点。”
现在的问题是:我们可以跳过设备上的中断端点吗?我知道它违反了规范 - 但如果我们这样做会发生什么?
从我们目前的评估软件中,我可以看到以下情况:
如果我们能够忍受它,那么以这种方式实施它是明智的吗?
UPDATE :该死的...当我上次测试时,我刚刚删除了中断-EP数据传输的代码。现在我还删除了端点定义(我不再创建端点),从这一点开始,无法再建立MTP连接:(
似乎windows驱动程序(wpd)需要中断端点 - 即使它没有被使用。运气不好......
有没有人知道,是否以及如何让MTP使用3个端点?
答案 0 :(得分:1)
最后我得到了微软的回答:
不支持3端点设置。
需要中断端点,以便驱动程序可以从设备接收MTP事件。这些事件是驱动程序依赖的通知机制,用于将事件中继到应用程序(例如,创建,更新或删除对象时)。
如果您的设备对端点不执行任何操作(即不发送任何事件),则只要设备上的对象发生更改,Explorer等应用程序就无法正常运行。
所以我们埋葬了我们的计划...... :(