在没有 INTERRUPT 端点的情况下使用 CDC-ACM?
Use CDC-ACM without INTERRUPT endpoint?
我们正在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 之一只有 BULK 数据端点,没有 INTERRUPT 端点?
这不是最佳答案,但根据我的调查:
每条 CDC-ACM 线路必须配置两个接口:
- 数据接口——需要一个 Bulk IN 和一个 Bulk OUT 端点。
- 通信接口——需要一个中断输入端点。
它使用的控制通信:
- USB控制通道发送线路控制信息
主机到嵌入式系统上的串行端口。
- USB中断
端点从串口发送线路状态信息
嵌入式系统到 USB 主机。
- 如果串行端口是虚拟的,通常会忽略线路控制和状态信息
- 内置 windows XP 驱动程序忽略通知。
可以将 CDC-ACM INTERRUPT 端点设置为未在 STM32F7xx 中处理的编号(高于 > 7)。主机枚举linux会成功,通讯数据会到达但中断数据会丢失。根据我的测试(未完成),connect/disconnect 指示存在问题。
我们正在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 之一只有 BULK 数据端点,没有 INTERRUPT 端点?
这不是最佳答案,但根据我的调查:
每条 CDC-ACM 线路必须配置两个接口:
- 数据接口——需要一个 Bulk IN 和一个 Bulk OUT 端点。
- 通信接口——需要一个中断输入端点。
它使用的控制通信:
- USB控制通道发送线路控制信息 主机到嵌入式系统上的串行端口。
- USB中断 端点从串口发送线路状态信息 嵌入式系统到 USB 主机。
- 如果串行端口是虚拟的,通常会忽略线路控制和状态信息
- 内置 windows XP 驱动程序忽略通知。
可以将 CDC-ACM INTERRUPT 端点设置为未在 STM32F7xx 中处理的编号(高于 > 7)。主机枚举linux会成功,通讯数据会到达但中断数据会丢失。根据我的测试(未完成),connect/disconnect 指示存在问题。