自动检测串口的配置?

时间:2009-04-03 05:48:07

标签: serial-port zeroconf

我正在围绕现有的硬件产品设计软件。我完全控制通信协议,但我不确定如何方便设备检测。

设备可能具有一系列可能的配置(即波特率,数据位,奇偶校验位,停止位),这些配置必须在运行时检测到。什么是软件最简单,最可靠的方法来确定它使用的配置?同样,我完全控制了通信协议,因此我可以定义任何我想要的机制。

1 个答案:

答案 0 :(得分:3)

这是全双工还是半双工设备?您是否可以控制请求发送和监控串行线路两端的清除发送?串行线路是点对点(如RS-232)还是多点(如RS-485)?如果您在与新连接的设备进行协商时干扰其他已连接的设备,它将产生(尽管很小)差异。

如果您将握手过程视为协商链路层协议的调制解调器,它会使用一组标准消息来描述它想要的通信类型,并等待来自另一端的“确认”。在您的情况下,我建议您使用“让我们说话”标准消息,您的头端会以比特率范围生成并等待来自设备的确认。

我还建议减少设备的配置选项数量。忘记可变数据位,奇偶校验位和停止位。串行通信世界不再像70年代那样不稳定。只需使用8个数据位,无奇偶校验,一个停止位并改变比特率。消息末尾的CRC提供了大量的错误检查。