Привет всем.
Интересно здесь кто-нибудь заморачивался с GPON сетями? Ну или кто хорошо разобрался с xilinxовскими GTX трансиеверами может подскажет.
В общем я сейчас исследую возможность реализации такого ресивера только средствами ПЛИС.
Смысл вот в чем.
GPON - это такая оптическая "1-ко-многим" сеть обычно используемая для интернета.
http://ru.wikipedia.org/wiki/PONДаунстрим потоки там 2,488Гбит и апстрим 1.244Гбит. Смысл там в том, есть один основной оптический приемопередатчик (OLT) и 32-64 абонента. Сигнал от передатчика разветвляется пассивными сплиттерами. Оптоволокно двунаправленное с волновыим разделением 1490/1330нм. Прикол в том, что даунстрим там вещается непрерывно ко всем абонентам, а апстрим - разделен TDM, то есть каждый абонент вещает только в своей определенный слот времени. Таким образом на основной приемопередатчик обратно свет приходит пакетами. Это и навзывается burst transfer.
Мы используем только физический уровень PON для своих применений - никакого интернета. Но принцип TDM для апстрима остается. Скорость апстрима и даунстрима у нас 640мБит.
Собственно вопросы по приему апстрим burst пакетов.
Перед каждым следующим пакетом ПЛИС сбрасывает оптоприемник, для того, чтобы он нормально адаптировался к уровню сигнала следующего пакета (а он может быть другим из-за разных длин линий)
Для распознавания и выравнивания пакетов мы используем 120-битную преамбулу из чередующихся 1 и 0 и затем стартовый идентификатор из 0x335. В качестве железа используется внешний SERDES TLK1211, из которого альтеровская ПЛИС считывает побайтно невыравненные биты. Длинная преамбула позволяет TLK1211 нормально засинхронизироваться на поток.
Далее идет поиск стартового идентификатора, выравнивание и декодирование 8B10B. Все в альтере сделано в VHDL. Еще прикол в том, что поиск стартового идентификатора разрешается только в том случае если оптический приемопередатчик установил сигнал наличия burst пакета. Это, вроде сделано для того, чтобы при отсутвии света ошибочно не распознать стартовый идентификатор из шума.
Собственно я сейчас разбираюсь, можно ли все это сделать используя GTX в Virtex-6 без внешнего SERDES.
Проблема в том, что я хочу использовать оптические приемо-передатчики без сигнала определения burst пакета. Типа такого:
http://www.optoway.com.tw/html/products/pd...L-94B73B-WG.pdfНо тогда у меня непонятка, как тогда отличить правильный стартовый идентификатор от шума? Путем проверки, что перед ним идет минимум 12 чередующихся 0 и 1? Это вообще возможно? Какова тогда вероятность ложного обнаружения?
Спасибо за прояснения, если будут.