Networking 如何构建串行(RS422或RS232)消息,通过PuTTy与生病的LMS200通信?
我有一个串行设备(生病的LMS200)连接到我的电脑使用RS422到USB转换器。LMS200和my PC上的串行设置(波特率、停止位等)匹配并正在通信(使用LMS200附带的应用程序进行验证)。我需要编写一个与LMS通信的自定义应用程序 在开始构建应用程序之前,我需要弄清楚如何在PC和LMS之间交换数据报。为了解决这个问题,我一直在尝试使用PuTTy手动发送数据报。LMS()的手册定义了数据报类型及其构建方式。例如,在手册第46页上,可以看到向装置发送特定指令的数据报;它看起来是这样的:Networking 如何构建串行(RS422或RS232)消息,通过PuTTy与生病的LMS200通信?,networking,serial-port,Networking,Serial Port,我有一个串行设备(生病的LMS200)连接到我的电脑使用RS422到USB转换器。LMS200和my PC上的串行设置(波特率、停止位等)匹配并正在通信(使用LMS200附带的应用程序进行验证)。我需要编写一个与LMS通信的自定义应用程序 在开始构建应用程序之前,我需要弄清楚如何在PC和LMS之间交换数据报。为了解决这个问题,我一直在尝试使用PuTTy手动发送数据报。LMS()的手册定义了数据报类型及其构建方式。例如,在手册第46页上,可以看到向装置发送特定指令的数据报;它看起来是这样的:02
02 00 02 00 30 01 31 18
但是,当我使用PuTTy发送字符串02 00 02 00 30 01 31 18
时,LMS不会响应(它应该响应)。我认为它没有响应,因为数据报缺少一些串行头数据,或者我没有正确表示十六进制值(我尝试使用0x00
和00h
表示字节,例如00
,但没有成功)。您能帮助我使用手册制定一个有效的串行消息吗?我在这方面已经做了很长时间,我很难理解如何将手册中的信息转换为有效的数据报
请让我知道,如果我可以提供任何更多的信息。提前感谢。完成此任务的方法是: (1) 下载HexEdit软件,并创建一个包含十六进制值的文件(不是ascii表的十进制表示-其中数字2被记录为32)
(2) 然后使用Term软件通过串行线发送文件。完成此操作的方法是: (1) 下载HexEdit软件,并创建一个包含十六进制值的文件(不是ascii表的十进制表示-其中数字2被记录为32) (2) 然后使用Tera Term软件通过串行线发送文件 我没有正确地表示十六进制值(我尝试使用0x00和00h表示字节,如00,但没有成功) 终端/PC键盘上的
Ctrl
键可用于生成ASCII控制字符(即字节值为0x00
到0x1F
的不可打印字符)。与
Shift
键生成键的移位或大写字符(而不是其未移位或小写字符)一样,Ctrl
键(带有字母或其他几个键)可以生成ASCII控制字符
典型的美国PC键盘可以通过键入ctrl-@,即按住ctrl
和Shift
键,然后键入2
(因为“@”字符是美国PC键盘上2
键的移位字符)来生成ASCII“NUL”字符
对于“SOH”或0x01
键入ctrl-A(即ctrl
+A
键,Shift
是不必要的),对于“STX”或0x02
键入ctrl-B等,采用类似方式。对于“SUB”或
0x1A
键入ctrl-Z.对于“ESC”或
0x1B
键入ESC
键。对于“FS”或
0x1C
键入ctrl-\(或ctrl
+\
)。对于“GS”或
0x1D
键入ctrl-](或ctrl
+]
)。对于“RS”或
0x1E
键入ctrl-^(或ctrl
+Shift
+6
)。对于“US”或
0x1F
键入ctrl-(或ctrl
+Shift
+-
)
请注意,一些常用的ASCII控制代码具有专用键,例如“HT”具有用于
0x09
,“BS”具有
0x08
,“LF”具有
Enter
键(在Linux中)用于0x0A
,并且“ESC”具有用于
0x1B
的ESC
键
当您不知道如何从键盘生成ASCII控制字符时,可以使用十六进制编辑器(而不是文本编辑器)在文件中创建消息,然后发送文件 实际上,二进制文件可能是手动生成二进制消息的最可靠方法。当外壳程序或应用程序截取某个代码作为其特殊指令(例如ctrl-C或ctrl-Z以中止程序)而不是将其视为数据时,手动键入控制代码可能会失败。
转义输入数据是避免这种情况的一种方法。
在透明(又称数据)模式下,电话调制解调器通过要求时间保护(即特定空闲时间)来分离和区分命令与数据,从而避免了此问题 我没有正确地表示十六进制值(我尝试使用0x00和00h表示字节,如00,但没有成功) 终端/PC键盘上的
Ctrl
键可用于生成ASCII控制字符(即字节值为0x00
到0x1F
的不可打印字符)。与
Shift
键生成键的移位或大写字符(而不是其未移位或小写字符)一样,Ctrl
键(带有字母或其他几个键)可以生成ASCII控制字符
典型的美国PC键盘可以通过键入ctrl-@,即按住ctrl
和Shift
键,然后键入2
(因为“@”字符是美国PC键盘上2
键的移位字符)来生成ASCII“NUL”字符
对于“SOH”或0x01
键入ctrl-A(即ctrl
+A
键,Shift
是不必要的),对于“STX”或0x02
键入ctrl-