我有一个通过rs-232接口控制的硬件设备(它是一个超声脉冲接收器)。我需要编写一个程序来从我的计算机向设备发送命令。然而,不同寻常的是,该设备没有串行端口(DB-9 COM端口),而是具有RJ45插座(以太网插座)。该设备附带一个适配器,用于将设备上的以太网端口连接到串行电缆,以便与计算机通信。
不幸的是,我的电脑没有串行端口,只有以太网端口。如果可能的话,我想去掉适配器,用以太网线将我的计算机直接连接到设备上。这在物理上是可能的--但我不知道如何转换消息协议?例如,我的设备没有用于打开tcp套接字的ip地址?
到目前为止,我一直在使用Boost.asio (在Ubuntu机器上)通过tcp套接字向其他支持tcp的设备发送消息流。如果可能的话,我想继续使用Boost.Asio库,因为它是跨平台的。我真的不知道从哪里开始-我一直使用Boost.Asio库,它很好地隐藏了大多数协议问题。然而,我相信这是可能的,因为有一些windows程序似乎可以做类似的事情,例如参见http://com0com.sourceforge.net/
欢迎任何指导性的建议。非常感谢
发布于 2010-12-10 23:26:44
实际上,它在物理上不起作用。它只是机械地工作。以太网使用的物理电压和电流与串行端口使用的物理电压和电流非常不同。不仅如此,引脚也是不兼容的。
幸运的是,以太网使用磁耦合信号,否则你会烧毁你的主板或超声设备。
这不仅仅是软件协议的问题。
发布于 2010-12-10 23:26:27
您不能直接执行此操作。由于您的计算机缺少RS-232串行端口,因此您可以做的最好的事情就是添加一个。
这可以通过USB转RS232转换器/加密狗或PCI卡轻松完成。
您不能将以太网编程为类似RS-232。
发布于 2010-12-30 19:53:39
实际上,还有另一种解决方案。有些公司生产以太网串行设备。我个人使用过两个:
Digi
Lantronix
这是一个很好的解决方案,尽管有点昂贵。
https://stackoverflow.com/questions/4410309
复制相似问题