嵌入式目标主机通信

时间:2012-12-29 11:09:45

标签: embedded usb freertos

我有以下问题:

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

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

同时需要多个沟通渠道:

  • 1表示简单的控制台 - 调试目的:uC< - > PC
  • 1,用于从ADC到PC获取实时样本:uC - > PC
  • 1用于从PC向DAC发送实时样本:PC - >的uC
  • 1设置获取/转换,开始/停止等的不同参数:uC< - > PC

理想情况下,只有一个物理接口应使用RS232或USB(最好)。

是否已有可用于在单个物理频道上复用不同频道的内容?消息传递,远程过程调用。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

显而易见的选择是使用TCP/IP堆栈。每个打开的“socket”都是独立的,链接可以支持多个同时连接。

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

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

答案 2 :(得分:-1)

  

RS232

几乎没有人仍在PC /笔记本电脑上发送RS232。

  

是否已有可用于在单个物理信道上复用不同频道的内容?

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

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

编辑:

我个人使用USB转RS232转换器,它们可以工作,但我必须建议相当强烈反对它们的新设计:

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

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

  

实时样本

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