我围绕现有的硬件产品设计软件。我有通信协议的完全控制,但我不知道如何促进设备检测。

一个装置可具有一定范围的可能的配置(即波特率,数据位,奇偶校验位,停止位),必须在运行时被检测到。什么是最简单,最可靠的方式为软件要弄清楚什么样的配置它使用?再次,我有通信协议的完全控制,所以我可以定义我希望的任何机制。

有帮助吗?

解决方案

这是一个全双工或半双工的设备吗?你能控制的要求 - 发送和监测串行线路的两端明确以发送?是串行线点至点(如RS-232)或多点(如RS-485)?它将使一个(虽然小)的区别,如果你要与其它已连接设备的干扰,同时与新连接的一个谈判。

如果你认为像一个调制解调器协商链路层协议握手过程,它采用了一组标准的消息来描述通信的类型,它希望有和从另一端等待一个“ACK”。在你的情况我建议具有“让我们来讨论”您的头端产生与比特率的范围,并且等待来自该装置的ACK的标准报文。

我还建议减少的用于设备的配置选项的数目。忘掉可变数据位,奇偶校验位和停止位。串行通信世界不再是不稳定的,因为它回到了70年代。只使用8个数据位,无校验,一个停止位和改变位速率。上的消息的末尾的CRC提供大量错误检查的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top