首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于TCP/IP的RS485通信

基于TCP/IP的RS485通信
EN

Stack Overflow用户
提问于 2015-12-20 21:17:50
回答 1查看 2K关注 0票数 1

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

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

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

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

  • 均等:偶数
  • 数据库:7
  • 停位:1
  • 波德率: 300

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

有了这种配置,一切都是正确的,我可以传输数据。

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

例如;

我想把/?![CR][LF]作为UTF-8发送。

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

当使用gsm时,我在wireshark上进行监视,设备只回答字节数组:AF-3F-21-8D-A0

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

另外,8D[CR] - 0D的签名格式。

我认为,与字节的差异是由于我在串行连接上使用的配置造成的。

是否有方法在使用tcp/ip套接字时设置此配置(奇偶、停止、数据位)?

感谢您的回复。

EN

回答 1

Stack Overflow用户

发布于 2016-01-08 18:29:40

有一种通过TCP来设置这类设备的is 232/485串行COM参数的方法。标准是

RFC 2217 Telnet Com端口控制选项

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

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

例如,艾克萨兰特罗尼品牌都支持基于RFC 2217的操作模式。

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

https://stackoverflow.com/questions/34385943

复制
相关文章

相似问题

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