使用并行有线RS232从多个设备接收数据

时间:2012-10-12 10:01:21

标签: serial-port

我目前正在开发一个小型应用程序,用于监控太阳能集热器产生的功率/电流。

阵列连接到3个逆变器。每个逆变器都有一个RS232接口,每10秒传输一行信息(当前状态)。

由于我想使用只有一个串口的设备进行监控,我需要想出一种能够并行读取所有逆变器数据的方法。 我不需要向其中一台逆变器发送任何东西!

是否可以将3根RS232线并联连接到一个串口?碰撞将不太可能,因为每个逆变器仅传输64Byte / 10秒,以换行结束,因此我可以检查可变线路长度以检测碰撞。

2 个答案:

答案 0 :(得分:2)

我有点在世界末日和古怪的答案中轻笑,这些答案经常出现在stackoverflow上......

但无论如何,在购买数年之后,我已经使用了使用二极管的并联RS-232发射线,它可以在不太可能发生碰撞的情况下正常工作。在一个特定的应用程序中,我使用这种技术有两个输入终端,用户可以键入简单的命令来控制系统(一个专门的安全系统),两个人不太可能同时试图控制它两个不同的终端。令人惊讶的是,我当时测试的大多数RS-232A接收器的电压水平都没有问题,并且它们容忍因简单使用与TXD信号串联的二极管而导致的信号特性(无负电压)。但是,如果我不得不再次这样做,我可能会在一个电荷泵配置或下拉到负向握手信号中添加一个简单的下拉电阻和电容接地,在RXD和电容之间有一个二极管,以确保“OR'd”输入信号真正为负,因为RS-232规范将+3到-3v定义为无效。

在任何情况下,我建议不要使用此技术,除非在非常具体,有限和非任务关键的情况下,并且如果您有多个设备以编程间隔发送信息,则不会使用它OP或软件握手的地方。

In可以是一个简单的解决方案,解决了没有足够的串行输入端口问题,但只能在非常有限的环境中使用。

答案 1 :(得分:1)

不应该并行连接3个串行输出端口。如果你这样做,你可能会打破你的逆变器的RS232输出电路。

你有3个RS232输出,所以你需要3个RS232输入,然后你可以按你喜欢的方式管理这3个输入:也许你可以缓冲每个输入的数据,并在单个RS232输出上重新输出数据,是连接到您的监控设备....但您应该在数据流中添加一些代码来区分来自3个逆变器的数据。

也许您可以使用某种为您完成工作的IC,我不确定,但也许已经存在一些在单个RS232输出上复用多个RS232输入的IC。 试试这个搜索:rs232 port input multiplexer on Google

或者,如果监控设备是Window计算机,您可以使用3个串口到USB转换器:这将在您的计算机上创建3个虚拟COM端口,您可以使用任何软件从它们读取数据。

<强>更新
关于使用diod保护输出电路以阻止重新进入电流的假设,我认为它不会起作用...
自从上次我在低级别使用RS232链接以来已经过去了很多年(也许我错了)但我认为RS232输入和输出端口之间存在某种握手(使用速度,奇偶校验) ,停止位......) 每个RS232端口都有输入和输出信号,用于数据和传输控制,因此您的多个RS232输出确实有一些输入信号,而您的单个RS232输入确实有一些输出。
 这意味着您的输入监控RS323端口将尝试同时与3个RS323端口进行握手...并且3个RS232端口可能会同时响应...所以我认为它不会发生上班。

除此之外,如果你在输出上放置二极管,你将失去0.7v,我不记得RS232信号电平的容差,但也许0.7v可能是相关的。