我有以下问题:
微控制器,可通过多种通信接口与PC通信:存在RS232,USB。以太网不可用。该软件是裸机,带有可选的嵌入式操作系统。
硬件并不重要,因为它适用于任何微控制器和物理通信接口。
同时需要多个沟通渠道:
理想情况下,只有一个物理接口应使用RS232或USB(最好)。
是否已有可用于在单个物理频道上复用不同频道的内容?消息传递,远程过程调用。
答案 0 :(得分:4)
答案 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时可以避免这些问题。
实时样本
这提出了可用带宽的问题,其中USB通常具有12 MBit / s(甚至在某些高端微处理器上为480)。大多数USB-2-RS232适配器最大输出为460800或921600波特。