在没有INTERRUPT端点的情况下使用CDC-ACM?

问题描述 投票:0回答:1

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

  1. 中断
  2. 数据输入。
  3. data OUT.

端点的用法是这样的

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?

usb stm32 endpoint cdc
1个回答
0
投票

这不是最好的答案,但根据我的调查:

每个CDC-ACM线必须配置两个接口。

  • 数据接口 - 需要一个 Bulk IN 和一个 Bulk OUT 端点。
  • 通信接口--需要一个中断输入端点。

对于控制通信,它使用

  • USB控制通道将线路控制信息从主机发送到嵌入式系统的串口。
  • Interrupt IN USB端点用于从嵌入式系统的串口向USB主机发送线路状态信息。
  • 如果串口是虚拟的,通常会忽略线路控制和状态信息。
  • 内置的windows XP驱动程序会忽略通知。

可以将CDC-ACM INTERRUPT端点设置为STM32F7xx(高于> 7)不处理的数字。在主机linux上的枚举将成功,通信数据将到达,但中断数据将丢失。根据我的测试(未完成),connectdisconnect指示有问题。

© www.soinside.com 2019 - 2024. All rights reserved.