Как же все происходит? Специальное устройство из нескольких микросхем (так сказать, "группа контроля") следит за взаимным положением импульсов записи и считывания. Пусть расстояние между соседними нарами этих импульсов постепенно начинает уменьшаться. Значит, местный генератор ускорил свой бег и импульсы считывания начали следовать быстрее. Как только контролируемый интервал уменьшится до критической величины, наш строгий контролер подаст сигнал тревоги: "пустой" интервал возник раньше. Поскольку ему еще не время появляться, другое устройство (тоже группа микросхем) введет в этот пустой интервал ложный импульс, не несущий никакой информации. Своего рода "обманку", "пустышку". Все происходит так же, как и в случае с нашими часами, когда, подводя их вперед, мы добавляем потерянные секунды. Вот и здесь мы тоже добавляем как бы потерянный импульс. Так достигается согласование, или выравнивание, скоростей записи и считывания цифровых потоков, которое в данном случае называется положительным.
Вы спросите, почему же обязательно нужно вставлять ложный импульс, не лучше ли взять, да и "притормозить" чуть-чуть генератор тактовых импульсов? Нет, нельзя. Дело в том, что тактовые импульсы разных цифровых потоков могут, в принципе, и не совпадать точно друг с другом, а генератор - один на всю систему передачи. Представим, что будет, если начать его непрерывно "дергать", подстраивая то под один цифровой поток, то под другой. Тут единственный путь - вставлять по мере необходимости в каждый из потоков ложные импульсы.
Любопытно, что в американской технической литературе описанная выше процедура согласования скоростей называется коротко одним словом: staffing. По-русски ого произносится как "стаффинг", а переводится как "вставка".
Так вот откуда он взялся, этот литературный герой приведенного в начале главы детективного сюжета! - воскликнет читатель. - Значит, это его нужно "опознать" и "ликвидировать"? Конечно. Ведь на приемной станции неизвестно, что передан ложный импульс, а не информационный.
После того как в низкоскоростной цифровой поток введен ложный импульс, нужно передать на приемную станцию команду: "Внимание! Произошло согласование скоростей". (Для иностранных читателей: "Attention! Staffing!".) Она служит сигналом для "ликвидации" на приеме ложного импульса. Такой командой может служить, например, посылка по служебному каналу единичного бита. В качестве служебного канала можно договориться использовать один из "законных" пустых интервалов, не занятый синхроимпульсом. Итак, если на приемной стороне в служебном интервале объединенного цифрового потока появляется 1, это означает, что из выделенного низкоскоростного потока нужно исключить очередной импульс - он ложный. А пока по служебному каналу поступают нули, исключать импульсы не надо - они все информационные.
Посылать по линии команду, состоящую всего из одного бита, крайне неосторожно. Под воздействием помех 1 может превратиться в 0, а 0 - в 1, и тогда случится непоправимое - информация будет декодирована неправильно. Поэтому для большей надежности команду согласования скоростей многократно дублируют, например, посылая ее 3 раза. В данном случае она будет иметь вид 111. Теперь, если в ней после воздействия помех останется только одна 1, команда все равно будет воспринята. Комбинацию же 000 нужно понимать так: согласование скоростей не производилось и пока все идет нормально.
До сих пор речь шла о том, что местный генератор может только "убежать вперед". Но с таким же успехом он может и "отставать", вырабатывая импульсы считывания реже, чем необходимо. Может случиться так, что в цифровом потоке уже должен появиться "пустой" интервал, а тактовые импульсы из-за замедленной их скорости до сих пор еще не считали из ЗУ предшествующий ему информационный импульс. Что делать в таком случае? Придется исключить из цифрового потока этот "неудачливый" бит и предоставить временной интервал "по расписанию" для передачи очередной порции служебной информации (скажем, синхроимпульса). Только так можно согласовать, или выровнять, скорости тактовых импульсов записи и считывания. Такое согласование получило название отрицательного. Не напоминает ли вам подобное действие операцию с часами, когда, подводя стрелки вперед, мы исключаем часть секунд из пути, пройденного стрелкой?
Читать дальше