Итак - модем ! Что же такое МОДЕМ и для чего он вообще нужен? Название его происходит от двух слов: МОДулятор и ДЕМодулятор. Эти два слова как нельзя лучше отражают суть работы, производимой модемом. Он модулирует сигнал, передаваемый в телефонную линию, информацией, получаемой от компьютера, и наоборот, передает в компьютер то, что из линии демодулировал. Зачем это нужно ? - сразу спросит дотошный читатель. А вот зачем ! Как Вы должно быть знаете (а если не знаете, тем более читайте внимательней !), вся информация представляется в компьютере в виде нулей и единиц. Нули и единицы, в свою очередь, кодируются напряжением: нет напряжения - ноль, есть напряжение - единица. Естественно, что и обмениваться информацией компьютеры могут только с помощью нулей и единиц. Если расстояние, на которое нужно передать данные невелико, как например в компьютере - от одной микросхемы к другой, их просто соединяют проводами. А если Вы хотите передать что-то в компютер приятелю, который находится скажем в другом районе ? Вы разоритесь только на покупке провода, не говоря уже о том, чтобы заказывать рытье канавы для этого провода, или развешивание его на столбах (иначе ведь сопрут!). К счастью, во многих местах получил распространение телефон - а это ведь не что иное, как готовая пара проводов. Однако эти провода не так хороши, как хотелось бы, ведь предназначены они все-таки для передачи голоса, а не нолей и единиц. Тут-то и находится занятие для модема: преобразовать нули и единицы в сигнал, более-менее похожий по своим характеристикам на голос, а следовательно пригодный для передачи по телефону. Заодно модем выполняет и функции, характерные для обычного телефона, - набирает номер, снимает трубку когда звонят и т.п. Чтобы выполнять все возложенные на него функции модем должен быть весьма сообразительным, а это дается непросто даже людям. По сути модем представляет собой маленький компьютер. В нем есть процессор, память, и всякие другие детальки, необходимые для нормальной работы. Одним концом он подключается к телефонной линии, а другим к компьютеру. Если с телефонной линией мы немного разобрались, то про подключение к компьютеру стоит еще сказать несколько слов. Компьютеры - они ведь тоже бывают разные, большие и маленькие, быстрые и не очень. Чтобы не делать для каждого типа компьютеров свой модем, умные люди решили договориться, и во все компьютеры ставить одинаковое устройство - коммуникационный порт (КОМ порт). Если компьютер имеет такой коммуникационный порт (стандарт на него имеет название RS232C в Америке, и V24 в Европе), то к нему можно подключить любой стандартный модем. Естественно нужно сразу уточнить, что мы имеем ввиду, говоря про "стандартный" модем. Модемов, как таковых, касается три вида стандартов: про один из них Вы уже знаете - он описывает взаимодействие модема с компьютером (RS232C/V24), другой определяет, как преобразуются данные для непосредственной передачи по телефону, а третий описывает команды модему (модемом тоже можно командовать!). Рассмотрим поподробнее стандарты на протоколы передачи данных по телефонной сети. От того, какие протоколы поддерживает Ваш модем, зависит скорость, с которой он работает, а также сама возможность его работы с каким-либо другим модемом. Вообще говоря, принцип передачи информации по телефону чем-то напоминает радио. Модем генерирует так назывемую несущую частоту ("наша радиостанция работает на частоте..."), и модулирует ее поступающей от компьютера информацией по правилам определенного протокола. (Очень часто Вам будет попадаться английское слово CARRIER, - не пугайтесь, оно обозначает именно несущую частоту). Самыми распространенными являются протоколы V21, V22 и V22bis. Они определяют, как должны модулироваться сигналы для передачи информации по телефонным линиям со скоростями до 300, 1200 и 2400 бит в секунду соответственно. Здесь следует отметить, что данные по телефону передаются последовательно, бит за битом, и помимо основной информации, ради которой все затевается, передается и служебная, необходимая для "поддержания разговора". Как правило, в дополнение к 8 битам каждого байта данных прибавляется по 2 бита: один в начало (старт бит) и один в конец (стоп бит). Итого: байт будет состоять из 10 бит, следовательно в нашем случае максимальные скорости передачи полезной информации будут 30, 120 и 240 байт в секунду. Наука естественно не стоит на месте, и последнее время появились новые протоколы, повышающие скорость и предоставляющие дополнительный сервис. В качестве примера можно привести протоколы MNP и V42/V42bis. Модемы, их поддерживающие, могут автоматически корректировать ошибки, возникающие при передаче, и сжимать передаваемую информацию, что иногда увеличивает производительность. Протоколы передачи V32 и V32bis описывают способ передачи данных со скоростью до 14400 бит в секунду, с возможностью ее автоматического уменьшения или увеличения во время передачи в зависимости от качества линии. Как правило модемы выдерживают совместимость снизу-вверх. То-есть модемы, поддерживающие более совершенные протоколы обмена не перестают тем не менее работать с более старыми моделями. Самое главное, чтобы эти старые модели были стандартными, чего нельзя сказать про некоторые поделки отечественных мастеров. Несмотря на завлекательную рекламу ("1200 !", "2400 !", "высокая надежность !") они способны соединятся только сами с собой, не говоря уже про то, что некоторые из них вместе с сигналом запихивают в линию кучу помех, чем естественно вызывают ярость связистов. Теперь рассмотрим третий вид стандартов - это стандарт на команды модему. Для того, чтобы прояснить, что же такое "команда модему" сделаю одно пояснение: для любого стандартного модема возможны два режима, в которых он может находится. Первый режим - режим передачи данных. Модем принимает данные от компьютера, преобразует их в сигнал, и посылает в телефонную линию. Аналогично, тот сигнал, что пришел из линии преобразуется в данные, и передается компьютеру. Второй режим - командный. В этом режиме никакой модуляции/демодуляции модем не делает, и в линию ничего не посылает. Все данные, которые к нему поступают от компьютера, он рассматривает как команды, и пытается их выполнить. Этот режим является для модема базовым, то-есть когда Вы включаете модем, он начинает свою работу в командном режиме. В этом режиме Вы можете, посылая модему различные команды, заставить его поднять или опустить трубку, набрать номер, включить или выключить динамик, настроить параметры передачи данных. Общепринятым в настоящее время является стандарт на команды, предложенный американской фирмой HAYES (читается [хейз]). Обычно так и пишется "HAYES совместимый набор команд", но иногда его еще называют "AT" совместимым набором - по первым двум буквам, которые обозначают команду. Именно по этим первым буквам модем понимает, что вводимую информацию нужно понимать как команду к исполнению. В своих эксперементах Вы должны учитывать, что любая команда модему должна быть не длиннее 40 символов, и заканчиваться кодом "возврата каретки" (клавиша ENTER), хотя здесь есть несколько исключений, которые мы рассмотрим дальше. Если модем распознал команду, он пытается ее выполнить, и сообщить о результате. Самая простая команда состоит всего из двух букв "AT", она заставляет модем "подать голос", ответить, что с ним все в порядке. Этот ответ выглядит как надпись "OK", выдаваемая модемом. Как правило модемы автоматически настраиваются на скорость и другие параметры КОМ порта, к которому они подключены, так-что любой исправный стандартный модем, находящийся в командном режиме должен откликаться на эту простую команду. Если же модем не может понять тот бред, который на него свалился, он ругается "ERROR", что значит ошибка. Большинство модемов не различают буквы верхнего и нижнего регистра, и игнорируют пробелы, тире и скобки, если они встречаются в командной строке. Это позволяет Вам более наглядно задавать команды (даже чисто внешне команда "AT DP 8 W (044) 123-45-67" выглядит понятнее, чем "AtDp8W0441234567"). Еще одна особенность командного режима, на которую следует обратить внимание - модем не только обрабатывает поступающую к нему информацию, но и передает ее обратно в компьютер. Именно поэтому информация, которую Вы вводите с клавиатуры в терминальной программе выводится обратно на экран. Когда модем находится в режиме передачи данных этого не происходит, вся информация безвозвратно передается модемом в линию, и о том, чтобы возвратить ее Вам на экран должны заботиться программы, работающие с Вашим модемом. составил: Антон Алексеев
|