使用没有中断终结点的 CDC-ACM?



我们正在STM32F7xx FS端口上开发USB设备。要使用的终结点数量有限(0 个控件和 5 个数据)。我们希望将设备枚举为 3 个 CDC-ACM 端口。 每个 USB CDC-ACM 都使用三个端点:

  1. 中断
  2. 数据输入。
  3. 数据输出。

终结点的用法如下所示

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 的枚举将成功,通信数据将到达,但中断数据将丢失。从我的测试(未完成)中,连接/断开连接指示存在问题。

相关内容

  • 没有找到相关文章

最新更新