你们建议使用9针电缆中的哪个信号/针来检查连接状态?
到目前为止,我正在使用DSR信号,因为在硬件测试中,如果电缆正确连接,则如果断开连接,则DSR信号为1,DSR变为0。但是,与其他驱动程序和/或操作系统相比,DSR在消息传输过程中会发生变化或始终为0。因此,除非在晴天在25ºC的受控条件下,否则我认为此DSR信号并不可靠。
那么如何在给定的时间点知道我是否仍在连接,即电缆没有断开?
请注意,连接可能会丢失,并且我的串行端口仍然存在并且已在操作系统的端口列表中打开,因此检查端口是否存在无法解决任何问题。我唯一的希望是依靠9个引脚之一进行检查。
另外,我也不想发送或接收字节来检查连接状态。应该有更好的方法...
谢谢!
在任何给定时间都没有可靠的方法来确定串行连接状态。
标准方法是使DTR两端变为高电平,因此,无论您与谁连接,都会看到DSR,从而知道另一端是什么。您没有具体说明连接的确切类型,但是由于遇到这些问题,因此我暂时假设它是DTE / DTE,并且需要空调制解调器连接。
更糟的是,问题可能出在电缆本身,而不是软件或操作系统。
有关更多信息,请参见此页面,但是对于空调制解调器电缆,有多个引脚。
空调制解调器电缆内部所需的最小接线如下所示:
这就是所谓的“无握手零调制解调器电缆”。您会看到DTR和DSR引脚(引脚6和4)不起作用。使用此电缆插入某些东西时,DSR引脚状态不会改变。
然后是这个:
这是“回送握手电缆”。您可以在此处看到DTR和DSR(引脚6和4)在每个连接器处相互桥接,并且没有沿着电缆的长度方向走。这意味着,如果将DTR设置为高电平,则会看到DSR-您自己的DSR。这告诉您端口上已经连接了串行电缆,但是该电缆的另一端并不一定要走到任何地方。您可以将电缆切成两半然后贴在鼻子上,您仍然会看到软件告诉您的连接有效。
更好的解决方案是使用如下所示的电缆:
或像这样
这是部分或全部握手电缆。您会看到每一侧的针脚4进入另一侧的针脚6。因此,双方都可以将DTR设置为高电平,并查看对方的DSR。这是唯一可以准确确定电缆是否实际连接到设备的情况。并且即使如此,只要双方都同意设置DTR。除非您控制通信的双方,否则都会碰碰运气。
这是您最好的方法,而无需在线发送数据并等待有效的回复。
归档时间: |
|
查看次数: |
3072 次 |
最近记录: |