3.1.1. Последовательная связь

Приём и передача данных ведется при помощи модема, подключенного через последовательный порт компьютера к обычной телефонной линии. При работе в среде Windows используется один из двух существующих протоколов для работы по последовательным линиям связи: РРР или SLIP.

Широко используемый стандартный интерфейс RS-232 предназначен для использования на последовательных линиях связи. Стандарт RS-232 описывает применение интерфейса для последовательной передачи данных между компьютерами и периферийными устройствами, например модемами, принтерами и мышками. Интерфейс RS-232 использует разъемы с 25 контактами (DB-25) или 9 контактами (DB-9). Физические характеристики интерфейса позволяют иметь максимальную длину кабеля 50 футов (около 15 метров). На самом деле кабель хорошего качества может иметь длину в несколько сотен футов. Стандарт описывает назначение и временные параметры всех 25 линий кабеля. Однако вряд ли какая-нибудь реализация RS-232 использует более дюжины линий. Реализация RS-232 в персональных компьютерах требует обязательного наличия всего девяти из них. Нулевой бит в RS-232 передается положительным напряжением, а единичный — отрицательным. Как правило, RS-232 соединяет компьютер с модемом, а уж модем по телефонному кабелю соединяется с Интернет.

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

Когда вы используете модем и программное обеспечение для обмена данными, вы настраиваете определенные параметры связи, такие, как скорость, размер данных, контроль четности и т. д. Для успешной работы двух модемов по последовательной линии (такой, как телефонная сеть) оба они должны быть одинаково настроены. Параметры связи часто указываются как скорость, за которой следуют прочие параметры, например, в таком формате: 8-N-1. Если вы имеете опыт работы с модемом, то наверное знаете, что цифра 8 здесь означает длину слова в битах, которым обмениваются модемы. В процессе обмена каждый модем передает или принимает одно такое слово в момент времени.

Четность

Контроль четности применяется компьютерами, модемами и другими устройствами для проверки целостности данных. Данные по последовательному каналу передаются в виде нулей и единиц (бит данных). Данные делятся на слова фиксированной и заранее известной длины. Обычно это восемь бит. Однако некоторые протоколы последовательного соединения требуют, чтобы к такому слову добавлялся еще один служебный бит, называющийся битом четности. При этом соблюдается одно из двух следующих правил. Правило нечетности: добавлять такой бит, чтобы количество единиц в любом слове всегда было нечетно. Правило четности: добавлять такой бит, чтобы количество единиц в словах всегда было четно.

Чтобы удостовериться, что данные не повреждены, модем на принимающей стороне просто подсчитывает количество единиц в каждом слове (пакете). Предположим, что модемы используют “нечетный” протокол для обмена данными. Тогда если принимающий модем обнаружит в каком-то слове четное количество бит, он будет знать, что в принятом слове ошибка. Знание этого позволит модему предпринять определенные действия. Он может просто выбросить пакет, либо попросить передающий модем повторить передачу поврежденного пакета. В параметрах связи типа 8-N-1 буква N означает отсутствие контроля четности. Работа без контроля четности значит, что к пакету данных бит четности не добавляется.

Стартовые и стоповые биты

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

Стартовые и стоповые биты применяются, чтобы принимающая сторона могла отличить пассивное состояние линии от состояния передачи данных. Ведь когда линия не занята, ее состояние может быть расценено как длинная последовательность нулей. Перед тем как передать данные, модем посылает стартовый бит, говорящий: “Эй, приготовься принимать мои данные”. После передачи собственно пакета данных модем посылает стоповый бит для перевода линии связи опять в состояние “выключено”. Пакет данных, посланный по протоколу 8-N-1, будет иметь длину в десять бит; один стартовый бит, восемь бит данных, ни одного бита четности и один стоповый бит.

Боды и биты в секунду

Довольно часто встречается мнение, что термин “бод” равен скорости, измеренной в битах в секунду. Другими словами, люди считают, что скорость 1200 бод равна скорости 1200 бит в секунду (bits-per-second, bps). Однако это неправильно. Модемы и другие передающие устройства посылают данные пакетами по восемь бит, вложенные между одним стартовым битом, одним стоповым битом и часто снабжаемые битом четности. Таким образом, каждый пакет данных имеет длину в десять или одиннадцать бит. Например, линия связи со скоростью 1200 бод передает в действительности от 110 до 120 байт в секунду. Аналогично, модем на 9600 бод передает от 850 до 960 байт в секунду. Используя технологии сжатия данных, новые модели модемов могут достигать очень высоких скоростей на тех же линиях связи.

Повстречавшись с термином “бод”, вы можете с большой долей точности заменить его на “бит в секунду”. Однако не забывайте, что при этом речь ведется не только о битах данных, но также и обо всех служебных битах, которые мы рассмотрели, не несущих полезной информации, а только облегчающих передачу данных по линии связи. Если модемы используют сжатие данных, действительная скорость передачи может превысить скорость линии, измеренную в битах в секунду, на 200 %!