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