0

我有以下问题:

一个微控制器,可以通过几个通信接口与 PC 交谈:RS232,USB 存在。以太网不可用。该软件是带有可选嵌入式操作系统的裸机。

硬件并不重要,因为它适用于任何微控制器和物理通信接口。

同时需要几个沟通渠道:

  • 1 用于简单的控制台 - 调试目的:uC <-> PC
  • 1 用于从 ADC 获取实时样本到 PC:uC -> PC
  • 1 用于将实时样本从 PC 发送到 DAC:PC -> uC
  • 1 设置采集/转换、启动/停止等不同参数:uC <-> PC

理想情况下,应仅使用一个物理接口 RS232 或 USB(首选)。

是否已经有一些东西可以在单个物理通道上复用不同的通道?消息传递,远程过程调用。

4

3 回答 3

4

如果您在 uC 上有一个 IP 堆栈,那么您可能可以使用SLIPPPP通过串行链路进行通信。另一方面,如果你有一个准系统,看看那些协议和HDLC之类的东西,因为你最终会实现类似的东西。

于 2012-12-29T12:28:47.107 回答
2

一个明显的选择是使用TCP/IP堆栈。每个打开的“套接字”都独立于任何其他的,一个链接可以支持多个同时连接。

TCP/IP 可以通过以太网或通过 PPP 或 SLIP 的串行连接传输。通过实现 CDC/ACM 类设备,可以通过 USB 模拟异步串行连接(COM 端口),但是如果您的设备要在商业上发布,您将需要 USB 供应商 ID。

某种多线程内核可能会使处理多个连接更简单,但绝不是必要的。

于 2012-12-29T12:52:05.940 回答
-1

RS232

几乎没有人仍然在 PC/笔记本电脑上提供 RS232。

是否已经有一些东西可以在单个物理通道上复用不同的通道?

您之前提到您想使用 USB,它支持设备上的多个管道,称为端点。USB 标准最多允许 32 个,但特定的微控制器可能实现的端点较少,或者对端点类型有限制。

在 PC(主机)端,您可以使用 WinUSB 或 LibUSB 访问这些管道。

编辑:

我个人使用 USB-to-RS232 转换器,它们可以工作,但我必须强烈建议不要使用它们进行新设计:

  • 不同的 USB 端口会导致不同的 COM 端口号
  • 在端口“正在使用”时拔出 USB2COM 会导致重新插入时 COM 端口无法工作
  • 廉价转换器的许多驱动程序问题
  • 祝你好运尝试为旧适配器找到 Win8 驱动程序
  • 1ms USB 帧时间会对某些 RS232 协议产生负面影响

所有问题都是小问题,但直接使用 USB 时可以避免这些问题。

实时样本

这就提出了可用带宽的问题,USB 通常有 12 MBit/s(在某些高端微机上甚至是 480)。大多数 USB-2-RS232 适配器的最大输出速率为 460800 或 921600 波特。

于 2012-12-29T13:49:15.607 回答