Командный и информационный режимы (модем) - Command and Data modes (modem)
Эта статья не цитировать любой источники.Декабрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Команда и Данные режимы относятся к двум режимам, в которых компьютер модем может работать. Эти режимы определены в Набор команд Hayes, который де-факто является стандартом для всех модемов. Эти режимы существуют, потому что существует только один канал связи между модемом и компьютером, который должен передавать как компьютерные команды модему, так и данные, которые модем предназначен для передачи удаленной стороне по телефонной линии.
Когда модем в командный режим, любые отправленные ему символы интерпретируются как команды для выполнения модемом в соответствии с Набор команд Hayes. Команде предшествуют буквы «AT», которые обозначают «Внимание». Например, если модем получает «ATDT5551212» в командном режиме, он интерпретирует это как инструкцию набрать номера 5551212 на телефоне, используя тональный сигнал набор номера. Находясь в командном режиме, модем может отправлять ответы на компьютер, указывая результат выполнения команды. Например, модем может ответить словом «ЗАНЯТО» в ответ на команду ATDT, если он слышит сигнал «занято» после набора номера и настроен на прослушивание сигналов «занято».
Любая связь в командном режиме (в обоих направлениях) прерывается возврат каретки.
Когда модем в режим данных, любые символы, отправленные на модем, предназначены для передачи удаленной стороне. Модем переходит в режим данных сразу после установления соединения. Например, если ATDT5551212 привел к телефонному звонку, на который ответил модем другого компьютера, модем сообщит слово «ПОДКЛЮЧИТЬ» и затем переключится в режим данных. Любые дальнейшие символы, полученные по последовательной связи, считаются поступившими от удаленной стороны, и любые отправленные символы передаются удаленной стороне.
Когда модем с возможностью передачи голоса находится в режиме «голосовых данных», любые данные, отправляемые модему, интерпретируются как аудиоданные, которые должны воспроизводиться по телефонной линии, а не как байты символов, которые должны передаваться в цифровом виде другой стороне.
Переключение между режимами
При включении модемы всегда запускаются в командном режиме. Вот способы, которыми модем может переключиться в режим данных:
- После успешного исходящего соединения в ответ на команду набора "ATD", в которой модем достигает другого модема.
- После ответа на телефонный звонок с командой ответа «ATA», если на другом конце находится другой модем.
- После автоматического ответа на телефонный звонок по заранее заданной причине (например, автоответчик) и подключения к другому модему. (Почти все модемы поддерживают автоответчик при подаче команды «ATS0 = 1».)
- После получения команды «ATO» (это три буквы A-T-Oh, а не A-T-ноль) после возврата в командный режим с управляющей последовательностью (см. Ниже).
- В ответ на аналогичные команды набора номера или подключения для факсимильной или голосовой связи.
Модемы переключаются обратно в командный режим из режима данных по следующим причинам:
- Связь прервалась (например, абонент положил трубку).
- Компьютер выдал команду escape, которая обычно представляет собой паузу в 1 секунду, затем три символа «+++», затем еще одну паузу в 1 секунду. Соединение остается, но модем может принимать такие команды, как «ATH» для завершения соединения. Компьютер может подать команду «ATO», чтобы вернуться в режим данных.
- Компьютер дал команду модему завершить вызов, установив Терминал данных готов (DTR) переведите в состояние "выключено". (Обычно именно так в настоящее время компьютеры вызывают завершение модемного вызова - escape-последовательность +++ редко используются и обычно отключаются, чтобы избежать сбоев в работе, если эти символы законно являются частью потока данных).
Практическое современное использование
Сегодня большинство модемов настроены с использованием символов «& C1 & D2» в строке инициализации или иначе ведут себя таким же образом по умолчанию. Это вызывает следующее поведение:
- Модем использует Обнаружение носителя данных (DCD), чтобы указать, подключен ли он к хосту. Обычно компьютер может просто считывать вывод DCD в любое время и всегда знать, находится ли модем в командном или в режиме данных. DCD высокий означает режим данных, а низкий означает командный режим. DCD - это сигнал, отправляемый модемом на компьютер. (Обратите внимание, что DCD также остается высоким, если в командном режиме после escape-последовательности +++, но на практике программное обеспечение использует это так редко, если вообще, поэтому это не проблема.)
- Модем интерпретирует Терминал данных готов (DTR) как сигнал от компьютера, чтобы узнать, когда он хочет завершить вызов. DTR - это сигнал от компьютера к модему. Компьютер постоянно поддерживает высокий уровень DTR до тех пор, пока он не захочет завершить вызов, после чего компьютер снижает DTR на секунду или две. Компьютер также поддерживает низкий уровень DTR, когда не запущены никакие программы, которые хотят использовать модем - это не позволяет модему отвечать на вызовы из-за автоответа или иным образом делать что-то неожиданное или нежелательное. Компьютер может с уверенностью предположить, что после того, как DTR будет понижен на пару секунд, модем перейдет в командный режим.
Сообщения Data Link Escape (DLE)
Для обычной коммутируемой передачи данных модемы переходят в режим данных только один раз - начиная с подключения сеанса и заканчивая отключением сеанса. Однако, когда модемы используются для факсимильной и голосовой (аудио) связи, они быстро переключаются между командным режимом и режимом передачи данных несколько раз во время вызова. Это связано с тем, что роль модема меняется чаще - вместо того, чтобы просто передавать байты из точки A в точку B, он либо согласовывает параметры и страницы с факсимильным аппаратом, либо переключается между режимами записи, паузы и воспроизведения звука.
В режимах передачи факсов и голосовых данных иногда происходят события, о которых модем желает передать компьютеру сигнал независимо от того, находится ли он в командном режиме или в режиме данных. Примером такого события является нажатие вызывающим абонентом тональный сигнал в голосовом режиме. Другими распространенными внеполосными сообщениями являются уведомления от модема о том, что данные были потеряны из-за того, что компьютер отправляет данные слишком медленно или слишком быстро, или что модем слышит неожиданный гудок на линии (что означает, что звонящий, вероятно, повесил трубку. ), или что добавочная трубка снята или повешена.
Этот тип события сигнализируется DLE сообщение, которое представляет собой односимвольное сообщение, которому предшествует код выхода из канала данных. DLE - это символ, отправляемый модемом на компьютер, определение которого не связано ни с командным режимом, ни с режимом данных, и который использует конкретный ASCII код (0x10), который никогда не встречается ни в каких AT-командах или ответах, поэтому его можно изолировать от потока команд / ответов только по этому признаку. В этих режимах всякий раз, когда отправляется DLE (0x10), следующий за ним символ имеет особое значение, не связанное с командами и данными. Например, DLE, за которым следует цифра 2, означает, что звонящий нажал цифру 2 на клавиатуре своего телефона. Это может происходить как в командном режиме, так и в режиме данных, если телефонная линия используется модемом, а кто-то находится на другом конце линии.
Символ DLE может появляться в факсимильных или аудиоданных. Чтобы избежать неправильной интерпретации байта данных 0x10 как «битового заполнения» DLE, используется. Заполнение - это обычная схема кодирования для модемов, используемая для экранирования символа в потоках. В этом случае заполнение означает, что два символа DLE в строке интерпретируются как один буквальный байт со значением 0x10.
DLE также легко используется при обмене данными между компьютером и модемом. Одно конкретное событие DLE сигнализирует об окончании страницы факса или о конце аудиофайла. Это событие возвращает модем в командный режим. В отличие от стандартного коммутируемого режима данных, отключение DTR не является подходящим способом возобновления командного режима, поскольку прерывание связи нежелательно, и код выхода с обязательными паузами также не подходит. Из-за этого буквальные 0x10 байтов в данных также удваиваются от компьютера к модему.
DLE никогда не используется в стандартных режимах передачи данных между модемом, таких как режим, используемый для коммутируемого доступа в Интернет, по крайней мере, самим модемом. В этих режимах DLE передается по строке, как и любой другой символ. DLE (и сообщения с экранированием DLE) используются модемом только для факсимильных и голосовых приложений, когда он специально переведен в режим факса или голоса.