¦¦ ¦ ЪДДДДДДДД БайтДДДДДДДДДДД¬ ¦
¦¦ 7 6 5 4 3 2 2 1 ¦ ¦
¦АДДЩ АДЩАДЩАДЩАДЩАДЩАДЩАДЩАДЩЪДДДПосылаемый один символДДДД¬ ¦
АДДД¬ ¦A¦¦B¦¦7¦¦6¦¦5¦¦4¦¦3¦¦1¦¦0¦¦C¦ ¦ ¦
ЪДДДДДВДДДДДДДДДВДДДДД¬ АДЩАДЩАДЩАДЩАДЩАДЩАДЩАДЩАДЩАДЩ ¦
¦ ¦ ¦ ¦ D ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
АДДДДДБДДДДДДДДДБДДДДДЩ к модему --> ¦
¦ скорость в бодах UART в последовательном адаптере PC
А Д Д Д Д Д Д Д Д Д Д ДД Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Щ
Рис.8-1. Асинхронная последовательная связь.
A-стоп; B-четность; C-начало; D-сдвиговый регистр
- 8-3 -
янии логического нуля, говорится, что она стоит в режиме
выдерживания интервалов. Таким образом, логические единица и ноль
рассматриваются, соответственно, как MARK и SPACE.
В асинхронной связи изменение условия состояния линии с MARK
на SPACE означает начало символа (смотри рисунок 8-2). Это назы-
вается стартовым битом. За стартовым битом следует комбинация би-
тов, представляющая символ, и затем бит контроля четности. Нако-
нец, линия переходит в состояние ожидания MARK, которая
представляет собой стоповый бит и означает конец текущего симво-
ла. Число битов, используемых для представления символа, называ-
ется длиной слова и обычно бывает равно семи или восьми. Конт-
рольный бит используется для выполнения элементарной проверки на
наличие ошибки.
<--------- Направление передачи
Линия Линия возвращается в
свободна свободное состояние
A
B ДДДД¬ Ъ Д В Д В Д В Д В Д В Д В Д В Д В Д ВДДДВДДДДДДД¬ Ъ Д Д
¦ ¦ 0 1 2 3 4 5 6 7 ¦ ¦
C Д Д АДДЩ Д Б Д Б Д Б Д Б Д Б Д Б Д Б Д Б Д Б Д Б Д Д Д АДДЩ Д Д
АДДДДДДДД 7 или 8 бит данных ДДДЩ
Стартовый бит четности¦ Начало другого
бит ¦ символа
бит стоповый
Время ----->
Рис.8-2. Представление в асинхронной последовательной
связи формата одиночного символа
A-длительность 1 бита; B-MARK или 1; C-SPACE или 0
Как передатчик (или приемник) узнают о длительности каждого
бита? Действительно, и передатчик, и приемник должны знать его
длительность или детектирование битов будет невозможно. Длитель-
ность каждого бита определяется генераторами тактовых импульсов
приемника и передатчика. Отметим, однако, что генераторы в прием-
нике и передатчике должны иметь одну и ту же частоту, но не тре-
буется, чтобы они были синхронизированы. Выбор частоты генератора
зависит от скорости передачи в бодах, которая означает число из-
менений состояния линии каждую секунду. Номинально тактовая час-
тота "16-кратная скорость передачи в бодах" означает, что линия
проверяется достаточно часто для надежного распознавания старто-
вого бита.
Существует одно обычное состояние линии, которое иногда ис-
пользуется для привлечения внимания приемника. Нормальным состоя-
нием линии является MARK (или 1) и начало символа определяется
переходом SPACE (0). Если линия находится в состоянии SPACE в те-
чение периода времени большем, чем время, которое она затратила
бы на получение всех битов символа, тогда мы говорим, что насту-
пило состояние BREAK. В кодах ASCII отсутствует представление
BREAK - это означает, что линия "умерла" на непродолжительный
промежуток времени, который составляет BREAK.
- 8-4 -
Контроль по четности и обнаружение ошибок
Ранее мы упоминали, что бит контроля четности полезен для об-
наружения ошибок. Например, если выбрана проверка на четность,
этот бит устанавливается таким образом, что общее число единиц в
текущем слове является четным (такая же логика используется для
проверки на нечетность). В приемнике четность вычисляется заново
и сравнивается с битом контроля четности. Если они не равны, то
приемник сообщает, что имеет место ошибка четности. Главный не-
достаток обнаружения ошибки посредством проверки на четность зак-
лючается в том, что можно только обнаружить ошибки, которые вли-
яют на один единственный бит. Например, битовая комбинация 0100
0001 0 (ASCII A), переданная восемью битами с проверкой на чет-
ность, может измениться (скажем,из-за шума в линии) на 0100 01110
(ASCII G), однако приемник не обнаружит ошибку, так как провер-
ка на четность выполняется.
Связь с использованием стандарта RS-232C.
Ранее мы упоминали о передаче по телефонной линии единиц и
нулей. Несмотря на то, что в персональном компьютере мы пред-
ставляем единицы и нули посредством уровней напряжения, сигналы,
передаваемые по телефонной линии обычно являются тонами различной
частоты. Устройство, которое находится между аппаратурой персо-
нального компьютера и передающей линией и делает возможной пере-
дачу данных, называется модемом (модулятор/демодулятор). Модем
может преобразовывать информацию в представление "напряжение/нет
напряжения" цифровых схем и обратно, а так же аналоговые сигналы
(например, тоны), предназначенные для передачи по телефонной ли-
нии. Стандарты, такие как RS-232C (выдвинутый Ассоциацией элект-
ронной промышленности, EIA), описывают метод обмена информацией
между модемом (или, в соответствии с терминологией ассоциации
EIA, "аппаратура передачи данных, DCE") и связной аппаратурой
персонального компьютера (или "оконечная аппаратура обработки
данных, DTE"). Модем может работать в двух режимах: полудуплекс-
ном и дуплексном. В полудуплексном режиме модем может осущест-
влять передачу только в одном направлении в один промежуток вре-
мени, в то время как при работе в дуплексном режиме
осуществляется независимая двухсторонняя связь. Стандарт RS-232C
обеспечивает управление такими сигналами, как "запрос-на-передачу
(RTS)" и "открыт-для -передачи (CTS)", которые могут быть исполь-
зованы для координации процесса передачи и приема данных. Термин
"квитирование установления связи" используется для описания коор-
динации приема и передачи сигналов. Как показано на рисунке 8-3,
стандарт RS-232C соответствует кабелю и соединителям, используе-
мым для связи персонального компьютера и модема.
Несмотря на то, что мы использовали модем в качестве примера
аппаратуры передачи данных (DCE), другие устройства, такие как
"мышь" или принтер с соответствующей схемой, также могут обмени-
ваться данными с персональным компьютером через последовательный
порт. Таким образом, в этой главе все упоминания о модеме прием-
лемы в равной степени как к последовательному принтеру так и к
последовательной "мыши".
- 8-5 -
Ъ Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д ¬
ОАОД ЪДДДДД Номер контакта ДДДДДДДД¬ DCE
¦ ЪДДДДД¬ ЪДДДДД¬ ¦
¦ 2ГДДДДДДДДДДДДДПДДДДДДДДДДДДДДДґ 2 ¦
¦ ¦ 3ГДДДДДДДДДДДДДДПДДДДДДДДДДДДДДґ 3 ¦ ¦
¦ 4ГДДДДДДДДДДДДДЗПДДДДДДДДДДДДДДґ 4 ¦
¦ ¦ 5ГДДДДДДДДДДДДОДПДДДДДДДДДДДДДДґ 5 ¦ ¦
¦ 6ГДДДДДДДДДДДДГПДДДДДДДДДДДДДДДґ 6 ¦ к
¦ ¦ ЪДД7ГДДДДДДДДДДДОбщийДДДДДДДДДДДДДґ 7ДД¬¦ ¦ телефонной
¦ 8ГДДДДДДДДДДДДСПЛДДДДДДДДДДДДДДґ 8 ¦ линии
¦ ¦ 20ГДДДДДДДДДДДДТДГДДДДДДДДДДДДДДґ20 ¦ ¦
¦ 22ГДДДДДДДДДДДДДRIДДДДДДДДДДДДДДґ22 ¦ ¦
¦ ¦ .¦ ¦ . ¦ ГДДДД¬ ¦
¦ .¦ ¦ . ¦ ¦ ¦
ЪДґ ¦ .¦ ¦ . ¦ ¦ ¦ ¦
RS ---> ¦ АДДДДДЩ АДДДДДЩ ¦ ¦
¦ А Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Щ ¦ ¦
ЪДДДБДДДД¬ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
ЪДДБДДДДДДДДБДД¬ ЪДБДДДБД¬
¦ ¦ ¦ ¦
АДДДДДДДДДДДДДДЩ АДДДДДДДЩ
PC или ОАОД Модем или АПД
Рис.8-3. Связь RS-232C.
ОАОД - оконечная аппаратура обработки данных; RS - кабель RS-232C;
ПД - передача данных; П - прием данных; ЗП - запрос на передачу;
ОДП - открыт для передачи; ГПД - готов к передаче данных;
ДСПЛ - детектор сигнала приемной линии; ТДГ - терминал данных
готов; АПД - или аппаратура передачи данных
Управление потоком с помощью XON/XOFF
В дополнение к квитированию установления связи посредством
аппаратных сигналов RTS/CTS, для достижения управления потоком с
использованием программного обеспечения применяются специальные
управляющие символы ASCII (Control-Q/Control-S или XON/ XOFF).
Управлять потоком необходимо ввиду того, что иногда либо передат-
чик либо приемник не могут поддерживать скорость передачи и они
должны иметь возможность информировать другую сторону о необходи-
мости остановки на время, требуемое для того, чтобы отставшая
сторона смогла догнать другую.
Предположим, что приемник имеет буфер для хранения поступаю-
щих символов. Как только буфер после заполнения закрывается, при-
емник может послать символ XOFF передатчику, сигнализируя, что
передача должна быть приостановлена. Конечно, приемник должен по-
нять значение XOFF и прекратить передачу символов. Затем, когда
приемник обработает символы (скажем, запишет их в файл на диске)
и буфер освободится, тогда посылается символ XON, показывающий,
что передача может быть продолжена. Эта схема управления потоком
широко применяется ввиду ее простоты. Большинство связных прог-
рамм предоставляют возможность дуплексной связи с управлением по-
током, основанном на применении символов XON/XOFF.
- 8-6 -
Последовательный порт с точки зрения программиста
Аппаратура последовательного порта в системах MS-DOS известна
как последовательный адаптер или асинхронный связной адаптер (да-
лее мы будем называть его последовательным адаптером). Адаптер