【发布时间】:2021-07-30 14:38:14
【问题描述】:
我正在开发一个 USB MIDI 设备,该设备将用作无线系统的接收器。该设备将通过无线电模块与发射器进行双向通信,发射器是在 USB 主机模式下运行的独立硬件。
接收器将插入 PC。插入发射器的 MIDI 设备需要在 PC 上显示为 MIDI 端口。由于发射器支持 USB 集线器,因此可以插入多个设备。
有两个要求我不是 100% 满足的:
1.) PC 端的 MIDI 端口名称需要反映插入发射器的 USB 设备提供的名称,以便清楚端口用于哪个设备。
2.) 当设备从发射器插入/拔出时,PC 上的 MIDI 端口集需要更新。这是问题的关键:有没有办法更新可用的 USB 接口/MIDI 插孔由设备启动?
这样做的蛮力方法是在接收器从发送器接收到发生更改的消息时完全重置接收器(在重置时,接收器将轮询发送器以查找当前设备并提供更新的信息当主机 PC 重新枚举时)。
发送器/接收器硬件均基于 PIC32MZ MCU(无 RTOS)。我很擅长编写 USB 代码来让主机/接收器端做任何事情。问题在于如何在 USB 协议级别执行此操作。
另外,要明确一点:发送器/接收器通信将是一个 ad-hoc 协议,接收器将自行设置其所有 USB 配置数据;我们的想法不是尝试通过无线链接无缝枚举设备。
【问题讨论】:
-
那么,它会是某种带有无线下行端口的 USB 集线器吗?我做对了吗?
-
“发送器”将是带有嵌入式或外部集线器的嵌入式 USB 主机。系统的无线部分将是一个独立于 USB 的独立协议。