【问题标题】:RS485 communication over TCP/IP基于 TCP/IP 的 RS485 通信
【发布时间】:2016-03-26 22:51:57
【问题描述】:

我有一个具有 rs485 输出的设备和另一个连接到此输出的 gsm 设备。

我可以使用特殊的 IP 和端口访问 gsm 设备。 Gsm 设备透明地工作。将从 tcp 套接字接收到的所有数据发送到 rs485,并在 rs485 上检索数据,然后写入打开的 tcp 套接字。

gsm 设备和 rs485 现有设备之间的连接是有线的,并且将波特率固定为 300。

当我尝试用笔记本电脑读取 rs485 现有设备时,将 rs485 连接到我的 USB,设置串行参数,例如;

  • 奇偶校验:偶数
  • 数据位:7
  • 停止位:1
  • 波特率:300

(此配置是通用的,并使用标准文档进行描述)

有了这个配置,一切正常,我可以传输数据了。

当我尝试使用 gsm 设备时,我必须操作生成的字节数组以适应 rs485 现有设备。

例如;
我想以 UTF-8 格式发送 /?![CR][LF]

当使用有线连接到设备时,基本上发送 "/?!\r\n".getBytes("UTF-8") 和设备应答。

使用gsm时,我通过wireshark进行监控,设备只回复字节数组:AF-3F-21-8D-A0

AF"/" - 2F 的签名格式

8D 也是[CR] - 0D 的签名格式

我认为,字节的差异是由我在串行连接上使用的配置引起的。

在使用 tcp/ip 套接字时,有没有办法设置此配置(奇偶校验、停止、数据位)?

感谢您的回复。

【问题讨论】:

    标签: java sockets tcp network-programming serial-port


    【解决方案1】:

    有一种方法可以通过 TCP 为这些类型的设备设置 RS232/485 串行 COM 参数。它的标准是

    RFC 2217 Telnet Com Port Control Option

    但并非所有“通过 TCP/IP 的串行 COM”或类似设备的制造商都支持它。

    您需要检查您的 GSM 设备是否支持不同的操作模式。例如。 “原始模式”(可能是现在使用的)和“托管模式”,如 RFC 2217 或允许控制串行线路参数的专有模式。

    例如,MOXALantronix 品牌都支持基于 RFC 2217 的操作模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 2015-05-23
      • 1970-01-01
      • 2020-03-16
      • 2014-08-07
      • 2020-07-16
      • 2015-12-10
      相关资源
      最近更新 更多