Обнаружение носителя данных
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2023 г. ) |
Data Carrier Detect ( DCD ) или Carrier Detect ( CD ) — это управляющий сигнал, присутствующий внутри кабеля последовательной связи RS-232 , который проходит между компьютером и другим устройством, например модемом . Этот сигнал представляет собой простой бит состояния «высокий/низкий» , который отправляется от оборудования передачи данных (DCE) к терминальному оборудованию данных (DTE), т. е. от модема или другого периферийного устройства к компьютеру в типичном сценарии. Он присутствует практически на всех последовательных портах ПК — на контакте 1 девятиконтактного последовательного порта ( DE9 ) или на восьмом контакте 25-контактного порта (DB25). Его назначение варьируется в зависимости от подключенного устройства, но наиболее конкретное значение состоит в том, чтобы указать, когда модем подключен к другому удаленному модему по телефонным линиям.
Слово «несущая» относится к аналоговому сигналу несущей , генерируемому модемом и модулированному для передачи данных. В модеме передачи данных потеря оператора связи приравнивается к разрыву соединения.
Подобно сигналу кольцевого индикатора , на последовательном порту ПК изменения состояния сигнала DCD могут генерировать аппаратное прерывание , которое может быть захвачено процессором в любое время, когда сигнал DCD меняет состояние, что избавляет ПК от необходимости постоянно опрашивать вывод.
Используется в модемах
[ редактировать ]DCD очень важен для модемов, поскольку это основной способ узнать, что модем потерял соединение с удаленным хостом. Помимо преднамеренных отключений, модемы могут неожиданно потерять соединение по множеству неожиданных причин, например, из-за отключения телефонной линии. Можно использовать модем без сигнала DCD, однако единственный способ узнать, что соединение разорвано, — это передать модему слова « NO CARRIER по линиям данных ». Поскольку слова «NO CARRIER» также являются сообщением, которое может появиться в контексте обычного сеанса передачи данных (например, если оно напечатано человеком на удаленном конце), компьютерная программа не может различить эти слова. отправляются через соединение, а не через модем.
Внешние модемы со светодиодными индикаторами состояния обычно имеют индикатор «CD» ( обнаружение несущей ). Этот индикатор состояния напрямую связан с тем, что модем отправляет по линии DCD.
По умолчанию, когда модем включается, сигнал DCD снимается. Он не утверждается до тех пор, пока модем не выполнит исходящий вызов или не ответит на входящий вызов, а затем не соединится с модемом для передачи данных на другом конце. Сигнал устанавливается одновременно с тем, как модем передает сообщение CONNECT, и остается активным до тех пор, пока вызов не будет отключен (намеренно или из-за неисправности линии). DCD сбрасывается, как только локальный модем больше не принимает несущую от удаленного модема, независимо от того, какая сторона инициировала отключение. Пока сигнал DCD высокий, компьютер может предположить, что любые данные, поступающие от модема, были отправлены с удаленной стороны.
Практически все новые модемы позволяют настраивать поведение сигнала DCD. Типичные доступные варианты включают «всегда подтверждать DCD», «подтверждать DCD только при подключении» и «всегда подтверждать DCD, кроме сразу после обнаружения отключения».
Значение DCD различается, когда модем находится в режиме факса или голосовой связи . В этих режимах его значение снижается. [ как? ]
При использовании с нуль-модемами
[ редактировать ]Частое использование последовательного порта предназначено для прямого соединения между компьютерами. Для этого требуется адаптер, называемый нуль-модемом , который на самом деле не является модемом в традиционном смысле этого слова, а скорее разъемом, который просто пересекает взаимодополняющие контакты двух последовательных портов, чтобы обе стороны могли обмениваться данными. Нуль-модем обычно соединяет выход DTR каждого компьютера с входами DCD и DSR другого.
При использовании в этом сценарии DCD используется для простого обнаружения присутствия и/или готовности другой стороны начать сеанс. Например, на ПК с Windows выход DTR поддерживается на низком уровне до тех пор, пока не будет запущена какая-либо программа для доступа к последовательному порту и повышения уровня сигнала DTR. Удаленная сторона почувствует это, когда на входе DCD появится высокий уровень. Некоторое оборудование распознает только переход как начало сеанса. Другое оборудование (например, консольный порт маршрутизатора ) может ожидать передачи символов. [ нужны разъяснения ] но высокий уровень сигнала DCD по-прежнему является обязательным условием для каждой связи. [ нужны разъяснения ]
Использование синхронизации PPS (импульс в секунду)
[ редактировать ]Последовательный вывод DCD можно использовать для точного обнаружения сигнала PPS , как описано в RFC 2783: [1]
Одним из удобных способов подачи сигнала PPS в компьютерную систему является подключение этого сигнала к выводу управления модемом последовательного интерфейса компьютера. Для этой цели часто используется вывод Data Carrier Detect (DCD). Обычно выходные данные тайм-кода источника времени передаются на компьютер по той же последовательной линии. Компьютер обнаруживает переход сигнала на выводе DCD, обычно получая прерывание, и записывает временную метку как можно скорее.
При использовании с другим оборудованием
[ редактировать ]В Linux на каждый последовательный порт ссылаются два имени устройства, одно из которых (для первого последовательного порта) /dev/ttyS0
против /dev/cua0
. Хотя оба они относятся к одному и тому же физическому порту, одно важное различие между тем, как Linux обрабатывает эти два имени устройства, связано с линией DCD. Когда ttyS0 ожидает в системном вызове , Linux предполагает, что, поскольку это устройство предназначено для приема телефонных звонков, он переводит процесс в спящий режим — полагая, что пока DCD низкий, делать нечего. Когда используется cua0, как и при совершении телефонных звонков, Linux предполагает, что программному обеспечению необходим доступ к порту, пока DCD низкий, для набора номера, поэтому такого поведения блокировки не существует. Тем не менее, существует флаг режима управления , называемый CLOCAL, который фактически активирует или деактивирует это поведение, и по умолчанию этот флаг установлен для cua0, но не для ttyS0. Приложение, которое настаивает на использовании порта «tty» вместо порта «cua», является примером приложения, которому . для правильной работы может потребоваться перемычка для подачи высокого уровня DCD [2]
Ссылки
[ редактировать ]- ^ Могул, Дж.; Миллс, Д.; Бриттенсон, Дж.; Стоун, Дж.; Виндл, У. (март 2000 г.). "Введение" . Импульсный API для UNIX-подобных операционных систем . IETF . п. 3. дои : 10.17487/RFC2783 . РФК 2783 .
- ^ Колдвелл, концепции Чарльза Терминала в GNU/Linux. Архивировано 29 апреля 2008 г. в Wayback Machine.