Временная диаграмма стробируемого порта
Рисунок 9.6. Временная диаграмма стробируемого порта
Передача стробирующего сигнала требует прокладки дополнительных проводов, но с реализационной точки зрения гораздо проще совмещения синхросигнала и данных и поэтому широко применяется в самых разнообразных ситуациях. Большинство стробируемых портов асимметричны: одно из устройств, ведущий (master — хозяин), генерирует стробовый сигнал, а второе ведомый (slave — раб), пользуется этим сигналом для приема или передачи. Нередко вместо одиночного строба используется несколько различных сиг налов — например, один сигнал выставляется передатчиком и сообщает чт следующая порция данных готова, а второй сигнал — приемником и сооб шает, что приемник принял эти данные и готов принять следующие Дополнительные сигналы могут также решать вопрос о том, какое из устройств в данном цикле будет приемником, а какое — передатчиком.
При асинхронном обмене данными передающее устройство посылает специальный стартовый символ, сигнализирующий о том, что сейчас пойдут данные, и с фиксированным интервалом выставляет на своих выходах символы данных. Передаваемый за один прием блок данных обычно невелик по объему — ведь необходимо считаться с опасностью того, что часы приемника и передатчика, посредством которых они отмеряют интервал между последовательными порциями данных, недостаточно точны и могут разойтись. Обычно блок данных состоит из фиксированного количества символов и называется кадром или фреймом (frame). Кадр обычно завершается одним или несколькими стоповыми символами. Не обнаружив этих символов (или обнаружив на месте этих символов неверные значения), приемник может понять, что его часы все-таки разошлись с часами передатчика.
Асинхронная передача позволяет сэкономить на проводах (не требуется стробирующих сигналов) и при этом избежать сложных способов кодирования, характерных для совмещенной синхронной передачи, однако стартовые и стоповые символы составляют значительную часть потока передаваемых данных и создают ощутимые накладные расходы.
Кроме того, при передаче большого объема данных в виде плотно следующих друг за другом кадров велика опасность, что приемник потеряет заголовок очередного кадра и не сможет восстановить структуру потока, поэтому многие асинхронные протоколы требуют паузы между последовательными кадрами.
Асинхронная передача данных удобна в ситуациях, когда объем передаваемых данных невелик, а потребность в их передаче возникает в труднопредсказуемые моменты. Обычно асинхронные порты работают на небольших скоростях, не более нескольких килобит в секунду.
Изохронная передача данных по идее напоминает асинхронную, с тем лишь отличием, что при обмене данными приемник и передатчик пользуются вы-сокостабильными, но независимыми — при использовании одного тактового генератора получится синхронная передача — тактовыми генераторами, и благодаря этому могут обмениваться кадрами большого размера. В идеале, изохронная передача сочетает преимущества синхронной и асинхронной. но на практике сложности обеспечения стабильности и калибровки тактовых операторов достаточно велики и в чистом виде изохронная передача используется очень редко.
Как синхронные, так и асинхронные порты бывают следующих типов (Рисунок 9.7):
- симплексные (simplex — передавать данные может только одно устройство);
- полудуплексные (half-duplex — оба устройства могут принимать и передавать данные, но не способны делать это одновременно, например, потому, что прием и передача идут по одному проводу);
- полнодуплексные (full-duplex) или просто дуплексные (оба устройства способны одновременно передавать и принимать данные, чаще всего -по различным проводам).