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