Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новый вариант ПО.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
6.18 Mб
Скачать

3.2.1 Структура системы коммутационных программ

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

Каждый этап Eik может быть разделен на три фазы (рисунок 3.3):

  1. фазу приема входного сигнала (обнаружения события);

  2. фазу обработки полученного сигнала, выбора внутреннего состояния и формирования соответствующего выходного сигнала (принятие решения);

  3. фазу выдачи выходного сигнала перевода коммутационного оборудования (объекта управления) в новое состояние.

Рисунок 3.3 – Фазы этапа обслуживания вызова

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

  1. приема информации (обнаружения событий);

  2. обработки информации (принятия решения);

  3. выдачи информации (последовательности периферийных команд).

В этом случае на каждом этапе обслуживания вызова выполняется несколько программ, которые работают во времени независимо друг от друга. Взаимосвязь программ обеспечивается с помощью заявок, формируемых одной программой на выполнение следующей программы (рисунок 3.4). Общее взаимодействие и очередность выполнения программ из каждого вида обеспечивается средствами диспетчеризации (операционная система).

Рисунок 3.4 Структура системы коммутационных программ

Началу обслуживания вызова на любом этапе всегда предшествует выполнение программ приема сигналов (программ сканирования) о состоянии контрольных точек приборов, которые поступают от коммутационного оборудования. Всякое изменения состояния опрашиваемых контрольных точек воспринимается как заявка на выполнение определенного этапа обслуживания вызова. Заявки накапливаются в буфере. Обслуживание заявки начинается с момента выборки её из буфера. Программы обработки информации выполняют все функции, предусмотренные текущим этапом обслуживания вызова. Для реализации функций используются данные массивов состояния оборудования, справочные данные. После окончания работы программ обработки начинают работу программы формирования управляющих воздействий – последовательности периферийных команд, которые накапливаются в буфере. Выдачей команд из буфера управляют программы выдачи информации. На этом текущий этап обслуживания вызова заканчивается, а данные об устойчивом состоянии фиксируются в специальной области памяти – регистре вызова.

3.2.2 Буферы заявок

Процесс обслуживания каждого конкретного вызова заключается в выполнении для него определенной последовательности коммутационных программ. Эта последовательность в простейшем случае может быть организована путем непосредственной передачи управления от предшествующей программы к следующей. Однако, непосредственная передача управления между программами невозможна, т.к. вызовы обслуживаются в многопрограммном режиме и находятся для разных абонентов на разных этапах. Запуск программ обеспечивает операционная система, получая заявки для запуска через очередь или буферы заявок (рисунок 3.5).

РВ – регистры вызова

Рисунок 3.5

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

Принципы организации буферов заявок наиболее просто реализуются в виде списков. Очередь заявок образуется из номеров регистров вызова.

3.3 Алгоритмы основных типов коммутационных программ

3.3.1 Программная организация процесса приема информации

В состав логической схемы организации процесса приема информации от комплектов входят следующие функциональные блоки (рисунок 3.6):

О – определители состояний (сканерные устройства), периферийные управляющие устройства;

ПАУ – периферийное адресное устройство;

РгПр и РгПер – соответственно регистры приема и передачи;

АЛБ – арифметико-логический блок;

МСКТ – массив состояний контрольных точек;

МЗО – массив заявок на обслуживание;

МППК – массивы последовательностей периферийных команд.

К каждому определителю подключается сканерная матрица, образованная из контрольных точек (КТ) комплектов (рисунок 2.23). Размер матрицы зависит, в основном, от разрядности ячеек запоминающих устройств ЭУС. Каждая линейка сканерной матрицы содержит по n контрольных точек, как правило, 8, 16 или 32. Структуры МСКТ, МППК соответствуют структурной организации сканерных матриц и определителей. Массив МСКТ подразделяется на k подмассивов. Число ячеек каждого подмассива равно числу линеек сканерной матрицы, разрядность ячеек соответствует количеству КТ в линейке. Число подмассивов в МСКТ равно количеству сканерных матриц (количеству определителей). Значения двоичных разрядов МСКТ отражают предыдущее состояние КТ. Массив МППК также подразделяется на подмассивы, количество которых равно числу определителей. В каждую ячейку МППК записана команда, содержащая адрес для обращения к определенной линейке сканерной матрицы. Этот адрес необходим для выполнения очередного сканирования линейки матрицы. Адрес состоит из двух частей: адреса определителя (адреса сканерной матрицы) и адреса линейки в матрице.

Рисунок 3.6 – Программная организация сканирования контрольных точек комплектов

ЭУС контролирует изменение состояний различных устройств посредством выполнения программ сканирования, которые специализированы по типам устройств, но имеют одинаковую алгоритмическую структуру. Порядок действий программ сканирования в соответствии с обобщенной схемой (рисунок 3.6) следующий:

1) периферийная команда из МППК передается в РгПер;

2) из РгПер адрес определителя пересылается в ПАУ, обеспечивающее выбор заданного определителя;

3) из РгПер в выбранный определитель передается адрес линейки, в результате чего нужная линейка сканерной матрицы становится доступной для опроса КТ;

4) с выбранной линейки матрицы в РгПр считывается текущее состояние КТ в виде слова очередного сканирования;

5) из РгПр слово очередного сканирования подается на АЛБ;

6) из МСКТ считывается слово предыдущего сканирования и передается в АЛБ, который осуществляет сравнение слов очередного и предыдущего сканирования;

7) выявленные изменения в состояниях КТ записываются в МЗО в виде номеров комплектов;

8) в МСКТ производится замена слова предыдущего сканирования на слово очередного сканирования.

3.3.2 Алгоритм программы обнаружения сигналов вызова и отбоя

Алгоритм приема сигналов вызова и отбоя (рисунок 3.7) оперирует данными о состоянии контрольных точек (КТ) абонентских комплектов (АК): считывается текущее состояние КТ АК (R1), сравнивается с данными предыдущего опроса этих КТ (R2). В результате сравнения выявляются комплекты, в которые поступили сигналы вызова (изменение состояния КТ с “0” на “1”) и отбоя (изменение состояния КТ с “1” на “0”). Операция сравнения проводится одновременно для n комплектов (n – разрядность ячеек памяти и количество КТ в одной линейке сканерной матрицы). Для выявленных комплектов формируются заявки к программам базового уровня, обеспечивающим дальнейшую обработку поступивших сигналов.

Выделение сигналов вызова и отбоя осуществляется на основе логических операций поразрядной конъюнкции и сложения по модулю два над машинными словами R1, R2, R0:

  • для обнаружения изменения состояния выполняется операция сложения по модулю два над словами текущего и предыдущего состояния КТ R3 = R1 Å R2;

  • полученный результат необходимо проанализировать на наличие заблокированных комплектов, для этого выполняется операция логического умножения со словом блокировки R4 = R3 L R0. Если АК заблокирован, не должно быть реакции на изменение состояния его КТ;

  • для выделения комплектов, где зафиксирован сигнал вызова, выполняется операция логического умножения R5 = R4 L R1;

  • для выделения комплектов, где зафиксирован сигнал отбоя, выполняется операция сложения по модулю два R6 = R4 Å R5.

Если обнаружено несколько комплектов с изменением состояний КТ, организуется очередь. Порядок комплектов в очереди определяется на основе операции поиска крайней левой единицы в словах R5 и R6. Заявки на обслуживание выявленных событий записываются в буфер заявок в порядке очереди. Алгоритм продолжает свою работу до тех пор, пока не будут опрошено заданное количество линеек сканерных матриц. Это количество задается параметром К, который устанавливается при запуске алгоритма.

R1 – слово текущего состояния КТ, считывается со сканерной матрицы

R2 – слово предыдущего состояния, считывается из памяти состояний КТ

R0 – слово, отражающее активность комплекта (блокировка, работа), считывается из массива состояний приборов

Рисунок 3.7 –Алгоритм программы обнаружения вызова и отбоя