我们正在STM32F7xx FS端口上开发USB设备。要使用的终结点数量有限(0 个控件和 5 个数据)。我们希望将设备枚举为 3 个 CDC-ACM 端口。 每个 USB CDC-ACM 都使用三个端点:
- 中断
- 数据输入。
- 数据输出。
终结点的用法如下所示
EP | OUT | IN
---+-------------+-----------
1 | | INTERRUPT 1
2 | BULK 1 | BULK 1
3 | | INTERRUPT 2
4 | BULK 2 | BULK 2
5 | |
把第三个CDC-ACM放在哪里?是否可以声明我们的一个 CDC-ACM 只有批量数据端点,没有中断端点?
这不是最好的答案,但根据我的调查:
每个 CDC-ACM 线路都必须配置两个接口:
- 数据接口 – 需要一个批量输入和一个批量输出终结点。
- 通信接口 – 需要一个中断输入端点。
对于控制通信,它使用:
- USB控制通道,用于从 主机到嵌入式系统上的串行端口。
- USB 中的中断 端点,用于从串行端口发送线路状态信息 将嵌入式系统连接到 USB 主机。
- 如果串行端口是虚拟的,则通常忽略线路控制和状态信息
- 内置的Windows XP驱动程序忽略通知。
可以将 CDC-ACM 中断终端节点设置为 STM32F7xx 中未处理的数字(高于> 7)。使用主机 Linux 的枚举将成功,通信数据将到达,但中断数据将丢失。从我的测试(未完成)中,连接/断开连接指示存在问题。