2013-05-04 112 views
0

我正在开发一个嵌入式USB设备,需要可用于两个不同的主机。 第一个是普通个人电脑,它将用作MSC(大容量存储)设备,第二个是USB设备与CDC配置文件交流所需的特定硬件。USB主机识别

在枚举过程中,USB设备发送描述符表,并在其中声明其功能。

在枚举过程中是否有方法知道设备连接到哪个主机?

+0

平台?语言?你有什么尝试? – 2013-05-04 22:46:23

+1

@尼尔它没关系,这是一个协议问题,但如果你真的想知道...... Msp430f5529,C. – stdcall 2013-05-04 22:49:10

+0

如果你有**特定硬件**的控制权,你可以添加一个额外的GPIO到它的连接器连接到GND/VBUS并在外设上反方向拉。然后通过读取GPIO,您可以确定带外主机类型。 – 2013-05-06 13:53:21

回答

2

最简单的解决方案可能是实现一个“USB复合设备”,其中单个设备同时提供MSC和CDC类接口。主机PC可以看到两个接口,但你可以留下一个不用的接口。如果不支持它,“特定硬件”可能会简单地忽略MSC类。

+0

我想到了这一点,我只是想知道在枚举过程中是否也传输了主机信息。 – stdcall 2013-05-05 10:42:08

+1

并不多 - 主机标识有时是通过指定主机对观察到的行为数据库执行的操作序列来尝试的。在这种情况下,您可能会根据实际使用的接口学到足够的内容。这可能是,这种方法你甚至不需要“知道”,而是只有连接到使用过的接口的代码才能获得任何数据。 – 2013-05-05 17:23:31