Vibhusha Devani Ответов: 1

Как проверить отсоединение кабеля RS232 ?


Я использую последовательный порт RS232 для универсальной испытательной машины и хотел бы знать, есть ли метод, функция или способ узнать, было ли отключено последовательное соединение, либо кто-то отсоединил кабель, либо оборвался провод.

Что я уже пробовал:

Я попробовал это с Data_Received, ErrorReceived.

1 Ответов

Рейтинг:
0

Jochen Arndt

Не существует надежного метода обнаружения неисправных или отключенных кабелей, кроме использования выделенных линий управления или аппаратного обнаружения (обычно реализуемого в ИС последовательного драйвера, измеряющей уровни напряжения).

Когда связь использует аппаратное управление потоком, обнаружение уже существует. Просто проверьте состояние используемых линий управления.

Когда вы не используете аппаратное рукопожатие и имеете доступ к устройству, которое может установить одну из линий DSR, CTS или DCD на определенный уровень (жесткий провод или под программным управлением), а программное обеспечение ПК может проверить состояние соответствующей линии. Жесткий провод означает управление входом микросхемы драйвера для соответствующей выходной линии. Это позволит обнаружить не подключенные и не запитанные устройства. Когда один и тот же вход управляется микроконтроллером, он может быть, например, также использован для обнаружения того, что устройство занято.

Когда не используется аппаратное рукопожатие и нет доступа к внутренним устройствам устройства, обнаружение может быть реализовано путем зацикливания управляющих сигналов. Например, подключите контакты CTS и RTS к штекеру устройства. Затем ПК может установить выход RTS и проверить вход CTS. Это позволит определить, подключен ли кабель и подключено ли конкретное устройство,но не обнаружит, выключено ли устройство.

Если вы не используете один из вышеперечисленных методов, все, что вы можете сделать, это обработать условия тайм-аута (отсутствие ответа от устройства), которые также зависят от используемого протокола связи.


Vibhusha Devani

Большое вам спасибо, Йохен Арндт.