3

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

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

4

1 回答 1

3

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

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

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

于 2009-04-03T07:18:01.177 回答