Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MIET_A5 / MIET_A5.doc
Скачиваний:
363
Добавлен:
17.04.2013
Размер:
16.21 Mб
Скачать
    1. Частичное восстановление кадра при обнаружении проскальзывания

      1. Битовые проскальзывания

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

Для устранения проскальзываний используется буферная память типа FIFO – своего рода сглаживающий резервуар, включенный между устройствами; данные втекают и вытекают из него с почти равными скоростями. Проскальзывания возникают при переполнении или опустошении буфера, что, по сути, эквивалентно его отсутствию. Чтобы выявить природу искажений, рассмотрим модель передачи данных между устройствами 1 и 2 в отсутствие буфера (рис.5.5, б – г).

Модель построена на основе сдвигового регистра. Классический сдвиговый регистр (рис.5.5, а) содержит ряд последовательно включенных D-триггеров (в нашем примере – два триггера) с общей цепью синхронизации от генератора импульсов G. По положительному фронту синхроимпульса сигнал с выхода В триггера D1 переписывается на выход F триггера D2. Одновременно в триггер D1 принимается бит

Рис.5.58. Двухразрядный сдвиговый регистр (а) и неудачные попытки его использования для передачи данных между устройствами 1 и 2 (б – г)

данных с входа А. Отрицательный фронт синхроимпульса не изменяет состояния сигналов в точках В и F. При поступлении следующего положительного фронта импульса процесс повторяется и т.д.

Совершенно иная картина наблюдается в том случае, когда триггеры D1 и D2 синхронизируются от независимых генераторов G1 и G2 с одинаковыми номинальными частотами (рис.5.5, б). Сколь бы близкими не были эти частоты, всегда существует дрейф взаимного фазового сдвига между синхросигналами. В некоторые моменты, повторяющиеся, например, с периодом 10 с, фазовый сдвиг равен нулю; в промежутках между ними он увеличивается в ту или иную сторону в зависимости от соотношения частот генераторов. В критические моменты, которые повторяются с тем же периодом, происходит дублирование либо потеря бита, передаваемого по цепочке триггеров.

Предположим, что частота генератора G2 чуть превышает частоту генератора G1. Тогда выходной поток данных DOUT будет чуть более интенсивным, чем входной поток DIN. В нашем примере через каждые 10 с к выходному потоку будет добавляться один лишний бит, так как за это время генератор G2 успел опередить генератор G1 на один синхроимпульс. Откуда возьмется дополнительный бит? Не иначе как с выхода триггера D1, но тогда этот бит будет повторять уже переданный ранее. (Это логический подход к анализу происхождения лишнего бита, но к тем же результатам приводит и чисто схемотехнический подход.)

Данная ситуация поясняется рис.5.5, в. Первоначально входная последовательность данных соответствует выходной (нумерация битов условная). Но в некоторый промежуток времени, как показано на рисунке двумя расходящимися стрелками, бит D82 успевает дважды подряд записаться в выходной триггер, а далее соответствие временно сохраняется.

При обратном соотношении частот генераторов “предложение превышает спрос”, и поэтому в каждом цикле фазовых гонок неизбежно теряется один бит из входного потока (рис.5.5, г, бит D82).