Декодирование, анализ номера и выбор направлений
Общая структура этого алгоритма показана на рис. 10. На вход поступает информация, которая должна быть преобразована в другую форму. Пересчет одного числа или набора чисел в другие — довольно распространенная в коммутационной технике операция. В частности, она обусловлена многозначностью системы нумерации одного и того же прибора на телефонной станции. Например, абонентский комплект может иметь следующие номера:
списочный — зафиксированный в абонентском справочнике и поступающий на АТС при наборе номера абонента;
позиционный — номер места включения этого АК в коммутационном поле;
порядковый — тип комплекта и номер в типе;
по вводу — номер линейки определителя;
по выводу — номер линейки управляющего устройства, в которое включены исполнительные элементы;
зоны памяти — номер области, в которой хранятся данные о комплекте.
В процессе установления соединения все эти номера могут преобразовываться один в другой. При разработке АТС всегда стараются упорядочить связь между нумерациями. Наличие закона, определяющего такое преобразование, экономит ресурсы, но, к сожалению, чаще всего такой закон отсутствует.
Рис. 11 Области памяти алгоритма анализа: а) организация памяти при прямом пересчете; б) при двухступенчатом пересчете
Очень простым алгоритмом преобразования (пересчета) является одноступенчатая дешифрация с помощью таблицы, когда каждому исходному номеру, подлежащему пересчету, отводится одна строка таблицы, в которую записывается соответствующий номер в другой системе нумерации. Подобный пример показан на рис. 11, а. Показанный дешифратор предназначен для определения порядкового номера абонентского комплекта. Каждой строке сопоставляется списочный номер (например, 512546), в который записан соответствующий порядковый номер абонентского комплекта (в данном случае АК 1).
Существенное влияние на алгоритмы дешифрации оказывают требования наращивания станции в процессе эксплуатации. Для удобства расширения станции в процессе эксплуатации часто вводится двухступенчатая или многоступенчатая адресация (рис. 11, б).
На современных сетях с узлообразованием число возможных комбинаций первых цифр абонентского номера значительно превышает число направлений с каждой станции. Каждую АТС можно включить в узел исходящего сообщения. При этом внешние связи идут только через узел. Таким образом, число внешних направлений равно 1, и, если номер абонента сети содержит 6 знаков, то одноступенчатая нумерация приведет к огромному объему неэффективно используемой памяти. Учитывая вышесказанное, для уменьшения объема пересчета можно применить последовательный принцип анализа, когда последовательно анализируется каждая отдельная цифра.
Результаты такого анализа могут быть следующими:
данное число цифр (в том числе и одна цифра) достаточно для пересчета направления;
анализ направлений должен быть продолжен с использованием того же числа цифр;
необходимо продолжить анализ с добавлением для анализа еще одной цифры.
Для алгоритма, реализующего этот способ, организуются массивы памяти анализа первой, второй третьей и т.д. цифр номера (рис. 12). Каждая зона массива памяти содержит два слова (на рис. 12 показаны только зоны массива первых цифр). Первое слово содержит в себе эталон, с которым будет сравниваться /-я цифра номера, и адрес (Аь А2, ..., Аn) очередного слова зоны массива первых цифр. В этой зоне находится другой эталон, сравнение с которым осуществляется в случае, если предыдущий эталон совпал с i-й цифрой номера. Если такое совпадение произошло, во втором слове может иметь место один из двух видов информации: номер направлений или адрес массива следующей (i + 1)-й цифры, с эталонами которого надо последовательно сравнить эту цифру
Рис. 12 Массивы алгоритма последовательного анализа цифр:
А,,..., А„ — адреса, по которым осуществляется переход при несовпадении цифры
и эталонов зон той же i-й цифры; B, B2 — направления или адреса, по которым возможен
переход при совпадении цифры и эталона в зону (i + 1)-й цифры; g — признак перехода
по адресу или окончания поиска направления
Эталон представляет собой десятиразрядное слово с информацией, записанной позиционно. Напомним, что в позиционном коде каждой цифре от 0 до 9 соответствует один двоичный разряд, единичное значение которого свидетельствует о наличии этой цифры в слове.
КОММУТАЦИОННЫЕ СТАНЦИИ
Модуль, реализующий этот алгоритм, использует в качестве входных данных заявки от алгоритма приема номера (адреса зоны, где накоплены цифры). Результатом его работы является номер направления.
Алгоритм настраивается на основе таблиц, списочных номеров и соответствующих им направлений (рис. 12). Он осуществляет ряд действий, представленных на рис. 13. Алгоритм начинается с запуска. Затем устанавливается индекс i = 0 (оператор 2), соответствующий первой цифре номера. Далее эта цифра читается (оператор 3) и декодируется в позиционный номер (оператор 4), после чего читается эталон (Эi) (оператор 5) и побитно проверяется на совпадение (оператор 6) с позиционным значением номера (N,).
Рис. 13 Алгоритм пересчета номера
Если получено совпадение позиционного номера и эталона, то проверяется признак во втором слове эталона (оператор 8). Значение g = 0 говорит о том, что в этом слове записан номер направления, который вносится в рабочую ячейку (оператор 9) и является результатом работы алгоритма. Если цифра не совпала с эталоном, то из первого слова эталона читается адрес зоны и эталона, размещенного в этой зоне (оператор 7) и процесс повторяется. При совпадении цифры с эталоном и при g = 1 читается следующая цифра и эталон вторых цифр, адрес которого указан во втором слове зоны (i: = i + 1, оператор 12). При этом проверяется, не превосходит ли индекс (/+1) заданное на сети число цифр (оператор 13). Если не превосходит, читается следующая цифра и процесс повторяется. В противном случае отмечается, что набранный номер соответствует несуществующему направлению (оператор 14).
Рассмотрим конкретный пример. На рис. 14 показаны сетевые соединения станции, обозначенной цифрой 1. От нее к другим АТС имеется шесть направлений, обозначенных шестизначными номерами. Первые два направления характеризуются одним знаком, одно направление — двумя знаками, остальные два — тремя знаками.
Рис. 14 Пример сети связи с нумерацией направлений
На рис. 15 показаны зоны памяти, соответствующие данной сети.
По адресу I в эталоне значением 1 отмечены позиции 5 и 6, соответствующие первому направлению. Номер данного направления записан во втором слове, признак g = 0. В правой части первого слова содержится адрес второй зоны (адрес 2), используемый при несовпадении цифр с эталоном. Значением 1 в эталоне адреса 2 отмечены позиции 7 и 8, соответствующие второму направлению. Адрес 3 в этой зоне указывает, куда надо перейти при несовпадении эталона и цифры. Признак g = 1 в слове с адресом 3 указывает, что в случае совпадения позиционного номера цифры и хотя бы одного разряда эталона нужно перейти в эталон массива вторых цифр по адресу 5. Такой переход диктуется тем, что первая цифра со значением 1 не дает возможности определить направление, поскольку четыре направления (с третьего по шестое) характеризуются номерами, начинающимися с 1 (рис. 14). В конце каждого массива цифр стоит эталон, содержащий все единицы. Он гарантирует, что цифры, не пересчитанные в номер направления или не переадресованные к другим ячейкам, не приведут станцию в тупиковую ситуацию. Таким цифрам приписывается индекс «несуществующее направление». Действия для подобных исходных данных уже отображены общим алгоритмом анализа (см. рис. 13).
При запуске в работу этого алгоритма указывается место, в котором находится информация, подлежащая декодированию. Наиболее распространенный случай — пересчет набранного номера в номер направления установления соединения. В этом случае дается заявка с указанием области памяти процесса, где находится информация, и указанием места, в которое следует записать номер найденного направления.
Рис. 15 Пример отображения участка сети в зонах памяти В зонах памяти отображается сеть, показанная на рис. 14