我正在研究一个使用Modbus RTU进行通信的嵌入式设备。单个从器件可以配置不同的波特率、奇偶校验、数据位和停止位。
当我将从设备连接到我的计算机时,我必须知道设备的确切配置才能与之通信。例如,在 C# 中,您将通过以下方式打开连接:
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
是否有一种标准方法来"扫描"设备的虚拟COM端口并找出通信参数?只需将我的设备插入USB端口,然后单击一下即可连接到它,那真是太好了。
是否有一种标准方法来"扫描"设备的虚拟COM端口并找出通信参数?
不。
除非设备特别支持,否则没有标准方法可以自动协商波特率。 如果设备确实支持它,则需要将已知的字符序列传输到设备,以便它可以检测正确的波特率。
鉴于Modbus不支持自动波特率,这必须以特定于设备的方式实现,因为它超出了Modbus规范。 因此,您每次都必须始终设置串行设置。