0

我有通过 rs-232 接口控制的硬件设备(它是一个超声波脉冲接收器)。我需要编写一个程序来将命令从我的计算机发送到设备。然而,不同寻常的是,该设备没有串行端口(DB-9 COM 端口),而是有一个 RJ45 插座(以太网插座)。该设备带有一个适配器,用于将设备上的以太网端口连接到串行电缆,以便与计算机进行通信。

不幸的是,我的电脑没有串口——只有一个以太网端口。如果可能的话,我想取消适配器并使用以太网电缆将我的计算机直接连接到设备。这在物理上是可能的 - 但我不知道如何转换消息协议?例如,我的设备没有用于打开 tcp 套接字的 IP 地址?

到目前为止,我一直在使用 Boost.asio(在 Ubuntu 机器上)通过 tcp 套接字将消息流发送到支持 tcp 的其他设备。如果可能的话,我想继续使用 Boost.Asio 库——因为它是跨平台的。我真的不知道从哪里开始——我一直使用 Boost.Asio 库,它很好地隐藏了大多数协议问题。但是,我相信这是可能的,因为有些 Windows 程序似乎做类似的事情,例如参见http://com0com.sourceforge.net/

欢迎任何指导意见。非常感谢

4

3 回答 3

7

实际上它在物理上不起作用。它只是机械地工作。以太网使用的物理电压和电流与串行端口使用的非常不同。不仅如此,引脚排列也不兼容。

幸运的是,以太网使用磁耦合信号,否则你会炸掉你的主板或超声波设备。

这不仅仅是软件协议的问题。

于 2010-12-10T15:26:44.110 回答
5

您不能直接执行此操作。由于您的计算机没有 RS-232 串行端口,您能做的最好的事情就是添加一个。

这可以通过 USB 到 RS232 转换器/加密狗或 PCI 卡轻松完成。

您不能将以太网编程为像 RS-232 一样工作。

于 2010-12-10T15:26:27.277 回答
2

实际上还有另一种解决方案。有些公司生产以太网串行设备。我亲自与两个合作过:

数码

兰特尼克斯

这是一个很好的解决方案,虽然有点贵。

于 2010-12-30T11:53:38.757 回答