USB堆栈混淆/串行仿真器



我正在考虑在内置USB引擎的MCU上实现USB通信。基本上,您可以访问管道/端点。

我现在对USB堆栈有点困惑。驱动程序似乎在管道/端点设置之上的另一个级别上运行,因此管道/端点就像是驱动程序构建的中间级别层。这是正确的吗?

其次,我对通过USB模拟串行通信感兴趣。窗口似乎有一个预制的驱动程序,所以在计算机端我不需要对管道级别进行编程。

我如何找到我需要在MCU上实现什么,以使其在通用串行驱动程序中正常工作?

这是关于串行通信的第二个问题的答案。

USB标准定义了用于串行通信的通信设备类别(CDC(。主机端所需的驱动程序由Windows、macOS、Linux和更多操作系统实现。

相关的CDC子类是PSTN。相关文件见通信设备类别定义1.2。

该设备基本上实现了四个端点:

  • 控制配置请求的端点(波特率、DTR状态等(。查看SetLineCodeingGetLineCodingSetControlLineState
  • USB到串行传输的批量端点
  • 串行到USB传输的批量端点
  • 通知的中断端点(DCD状态、错误(。参见SerialState

当然,您需要获得正确的设备描述符。

除此之外,您还需要实现所有标准的USB请求。

很有可能这已经为您的MCU编写了,包括标准请求和串行通信。那么,为什么不使用现有的代码呢?

最新更新