2012-05-04 5 views

ответ

11

Это скорее зависит от того, что вы подразумеваете под «подключением». Сначала я обращусь к наименее точному, но простейшему значению.

Существование порта

Если вы имеете в виду, чтобы выяснить, если сам порт присутствует в системе, то вы можете проверить на наличие загруженного модуля, которые поддерживают бы его, проверить наличие устройства, такого как/dev/ttyS0 или/dev/ttyUSB0, и, убедитесь, что вы можете его открыть (например, у меня есть файл устройства/dev/ttyS0, присутствующий в системе, которая на самом деле не имеет этого оборудования) , Преобразователи USB могут быть hotplugged, поэтому сегодня вы можете видеть, что фактические «последовательные порты» поступают в идущую систему.

управления «Модем»/сигналы состояния

Другая возможность заключается в том, что вы хотите, чтобы выяснить, есть ли что-нибудь телеграфировал к порту. Это не то, что система может знать. Существуют модемные сигналы управления и состояния, которые может подтвердить периферия, и которые вы можете прочитать. Однако периферийные устройства не обязаны использовать их или даже использовать их так, как когда-то имело смысл в эпоху модемов. Во многих системах вы можете подключиться только к линиям приема и передачи данных и заземления.

обнаруживаемых приема данных

Оставшаяся возможность является то, что не может быть никакого способа узнать, если порт подключен, иначе, чем ищет данные из него. Некоторые периферийные устройства могут автоматически создавать данные через регулярные промежутки времени, поэтому вы можете просто попробовать прочитать и посмотреть, получаете ли вы их. Для других вы можете отправить запрос (надеюсь, не один с нежелательными побочными эффектами), и посмотреть, верните ли вы ожидаемый ответ. Например, инструмент, приблизительно реализующий стандарт SCPI, может ответить некоторой идентифицирующей информацией, если вы отправили ей строку «* IDN? \ N».

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

С тонкоизмельченным контролем аппаратного обеспечения и ожидаемыми данными с другого конца также можно написать автоматическую процедуру определения скорости передачи в бодах, хотя это обычно выполняется на «периферийном» конце, а не на «хосте».

+0

Благодарим вас за столь подробное объяснение, оцените вашу помощь. –

+0

@RajeshSO PLZ принять ответ, если вы удовлетворены. Это поможет другим на SO. – Raulp

Смежные вопросы