Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения
 

Анализ алгоритма установления соединения для оптических сетей и моделирование передачи данных

Работа из раздела: «Коммуникации, связь, цифровые приборы и радиоэлектроника»

/

/

Введение

алгоритм сеть оптический

До последнего десятилетия практически все коммуникационные решения строились в расчете на поддержку телефонии. И сегодня телефон остается самым распространенным видом клиентского оборудования; однако рост пропускной способности корпоративных локальных сетей, оснащение компьютерных систем гигабитными сетевыми адаптерами, развитие таких приложений, как видео по запросу, потоковое видео, интерактивные игры, видеоконференции, VoIP, VoD, IPTV, HDTV, а также расширение задач бизнеса определяют увеличение спроса на услуги широкополосного доступа и в корпоративном сегменте, и в общественном секторе.

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

Строительство сетей доступа в настоящее время главным образом идет по четырем направлениям:

- сети на основе существующих медных телефонных пар и технология xDSL;

- гибридные волоконно-коаксиальные сети;

- беспроводные сети;

- волоконно-оптические сети.

Использование постоянно совершенствующихся технологий xDSL - самый простой и недорогой способ увеличения пропускной способности существующей кабельной системы на основе медных витых пар. Для операторов такой путь является наиболее экономичным и оправданным, когда требуется обеспечить скорость до 1 Мбит/c. Однако, скорость передачи до десятков мегабит в секунду на существующих кабельных системах, с учетом больших расстояний (до нескольких км) и низкого качества меди, представляется не простым и более дорогим решением.

Другое традиционное решение - гибридные волоконно-коаксиальные сети (HFC, hybrid fiber-coaxial). Подключение множества кабельных модемов на один коаксиальный сегмент приводит к снижению средних затрат на построение инфраструктур сети в расчете на одного абонента и делает привлекательным такие решения. В целом же здесь сохраняется конструктивное ограничение по полосе пропускания.

Беспроводные сети доступа могут быть привлекательны там, где возникают технические трудности для использования кабельных инфраструктур. Беспроводная связь по своей природе не имеет альтернативы для мобильных служб. В последние годы наряду с традиционными решениями на основе радио- и оптического Ethernet доступа, все более массовой становится технология WiFi, позволяющая обеспечить общую полосу до 10 Мбит/c и в ближайшей перспективе до 50 Мбит/c.

Следует отметить, что для трех перечисленных направлений дальнейшее увеличение пропускной способности сети связано с большими трудностями, которые отсутствуют при использовании такой среды передачи, как волокно.

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

При этом имеется множество вариантов выбора волоконно-оптической технологии доступа. Наряду со ставшими традиционными решениями на основе оптических модемов, оптического Ethernet, технологии Micro SDH, появились новые решения с использованием архитектуры пассивных оптических сетей PON (passive optical network).

PON (G.983) - это современная технология широкополосного мультисервисного множественного доступа по оптическому волокну древовидной структуры.

Технология PON позволяет с использованием одного волокна организовать полностью пассивную оптическую сеть доступа для 32 и более узлов в радиусе 20 км, предоставляя Ethernet и до 4 Е1 в каждом узле. Одна из главных задач, стоящих перед современными телекоммуникационными сетями доступа - так называемая проблема «последней мили», предоставление как можно большей полосы пропускания индивидуальным и корпоративным абонентам при минимальных затратах. [7]

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

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

В первой части дипломной работы излагается общая характеристика технологии, принципы ее функционирования, приводятся стандарты сетей PON, рассматриваются преимущества перед другими вариантами построения сети.

Во второй части подробно рассматривается сам процесс установки соединения, приводится структура кадра, ошибки в ONU и OLT, которые могут возникнуть на стадии подключения нового абонентского устройства, служебные сообщения. Так же в ней описывается метод определения дальности, который используется для расчета временного интервала для функционирования оконечного узла в сети PON.

Третья часть посвящена моделированию алгоритма выделения временного окна для вновь подключающегося ONU. Разработанная программа позволяет проанализировать в каком интервале сможет вести передачу и прием оконечное устройство в зависимости от задержки, рассчитываемой с помощью процедуры измерения дальности.

1. Общая характеристика PON

Развитие сети Internet, в том числе появление новых услуг связи, способствует росту потоков данных, передаваемых по сети и заставляет операторов искать пути увеличения пропускной способности транспортных сетей. При выборе решения необходимо учитывать:

- разнообразие потребностей абонентов;

- потенциал для развития сети;

- экономичность.

На развивающемся телекоммуникационном рынке опасно как принимать поспешные решения, так и дожидаться появления более современной технологии. Тем более, что такая технология уже появилась - это технология пассивных оптических сетей PON (passive optical network). Распределительная сеть доступа PON, основанная на древовидной волоконной кабельной архитектуре с пассивными оптическими разветвителями на узлах, возможно, представляется наиболее экономичной и способной обеспечить широкополосную передачу разнообразных приложений. При этом архитектура PON обладает необходимой эффективностью наращивания и узлов сети, и пропускной способности, в зависимости от настоящих и будущих потребностей абонентов. [3]

Основная идея архитектуры PON - использование всего одного приемопередающего модуля в OLT для передачи информации множеству

абонентских устройств ONT и приема информации от них. Число абонентских узлов, подключенных к одному приемопередающему модулю OLT, может быть настолько большим, насколько позволяет бюджет мощности и максимальная скорость приемопередающей аппаратуры. Для передачи потока информации от OLT к ONT - прямого (нисходящего) потока, как правило, используется длина волны 1550 нм. Наоборот, потоки данных от разных абонентских узлов в центральный узел, совместно образующие обратный (восходящий) поток, передаются на длине волны 1310 нм.

На рисунке 1.1 изображена типичная пассивная оптическая сеть PON, в которой используются различные терминаторы оптической сети (optical network termination, ONT) или устройства оптической сети (optical network unit, ONU). ONT предназначены для использования отдельным конечным пользователем. Устройства ONU обычно располагаются на цокольных этажах или в подвальных помещениях и совместно используются группой пользователей. Голосовые сервисы, а так же услуги передачи данных и видео доводятся от ONU или ONT до абонента по кабелям, проложенным в помещении абонента. [4]

Рис. 1.1. Архитектура пассивной оптической сети (PON).

1.1 Преимущества волоконно-оптических сетей

Одним из главных преимуществ PON является тот факт, что в таких сетях используется именно оптическое волокно вместо медных кабелей.

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

Пассивная оптическая сеть доступа PON (Passive Optical Network), основанная на древовидной волоконной кабельной архитектуре с пассивными оптическими разветвителями на узлах представляется как одна из наиболее экономичной и способной обеспечить широкополосную передачу разнообразных приложений. При этом архитектура PON обладает необходимой эффективностью наращивания как узлов сети, так и пропускной способности в зависимости от настоящих и будущих потребностей абонентов. [4]

1.2 Стандарты PON

Первые шаги в технологии PON были предприняты 1995 году, когда влиятельная группа из семи компаний (British Telecom, France Telecom, Deutsche Telecom, NTT, KPN, Telefoniсa и Telecom Italia) создала консорциум для того, чтобы претворить в жизнь идеи множественного доступа по одному волокну. Эта неформальная организация, поддерживаемая ITU-T, получила название FSAN (Full Service Access Network). Много новых членов - как операторов, так и производителей оборудования - вошло в нее в конце 90-х годов. Целью FSAN была разработка общих рекомендаций и требований к оборудованию PON для того, чтобы производители оборудования и операторы могли сосуществовать вместе на конкурентном рынке систем доступа PON. На сегодня FSAN насчитывает 40 операторов и производителей и работает в тесном сотрудничестве с такими организациями по стандартизации, как ITU-T, ETSI и ATM форум.

APON/BPON

В середине 90-х годов общепринятой была точка зрения, что только протокол ATM способен гарантировать приемлемое качество услуг связи QoS (Quality of Service - Качество Услуг) между конечными абонентами. Поэтому FSAN, желая обеспечить транспорт мультисервисных услуг через сеть PON, выбрал за основу технологию ATM. В результате в октябре 1998 года появился первый стандарт ITU-T G.983.1, базирующийся на транспорте ячеек ATM в дереве PON и получивший название APON (ATM PON). Далее в течение нескольких лет появляется множество новых поправок и рекомендаций в серии G.983.x (x=1-7), скорость передачи увеличивается до 622 Мбит/c. В марте 2001 года появляется рекомендация G.983.3, добавляющая новые сущности в стандарт PON:

- передачу разнообразных приложений (голоса, видео, данные) - это фактически позволило производителям добавлять соответствующие интерфейсы на OLT для подключения к магистральной сети и на ONT для подключения к абонентам;

- расширение спектрального диапазона - открывает возможность для дополнительных услуг на других длинах волн в условиях одного и того же дерева PON, например, шировещательное телевидение на третьей длине волны;

За расширенным таким образом стандартом APON закрепляется название BPON (Broadband PON). [1]

APON сегодня допускает динамическое распределение полосы DBA (Dynamic Bandwidth Allocation) между различными приложениями и различными ONT и рассчитан на предоставление как широкополосных, так и узкополосных услуг.

Оборудование APON разных производителей поддерживает магистральные интерфейсы: SDH (STM-1), ATM (STM-1/4), Fast Ethernet, Gigabit Ethernet, видео (SDI PAL), и абонентские интерфейсы E1 (G.703), Ethernet 10/100Base-TX, телефония (FXS).

Из-за шировещательной природы прямого потока в дереве PON и потенциально существующей возможности несанкционированного доступа к данным со стороны ONT, которому эти данные не адресованы в APON предусмотрена возможность передачи данных в прямом потоке с использованием техники шифрования с открытыми ключами. Необходимости в шифровании обратного потока нет, поскольку OLT находится на территории оператора.

EPON

В ноябре 2000 года комитет LMSC (LAN/MAN Standards Committee) IEEE создает специальную комиссию под названием «Ethernet на первой миле» (EFM, Ethernet in the First Mile) 802.3ah, реализуя тем сам пожелания многих экспертов построить архитектуру сети PON, наиболее приближенную к широко распространенным в настоящее время сетям Ethernet. Параллельно идет формирование альянса EFMA (Ethernet in the First Mile Alliance), который создается в декабре 2001 г. Фактически альянс EFMA и комиссия EFM дополняют друг друга и тесно работают над стандартом. Если EFM концентрируется на технических вопросах и разработке стандарта в рамках IEEE, то EFMA больше изучает индустриальные и коммерческие аспекты использования новой технологии. Цель совместной работы - достижение консенсуса между операторами и производителями оборудования и выработка стандарта IEEE 802.3ah, полностью совместимого с разрабатываемым стандартом магистрального пакетного кольца IEEE 802.17.

Комиссия EFM 802.3ah в июле 2004 г. стандартизировала три разновидности решения для сети доступа:

EFMC (EFM Copper) - решение «точка-точка» с использованием витых медных пар. На сегодняшний день работа по этому стандарту практически завершена. Из двух альтернатив, между которыми развернулась основная борьба - G.SHDSL и ADSL+ - выбор был сделан в пользу G.SHDSL.

EFMF (EFM Fiber) - решение, основанное на соединении «точка-точка» по волокну. Здесь предстоит стандартизировать различные варианты: «дуплекс по одному волокну, на одинаковых длинах волн», «дуплекс по одному волокну, на разных длинах волн», «дуплекс по паре волокон», новые варианты оптических приемопередатчиков. Подобные решения уже несколько лет предлагаются рядом компаний как «proprietary». Пришло время их стандартизировать.

EFMP (EFM PON) - решение, основанное на соединении «точка-многоточка» по волокну. Это решение, являющееся по сути альтернативой APON, получило схожее название EPON.

Аргументы в пользу технологии EPON подкрепляются ориентацией сети Internet исключительно на протокол IP и стандарты Ethernet. [1]

GPON

Архитектуру сети доступа GPON (Gigabit PON) можно рассматривать как органичное продолжение технологии APON. При этом реализуется как увеличение полосы пропускания сети PON, так и повышение эффективности передачи разнообразных мультисервисных приложений. Стандарт GPON ITU-T Rec. G.984.3 GPON был принят в октябре 2003 года.

GPON предоставляет масштабируемую структуру кадров при скоростях передачи от 622 Мбит/с до 2,5 Гбит/c, поддерживает как симметричную битовую скорость в дереве PON для нисходящего и восходящего потоков, так и ассиметричную и базируется на стандарте ITU-T G.704.1 GFP (Generic Framing Protocol, общий протокол кадров), обеспечивая инкапсуляцию в синхронный транспортный протокол любого типа сервиса (в том числе TDM). Исследования показывают, что даже в самом худшем случае распределения трафика и колебаний потоков утилизация полосы составляет 93% по сравнению с 71% в APON, не говоря уже о EPON. [1]

В таблице 1.1 приведен сравнительный анализ трех технологий APON, EPON и GPON.

Таб.1.1 Сравнительный анализ трех технологий APON, EPON, GPON

Характеристики

APON (BPON)

EPON

GPON

Институты стандартизации / альянсы

ITU-T SG15/FSAN

IEEE/EFMA

ITU-T SG15/FSAN

Дата принятия стандарта

октябрь 1998

июль 2004

октябрь 2003

Стандарт

ITU-T G.981.x

IEEE 802.3ah

ITU-T G.984.x

Скорость передачи, прямой / обратный поток, Мбит/с

155/155

622/155

622/622

1000/1000

1244/155, 622, 1244

2488/622, 1244, 2488

Базовый протокол

ATM

Ethernet

SDH

Линейный код

NRZ

8B/10B

NRZ

Максимальный радиус сети, км

20

20

20

Максимальное число абонентских узлов на одно волокно

32

16

64

Приложения

любые

IP, данные

любые

Коррекция ошибок FEC

предусмотрена

нет

необходима

Длины волн прямого / обратного потоков, нм

1550/1310

(1480/1310)

1550/1310

1550/1310

(1480/1310)

Динамическое распределение полосы

есть

поддержка

есть

IP-фрагментация

есть

нет

есть

Защита данных

шифрование открытыми ключами

нет

шифрование открытыми ключами

Резервирование

есть

нет

есть

Оценка поддержки голосовых приложений и QoS

высокая

низкая

высокая

1.3 Топология построения

При построении сетей на PON используется топология «Дерево с пассивным оптическим разветвлением PON» (P2MP), изображенная на рисунке 1.2.

Рис. 1.2. Топология построения

Решения на основе архитектуры PON используют логическую топологию «точка-многоточка» P2MP (point-to-multipoint), которая положена в основу технологии PON.

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

Таким образом, технология PON представляется на данный момент наиболее перспективной технологией волоконно-оптических сетей доступа. По стоимости оптическая сеть с пассивным распределением сравнима с сетью на основе технологии Micro SDH, однако при этом эффективность использования волокна в сети PON значительно выше.

Основными преимуществами технологии PON здесь являются:

1) существенная экономия волокон (в технологии PON для обслуживания 32 абонентских узлов используется только одно волокно);

2) скорость (оптическое волокно обладает огромной полосой пропускания);

3) надежность (в промежуточных узлах дерева находятся только пассивные оптические разветвители, не требующие обслуживания);

4) масштабируемость (древовидная структура сети доступа дает возможность подключать новых абонентов самым экономичным способом).

1.4 Принцип действия пассивных оптических сетей

PON - пассивная сеть с топологией «точка-много точек», основанная на технологии ATM (APON, BPON) или Ethernet (EPON, GPON). Пассивность означает отсутствие в сети элементов, усиливающих сигнал. Вместо требующих питания оптических повторителей, как в традиционных оптических сетях, в сетях PON используются недорогие оптические разветвители (сплиттеры), которые можно устанавливать практически в любом месте. Они применяются для каскадирования (мощность в них не обязательно делится на равные части) и создания древовидной структуры сети. Таким образом, PON дает возможность гибко развести оптическое волокно между десятками абонентов и подключать их модульно.

Активные устройства устанавливаются только у провайдера и абонента. В сетях PON эти устройства называются терминалом оптической линии (Optical Line Terminal, OLT) и оптическим сетевым терминалом (Optical Network Termination, ONT) или оптическим сетевым блоком (Optical Network Unit, ONU). Устройство OLT располагают на районном узле провайдера (CO). Оно генерирует оптические сигналы и объединяет трафик от абонентов, т.е. служит точкой консолидации трафика.

Основная идея архитектуры PON - использование всего одного приемо-передающего модуля в OLT для передачи информации множеству абонентских устройств ONT и приема информации от них. Реализация этого принципа показана на рис. [7]

Число абонентских узлов, подключенных к одному приемо-передающему модулю OLT, может быть настолько большим, насколько позволяет бюджет мощности и максимальная скорость приемопередающей аппаратуры. Для передачи потока информации от OLT к ONT - прямого (нисходящего) потока, как правило, используется длина волны 1550 нм. Наоборот, потоки данных от разных абонентских узлов в центральный узел, совместно образующие обратный (нисходящий) поток, передаются на длине волны 1310 нм. В OLT и ONT встроены мультиплексоры WDM, разделяющие исходящие и входящие потоки. Упрощенная схема, описывающая основные архитектуры PON и принцип действия, изображена на рисунке 1.3.

Рис. 1.3. Основные элементы архитектуры PON и принцип действия.

Прямой (нисходящий) поток.

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

Обратный (восходящий) поток.

Все абонентские узлы ONT ведут передачу в обратном потоке на одной и той же длине волны, используя концепцию множественного доступа с временным разделением TDMA (Time Division Multiple Access). Для того, чтобы исключить возможность пересечения сигналов от разных ONT, для каждого из них устанавливается свое индивидуальные расписания по передаче данных c учетом поправки на задержку, связанную с удалением данного ONT от OLT. [1]

2. Алгоритм распределения ресурсов в сетях PON

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

Так как установление соединения происходит примерно одинаково для всех стандартов PON, то алгоритм будет рассмотрен на примере стандарта APON.

2.1 Структура кадра

Для того чтобы объяснить процесс выделения временного окна, необходимо рассмотреть формат кадра для сетей PON.

Структура интерфейса для скоростей 155,52 Мбит/с, 622,08 Мбит/с и 1244,16 Мбит/с в нисходящем потоке состоит из непрерывного потока временных слотов, причем каждый временной слот содержит 53 октета ячейки АТМ или ячейки PLOAM.

Ячейка PLOAM вставляется через каждые 28 временных слотов. Кадр в нисходящем потоке включает две такие ячейки PLOAM и имеет длину в 56 слотов при скорости 144 Мбит/с в нисходящем направлении. При скорости 622 Мбит/с он включает восемь ячеек PLOAM и имеет длину в 224 слота. При скорости 1244 Мбит/с он включает шестнадцать ячеек PLOAM и имеет длину в 448 слотов.

В восходящем направлении при скорости 155 Мбит/с кадр состоит из 53 временных слотов в 56 байтов, а при скорости 622,08 Мбит/с в восходящем направлении - из 212 временных слотов. OLT запрашивает ONU передавать ячейку АТМ посредством прав доступа, переданных в ячейках PLOAM в нисходящем направлении. На запрограммированной скорости OLT запрашивает ONU передать ячейку PLOAM или мини-слот. Скорость передачи PLOAM в восходящем направлении зависит от требуемых функциональных возможностей, содержащихся в этих ячейках PLOAM. Минимальная скорость передачи PLOAM в расчете на ONU составляет одну ячейку PLOAM на каждые 100 мс. OLT определяет ширину полосы частот, выделенную для мини-слотов в восходящем направлении.

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

Разделенный по секциям слот занимает полный временной слот восходящего потока и включает ряд минислотов из множества ONU. Протокол MAC (протокол управления доступа к среде) использует их для передачи к OLT состояния очередей ONU для того, чтобы ввести динамическое распределение ширины полосы частот. Использование этих секционированных слотов является необязательным.

Описанные кадры, ячейки, байты и биты передаются в следующем порядке относительно их нумерации: кадры передаются в порядке возрастания, ячейки в составе кадра передаются в порядке возрастания, байты в составе ячейки передаются в порядке возрастания, а старший значащий бит в составе байта передается первым. Старший значащий бит в байте - это бит номер 1, а младший значащий бит - это бит номер 8, так что, к примеру, старший значащий бит для 0b10101010 равен 1. [2]

Структура кадра для PON на 155/155 Мбит/с.

Структура кадра для симметричной PON на 155/155 Мбит/с показана на рисунке 2.1.

Рис. 2.1. Формат кадра для PON на 155,52/155,52 Мбит/с.

Байты служебной нагрузки восходящего потока содержат следующие поля из таблицы 2.1

Таб. 2.1. Байты служебной нагрузки восходящего потока.

Поле

Предназначение

Защитный временной интервал

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

Преамбула

Выделяет фазу поступающей ячейки или минислота, соответствующую местной синхронизации OLT, и / или обеспечивает синхронизацию битов и восстановление амплитуды.

Разграничитель

Уникальная комбинация, указывающая на запуск ATM ячейки или минислота, которая может быть использована для выполнения синхронизации байтов.

Минимальная длина защитного временного интервала составляет 4 бита. Общая длина служебной нагрузки равна 24 битам. Длина защитного временного интервала, шаблон преамбулы и разграничителя программируются под контролем OLT. Содержимое этих полей определяется посредством сообщения Upstream_overhead в ячейках PLOAM нисходящего потока.

Структура кадра для PON на 622/155 Мбит/с.

Структура кадра для PON на 622/155 Мбит/с изображена на рисунке 2.2.

Рис. 2.2. Формат кадра для PON на 622,08/155,52 Мбит/с.

В этом случае скорость передачи нисходящего потока ровно в четыре раза выше, что показано на рисунке 2.2.

Структура кадра для PON на 622/622 Мбит/с.

В этом случае скорость передачи как нисходящего, так и восходящего потока ровно в четыре раза выше, чем в случае симметричной PON на 155 Мбит/с. Это показано на рисунке 2.3.

Рис. 2.3. Формат кадра для PON на 622/622 Мбит/с

Структура кадра для PON на 1244/155 Мбит/с.

В этом случае скорость передачи нисходящего потока ровно в восемь раз выше, чем в случае симметричной PON на 155 Мбит/с. Это показано на рисунке 2.4.

Рис. 2.4. Формат кадра для PON на 1244/155 Мбит/с

Структура кадра для PON на 1244/622 Мбит/с.

В этом случае скорость передачи нисходящего потока ровно вдвое выше, чем в случае симметричной PON на 622 Мбит/с. Это показано на рисунке 2.5.

Рис. 2.5. Формат кадра для PON на 1244/622 Мбит/с

2.2 Временная зависимость нисходящего-восходящего кадра

На рисунках 2.1, 2.2, 2.3, 2.4 и 2.5 начало кадра в нисходящем направлении и начало кадра в восходящем направлении представлены как сфазированные друг с другом, чтобы указать на одинаковую длительность этих двух кадров. Однако реальная разность фаз в эталонных точках S/R в OLT или ONU не определена. Наиболее вероятно, что эти два кадра будут сфазированы друг с другом в некоторой виртуальной эталонной точке в пределах OLT. Процесс измерения дальности гарантирует, что восходящие ячейки фазируются с этим восходящим кадром.

Для случаев, показанных на рисунках 2.1, 2.2 и 2.4, 53 права доступа (гранта) отображаются на первые две ячейки PLOAM кадра и нумеруются от 1 до 53; для случая, показанного на рисунках 2.3 и 2.5, 212 прав доступа отображаются на восемь ячеек PLOAM в кадре и нумеруются от 1 до 212. Чтобы гарантировать правильность протокола TDMA, ONU, адресуемый посредством права доступа Х, ставит в очередь (X-1) временных интервалов восходящих ячеек этого права доступа, прежде чем применить задержку-выравнивание, как определено в протоколе измерения дальности.

Любая ячейка, пронумерованная от «ячейки АТМ 1» до «ячейки АТМ 54» на рисунке 2.1, или пронумерованная от «ячейки АТМ 1» до «ячейки АТМ 216» на рисунке 2.2 или 2.3, или пронумерованная от «ячейки АТМ 1» до «ячейки АТМ 432» на рисунке 2.4 или 2.5, которая имеет заголовок, подобный установленному заголовку ячейки PLOAM, аннулируется в ONU.

OLT применяет HEC (коррекцию ошибок в заголовке) для восходящего потока, для каждого единичного ONU. Так как восходящие ячейки поступают от разных ONU с разной фазой, то OLT сохраняет n диаграмм состояний для n активных ONU. На рисунке 2.6 показана диаграмма состояний одного ONU.

Рис. 2.6. Диаграмма состояний выделения ячеек

Изначально выделение ячеек достигается с помощью метода измерения дальности. ONU компенсирует двустороннюю задержку, чтобы заставить свою ячейку прибыть в правильное для OLT время.

После одного правильного разграничителя и НЕС, ONU объявляется находящимся в синхронизме. При восьми последовательных неправильных разграничителях или НЕС, ONU объявляется вне синхронизма (LCDi, потеря выделения ячеек) и он должен быть деактивирован и переупорядочен. Всё еще ожидающие права доступа к этому ONU должны быть аннулированы. [2]

2.3 Проблемы, выявляемые в OLT

При попытке установки соединения в OLT могут возникнуть проблемы, которые могут привести к тому, что ONU не получит свое право доступа на передачу. Список этих проблем, условия, по которым эти проблемы выявляют и устраняют сведены в таблицу 2.2.

Таб. 2.2. Проблемы, выявляемые в OLT

Тип

Описание

Условия выявления

Действия

Условия устранения

Действия

TF

Отказ передатчика

Передатчик OLT объявляется отказавшим, если нет номинального фототока обратной грани или же если токи возбуждения превосходят максимальные по спецификации.

SUFi

Отказ при запуске ONUi

Отказ n раз при измерении дальности, в то время как OLT принял оптические пакеты от ONU.

Послать трижды сообщение deactivate_PON_ID.

The ONU is reranged successfully.

PEEi

Ошибка физического оборудования ONU.

Если OLT получает РЕЕ от ONU.

Создать нотификацию Loss_of_physical_layer_I.

Если OLT не получает сообщение PEEi от ONUi в течение трех секунд.

Прекратить нотификацию Loss_of_physical_layer_I.

LCDi

Потери выделения ячеек ONUi.

Если от ONUi получены восемь последовательных недостоверных разграничителей или недостоверных НЕС.

Послать трижды сообщение deactivate_PON_ID.

Создать нотификацию Loss_of_physical_layer_I.

Если выделение ячеек для ONUi достигнуто в состоянии работы.

OAMLi

Потеря ячеек PLOAM для ONUi.

Если пропускаются три последовательные ячейки PLOAM ONUi.

Послать трижды сообщение deactivate_PON_ID.

Создать нотификацию Loss_of_physical_layer_I.

Если OLT получает ячейку PLOAM, соответствующую его праву доступа PLOAM в состоянии работы.

CPEi

Фазовая погрешность ячейки для ONUi.

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

Послать трижды сообщение deactivate_PON_ID.

Создать нотификацию Loss_of_physical_layer_I.

Если OLT получает ячейку в правильной позиции и в состоянии работы.

LOSi

Потеря сигнала ONUi

Никакой достоверный оптический сигнал не получен для ONUi в приемнике О/Е в ожидаемое время, то есть в течение восьми последовательных ячеек.

Послать трижды сообщение deactivate_PON_ID.

Создать нотификацию Loss_of_physical_layer_I.

Если OLT в состоянии работы принимает достоверный оптический сигнал, соответствующий его праву доступа.

LOAi

Потеря подтверждения приема от ONUi.

OLT не получает подтверждение приема от ONUi после ряда сообщений в нисходящем направлении, что предполагает подтверждение прием восходящем направлении.

Послать трижды сообщение deactivate_PON_ID.

Создать нотификацию Loss_of_physical_layer_I.

Когда OLT получает подтверждение приема.

DFi

Отказ деактивации ONUi.

ONU не реагирует правильно после трех сообщений DACT.

Отменяется оператором.

ERRi

Обнаружение блока ошибок ONUi.

ERRi должен сбрасываться, когда в OLT поступает от ONUi следующая восходящая ячейка PLOAM с BIP8, совпадающим с расчетным BIP8.

ERRi должен обновляться, когда в OLT принята следующая восходящая ячейка PLOAM от ONUi.

SDi

Ухудшение параметров сигнала ONUi.

Количество отличающихся битов накапливается в Error_i в течение интервала Treasure. КОБ определяется как КОБ=Error_i/(BW*Treasure), где BW - это присвоенная ширина полосы в восходящем потоке.

Когда КОБ ONUi в восходящем потоке становится ?, то наступает это состояние.

Когда КОБ ONUi в восходящем потоке становится <, то это состояние прекращается.

REIi

Дистанционная индикация ошибки ONUi.

Когда OLT принимает сообщение ненулевой REI, то он посылает REIi.

REIi должна сбрасываться при приеме в OLT от ONUi сообщения REI, указывающего на отсутствие ошибок.

MEMi

Сообщение Message_Error от ONUi

Если OLT принимает неизвестное сообщение от ONUi или же если принято сообщение message_error.

Когда оператор уведомлен.

R-INHi

Запрещение принятых аварийных сигналов ONUi.

Если OLT принимает сообщение R-INH от ONUi, то обнаруживается R-INHi.

Проигнорировать принятые аварийные сигналы от ONU.

Создать нотификацию Loss_of_physical_layer_I.

Когда OLT принимает ячейку PLOAM в процессе измерения дальности ONUi.

MISi

Рассогласование звена ONUi.

OLT обнаруживает, что принятая PSTi отличается от переданной PST.

OLT обнаруживает, что принятая PSTi и переданная PST одинаковые.

2.4 Проблемы, выявляемые в ONU

По аналогии с данными из таблицы 2.2 составлена таблица 2.3, которая содержит информацию о проблемах возникающих в ONU, условиях выявления и устранения этих проблем.

Таб. 2.3. Проблемы, выявляемые в ONU

Тип

Описание

Условия выявления

Действия

Условия устранения

Действия

TF

Отказ передатчика

Передатчик ONU объявляется отказавшим, если неноминального фототока обратной грани или же если токи возбуждения превосходят максимальные по спецификации.

LOS

Потеря сигнала

Отсутствие достоверного оптического сигнала. Это, к примеру, может быть вызвано логической функцией (OAML.AND.FRML.AND.LCD).

Отключить лазер.

Создать нотификацию

Loss_of_physical_layer.

Достоверный оптический сигнал, к примеру, он может быть порожден отвергнутой логической функцией, данной выше.

PEE

Сигнал Phisical_Equipment_error.

Когда ONU принимает сообщение РЕЕ.

Создать нотификацию Loss_of_physical_layer.

Когда ONU принимает сообщение PPE в течение трех секунд.

SUF

Отказ при запуске.

Измерение дальности этого ONU потерпело неудачу.

Когда измерение дальности успешно.

OAML

Потеря ячеек PLOAM.

Когда три последовательных заголовка PLOAM неправильны.

Отключить лазер.

Создать нотификацию Loss_of_physical_layer.

Синхронизация OAM при трех последовательных правильных заголовках PLOAM.

LCD

Потеря выделения ячеек.

Когда семь последовательных ячеек АТМ имеют недостоверный НЕС.

Отключить лазер.

Создать нотификацию Loss_of_physical_layer.

Когда N последовательных ячеек АТМ имеют правильный HEC

(N = 9 или 17).

FRML

Потеря нисходящего кадра FRML.

Когда этот бит кадра равен «0» при трех последовательных кадрах.

Отключить лазер.

Создать нотификацию Loss_of_physical_layer.

Когда этот бит кадра равен «1» при трех последовательных кадрах.

ERR

Обнаружение ошибок в блоке.

Принятый в нисходящем потоке BIP-8 REI передается в период времени BER_interval. Сравнивается с расчетным BIP-8 в полученном потоке. Количество отличающихся битов накапливается в ERR. Через регулярные промежутки времени это содержимое посылается через REI к OLT. Этот промежуток времени программируется OLT посредством сообщения BER_interval_timer. ERR обновляется при каждом приеме ячейки PLOAM в нисходящем потоке.

SD

Ухудшение параметров сигнала.

Становится активным, если КОБ ? в нисходящем потоке. Становится неактивным, если КОБ < в нисходящем потоке.

MEM

Сообщение Message_Error

Когда ONU получает неизвестное сообщение.

Послать сообщение Message_error в восходящем направлении.

DACT

Деактивировать PON_ID.

Прием сообщения Deactivate_PON_ID, адресованного этому ONU и запрашивающего его деактивироваться.

Отключить лазер и перейти к состоянию аварийной остановки О2.

Создать нотификацию Loss_of_physical_layer.

Прием сообщения Upstream_overhead.

Приступить к нормальным процедурам измерения дальности.

DIS

Заблокированный ONU.

Когда ONU принимает сообщение Disable_serial_number со своим

Собственным порядковым номером, а флаг разблокирования = 0xFF. Он остается в этом состоянии даже после отключения энергии.

Отключить лазер.

Перейти к состоянию аварийной остановки O9.

Создать нотификацию Loss_of_physical_layer.

Когда ONU принимает сообщение Disable_serial_number с флагом разблокирования = 0x0F или же когда он получает сообщение Disable_serial_number со своим собственным порядковым номером, а флаг разблокирования = 0x00

Перейти к состоянию O1.

MIS

Рассогласование звена.

ONU обнаруживает, что принятая PST и переданная PST разные.

ONU обнаруживает, что принятая PST и переданная PST одинаковы.

2.5 Сообщения в канале PLOAM

Время обработки всех сообщений в нисходящем потоке находится в пределах 6*Tframe и является временем, необходимым ONU для обработки сообщения в нисходящем потоке и подготовки любого соответствующего действия в восходящем потоке. Сообщение churning_key_update в нисходящем потоке имеет приоритет перед всеми другими сообщениями в нисходящем потоке. Уровень приоритета указан в колонке «функция». На некоторые сообщения ONU должен ответить восходящим сообщением. Уровень приоритета восходящих сообщений также указан в колонке «функция». Если он не указан, то уровень приоритета равен 0 (0 - самый низкий приоритет). [2]

В таблице 2.4 приведены определения сообщений, используемых при установке соединения.

Таб. 2.4. Определение сообщений

Название сообщений

Функция

Направление

Запуск

Кол-во посылок

Результат приема

1

No message

При передаче ячейки PLOAM сообщения отсутсвуют

OLT ONU

Пустая очередь сообщений

-

Аннулирование

2

New_churning_key_rq

Запрашивает новый ключ перемешивания от ONU

OLT ONU

OLT требует новый ключ для механизма перемешивания

1

OLT создает новый ключ и передает этот новый ключ к OLT в сообщении new_churning_key

3

Upstream_RX_control

Указать ONU, какой комбинацией заполнить часть RXCF ячейки PLOAM в восходящем направлении

OLT ONU

Каждый раз начинается процесс измерения дальности

3

ONU устанавливает в восходящем направлении поле RXCF ячейки PLOAM в восходящем направлении

4

Upstream_overhaed

Указать ONU, какую служебную нагрузку и предопределенную задержку выравнивания (Te) использовать в восходящем направлении

OLT ONU

Каждый раз начинается процесс измерения дальности

3

ONU устанавливает в восходящем направлении служебную нагрузку и предопределенную задержку выравнивания (Te)

5

Serial_number_mask

Обеспечивает последовательный номер и маску, маскирующую часть этого последовательного номера

OLT ONU

Чтобы отыскать последовательный номер конкретного ONU

1

Если последовательный номер и маска соответствуют последовательному номеру ONU, то ONU разблокируется для реагирования на права доступа измерения дальности

6

Assign_PON_ID

Связывает свободный номер PON_ID с порядковым номером, также предоставленным в этом сообщении

OLT ONU

Когда OLT обнаружило последовательный номер конкретного ONU

3

ONU с этим последовательным номером использует этот PON_ID и должен быть адресован по этому PON_ID

7

Ranging_time

Указывает значение, выраженное некоторым числом восходящих битов, которыми ONU с PON_ID должен заполнить свой регистр задержки выравнивания (Td)

OLT ONU

Когда OLT решает, что задержка (Td) должна быть откорректирована, см. протокол измерения дальности

3

ONU заполняет регистр задержки выравнивания (Td) этими значениями

8

Deactivate_PON_ID

Указывает ONU с этим PON_ID прекратить передачу трафика в восходящем направлении и перезапуститься. Это сообщение может быть также циркулярным.

OLT ONU

Когда обнаружены LOSi, LSDi, OAMLi, LOAi, SUFi или CPEi

3

ONU с этим PON_ID отключает лазер и PON_ID аннулируется. Он должен быть активирован при повреждении MPU

9

Disable_serial_number

Блокирует ONU с этим порядковым номером

OLT ONU

По команде OpS

3 или же до тех пор, пока пакеты не будут обнаруживаться

Переводит ONU в состояние экстренной остановки. ONU не может отвечать на права доступа

10

Churning_key_update

Указывает ONU время, когда ключ перемешивания становится достоверным. Уровень приоритета равен 1

OLT ONU

Когда OLT готово перемешивать данные для ONU с PON_ID

3

ONU переключается на новый ключ перемешивания перед 48*Tframe после первого сообщения обновления. Посылать одно подтверждение приема после каждого правльно принятого сообщения

11

Сообщение Grant_allocation

Распределяет данные и права доступа PLOAM к ONU

OLT ONU

После того, как PON_ID присвоен ONU, ему требуются данные и право доступа PLOAM для передачи данных и ячеек PLOAM в восходящем направлении

3

ONU хранит два типа прав доступа

12

Сообщение Divided_Slot_Grant_configuration

Разделить к ONU или снять распределение Divided_slot_grant to an ONU и идентифицировать длину минислота и позицию смещения

OLT ONU

OLT нуждается / больше не нуждается в услуге, предоставляемой минислотом

3

ONU посылает минислот после приема этого распределенного Divided_Slot_Grant. При снятии распределения он более не реагирует на это Divided_Slot_Grant

13

Configure_VP/VC

Это сообщение активирует или деактивирует VP/VC в нисходящем и восходящем направлении для обмена сообщениями на уровне ATM

OLT ONU

Когда OLT хочет установить или разорвать соединение с ONU, к примеру, для конфигурации функции UPC, заполнения таблиц фильтрации или конфигурации интерфейсов ONU

3

ONU активирует / деактивирует эти VP/VC для канала связи. Посылать одно подтверждение приема после каждого правильно принятого сообщения

14

BER_interval

Определяет интервал накорления для каждого ONU, выраженный количеством нисходящих кадров для ONU, с учетом количества ошибок по бит в нисходящем направлении. Та же временная выдержка, что и для Configure_VP/VC

OLT ONU

OpS определяет этот интервал и может фокусироваться на одном определенном ONU

3

ONU запускает таймер BER_interval timer и накапливает ошибки по бит в нисходящем направлении. Послыать одно подтверждение приема после каждого правильно принятого сообщения. Порядковый номер в сообщениях REI переустанавливается

15

Сообщение PST

Проверить связность OLT-ONU в резервной конфигурации и осуществить APS

OLT ONU

Посылать его с определенной частотой

1 раз/секунду

ONU сверяет номер звена со своим собственным номером звена и, если они разные, генерирует рассогласование звена (MIS)

16

Сообщение Physical_equipment_error (PEE)

Указать ONU, что OLT неспособно послать как ячейки ATM, так и ячейки OMCC в направлении от уровня ATM к уровню TC

OLT ONU

Когда OLT обнаруживает, что оно не может послать как ячейки ATM, так и ячейки OMCC в направлении от уровня ATM к уровню TC

1 раз/секунду

Зависит от системы.

17

Churned_VP

Указать ONU на то, какие VP/VC перемешиваются, а какие нет

OLT ONU

Когда новый VP должен быть перемешан или нет

3

(Не) Отметить этот VP как перемешиваемый. Посылать одно подтверждение приема после каждого правильно принятого сообщения

18

Сообщение Request_password

Запросить пароль от ONU для того, чтобы проверить его. OLT имеет локальную таблицу паролей подключенных ONU. Если после повторного измерения дальности пароль изменился, то он не будет активировать этот ONU.

OLT ONU

После измерения дальности ONU. Это является необязательным.

1

Посылать трижды сообщение пароля.

19

Сообщение POPUP

OLT может запросить все подключенные ONU восстановить свои установленные значения, за исключением задержки выравнивания и может заставить их перейти из состояния POPUP в состояние ожидания работы (O3)

OLT ONU

Ускорить повторное измерение дальности подмножества или всех подключенных ONU

3

ONU восстанавливает параметры, которые он использовал в рабочем состоянии до того, как он обнаружил LOS, LSD, OAML или FRML, за исключением задержки выравнивания, которая устанавливается в предопределенную задержку выравнивания

20

Сообщение Vendor_specific

Ряд Message_IDs резервируется для сообщений, обусловленных поставщиком

OLT ONU

Обусловлен поставщиком

Обусловлено поставщиком

Обусловлен поставщиком

21

Сообщение отсутствует

При передаче ячейки PLOAM сообщение остутствует

OLT ONU

Пустая очередь сообщений

Аннулирование

22

New_churning_key

Содержит новый ключ, который должен быть использован на перемешанных нисходящих ячейках к этому ONU

OLT ONU

После запроса OLT, ONU выбирает новый ключ и посылает его к OLT

3

OLT инициализирует механизм перемешивания с этим новым ключом, если принимает три последовательных идентичных ключа, и переключается на новый ключ через 48*Tframe после первого сообщения churning_key_update

23

Acknowledge

Используется ONU для указания получения нисходящего сообщения Configure_VP/VC, Churning_key_update, Churned_VP или BER_Interval. Для подтверждаения приема сообщения churning_key_update уровень приоритета равен 1. Для других сообщений уровень приоритета равен 0. Выдержка времени для подтверждения приема равна 300 мс.

OLT ONU

После приема каждого правильного соответствующего сообщения в нисходящем направлении

1

OLT информирует о надлежащем приеме нисходящего сообщения, которое оно посылало, и выполняет соответствующие действия

24

Serial_number_ONU

Содержит последовательный номер ONU

OLT ONU

ONU посылает это сообщение, когда он находится в режиме измерения дальности и по приеме прав доступа измерения дальности или права доступа PLOAM

X (может быть послано несколько раз во время протокола измерения дальности)

OLT извлекает порядковый номер и может назначить свободный PON_ID этому ONU

25

Сообщение Message_error

Указывает, что ONU не способен соответствовать сообщению от OLT

OLT ONU

Когда ONU не способен соответствовать сообщению, содержащемуся в нисходящей ячейке PLOAM

3

Проинформировать оператора

26

REI (Remote error Indication - дистанционное указание ошибки)

Содержит определенное количество рассогласований BIP в нисходящем направлении (один импульс счета на каждое рассогласование битов), подсчитанных в течение BER_interval

OLT ONU

По истечении BER_Interval

1 раз/BER_interval

OLT может показать средний КОБ в функции времени для ONU

27

R-INH

Проинформировать OLT, что ONU отключить питание при нормальной работе. Это нужно для того, чтобы предупредить посылку OLT ненужных аварийных сообщений

OLT ONU

ONU создает это сообщение, когда активируется отключение питания (такое как отключение источника питания или же удаление сетевого шнура без батарейного резервирования) при нормальной работе

1 раз/секунду

Аннулировать любые последующие аварийные сигналы от этого ONU. Проинформировать OpS.

28

Сообщение PST

Проверить связность OLT-ONU в резервной конфигурации и осуществить APS

OLT ONU

Посылать его с определенной частотой

1 раз/секунду

OLT сверяет номер звена со своим собственным номером звена и, если они разные, генерирует рассогласование звена (MIS)

29

Physical_equipment_error

Указать OLT, что ONU не способен посылать как ячейки ATM, так и ячейки OMCC в направлении от уровня ATM к уровню TC

OLT ONU

Когда ONU обнаруживает, что он не может послать как ячейку ATM, так и ячейку OMCC в направлении от уровня ATM к уровню TC

1 раз/секунду

В зависимости от системы

30

Пароль

Для проверки ONU, основываясь на его пароле

OLT ONU

Когда OLT запрашивает пароль посредством сообщения request password

3

Если OLT принимает три идентичных пароля, то оно объявляется достоверным. Дальнейшая обработка зависит от системы

31

Сообщение Vendor_specific

Ряд Message_IDs резервируется для сообщений, обусловленных поставщиком

OLT ONU

Обусловлен поставщиком

Обусловлено поставщиком

Обусловлен поставщиком

32

Сообщение Big_Key message (необязательное)

Переносит ключ большого объема для использования при щифровании данных. Уровень приоритета равен 1.

OLT ONU

После запроса OLT ONU выбирает новый ключ и посылает его OLT

3 раза на фрагмент

OLT инициализирует криптографические логические схемы этим новым ключом, если оно принимает три последовательных идентичных ключа, и переключается на новый через 48*Tframe после первого сообщения Churning_key_update

2.6 Общая характеристика метода измерения дальности

Полностью цифровой метод измерения дальности «в полосе» должен использоваться системой PON для измерения расстояний логической досягаемости между каждым ONU и OLT. Максимальный диапазон PON составляет, по крайней мере, 20 км. Должна существовать возможность выполнения измерения задержки передачи для каждого ONU вовремя, когда PON находится в процессе работы, чтобы не прерывать обслуживание других ONU.

Размер окна для сигнала измерения задержки может быть минимизирован, используя некоторые данные о расположении ONU. Оператор сети может заранее предоставить PON данные о минимальном и максимальном расстоянии OLT-ONU (если же нет, то значение по умолчанию составляет 0 км минимум и 20 км максимум). Минимальные и максимальные расстояния могут быть предоставлены с любой степенью детализации, что определяется оператором сети. Для ONU, дальность которого не была предварительно измерена, начало и окончание окна измерения дальности определяются исходя из этих предоставляемых минимальных и максимальных расстояний.

Протокол измерения дальности определен и применим для нескольких типов методов установки ONU и нескольких типов процессов измерения дальности, при необходимости, с дополнительными или необязательными функциями.

Существуют два возможных примерных метода установки ONU:

Метод А: Порядковый номер ONU зарегистрирован в OLT системой OpS. Метод В: Порядковый номер ONU не зарегистрирован в OLT системой OpS. Это требует наличия механизма автоматического обнаружения порядкового номера (программируемого однозначного закодированного номера) ONU.

Как для Метода А, так и для Метода В, измерение дальности ONU может быть инициировано двумя возможными способами:

1) оператор сети позволяет начать процесс измерения дальности, если известно о подключении нового ONU. После успешного проведения измерения дальности (или временной выдержки), измерение дальности автоматически прекращается;

2) OLT периодически и автоматически инициирует процесс измерения дальности, проводя проверку на выявление любых новых подключений ONU. Частота опроса программируется так, что окно измерения дальности может открываться каждую миллисекунду или каждую секунду по команде системы OpS.

Возможны различные ситуации, описанные ниже, при которых может происходить процесс измерения дальности. Имеются четыре категории ситуаций, при которых может происходить процесс измерения дальности.

1. Неактивная PON, неактивный ONU.

Эта ситуация характеризуется отсутствием на PON передаваемого восходящего трафика и тем, что ONU еще не получил PON-ID от OLT.

2. Действующая PON, недействующая ONU.

Эта ситуация характеризуется добавлением нового (новых) ONU, который не подвергался раннее измерению дальности, или же добавлением ранее активного (активных) ONU с восстановлением его питания и возвратом его в PON на то время, пока трафик передается на PON.

3. Активная PON, активный ONU.

Эта ситуация характеризуется наличием ранее активного ONU, который остается с включенным питанием и подключенным к активной PON, но пребывая в состоянии POPUP, описанном в (2.8.5). Эта ситуация также включает активный ONU, подключенный к активной PON с передаваемым трафиком.

4. Переключение

Может существовать несколько типов возможных дуплексных и / или частично дуплексных конфигураций ATM-PON. В этих случаях должен применяться протокол измерения дальности. [2]

2.7 Определение фазового соотношения между восходящим и нисходящим потоками

Фазовое соотношение между восходящим и нисходящим потоками должно определяться для процесса измерения дальности.

Конфигурация точек определения, описанных ниже, показана на рисунке 2.7.

Рис. 2.7. Конфигурация точек определения

Точка определения фазы ONU устанавливается для удобства определения фазы передачи ячеек. Она виртуально располагается на стороне Эталонной точки S/R ONT. Точка определения фазы OLT также устанавливается для определения фазы передачи ячеек. Она виртуально находится на стороне эталонной точки R/S OLT.

Основная задержка передачи ячеек (Ts) определяется как фаза ячейки в восходящем направлении, которая соответствует первому праву доступа первой ячейки PLOAM в нисходящем кадре к ее нисходящему кадру в точке определения фазы ONU, когда equalization_delay (Td) равна 0. Эта задержка (Ts) происходит из-за обработки сигнала PON в ONU.

Задержка передачи ячеек ONU определяется как фаза ячейки в восходящем направлении, которая соответствует первому праву доступа первой ячейки PLOAM в нисходящем кадре к ее нисходящему кадру в точке определения фазы ONU. Задержка передачи ячеек ONU является суммой основной задержки передачи ячейки (Ts) и equalization_delay (Td) в процессе измерения дальности.

Ячейки в нисходящем направлении передачи в эталонной точке R в ONU достигают точки определения фазы ONU с определенной задержкой TiOl. Ячейки в восходящем направлении передачи в точке определения фазы ONU достигают эталонной точки S в ONU черезТiO2. Также ячейки в нисходящем направлении передачи в точке определения фазы OLT достигают эталонной точки S в OLT с определенной задержкой TiS1. Ячейки в восходящем направлении передач и в эталонной точке R в OLT достигают точки определения фазы OLT через TiS2.

Задержки TiO1, TiO2, TiS1 и TiS2 происходят в следствие оптоэлектрического и электрооптического преобразования в ONU и OLT (см. рисунок 2.7).

Время срабатывания ONU, Tresponse (ONU), должно определяться в эталонной точке S/R для обеспечения связности будущих ONU в условиях наличия оборудования различных фирм - производителей.

Время срабатывания, Tresponse (ONU), определено ниже:

Tresponse (ONU) = TiOl + Ts + Td + TiO2 (при Td = 0)

= TiOl+Ts

Значение Tresponse (ONU) должно составлять от 3136 до 4032 бит (при 155,52 Мбит/с), что эквивалентно от 7 до 9 ячеек (при 56-байтовой ячейке). Оно оценивается как достаточное время обработки сигнала в ONU.

3136 битов ? Tresponse(ONU) ? 4032 бита (при 155,52 Мбит/с)

6272 бита ? Tresponse(ONU) ? 8064 бита (при 622,08 Мбит/с)

Изменение задержки из-за Tresponse (ONU) рассматривается как неоднозначность расположения ONU и эквивалентно примерно 600 м и 300 м для скоростей в восходящем направлении 155 и 622 Мбит/с, соответственно.

Соотношение между фазами для нисходящих и восходящих ячеек в эталонной точке S/R ONU, точке определения фазы ONU, эталонной точке R/S OLT и точке определения фазы OLT показано на рисунке 2.8. Tpd представляет задержку распространения в оптоволокне от OLT к ONU (и наоборот).

Временной слот ячейки в восходящем направлении для ячейки №1 соответствует полю первого права доступа первой нисходящей ячейки PLOAM нисходящего кадра. Задержка между ячейкой PLOAM с первым правом доступа и соответствующей восходящей ячейкой определяется как компенсированная двусторонняя задержка (Teqd). Эта компенсированная двусторонняя задержка (Teqd) определяется в точке определения фазы OLT (как описано выше).

Teqd = 2*Tpd + Ts + Td + TiOl + TiO2 + TiSl + TiS2

= 2*Tpd + Tresponse (ONU) + Td + TiS 1 + TiS2

В обычном рабочем состоянии Teqd является постоянной для всех ONU. Допуская изменение Tpd и Tresponse (ONU), equalization_delay (Td) определена далее:

- максимальное значение Td ? 32 000 битов (при 155,52 Мбит/с)

- максимальное значение Td ? 128 000 битов (при 622,08 Мбит/с)

Максимальная двусторонняя задержка в 200 мс (эквивалентная 20 км оптоволокна) равна 69 ячейкам (ячейки по 56 байт) + 192 бита, а максимальное Tresponse (ONU) составляет 9 ячеек ± 2 ячейки, так что equalization_delay должна охватывать изменения задержки от 0 до 32 000 бит (при 155,52 Мбит/с).

Рис. 2.8. Фазовое соотношение между нисходящим и восходящим потоками

Equalization_delay (Td) должна быть определена со степенью детализации 1 бит для всех скоростей передачи. [2]

Рассмотрим примеры для скорости 155,52 Мбит/с в восходящем направлении.

2.8 Процедура измерения дальности

Обычная процедура

Прежде чем инициировать процесс измерения дальности, OLT посылает сообщение «Upstream_overhead», чтобы указать новым ONU на то, какую служебную нагрузку они могут задействовать. Затем OLT инициирует процесс измерения дальности. Права доступа данных в

Восходящем направлении организованы в очередь.

OLT создает следующую последовательность:

- неназначенные права доступа для открывания окна;

- право доступа измерения дальности (или право доступа PLOAM);

- дополнительные права доступа измерения дальности или права доступа PLOAM, если они необходимы.

Они отображаются в ячейки PLOAM в нисходящем направлении. Это гарантирует, что после того, как право доступа измерения дальности покидает OLT, открывается окно в восходящем направлении для приема ячейки PLOAM измерения дальности. Дополнительные права доступа измерения дальности или права доступа PLOAM позволяют установить оптическую мощность ONU и / или регулировать пороговые значения OLT, или получение данных об амплитуде и т.д. Количество дополнительных прав доступа для установки оптической мощности ONU должно равняться 1, а их количество для приемника OLT должно, по необходимости, определяться OLT.

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

Некоторые из неназначенных прав доступа для окна могут быть заменены правами доступа данных и / или правами доступа PLOAM, с тем чтобы минимизировать размер окна. Схема открывания окна измерения дальности в случае, когда право доступа измерения дальности размещено в поле первого права доступа первой ячейки PLOAM нисходящего кадра, показана на рисунке 2.9.

Рис. 2.9 Окно измерения дальности и фазовое соотношение

Каждый ONU, которому разрешено посылать ячейку(и), должен послать ячейку(и) PLOAM измерения дальности немедленно по получении права доступа измерения дальности. В этом контексте слово «немедленно» означает, что каждый ONU посылает ячейку PLOAM в назначенное время, соответствующее расположению права доступа измерения дальности в нисходящей ячейке PLOAM.

Equalization_delay (Td) может быть измерена, как в примере на рисунке 2.9.

Td = Teqd - (T2 - T1)

T1 = Время передачи нисходящей ячейки PLOAM, содержащей право доступа измерения дальности в точке определения фазы OLT.

T2 = Время прибытия восходящей ячейки измерения дальности в точку определения фазы OLT.

Teqd = 79 ячеек (к примеру).

Используя сведения о расстоянии между ONU и OLT, размер окна измерения дальности программируется посредством назначения соответствующих неназначенных прав доступа, как показано на рисунке 2.10.

Рис. 2.10. Программируемое окно измерения дальности (пример)

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

Рис. 2.11. Повторное открывание окна измерения дальности

Значение «М» на этом Рисунке указывает на интервал между открывающимися окнами. Это значение «М» должно быть определено с тем, чтобы избежать ухудшения качества обслуживания. Значение «L» указывает время, требуемое для завершения процедуры измерения дальности. [2]

Окно фиксированного местоположения при некоторых данных о местонахождении ONU.

Когда известны некоторые данные о месте ONU, то OLT может передавать предопределенную equalization_delay (Те) к ONU, при этом Те эквивалентна приблизительной equalization_delay (Td). Предопределенная equalization_delay (Те) может быть передана в сообщении Upstream_overhead от OLT к каждому ONU. Значение Те по умолчанию равно 0. OLT будет передавать неназначенные права доступа для открывания окна измерения дальности, размер которого сокращен по сравнению с максимумом в зависимости от полноты данных о расстоянии OLT-ONU. Затем оно должно послать право доступа измерения дальности к ONU.

Когда ONU получает право доступа измерения дальности, оно ответит ячейкой измерения дальности после предопределенной equalization_delay (Те) плюс Tresponse (ONU). Это будет гарантировать, что ячейка измерения дальности прибудет в пределах открытого окна, которое находится в фиксированной позиции в восходящем кадре.

Пример показан на рисунке 2.12. В этом случае equalization_delay (Td) может быть измерена следующим образом:

Td = Teqd - (T2 - T1) + Te.

Рис. 2.12. Окно фиксированного местоположения при некоторых данных о местонахождении ONU

Временные соотношения между нисходящими сообщениями и правами доступа в процессе измерения дальности должны быть интерпретированы следующим образом:

- Если нисходящая ячейка PLOAM содержит и права доступа, и сообщение, то правильная интерпретация определяется посредством обработки сначала прав доступа, а затем - этого сообщения. Обработка сообщений, принятых в ONU и касающихся процесса измерения дальности, должна быть завершена в течение шести кадровых периодов (6*Tframe).

- По приеме сообщения Ranging_time, Td должна быть обновлена в течение 6*Tframe. Это означает, что OLT должно посылать право доступа PLOAM или право доступа данных к назначенному ONU не позднее, чем через 6*Tframe секунд после отправки к этому ONU первых трех сообщений Ranging_time в процессе измерения дальности. Ввиду того, что необходимо избегать коллизий восходящих ячеек во время обработки сообщений в ONU.

Временных соотношений между нисходящими ячейками PLOAM и восходящими слотами вышеизложенное определение не касается. [2]

Общая процедура измерения дальности

Измерение дальности выполняется под управлением OLT. ONU реагирует на сообщения, которые инициируются в OLT.

Схема процедуры измерения дальности:

- OLT измеряет фазу прибытия восходящей ячейки от ONU;

- OLT уведомляет ONU о equalization_delay;

- ONU согласовывает фазу передачи с объявленным значением.

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

Проблема с измерением дальности может возникнуть при использовании метода установки В, если OLT предпринимает попытку измерить дальность ONU и одновременно появляются несколько включенных ONU. Порядковые номера ONU неизвестны, так что право доступа измерения дальности выдавалось направленно во все ONU в состоянии ожидания. Это может вызвать срабатывание нескольких ONU, сигналы которых могут перекрываться в OLT, вызывая таким образом коллизию в OLT. Механизм двоичного дерева используется для решения этой проблемы.

После того, как коллизия ячеек измерения дальности была обнаружена в OLT, OLT посылает сообщение Serial_number_mask, за которым следует право доступа измерения дальности, с тем чтобы позволить любому ONU, порядковый номер которого соответствует маске, передавать ячейку измерения дальности. Размер Serial_number_mask увеличивается на один бит за один раз до тех пор, пока только один ONU будет передавать ячейку измерения дальности. Это позволяет производить индивидуальное измерение дальности ONU. Затем повторно может быть послано общее право доступа измерения дальности, позволяющее все же производить измерение дальности других ONU для передачи ячеек измерения дальности. Если коллизия все же происходит, то этот механизм повторяется. Этот механизм двоичного дерева может быть также полезен для того, чтобы избежать перегрузки оптического ввода приемника OLT во время установки мощности ONU.

Процедура измерения дальности в ONU

Процедура измерения дальности обусловлена функциональным поведением в виртуально определенных состояниях и переходом состояний, как показано ниже.

Десять состояний ONU используются для описания режима измерения дальности.

а) Исходное состояние (О1) - Состояние, при котором после первого включения ONU все еще обнаруживаются LOS, LCD, OAML или FRML.

b) Состояние ожидания измерения дальности 1 (О2) - Состояние подготовки к измерению дальности, но сообщения в нисходящем направлении поддаются обнаружению. Выполняется прием сообщения Upstream_overhead. Передаваемая в этом сообщении Upstream_overhead предопределенная equalization_delay также обнаруживается в этом состоянии.

c) Состояние ожидания измерения дальности 2 (О3) - Если необходимо, то выполняется процедура установки оптической мощности ONU.

Механизм двоичного дерева может быть применен для установки оптической мощности ONU. Никакая ячейка PLOAM не может быть передана в ответ на право доступа измерения дальности.

d) Состояние ожидания измерения дальности 3 (О4) - Если необходимо, то выполняется процедура установки оптической мощности ONU. Механизм двоичного дерева может быть применен для установки оптической мощности ONU. Ячейка PLOAM может быть передана в ответ на право доступа измерения дальности.

e) Состояние ожидания работы 1 (О5) - Состояние выявления PON_ID. Механизм двоичного дерева применим для выявления порядковых номеров. Никакая ячейка PLOAM не может быть передана в ответ на право доступа измерения дальности.

f) Состояние ожидания работы 2 (О6) - Состояние накопления PONJTO. Механизм двоичного дерева применим для накопления порядковых номеров. Ячейка PLOAM сообщением Serial_number_ONU должна быть передана в ответ на право доступа измерения дальности.

g) Состояние ожидания работы 3 (О7) - Состояние выполненного измерения задержки. Ячейка PLOAM с сообщением Serial_number_ONU должна быть передана в ответ на право доступа PLOAM.

h) Состояние работы (О8) - Equalization_delay обновляется по получении сообщения Ranging_time.

i) Состояние экстренной остановки (О9) - Состояние экстренной остановки после получения сообщения Disable_serial_number с согласованным Serial_number и полем разрешения FFh. Никакая ячейка PLOAM не может быть передана в ответ на право доступа измерения дальности. Если ONU входит в это состояние, то этот ONU не должен выводиться из этого состояния любым из других событий, таких как сообщение Deactivate_PON_ID или LOS ит. д. и / или отключение питания ONU. Только если сообщение Desable_serial_number получено с согласованным Serial_number и с полем разблокирования 00h или полем разблокирования 0Fh, независимо от Serial_number, то тогда происходит переход состояния в О1.

j) Состояние POPUP (O10) - ONU входит в это состояние после обнаружения LOS, LCD, OAML или FRML в состоянии работы (08). Если получено сообщение POPUP, ONU восстанавливает установки лазера, Upstream_overhead, поля LCF и RXCF, предопределенную задержку выравнивания Те, PON_ID и Grant_allocations. Переход в О7 происходит после установки таймера ТО1 на запуск. [2]

Диаграмма состояний в таблице 2.5 используется для описания функционального поведения в ONU. В первом столбце таблицы 2.5 указаны генерированные события, включая прием сообщений, а в первой строке указаны состояния в ONU. Таб. 2.5. Диаграмма состояний ONU

Исходное состояние (O1)

Состояние ожидания измерения дальности 1 (О2)

Состояние ожидания измерения дальности 2 (О3)

Состояния ожидания измерения дальности 3 (О4)

Состояние ожидания работы 1 (О5)

Сообщение Upstream_overhead

-

Выделит служебную нагрузку

Установить предопределенную задержку Te => O3

-

-

-

Завершение установки оптической мощности

-

-

-запуск таймера TO1 => O5

-запуск таймера TO1 => O5

-

Сообщение Serial_number_mask

-

-

Согласовывать SN (достоверные биты)? => O4

Согласовывать SN (достоверные биты)? => O3

Согласовывать SN (достоверные биты)? => O6

Сообщение Assign_PON_ID

-

-

-

-

Согласовывать SN?

- назначить PON_ID

Сообщение Grant_allocation

-

-

-

-

Согласовывать PON_ID?

- присвоить право доступа данных /PLOAM => O7

Сообщение POPUP

-

-

-

-

-

Истечение времени таймера TO2

-

-

-

-

-

Истечение времени таймера TO1

-

-

-

-

O3 (аварийный SUF)

Сообщение Ranging_time

-

-

-

-

-

Право доступа данных

-

-

-

-

-

Право доступа PLOAM

-

-

-

-

-

Право доступа измерения дальности

-

-

-

Послать ячейку PLOAM

-

Сообщение Deactivate_PON_ID

-

-

Согласовывать PON_ID? => O2

Согласовывать PON_ID? => O2

Согласовывать PON_ID?

- остановить таймер TO1=> O2

Сообщение Disable_serial_number

-

Согласовывать SN и позволить = FFh? =>O9

Согласовывать SN и позволить = FFh? =>O9

Согласовывать SN и позволить = FFh? =>O9

Согласовывать SN и позволить = FFh?

- остановить таймер TO1 =>O9

Обнаружить LOS или LSD, или OAML, или FRML

-

=>O1

=>O1

=>O1

остановить таймер TO1 =>O1

Отменить LOS и LCD, и OAML, и FRML

=>O2

-

-

-

-

Сообщение Upstream_overhead

-

-

-

-

-

Завершение установки оптической мощности

-

-

-

-

-

Сообщение Serial_number_mask

Не согласовывать SN (достоверные биты)?

=>O5

-

-

-

-

Сообщение Assign_PON_ID

Согласовать SN?

- Присвоить PON_ID

-

-

-

-

Сообщение Grant_allocation

Согласовать PON_ID?

- Присвоить право доступа данных/PLOAM

-

-

-

-

Сообщение POPUP

-

-

-

-

Восстановить установки лазера, Upstream_overhead, LCF и RXCF поля, Te, PON_ID и Grant_allocation, запуск таймера TO1 =>O7

Истечение времени таймера TO2

-

-

-

-

=>O1

Истечение времени таймера TO1

=>O3 (аварийный сигнал SUF)

=>O3 (аварийный сигнал SUF)

-

-

-

Сообщение Ranging_time

-

Согласовать PON_ID?

- остановка таймера TO1

- установить задержку выравнивания =>O8

Согласовать PON_ID?

- обновить задержку выравнивания

-

-

Право доступа данных

-

-

Послать ячейку ATM

-

-

Право доступа PLOAM

-

Послать ячейку PLOAM

Послать ячейку PLOAM

-

-

Право доступа измерения дальности

Послать ячейку PLOAM

-

-

-

-

Сообщение Deactivate_PON_ID

Согласовывать PON_ID?

- остановить таймер TO1=> O2

Согласовывать PON_ID?

- остановить таймер TO1=> O2

Согласовывать PON_ID? => O2

-

-

Сообщение Disable_serial_number

Согласовывать SN и позволить = FFh?

- остановка таймера TO1=>O9

Согласовывать SN и позволить = FFh?

- остановка таймера TO1=>O9

Согласовывать SN и позволить = FFh? =>O9

Согласовывать SN и позволить =00h или позволить= 0Fh и несоответствующий SN =>O1

-

Обнаружить LOS или LSD, или OAML, или FRML

остановка таймера TO1 =>O1

остановка таймера TO1 =>O1

Запустить таймер TO2 =>O10

-

=>O10

Отменить LOS и LCD, и OAML, и FRML

-

-

-

-

-

ONU покинет состояние работы, если происходит отказ или отключение питание ONU. В этой диаграмме состояний учитываются только сигналы технического обслуживания LOS, LCD, OAML и FRML.

Ячейка PLOAM в состоянии O6 или O7 должна передаваться сообщением Serial_number_ONU с предопределенной задержкой Te, а в состоянии O4 она должна передаваться с предопределенной задержкой Te.

PON_ID и Grant_allocation должны быть отменены или аннулированы при возникновении переходов в состояния O1, O2, O3 и O9, а предопределенная задержка Te должна быть отменена при переходах в состояния O1 и O2.

Сообщения, передаваемые в ячейках PLOAM от OLT, должны быть защищены с помощью CRC, а событие приема сообщения должно создаваться, если проверка CRC является правильной. В случаях а), с), d) и e), ниже, эти сообщения посылаются трижды с тем, чтобы гарантировать правильный прием в ONU. В этих случаях событие приема сообщения создается после правильного, хотя бы однократного, приема сообщения.

а) Событие приема сообщения Upstream_overhead

Это событие возникает только в состоянии ожидания Измерения дальности 1. После успешного приема сообщения Upstream_overhead происходит переход состояния ONU в состояние ожидания измерения дальности 2.

b) Событие приема сообщения Serial_number_mask

Это событие обрабатывается в состоянии ожидания измерения дальности 2, состоянии ожидания измерения дальности 3, состоянии ожидания работы 1и состоянии ожидания работы 2.

В состоянии ожидания измерения дальности 2 и состоянии ожидания измерения дальности 3: Когда достоверный порядковый номер согласуется с собственным порядковым номером, то состояние ONU подвергается переходу в состояние ожидания измерения дальности 3. Если достоверный порядковый номер не соответствует собственному порядковому номеру, то происходит переход в состояние ожидания измерения дальности 2.

В состоянии ожидания работы 1 и состоянии ожидания работы 2: Когда достоверный порядковый номер согласуется с собственным порядковым номером, то состояние ONU подвергается переходу в состояние ожидания работы 2. Если достоверный порядковый номер не согласуется с собственным порядковым номером, то происходит переход в состояние ожидания работы 1.

c) Событие приема сообщения Assign_PON_ID

Это событие обрабатывается только в состоянии ожидания работы 1 и в состоянии ожидания работы 2. Если порядковый номер в сообщении Assign_PON_ID согласуется с его собственным порядковым номером, то он воспринимается.

d) Событие приема сообщения Grant_allocation

Если PON_ID в сообщении Grant_allocation согласуется с его собственным PON_ID, то назначается право доступа данных и право доступа PLOAM для ONU, и затем состояние ONU устанавливается в состояние ожидания работы 3.

e) Событие приема сообщения Ranging_time

Это событие обрабатывается только в состоянии ожидания работы 3 и в состоянии работы, если PON_ID согласуется с собственным PON_ID. Equalization_delay принимается в сообщении Ranging_time и используется equalization_delay Td. (В состоянии ожидания работы 3).

Equalization_delay установлена, а состояние ONU установлено в состояние работы. (В состоянии работы).

Equalization_delay обновлена.

f) Событие приема сообщения Deactivate_РON_ID

Если PON_ID согласуется с собственным PON_ID, то состояние ONU подвергается переходу в состояние ожидания измерения дальности 1. Применяется также циркулярное сообщение Deactivate PON_ID.

g) Событие приема сообщения Disable_serial_number

Если порядковый номер (64 бита) согласуется с собственным порядковым номером, а 37-й октет Enable в этом сообщении равен FFh, то состояние ONU подвергается переходу в состояние экстренной остановки. Если порядковый номер (64 бита) согласуется с собственным порядковым номером, а 37-йоктет Enable в этом сообщении равен 00h, или же если поле Enable равно 0Fh независимо от порядкового номера, то состояние ONU подвергается переходу из состояния экстренной остановки в исходное состояние (О1).

h) Событие приема сообщения POPUP

Это событие происходит только в состоянии POPUP (010). При получении сообщения POPUP, ONU восстанавливает установки лазера, Upstream_overhead, поля LCF и RXCF, обусловленную задержку выравнивания Те, PON_ID и Grant_allocations. Запускается таймерТО1, затем происходит переход в состояние О7.

Право доступа данных обрабатывается только в состоянии работы, затем ячейка ATM передается к OLT. Ячейка PLOAM передается к OLT в ответ на право доступа PLОAM в состоянии ожидания работы 3 и в состоянии работы. Ячейка PLOAM, передаваемая в состоянии ожидания работы 3, должна включать сообщение Serial_number_ONU для подтверждения ячейки измерения дальности в ответ на право доступа PLOAM.

Право доступа измерения дальности действительно только в состоянии ожидания Измерения дальности 3 и состоянии ожидания работы 2. В состоянии ожидания измерения дальности 3, ONU посылает ячейку PLOAM в соответствии с приемом права доступа измерения дальности. Эта ячейка PLOAM может быть передана ONU неправильно во время установки лазера. В состоянии ожидания работы 2 ONU посылает ячейку PLOAM в назначенное время в соответствии с правами доступа измерения дальности. Эта ячейка PLOAM должна быть передана с сообщением Serial_number_ONU для восприятия OLT порядковых номеров.

Кроме приема сообщений в ONU могут происходить и другие события:

а) Завершение установки оптической мощности

Это событие генерируется в состоянии ожидания измерения дальности 2 и состоянии ожидания Измерения дальности 3 только при завершении установки оптической мощности ONU. Это событие вызывает переход в состояние ожидания работы 1 после установки запуска таймераТО1. Передаваемые в состоянии ожидания измерения дальности 3 ячейки PLOAM используются только для установки оптической мощности ONU в соответствии с приемом права доступа измерения дальности, если это необходимо. Если не требуется установка оптической мощности, то ONU в состоянии ожидания измерения дальности 1 (О2) выделит значение служебной нагрузки и значение предопределенной задержки из сообщения Upstream_overhead, перейдет в состояние ожидания измерения дальности 2 (О3), а затем немедленно создаст событие завершения установки оптической мощности и перейдет в состояние ожидания работы 1 (О5).

b) Истечение времени таймера ТО1

Это событие генерируется, когда процедура измерения дальности не завершена в течение определенного периода времени. Это событие создает переход состояния в состояние ожидания измерения дальности 2. Значение Т01 составляет 10 секунд.

c) Обнаружение LOS, LCD, OAML или FRML

Это событие вызывает переход состояния ОNU в исходное состояние (О1), за исключением тех случаев, когда ONU находится в состоянии работы (О8). В состоянии работы (О8) это событие вызывает переход состояния ONU в состояние POPUP (О10) после установки запуска таймера ТО2.

d) Отмена LOS, LCD, OAML и FRML

Это событие вызывает переход состояния ONU из исходного состояния в состояние ожидания измерения дальности 1.

e) Истечение таймера ТО2

Это событие генерируется, если сообщение POPUP не получено в состоянии POPUP в течение определенного периода времени. Это событие вырабатывает переход состояния в исходное состояние (О1). ЗначениеТО2 составляет 100 мс. [2]

Процедура измерения дальности в OLT

Процедура измерения дальности обусловлена функциональным поведением в виртуально определенных состояниях и переходом состояний, как показано ниже.

Функции OLT для процедуры измерения дальности могут быть разделены на Common-part (общую часть) и Individual-ONU-dealing-part(n) (часть, относящуюся к отдельным ONU(n)), где n соответствует каждому ONU. Common-part обрабатывает общую функцию в одном линейном интерфейсе, а Individual-ONU-dealing-part(n) обрабатывает каждый ONU, обеспечиваемый в одном линейном интерфейсе. Каждое состояние обеих частей соответственно описано далее, соответственно, включая поведение каждого. Диаграмма состояний, используемая для описания функционального поведения в Common-part, представлена в таблице 2.6. Первый столбец в таблице 2.6 указывает создаваемые события, а первая строка указывает состояния в Common-part.

Таб. 2.6. Диаграмма состояний Common-part в OLT

Состояние ожидания измерения задержки / состояние выполнения (OLT-COM1)

Состояние восприятия порядковых номеров (SN) (OLT-COM2)

Запрос восприятия SN

=> OLT-COM2

-

Прием достоверной PLOAM в окне

(примечание)

Извлечь SN

Распределить свободное n

Распределить свободный PON_ID

Конец поиска по двоичному дереву

-

=> OLT-COM1

Если для n условия измерения задержки не выполнены

Обновить n

-

Условия измерения задержки выполнены (n)

Команда запуска измерения задержки (n)

-

Примечание: Измерение задержки может быть выполнено или в OLT Common-part или в Individual-ONU-dealing-part. Следовательно, эта диаграмма не определяет явно эту функцию.

Состояния определены как:

- состояние ожидания измерения задержки / состояние выполнения (OLT-COM1);

- состояние восприятия последовательных номеров (SN) (OLT-COM2).

События определяются следующим образом:

а) Получена достоверная PLOAM в окне.

b) Конец поиска двоичного дерева.

c) Условия измерения задержки выполнены (n).

Это событие создается, если n-ная Individual-ONU-dealing-part(n) готова к измерению задержки.

d) Для n условия измерения задержки не выполнены. Нотификация конца измерения задержки (n).

Это событие генерируется для удобства, если n-ная Individual-ONU-dealing-part(n) завершила, успешно или безуспешно, измерение задержки. Описываемое событие приемлемо для последовательного измерения дальности в качестве запускающего обновления количества «n» ONU, подвергшихся измерению дальности, но не может использоваться в качестве запускающего обновление для параллельного измерения дальности. Соответственно, это событие не определено явно в диаграмме состояний.

e) Запрос восприятия SN.

Диаграмма состояний, используемая для описания функционального поведения в Individual-ONU-dealing-part(n), представлена в таблице 2.7. Первый столбец в таблице 2.7 указывает генерируемые события, а первая строка указывает состояния в Individual-ONU-dealing-part(n).

Таб. 2.6. Диаграмма состояний для Individual-ONU-dealing-part(n) в OLT

Исходное состояние (OLT-IDV1)

Состояние измерения задержки (OLT-IDV2)

Состояние работы (OLT-IDV3)

Команда запуска измерения задержки (n)

=> OLT-IDV2

-

-

Завершение измерения задержки (n)

-

Послать трижды Ranging_time. Уведомление конца измерения задержки (n).

=> OLT-IDV3

-

Аварийная остановка измерения задержки (n)

-

Послать трижды сообщение Deactivate_PON_ID.

Нотификация конца измерения задержки (n).

=> OLT-IDV1

-

Обнаружить LOSi(n), CPEi(n), LCDi(n), OAMLi(n), LOAi(n) или R-INHi(n)

-

-

=> OLT-IDV1

Состояния определяются как:

- исходное состояние (OLT-IDV1);

- состояние ожидания команды запуска измерения задержки;

- состояние измерения задержки (OLT-IDV2);

- состояние работы (OLT-IDV3).

События определяются следующим образом:

а) Команда запуска (n) измерения задержки

Это событие генерируется, если принята команда из Common-part.

b) Завершение измерения задержки (n)

Это событие генерируется, если было успешно выполнено измерение задержки. После того, как сообщение Ranging_time, содержащее equalization_delay, было трижды послано к назначенному ONU, для удобства выдается нотификация конца измерения задержки (n) к Common_part OLT, затем происходит переход состояния в состояние работы (OLT-IDV3).

c) Аварийная остановка измерения задержки (n)

Это событие генерируется при отказе измерения задержки. После того, как сообщение Deactivate_PON_ID было трижды послано к назначенному ONU, для удобства выдается нотификация конца измерения задержки (n) к Common-part OLT, затем происходит переход состояния в исходное состояние (OLT-IDV1).

d) Обнаружение LOSi(n), CPEi(n), LCDi(n), OAMLi(n) или R-INHi(n)

Это событие вызывает переход состояния в исходное состояние (OLT-IDV1).

Процедура для equalization_delay

Определенные биты в поле сообщения Ranging_time в нисходящей ячейке PLOAM устанавливаются в значение этой equalization_delay и это передается к ONU.

Успешное измерение equalization_delay указывается, если соблюдены все следующие условия:

1) достоверная ячейка PLOAM обнаружена в окне измерения дальности;

2) сообщение Serial_number_ONU в ячейке PLOAM согласуется с порядковым номером адресуемого ONU;

3) измеряемая Td меньше или равна определенной величине (например, 79 ячеек);

4) фаза накопления ONU отличается менее чем на ± 2 бита или равно ± 2 бита, по сравнению с фазой эталонной ячейки.

Эталонная ячейка определяется следующим образом:

- Первая фаза накопления не имеет эталонной ячейки, следовательно, измерение equalization_delay считается изначально успешным, если первая принятая ячейка PLOAM удовлетворяет всем вышеуказанным условиям (1-3). Первая фаза захвата считается эталонной фазой для следующей принятой ячейки PLOAM. Эталонная ячейка обновляется каждый раз, когда OLT принимает новую достоверную ячейку PLOAM, которая удовлетворяет вышеуказанным условиям (1-3), не зависимо от соблюдения условия 4).

Процедура измерения задержки включает ряд измерений и считается завершенной по выполнении двух успешных (S) или двух неудачных (F) измерений. Выполнение ее S (=2) раз указывает на успешное измерение equalization_delay, и это генерирует событие завершения измерения задержки. Напротив, F(=2) указывает на отказ при измерении equalization_delay, это означает, что не были соблюдены условия для успешного измерения equalization_delay, что генерирует событие аварийной остановки измерения задержки. При необходимости, время отказов может не включать время установки пороговых значений в приемнике OLT. Метод расчета и передачи equalization_delay описан ниже.

Когда происходит событие завершения измерения задержки, то самое последнее успешное значение equalization_delay и значение equalization_delay его эталонной ячейки усредняются, а дробные части бита не учитываются. Это усредненное значение передается к ONU как equalization_delay.

Во время активности ONU, фаза принятой в OLT ячейки непрерывно проверяется с тем, чтобы предупредить коллизии с соседними ячейками. Джиттер, создаваемый задающим генератором OLT, компенсируется с помощью метода выравнивания фазы синхронизации. Блуждание (wander), вызываемое изменением температуры, заставляет восходящую ячейку ONU смещаться по направлению к предыдущей или последующей ячейке. Фазы ячеек, поступающих в OLT, через определенный временной период, усредняются с соответствующей выборкой ячеек для каждого ONU, а обновленная equalization_delay посылается через сообщение Ranging_time к тому ONU, который будет регулировать equalization_delay. Это сообщение Ranging_time должно быть передано, по крайней мере, один раз в течение определенного максимального периода времени.

Если OLT обнаруживает, что ONU не отрегулировал свою equalization_delay после определенной выдержки времени, или же, если OLT обнаруживает погрешность по фазе ячейки в определенный промежуток времени, то OLT несколько раз посылает обновленную equalization_delay. В случае неудачи (CPEi) OLT трижды посылает сообщение Deactivate_PON_ID. Если ONU не реагирует на это сообщение, то оператор информируется об этой аномалии. Если ONU блокирован, то прием права доступа для этого ONU приостанавливается. Оператор информируется об этом действии. Оператор может решить вывести этот ONU из эксплуатации или же повторить полную процедуру измерения дальности. [2]

Диаграмма обмена сообщениями ONU-OLT

Диаграмма, приведенная на рисунке 2.13, иллюстрирует обычный обмен сообщениями между OLT и ONU в процессе измерения дальности.

Рис. 2.13. Последовательность сообщений измерения дальности.

3. Моделирование алгоритма распределения ресурсов на ЭВМ

Основные результаты приведённого выше анализа были проверены путём моделирования на ЭВМ алгоритма работы пассивной оптической сети APON.

Проверка работоспособности полученного алгоритма была реализована путем создания программы на алгоритмическом языке Turbo Pascal 7.0.

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

1. Описание констант и переменных.

2. Процедура ввода исходных данных.

3. Процедура построения структуры сети.

4. Инициализация модуля графики.

5. Набор процедур, обеспечивающих управление выводом графической информации.

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

Программа позволяет обозначить ONU, которые получили право доступа измерения задержки, и наглядно показывает какие ONU получили/не получили свой временной интервал на основе процедуры измерения дальности.

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

Основные клавиши для работы в программе: вверх, вниз, ввод, табуляция - выбор и выход - Esc.

Основные этапы работы программы:

1) Создается заданная структура сети, вводятся серийные номера ONU.

2) На следующем этапе на дисплей выводится графическое изображение структуры сети с OLT и ONU и серийным номером ONU, еще не получившего свой временной интервал в групповом сигнале (рис. 3.1).

Рис. 3.1. Структура сети с OLT и ONU и серийным номером ONU, еще не получившего свой временной интервал в групповом сигнале

3) Выбор ONU, который получил право доступа измерения дальности (рис. 3.2)

Рис. 3.2. Выбор ONU, получившего право доступа измерения дальности

4) Измерение времени задержки Td (рис 3.3).

Рис. 3.3. Измерение времени задержки Td

5) В процессе измерения дальности ONU и OLT не смогли согласовать Td и ONU, OLT посылает сообщение Deactivate_PON_ID, и ONU не может осуществлять передачу (рис. 3.4).

Рис. 3.4. OLT посылает сообщение Deactivate_PON_ID, и ONU не может осуществлять передачу

6) В процессе измерения дальности ONU и OLT согласовали Td, процедура измерения дальности завершена, и ONU может приступить к работе (рис. 3.5).

Рис. 3.5. ONU и OLT согласовали Td, процедура измерения дальности завершена, и ONU может приступить к работе

Заключение

Приведем результаты, полученные в данной дипломной работе.

В первой главе был рассмотрен принцип работы пассивных оптических сетей, топологии построения сетей PON, представлены стандарты PON, изложены принципы работы технологий APON, GPON, EPON.

Во второй главе был проведен анализ алгоритма установления соединения в сетях APON. Так же была приведена структура кадра, рассмотрены служебные сообщения, приведен метод расчета задержки.

На основании проведённого анализа была разработана программа, позволяющая моделировать процесс измерения дальности для сетей APON.

Полученные результаты позволяют моделировать алгоритм работы пассивной оптической сети APON и выделение временного интервала для конкретного ONU на основании измерения задержки Td.

Литература

1. И.И. Петренко, Р.Р. Убайдуллаев «Оптические сети PON». //Lightwave. Russian edition. - №1, 2004, с. 22-28

2. ITU-T Recommendation G.983.1.

3. http://www.fotonexpress.ru/pdf/PE_3 (51).pdf

4. http://www.cisco.com/web/RU/downloads/Cisco_FTTH_architecture.pdf

5. http://www.teralink.ru/

6. http://www.tls-group.ru/doc/2005/nets/prozr/prozr.html

7. http://www.tssonline.ru/articles2/Oborandteh/med-ili-optika-chto-luchshe-oper-shpd

8. http://www.deps.ua/tehnicheskaya-informatsiya/stati/praktika-vnedreniya-passivnyih-opticheskih-setey-pon.html

9. Кирби Р. «Новый отсчет времени для пассивных оптических сетей» LAN Журнал Сетевых Решений, №9, 2001, с. 50-55.

Гаскевич Е., Убайдуллаев Р. «PON - широкополосная мультисервисная сеть доступа», ТелеМультиМедиа, №2 (12), 2002, с. 29-32.

10. Орлов С. «Оптика вплотную к клиентам» LAN Журнал сетевых решений, №5, 2003, с. 50-60.

Приложение

Program Graf;

uses CRT, Graph, var_u, kadrOLT, kadrONT;

procedure oshibka;

begin

for io:=1 to 2*d do begin

jo:=random (abs(jj-2));

if jo=0 then jo:=1;

oshibka2:=random (n-1); {номер байта}

if oshibka2=22 then oshibka2:=oshibka2-1;

oshibka1:=random(7); {номер бита}

seek (f, (jo-1)*n+oshibka2);

blockread (f, h, 1, result);

m:=ioresult;

h.mean:=h.mean xor trunc (exp(oshibka1*ln(2)));

seek (f, (jo-1)*n+oshibka2);

blockwrite (f, h, 1, result);

m:=ioresult;

end;

end;

{-}

procedure decod2 (ao:byte);

begin

xo:=0;

for ko:=0 to 7 do

if ao>=int (exp((7-ko)*ln(2))) then begin

xoo:=xoo+1;

ao:=ao-trunc (exp((7-ko)*ln(2)));

end;

end;

{-}

procedure inicial;

begin

assign (f, 'd:amkol_onu');

reset (f, sizeof(x1));

blockread (f, x1,1, result);

m:=ioresult;

close(f);

if x1<>0 then begin

assign (f, 'd:amkol_cont');

reset (f, sizeof(x1));

blockread (f, x1,1, result);

m:=ioresult;

close(f);

end;

CONT:=x1;

ATM:=0;

ploamu1:=2;

r1:=1;

kadr_n;

end;

{-}

procedure otvet;

begin

assign (f, 'd:amkadr-n');

reset (f, sizeof(h));

ONU_ID:=zs[i15].id;

SN:=ys[i15];

seek (f, 8); {широковещат}

blockread (f, h, 1, result);

m:=ioresult;

if h.mean=255 then begin

seek (f, 9);

blockread (f, h, 1, result);

m:=ioresult;

case h.mean of

1: if ONU_ID=255 then begin

seek (f, 10);

blockread (f, h, 1, result);

m:=ioresult;

zaschita:=h.mean;

seek (f, 11);

blockread (f, h, 1, result);

m:=ioresult;

pream1:=h.mean;

seek (f, 12);

blockread (f, h, 1, result);

m:=ioresult;

pream2:=h.mean;

seek (f, 13);

blockread (f, h, 1, result);

m:=ioresult;

pream3:=h.mean;

for i:=1 to 3 do begin

seek (f, 13+i);

blockread (f, h, 1, result);

m:=ioresult;

razdel[i]:=h.mean;

end;

seek (f, 22);

blockread (f, h, 1, result);

m:=ioresult;

CONT1:=h.mean*16;

seek (f, 23);

blockread (f, h, 1, result);

m:=ioresult;

CONT1:=CONT1+trunc((h.mean and 240)/16);

end;

end;

end;

close(f);

kadr_v;

assign (f, 'd:amkadr-v');

reset (f, sizeof(h));

seek (f, 12);

blockread (f, h, 1, result);

m:=ioresult;

if h.mean=255 then begin

seek (f, 13);

blockread (f, h, 1, result);

m:=ioresult;

if h.mean=1 then begin

seek (f, 20);

blockread (f, h, 1, result);

m:=ioresult;

seek (f, 21);

blockread (f, h, 1, result);

m:=ioresult;

SN:=h.mean;

close(f);

assign (f, 'd:amkol_onu');

reset (f, sizeof(x1));

blockread (f, x1,1, result);

m:=ioresult;

seek (f, 0);

x1:=x1+1;

ONU_ID:=x1;

blockwrite (f, x1,1, result);

m:=ioresult;

close(f);

assign (f, 'd:amkol_cont');

reset (f, sizeof(x1));

blockread (f, x1,1, result);

m:=ioresult;

seek (f, 0);

x1:=x1+1;

CONT:=x1;

blockwrite (f, x1,1, result);

m:=ioresult;

close(f);

end;

end;

r1:=2;

kadr_n;

assign (f, 'd:amkadr-n');

reset (f, sizeof(h));

seek (f, 10);

blockread (f, h, 1, result);

m:=ioresult;

zs[i15].ID:=h.mean;

for r:=1 to CONT do begin

seek (f, 33+8*(r-1));

blockread (f, h, 1, result);

m:=ioresult;

x1:=h.mean;

seek (f, 34+8*(r-1));

blockread (f, h, 1, result);

m:=ioresult;

zs1 [r]:=x1*256+h.mean;

seek (f, 35+8*(r-1));

blockread (f, h, 1, result);

m:=ioresult;

x1:=h.mean;

seek (f, 36+8*(r-1));

blockread (f, h, 1, result);

m:=ioresult;

zs2 [r]:=x1*256+h.mean;

end;

r2:=1;

for r:=1 to s0 do

if zs[r].id=255 then continue

else begin

zs[r].start:=zs1 [r2];

zs[r].stop:=zs2 [r2];

r2:=r2+1;

if r2>cont then break;

end;

end;

{-}

procedure Setka;

begin

setbkcolor(15);

cleardevice;

setcolor(1);

SetLineStyle (SolidLn, 0, ThickWidth);

Rectangle (Round((GetMaxX*0.5+GetMaxY*0.5-70)*yasp/xasp), round (GetMaxY/2 - 40),

Round((GetMaxX*0.5+GetMaxY*0.5-30)*yasp/xasp), round (GetMaxY/2+40));

line (Round((GetMaxX*0.5+GetMaxY*0.5-70)*yasp/xasp), round (GetMaxY/2),

Round((GetMaxX*0.5-40)*yasp/xasp), round (GetMaxY/2));

settextstyle (0,0,2);

settextjustify (centertext, centertext);

outtextxy (Round((GetMaxX*0.5+GetMaxY*0.5-50)*yasp/xasp),

round (GetMaxY/2), 'OLT');

settextstyle (0,0,1);

SetLineStyle (SolidLn, 0, NormWidth);

for i1:=1 to s0 do

line (zs[i1].ex, zs[i1].ey, Round((GetMaxX*0.5 - 50)*yasp/xasp), round (GetMaxY/2));

SetFillStyle (1,15);

Bar (Round((GetMaxX*0.5-60)*yasp/xasp), round (GetMaxY/2-5),

Round((GetMaxX*0.5-40)*yasp/xasp), round (GetMaxY/2+5));

SetLineStyle (SolidLn, 0, ThickWidth);

Rectangle (Round((GetMaxX*0.5-60)*yasp/xasp), round (GetMaxY/2-5),

Round((GetMaxX*0.5-40)*yasp/xasp), round (GetMaxY/2+5));

str (s0, w1);

textw:=textwidth ('ONU'+w1);

for i1:=1 to s0 do begin

SetFillStyle (1,15);

Bar (zs[i1].ex-round (textw/2) - 4, zs[i1].ey-10, zs[i1].ex+round (textw/2)+4,

zs[i1].ey+10);

SetColor (zs[i1].col);

Rectangle (zs[i1].ex-round (textw/2) - 4, zs[i1].ey-10, zs[i1].ex+round (textw/2)+4,

zs[i1].ey+10);

end;

setcolor(1);

settextjustify (centertext, centertext);

for i1:=1 to s0 do begin

str (i1, w1);

outtextxy (zs[i1].ex, zs[i1].ey, 'ONU'+w1);

end;

end;

{-}

procedure generator;

begin

setka;

setcolor(s5);

settextjustify (centertext, centertext);

str (ys[i15], w1);

if sv1=1 then begin

w1:='данный ONU уже идентифицирован';

sv1:=0;

end;

outtextxy (4+round (textwidth(w1)/2), getmaxy-30, w1);

str (i15, w1);

w3:='серийный номер ONU '+w1;

outtextxy (4+round (textwidth(w3)/2), getmaxy-50, w3);

if zs[i15].id<>255 then begin

str (zs[i15].id, w1);

w3:='ONU_ID '+w1;

outtextxy (4+round (textwidth(w3)/2), getmaxy-70, w3);

str (zs[i15].stop, w1);

w3:='SSTOP '+w1;

outtextxy (4+round (textwidth(w3)/2), getmaxy-85, w3);

str (zs[i15].start, w1);

w3:='SSTART '+w1;

outtextxy (4+round (textwidth(w3)/2), getmaxy-100, w3);

end;

zs[i15].col:=z3;

end;

{-}

procedure vibor;

begin

i15:=1;

k:=0;

z3:=zs[i15].col;

zs[i15].col:=s3;

generator;

repeat

if keypressed then begin

ch:=readkey;

if ch=#0 then begin

ch:=readkey;

case ord(ch) of

72:begin

{if y[i15]=2 then begin k:=i15; for j:=1 to s0 do x [j, i15]:=0; end;}

if i15=s0 then

i15:=1

else i15:=i15+1;

z3:=zs[i15].col;

zs[i15].col:=s3;

generator;

end;

80: begin

{if y[i15]=2 then begin k:=i15; for j:=1 to s0 do x [j, i15]:=0; end;}

if i15=1 then

i15:=s0

else i15:=i15-1;

z3:=zs[i15].col;

zs[i15].col:=s3;

generator;

end;

end;

end

else begin

if ch=#9 then

if zs[i15].sv=0 then begin

inicial;

otvet;

zs[i15].sv:=1;

end

else begin

sv1:=1;

zs[i15].col:=s3;

generator;

end;

z[i15].col:=s3;

case y[i15] of

0: if k=0 then y[i15]:=2

else y[i15]:=4;

2: begin

if i15=k then begin k:=0; for j:=1 to s0 do x [j, i15]:=x2 [j, i15]; end;

y[i15]:=4;

end;

4: y[i15]:=11;

11: y[i15]:=0;

end;

generator;

end;}

if ch=#13 then begin

zs[i15].col:=z3;

break;

end;

if ch=#27 then halt;

end;

end;

until (1=2);

end;

{-}

begin

textbackground(1);

textcolor(14);

clrscr;

jj:=1;

writeln ('введите кол-во ONU');

readln(s0);

writeln ('введите серийные номера ONU');

for i15:=1 to s0 do begin

readln (ys[i15]);

zs[i15].id:=255;

end;

assign (f, 'd:amkol_onu');

rewrite (f, sizeof(x1));

x1:=0;

blockwrite (f, x1,1, result);

m:=ioresult;

close(f);

assign (f, 'd:amkol_cont');

rewrite (f, sizeof(x1));

x1:=0;

blockwrite (f, x1,1, result);

m:=ioresult;

close(f);

assign (f, 'd:amoltO_ID');

rewrite (f, sizeof(h1));

h1.kcont:=0;

h1.snum:=0;

h1.onu:=0;

blockwrite (f, h1,1, result);

m:=ioresult;

close(f);

assign (f, 'd:amkadr-n');

rewrite (f, sizeof(h));

close(f);

assign (f, 'd:amkadr-v');

rewrite (f, sizeof(h));

close(f);

{inicial;}

repeat

Gd:=9;

gm:=1;

pgd:='d:BPBGI';

InitGraph (Gd, Gm, pgd);

str (s0, w1);

rd:=textwidth(w1) - 6*(s00-1);

getaspectratio (xasp, yasp);

for i15:=1 to s0 do begin

zs[i15].ex:=Round (GetMaxX*0.5+((GetMaxY*0.5-25)*cos (pi/2+pi*(i15-1)/(s0-1)))*yasp/xasp);

zs[i15].ey:=Round (GetMaxY*0.5 - (GetMaxY*0.5-25)*sin (pi/2+pi*(i15-1)/(s0-1)));

zs[i15].ox:=Round (GetMaxX*0.5+((GetMaxY*0.5-25+rd+14)*cos (pi/2+pi*(i15-1)/(s0-1)))*yasp/xasp);

zs[i15].oy:=Round (GetMaxY*0.5 - (GetMaxY*0.5-25+rd+6)*sin (pi/2+pi*(i15-1)/(s0-1)));

end;

p4:=0;

for j:=1 to s0 do zs[j].col:=s5;

setka;

vibor;

restorecrtmode;

textbackground(1);

textcolor(14);

clrscr;

po1:=0.00001;

po2:=0.005;

d:=1;

po:=po1;

jj:=round (d/(4*n*po))+1;

s11:=0;

r5:=0;

yo:=0;

xoo:=0;

for eo:=1 to 5 do begin

r1:=1;

kadr_n;

assign (f, 'd:amkadr-n');

reset (f, sizeof(h));

Oshibka;

seek (f, 0);

repeat

blockread (f, h, 1, result);

m:=ioresult;

if h.name=22 then begin

ao:=s11 XOR h.mean;

decod2 (ao);

yo:=yo+xoo;

s11:=0;

end else

s11:=s11 XOR h.mean;

until (eof(f));

{-}

writeln ('{-}');

writeln ('вероятность ошибки ', po);

writeln ('общее число обнаруженных ошибок ', yo);

writeln ('общее число внесенных ошибок ', 2*d);

textcolor(15);

writeln ('{-}');

writeln (' Enter - продолжение; Esc - выход ');

writeln ('{-}');

xo1 [r5]:=po;

yo1 [r5]:=100*yo/(2*d);

po:=po+(po2-po1)/(5-1);

d:=round (4*n*jj*po);

r5:=r5+1;

repeat

ch:=readkey;

if ch=#27 then halt;

until (ch=#13);

end;

m1:=5;

fmax:=100;

mn2:=1;

mn1:=0;

Kn:=300/fmax; dx:=xo1 [1] - xo1 [0];

{Вычисление производных}

for i:=1 to m1-3 do begin

df0:=yo1 [i-1] - yo1 [i]; df1:=yo1 [i+1] - yo1 [i]; df2:=yo1 [i+2] - yo1 [i];

kf1 [i]:=(6*df1-df2-2*df0)/(6*dx);

kf2 [i]:=(df1+df0)/(2*Sqr(dx));

kf3 [i]:=(df2-3*df1-df0)/(6*Sqr(dx)*dx); end;

kf1 [0]:=kf1 [1] - 2*kf2 [1]*dx+3*kf3 [1]*Sqr(dx);

kf1 [m1-2]:=kf1 [m1-3]+2*kf2 [m1-3]*dx+3*kf3 [m1-3]*Sqr(dx);

kf1 [m1-1]:=kf1 [m1-3]+4*kf2 [m1-3]*dx+12*kf3 [m1-3]*Sqr(dx);

for i:=0 to m1-2 do begin

v0 [i]:=yo1 [i];

v1 [i]:=kf1 [i];

v2 [i]:=(3*(yo1 [i+1] - yo1 [i]) - (kf1 [i+1]+2*kf1 [i])*dx)/Sqr(dx);

v3 [i]:=(kf1 [i+1] - v1 [i] - 2*v2 [i]*dx)/(3*Sqr(dx)); end;

xo:=po1; l:=0; deltaX:=(xo1 [1] - xo1 [0])/no;

for i:=0 to m1-2 do begin

for k:=0 to no-1 do begin

fm[l]:=v0 [i]+v1 [i]*(xo-xo1 [i])+v2 [i]*Sqr (xo-xo1 [i])+v3 [i]*(xo-xo1 [i])*

Sqr (xo-xo1 [i]); xo:=xo+deltax; l:=l+1; end; end;

GD:= Detect;

InitGraph (GD, GM, 'd:bpbgi');

if GraphResult <> grOk then Halt(1);

setbkcolor(15);

setcolor(1);

setlinestyle (0,0,3);

for i:=0 to 10 do begin

Line (80,90+i*30,560,90+i*30); end;

for i:=0 to m1-1 do begin

Line (80+i*120,90,80+i*120,390); end;

OutTextXY (85,75,'K, %');

OutTextXY (93,80,'osh');

for i:=1 to 10 do begin

Str (i*10, v);

OutTextXY (50,390 - i*30, v); end;

OutTextXY (75,400,'1');

for i:=1 to m1-1 do begin

Str (trunc(xo1 [i]/xo1 [0]), v);

OutTextXY (75+i*120,400, v); end;

repeat

if round (xo1 [0]*mn2)<1 then begin

mn2:=mn2*10;

mn1:=mn1+1;

end else break;

until (1=2);

str (trunc(mn2*xo1 [0]), v);

str (mn1, vv);

v:='1';

OutTextXY (90+(m1-1)*120,385,'p*1-E'+vv);

SetColor(1);

mashtabx:=120*(m1-1)/(l-1);

for i:=0 to l-2 do begin

yp:=Round (fm[i]*Kn);

yn:=Round (fm[i+1]*Kn);

Line (round(80+i*mashtabx), 390-yp, round (80+(i+1)*mashtabx), 390-yn);

end;

readln;

halt;

CloseGraph;

until (1=2);

end.

-

unit var_u;

{$N+}

interface

uses CRT, DOS;

type

signal = record

num_tc:longint;

num:word;

name:byte;

mean:byte;

end;

signal1 = record

snum:integer;

onu:byte;

kcont:integer;

end;

elips=record

ex:integer;

ey:integer;

ox:integer;

oy:integer;

col:byte;

sv:byte;

ID:byte;

start:integer;

stop:integer;

end; const

n=19440; {кол. байт в нисходящем / восходящем кадре}

s7=3; {число сплитеров}

s00=1; {количество цифр в s0}

s3=4; {цвет аварийных узлов}

s4=0; {номер узла}

s5=1; {цвет узлов с обрывом}

s6=5;

no=50;

var

fm:array [0..5*no] of real;

x2:array [1..13] of byte;

razdel:array [1..3] of byte;

crc, rez:array [1..8] of byte;

v0, v1, v2, v3, kf0, kf1, kf2, kf3, yo1, xo1:array [0..5] of real;

result:word;

io, oshibka2, oshibka1:word;

f:file;

h:signal;

h1:signal1;

mask, sp, s1, s2, s11, fl1, x, z, xoo, ko, ao:byte;

po, po1, po2, kn, xo, dx, deltax, df0, df1, df2, df3, mashtabx:real;

cht, textw, rd, p4, xasp, yasp:word;

j, jo, d, yo, mn2:longint;

m, r, r1, r2, r10, r11, r12, IND, zaschita, Pls, DBR, pream1, pream2, pream3,

x1, Ploamu, Ploamu1, SN, ONU_ID, CONT, CONT1, A_ID, ATM, xb, xf:integer;

ys, zs1, zs2:array [1..100] of integer;

zs:array [1..100] of elips;

s0, gd, gm, i, l, i1, r5, j1, yp, yn, k, i15, jj, eo, m1, fmax, mn1:integer;

ch:char;

pgd, w1, w2, w3, v, vv:string;

z3, t, t1, sv1:byte;

implementation

{-}

end.

unit kadrOLT;

{$N+}

interface

uses CRT, DOS, var_u;

procedure kadr_n;

implementation

const

n=19440; {кол. байт в нисходящем / восходящем кадре}

{-}

procedure chtenie;

begin

case cht of

0: writeln('информация');

1: writeln ('заголовок 1 байт Psync B6 ');

2: writeln ('заголовок 2 байт Psync AB ');

3: writeln ('заголовок 3 байт Psync 31 ');

4: writeln ('заголовок 4 байт Psync E0 ');

5: writeln ('заголовок 1 байт Ident ');

6: writeln ('заголовок 2 байт Ident ');

7: writeln ('заголовок 3 байт Ident ');

8: writeln ('заголовок 4 байт Ident ');

9: writeln ('широковещательная передача ');

10: writeln ('ID сообщения ');

11: writeln ('число защитных блоков ');

12: writeln ('число битов преамбулы 1 ');

13: writeln ('число битов преамбулы 2 ');

14: writeln ('биты преамбулы 3 ');

15: writeln ('байт 1 разделителя ');

16: writeln ('байт 2 разделителя ');

17: writeln ('байт 3 разделителя ');

18: writeln ('режим Up_Ov ');

19: writeln ('задержка 1 для предв. выравнивания ');

20: writeln ('задержка 2 для предв. выравнивания ');

21: writeln ('CRC-8 заголовка ');

22: writeln ('заголовок байт ПЧБ BIP-8 ');

23: writeln ('заголовок 1 байт Plend1 кол-во T-CONT ');

24: writeln ('заголовок 2 байт Plend1 кол-во T-CONT+сегмент ATM ');

25: writeln ('заголовок 3 байт Plend1 сегмент ATM ');

26: writeln ('заголовок 4 байт Plend1 CRC-8 ');

27: writeln ('заголовок 1 байт Plend2 кол-во T-CONT ');

28: writeln ('заголовок 2 байт Plend2 кол-во T-CONT+сегмент ATM ');

29: writeln ('заголовок 3 байт Plend2 сегмент ATM ');

30: writeln ('заголовок 4 байт Plend2 CRC-8 ');

31: writeln ('заголовок 1 байт AllocID ');

32: writeln ('заголовок 2 байт AllocID+Flag ');

33: writeln ('заголовок 3 байт Flag ');

34: writeln ('заголовок 1 байт Start ');

35: writeln ('заголовок 2 байт Start ');

36: writeln ('заголовок 1 байт Stop ');

37: writeln ('заголовок 2 байт Stop ');

38: writeln ('заголовок байт CRC-8 ');

39: writeln ('преамбула типа1 ');

40: writeln ('преамбула типа2 ');

end;

readln;

halt;

end;

{-}

procedure CRC_8;

begin

x2 [13]:=0;

x:=0;

z:=0;

for r10:=1 to 8 do begin

CRC[r10]:=0;

rez[r10]:=0;

end;

rez[1]:=1;

rez[2]:=1;

rez[3]:=1;

for r12:=1 to 12 do begin

for r11:=1 to 8 do begin

x:=trunc((x2 [r12] and trunc (exp((8-r11)*ln(2))))/trunc (exp((8-r11)*ln(2))));

z:=crc[8];

for r10:=0 to 6 do

crc [8-r10]:=crc [7-r10];

crc[1]:=x;

if z=1 then

for r10:=1 to 8 do crc[r10]:=crc[r10] XOR rez[r10];

end;

end;

for r10:=1 to 8 do

x2 [13]:=x2 [13]+crc[r10]*trunc (exp((r10-1)*ln(2)));

end;

{-}

procedure Up_Ov;

begin

x2 [1]:=255;

x2 [2]:=1;

x2 [3]:=8;

x2 [4]:=8;

x2 [5]:=8;

x2 [6]:=170;

x2 [7]:=133;

x2 [8]:=179;

x2 [9]:=0;

x2 [10]:=2;

x2 [11]:=0;

x2 [12]:=0;

CRC_8; {результат процедуры CRC-8 в x2 [13]}

end;

{-}

procedure As_ONU_ID;

begin

x2 [1]:=255;

x2 [2]:=3;

x2 [3]:=ONU_ID;

x2 [4]:=0;

x2 [5]:=0;

x2 [6]:=0;

x2 [7]:=0;

x2 [8]:=0;

x2 [9]:=SN and 65280;

x2 [10]:=SN and 255;

x2 [11]:=0;

x2 [12]:=0;

CRC_8; {результат процедуры CRC-8 в x2 [13]}

end;

{-}

procedure As_All_ID;

begin

x2 [1]:=ONU_ID;

x2 [2]:=10;

x2 [3]:=ONU_ID;

x2 [4]:=0;

x2 [5]:=1;

x2 [6]:=0;

x2 [7]:=0;

x2 [8]:=0;

x2 [9]:=0;

x2 [10]:=0;

x2 [11]:=0;

x2 [12]:=0;

CRC_8; {результат процедуры CRC-8 в x2 [13]}

end;

{-}

{-}

procedure kadr_n;

begin

assign (f, 'd:amkadr-n');

r:=0;

reset (f, sizeof(h));

s1:=0;

sp:=0;

for j:=1 to jj do begin

for i:=1 to n do begin

h.num_tc:=j;

h.num:=i;

h.mean:=random(255);

case i of

1: begin

h.name:=1 {заголовок 1 байт Psync B6};

h.mean:=182;

end;

2: begin

h.name:=2 {заголовок 2 байт Psync AB};

h.mean:=171;

end;

3: begin

h.name:=3 {заголовок 3 байт Psync 31};

h.mean:=49;

end;

4: begin

h.name:=4 {заголовок 4 байт Psync E0};

h.mean:=224;

end;

5: begin

h.name:=5 {заголовок 1 байт Ident};

h.mean:=64;

end;

6: begin

h.name:=6 {заголовок 2 байт Ident};

h.mean:=0;

end;

7: begin

h.name:=7 {заголовок 3 байт Ident};

h.mean:=0;

end;

8: begin

h.name:=8 {заголовок 4 байт Ident};

h.mean:=0;

end;

9: case r1 of

1: begin

fl1:=1; {флаг включения Alloc_ID=254 и запрос SN}

Up_Ov;

for r2:=1 to 13 do begin

h.name:=8+r2; {заголовок Ploam}

h.num:=8+r2;

h.mean:=x2 [r2];

s1:=s1 XOR h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

i:=h.num;

sp:=1;

end;

2: begin

As_ONU_ID;

for r2:=1 to 13 do begin

h.name:=8+r2; {заголовок Ploam}

h.num:=8+r2;

h.mean:=x2 [r2];

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 XOR h.mean;

end;

i:=h.num;

sp:=1;

end;

end;

22: begin

h.name:=22 {заголовок байт ПЧБ BIP-8};

h.mean:=s1;

s1:=0;

blockwrite (f, h, 1, result);

m:=ioresult;

sp:=1;

end;

23: begin

h.name:=23 {заголовок 1 байт Plend1 кол-во T-CONT};

h.mean:=trunc(((fl1+CONT) and 4080)/16);

for r2:=1 to 13 do x2 [r2]:=0;

x2 [10]:=h.mean;

end;

24: begin

h.name:=24 {заголовок 2 байт Plend1 кол-во T-CONT+сегмент ATM};

h.mean:=16*((fl1+CONT) and 15)+trunc((ATM and 3840)/256);

x2 [10]:=h.mean;

end;

25: begin

h.name:=25 {заголовок 3 байт Plend1 сегмент ATM};

h.mean:=ATM and 255;

x2 [10]:=h.mean;

end;

26: begin

h.name:=26 {заголовок 4 байт Plend1 CRC-8};

CRC_8;

h.mean:=x2 [13];

end;

27: begin

h.name:=27 {заголовок 1 байт Plend2 кол-во T-CONT};

h.mean:=trunc(((fl1+CONT) and 4080)/16);

for r2:=1 to 13 do x2 [r2]:=0;

x2 [10]:=h.mean;

end;

28: begin

h.name:=28 {заголовок 2 байт Plend2 кол-во T-CONT+сегмент ATM};

h.mean:=16*((fl1+CONT) and 15)+trunc((ATM and 3840)/256);

x2 [11]:=h.mean;

end;

29: begin

h.name:=29 {заголовок 3 байт Plend2 сегмент ATM};

h.mean:=ATM and 255;

x2 [12]:=h.mean;

end;

30: begin

h.name:=30 {заголовок 4 байт Plend2 CRC-8};

CRC_8;

h.mean:=x2 [13];

end;

31: begin

for r:=1 to CONT+fl1 do begin

h.num:=31+(r-1)*8;

h.name:=31 {заголовок 1 байт AllocID};

if r<254 then h.mean:=trunc((r and 4080)/16) else h.mean:=trunc(((r+2) and 4080)/16);

if (fl1=1) and (r=CONT+fl1) then h.mean:=trunc((254 and 4080)/16);

for r2:=1 to 13 do x2 [r2]:=0;

x2 [6]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=32+(r-1)*8;

h.name:=32 {заголовок 2 байт AllocID+Flag};

if r<254 then h.mean:=(r and 15)*16 else

h.mean:=((r+2) and 15)*16;

if (fl1=1) and (r=CONT+fl1) then h.mean:=(254 and 15)*16;

x2 [7]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=33+(r-1)*8;

h.name:=33 {заголовок 3 байт Flag};

h.mean:=Ploamu; {флаг ответа на запрос S_N}

if (fl1=1) and (r=CONT+fl1) then h.mean:=Ploamu1; {флаг ответа на запрос S_N при обнаружении}

x2 [8]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=34+(r-1)*8;

h.name:=34 {заголовок 1 байт Start};

xb:=trunc((((r-1)*(round (19440/(CONT+fl1)))) and 65280)/256);

h.mean:=xb;

x2 [9]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=35+(r-1)*8;

h.name:=35 {заголовок 2 байт Start};

xf:=trunc(((r-1)*(round (19440/(CONT+fl1)))) and 255);

h.mean:=xf;

x2 [10]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=36+(r-1)*8;

h.name:=36 {заголовок 1 байт Stop};

if r=CONT+fl1 then xb:=trunc((19440 and 65280)/256)

else xb:=trunc(((r*(round (19440/(CONT+fl1)))) and 65280)/256);

h.mean:=xb;

x2 [11]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=37+(r-1)*8;

h.name:=37 {заголовок 2 байт Stop};

if r=CONT+fl1 then xf:=19440 and 255

else xf:=trunc((r*(round (19440/(CONT+fl1)))) and 255);

h.mean:=xf;

x2 [12]:=h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

h.num:=38+(r-1)*8;

h.name:=38 {заголовок байт CRC-8};

CRC_8;

h.mean:=x2 [13];

blockwrite (f, h, 1, result);

m:=ioresult;

s1:=s1 xor h.mean;

sp:=1;

end;

i:=h.num;

fl1:=0;

end;

else h.name:=0 {информация};

end;

if sp=0 then begin

s1:=s1 xor h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

sp:=0;

end;

end;

close(f);

end;

{-}

end.

unit kadrONT;

{$N+}

interface

uses CRT, DOS, Graph, kadrOLT, var_u;

procedure kadr_v;

implementation

{-}

procedure chtenie;

begin

case cht of

0: writeln('информация');

1: writeln ('заголовок 1 байт Psync B6 ');

2: writeln ('заголовок 2 байт Psync AB ');

3: writeln ('заголовок 3 байт Psync 31 ');

4: writeln ('заголовок 4 байт Psync E0 ');

5: writeln ('заголовок 1 байт Ident ');

6: writeln ('заголовок 2 байт Ident ');

7: writeln ('заголовок 3 байт Ident ');

8: writeln ('заголовок 4 байт Ident ');

9: writeln (' ');

10: writeln (' ');

11: writeln (' ');

12: writeln (' ');

13: writeln (' ');

14: writeln (' ');

15: writeln (' ');

16: writeln (' ');

17: writeln (' ');

18: writeln (' ');

19: writeln (' ');

20: writeln (' ');

21: writeln (' ');

22: writeln ('заголовок байт ПЧБ BIP-8 ');

23: writeln ('заголовок 1 байт Plend1 кол-во T-CONT ');

24: writeln ('заголовок 2 байт Plend1 кол-во T-CONT+сегмент ATM ');

25: writeln ('заголовок 3 байт Plend1 сегмент ATM ');

26: writeln ('заголовок 4 байт Plend1 CRC-8 ');

27: writeln ('заголовок 1 байт Plend2 кол-во T-CONT ');

28: writeln ('заголовок 2 байт Plend2 кол-во T-CONT+сегмент ATM ');

29: writeln ('заголовок 3 байт Plend2 сегмент ATM ');

30: writeln ('заголовок 4 байт Plend2 CRC-8 ');

31: writeln ('заголовок 1 байт AllocID ');

32: writeln ('заголовок 2 байт AllocID+Flag ');

33: writeln ('заголовок 3 байт Flag ');

34: writeln ('заголовок 1 байт Start ');

35: writeln ('заголовок 2 байт Start ');

36: writeln ('заголовок 1 байт Stop ');

37: writeln ('заголовок 2 байт Stop ');

38: writeln ('заголовок байт CRC-8 ');

39: writeln ('преамбула типа1 ');

40: writeln ('преамбула типа2 ');

41: writeln ('заголовок Ploam ');

end;

readln;

halt;

end;

{-}

procedure CRC_8;

begin

x2 [13]:=0;

for r10:=1 to 8 do begin

CRC[r10]:=0;

rez[r10]:=0;

end;

rez[1]:=1;

rez[2]:=1;

rez[3]:=1;

for r12:=1 to 12 do begin

for r11:=1 to 8 do begin

x:=trunc((x2 [r12] and trunc (exp((8-r11)*ln(2))))/trunc (exp((8-r11)*ln(2))));

z:=crc[8];

for r10:=0 to 6 do

crc [8-r10]:=crc [7-r10];

crc[1]:=x;

if z=1 then

for r10:=1 to 8 do crc[r10]:=crc[r10] XOR rez[r10];

end;

end;

for r10:=1 to 8 do

x2 [13]:=x2 [13]+crc[r10]*trunc (exp((r10-1)*ln(2)));

end;

{-}

procedure Up_Ov;

begin

x2 [1]:=255;

x2 [2]:=1;

x2 [3]:=128;

x2 [4]:=128;

x2 [5]:=128;

x2 [6]:=170;

x2 [7]:=133;

x2 [8]:=179;

x2 [9]:=0;

x2 [10]:=16;

x2 [11]:=0;

x2 [12]:=0;

CRC_8; {результат процедуры CRC-8 в x2 [13]}

end;

{-}

procedure S_N_ONU;

begin

x2 [1]:=ONU_ID;

x2 [2]:=1;

x2 [3]:=0;

x2 [4]:=0;

x2 [5]:=0;

x2 [6]:=0;

x2 [7]:=0;

x2 [8]:=0;

x2 [9]:=SN and 65280;

x2 [10]:=SN and 255;

x2 [11]:=0;

x2 [12]:=5;

CRC_8; {результат процедуры CRC-8 в x2 [13]}

end;

{-}

procedure kadr_v;

begin

assign (f, 'd:amkadr-v');

reset (f, sizeof(h));

s1:=0;

sp:=0;

for i:=1 to n do begin

h.num_tc:=j;

h.num:=i;

h.mean:=random(255);

case i of

1: begin

for r:=1 to trunc (zaschita/8) do

begin

h.num:=i;

h.name:=11 {защитные биты};

h.mean:=0;

i:=i+1;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

for r:=1 to trunc (pream1/8) do

begin

h.num:=i;

h.name:=12 {преамбула типа1};

h.mean:=255;

i:=i+1;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

for r:=1 to trunc (pream2/8) do

begin

h.num:=i;

h.name:=13 {преамбула типа2};

h.mean:=0;

i:=i+1;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

for r:=1 to trunc((48-zaschita-pream1-pream2)/8) do

begin

h.num:=i;

h.name:=14 {преамбула типа3};

h.mean:=pream3;

i:=i+1;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

for r:=1 to 3 do

begin

h.num:=i;

h.name:=14+i {разделитель};

h.mean:=razdel[i];

i:=i+1;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

i:=h.num;

sp:=1;

end;

10: begin

h.name:=22 {заголовок байт ПЧБ BIP-8};

h.mean:=s1;

s1:=0;

blockwrite (f, h, 1, result);

m:=ioresult;

sp:=1;

end;

11: begin

h.name:=10 {заголовок ONU_ID};

h.mean:=ONU_ID;

end;

12: begin

h.name:=42; {заголовок IND}

h.mean:=IND;

end;

13: case r1 of

1: begin

S_N_ONU;

for r2:=1 to 13 do begin

h.name:=8+r2; {заголовок Ploam}

h.num:=12+r2;

h.mean:=x2 [r2];

s1:=s1 xor h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

i:=h.num;

sp:=1;

end;

end;

else h.name:=0 {информация};

end;

if sp=0 then begin

s1:=s1 xor h.mean;

blockwrite (f, h, 1, result);

m:=ioresult;

end;

sp:=0;

end;

close(f);

end;

{-}

end.

ref.by 2006—2019
contextus@mail.ru