首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两个串行端口连接到一个串行端口

将两个串行端口连接到一个串行端口
EN

Stack Overflow用户
提问于 2016-10-26 17:20:24
回答 4查看 8.8K关注 0票数 0

我想把两个串口连接成一个串口。假设有三个系统A、B和C。

A、B和C使用类似星形连接的串行通信(RS232端口)相互连接。所以,情况是这样的。当系统C向系统A和系统B发送数据时,它将发送到这两个系统。但是当系统A或系统B发送数据时,系统C不接收数据。

所以我想知道如何通过串口设备与其他串口设备(多个设备)通信。

EN

回答 4

Stack Overflow用户

发布于 2016-10-26 17:29:29

这根本行不通。您必须将两条TX线路连接到一条RX线路,但RS-232 (与以太网不同)不是共享介质协议,无法检测TX冲突(当两个设备尝试同时通话时)。

您需要在中间实现一个设备,它将接收到的内容转发给其他设备。即使到那时,它也必须知道其他设备正在说话的协议,以防止中断的消息(例如,只在换行符停止)。

票数 2
EN

Stack Overflow用户

发布于 2016-10-27 03:16:16

是的,这绝对可以工作,至少在某些限制下/在明确定义的电压条件下。

  • 将C:TX --> A:RX和B:RX
  • 的布线保持在另一个方向,通过使用带有二极管和电阻器的“半双工”布线方案,将A+B TX数据组合成C:RX引脚的一个信号,例如,如Lammert Bies' circuit for Half duplex RS232 spy / monitor / sniffer cable或本Spy Cable circuit所示。如果A和B在RS232电压规格中都很好的话,这两个变体都应该可以正常工作。
  • 限制:A和B不能同时发送数据,即仅限“半双工”。如果A和B同时发送,您将收到未定义的/垃圾数据。

顺便说一句,甚至还有其他Stackoverflow posts that confirm this works。检查获得两个赞成票的第二个答案。

票数 1
EN

Stack Overflow用户

发布于 2016-10-27 05:57:41

你可以将它们连接成一个环: Atx->Brx,Btx->Crx,Crtx->Arx,然后每个设备都必须转发消息,而不是为了它。这不需要任何诡计多端的骗局/抵抗力骗局。

这种方法的一个很大的好处是,它不会对节点不同时通信施加任何限制:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40258346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档