我正在围绕一个现有的硬件产品设计软件。我完全控制了通信协议,但我不确定如何促进设备检测。
设备可能具有一系列必须在运行时检测到的可能配置(即波特率、数据位、奇偶校验位、停止位)。对于软件来说,找出它正在使用的配置的最简单、最可靠的方法是什么?同样,我完全控制了通信协议,所以我可以定义任何我想要的机制。
发布于 2009-04-03 07:18:01
这是全双工设备还是半双工设备?你能在串行线的两端控制请求发送和监控清除发送吗?串行线路是点对点(如RS-232)还是多点(如RS-485)?如果你要在与新连接的设备协商时干扰其他已连接的设备,这将产生(尽管很小的)差异。
如果您将握手过程看作是调制解调器协商链路层协议,那么它使用一组标准的消息来描述它想要的通信类型,并等待来自另一端的"ack“。在你的情况下,我建议你有一个“让我们谈谈”的标准消息,你的头端生成的比特率范围,并等待来自设备的ack。
我还建议减少设备的配置选项数量。忘记可变数据位、奇偶校验位和停止位。串行通信的世界不再像70年代那样不稳定,只需使用8个数据位,没有奇偶校验,一个停止位,并改变比特率。消息末尾的CRC提供了大量的错误检查。
https://stackoverflow.com/questions/712687
复制相似问题