История про высокий порог входа, забеги по граблям и уверенность в завтрашем дне, а также про оптику, схемотехнику и немного про FPGA. На КДПВ — то, что получилось, работает и используется в production, а ниже — рассказ про процесс создания этого "чуда враждебной техники".  В одно хмурое зимнее утро декабря 2007 года маркетологи небольшой компании, занимающейся разработкой электроники, решили, что пора таки сделать свой OTDR.  Чтобы был недорогой и, как минимум, не хуже зарубежных с достойными характеристиками. Сказано — сделано! Проекту дали отмашку на старт и начались исследования, поиски решений и эксперименты. Планы, графики, изучение специальной литературы, параметров, особенностей, возможностей и характеристик аналогичных устройств.
Обязательно нужно отметить, что: Попробую рассказать и показать на пальцах зачем нужны рефлектометры, на каких принципах они работают, а также про основные параметры этих измерительных приборов. Сегодня никого не удивишь высокой скоростью передачи (хотя кому-то и 100 Мбит/с — быстро). Земной шар уже не одно десятилетие опутывают оптическими кабелями, по которым гоняют огромный трафик с гигантской скоростью. 10/40/100G в связке с DWDM с потенциальной полосой 16 терабит/с в одном волокне толщиной с волос — вот на чём держится современный интернет, облака и прочие гуглы-амазоны. Окей, не только на этом, но волоконная оптика всё равно остаётся основной физической средой передачи для таких скоростей.  Мир несовершенен, и кабель в любой момент может быть повреждён: перерублен, разорван, пережат и т.д., и т.п. Хорошо, если это где-то рядом и видно невооружённым глазом: например, иногда можно обнаружить дикий экскаватор, разрывающий пасть льва оптику рядом с вашим датацентром. А если разрыв под водой или под землёй? Прокладывать новый или доставать старый кабель, чтобы найти неисправность, не то, чтобы дорого, а очень дорого. Правильные действия — локализовать проблему и сварить разорванное волокно. Как найти место повреждения, если длина участка трассы — десятки и сотни километров, и физически добраться до каждого метра кабеля невозможно? Вот тут на помощь и приходит оптический рефлектометр (OTDR, Optical Time-Domain Reflectometer) — прибор, при помощи которого можно найти место неисправности и определить качество сварки и соединительных разъёмов на расстоянии до… километров и с точностью до… метров/сантиметров. Расстояние и точность зависят от характеристик конкретного прибора. И цена прибора тоже очень хорошо зависит.  Disclaimer: конечно, разрыв — это лишь один из нескольких типов проблем, возникающих при эксплуатации ВОЛС (волоконно-оптических линий связи), но я не ставлю своей целью подробно рассказать о всех параметрах оптических волокон: есть хорошие книги на русском и английском языках (см. в списке литературы ниже), а также отличная статья на Хабре. Итак, основные параметры оптических рефлектометров: (совсем примитивно, без углубления в теорию) Примем как факт, что физика распространения света в оптическом волокне такова, что луч отражается и от оболочки кабеля, и от каждой точки среды распространения, а также от всех неоднородностей на своём пути. Естественно, отражается по-разному и в разные стороны. Нас будет интересовать отражение в обратном направлении, отражение от неоднородностей и ослабление сигнала.  Скорость прохождения луча по волокну примерно в полтора раза меньше скорости света в вакууме. Зная скорость и измерив время между передачей импульса в волокно и приёмом отажённого сигнала, можно однозначно вычислить расстояние до точки отражения.  Световой сигнал, проходящий по волокну, теряет свою мощность. Ослабление мощности (затухание) светового сигнала зависит, в том числе, от длины волны. Если правильно измерить мощность отражённых от удалённых точек волокна импульсов и построить график, то можно получить характеристику трассы — рефлектограмму. В статье, которая упоминается выше, есть много красивых цветных графиков с рефлектограммами, метками и прочими характеристиками, но смысл у всех картинок один — на них показано изменение мощности отражённого светового луча с увеличением расстояния от начала оптического кабеля. 
(расстояние на горизонтальной шкале условно, километров должно быть
больше) По икс — расстояние, по игрек — отношение мощности отражённого сигнала к мощности переданного. Окей, для тех кто придирается, 5 десятичных логарифмов этого отношения — те самые децибелы, а пять, а не десять — потому, что сигнал проходит двойной путь — туда и обратно. Сигнал убывает по экспоненте, поэтому при логарифмировании получается прямая линия. Кстати, про логарифмирование попозже расскажу отдельно. Высокие всплески в начале и в конце графика — отражённый сигнал от начала и от конца на границе сред воздух/волокно. Измерения обычно проводят для двух длин волн — 1310 и 1550 нанометров. Для измерений в PON/FTTH используют сигнал с длиной волны 1625 нм. Коэффициент затухания для разных длин волн разный, это видно на рефлектограммах и может быть определён по углу наклона прямых (как бы) участков графика. Естественно, у разных производителей кабеля коэффициент затухания тоже отличается, и чем он меньше, тем лучше, но порядок очень похож: примерно 0.19 dB на 1 км для волны 1550 нм и 0.33 dB/км для 1310 нм. На рисунке — две рефлектограммы для одного и того же кабеля, сделанные на разных длинах волн: 
(расстояние на горизонтальной шкале условно, километров должно быть больше) Таким образом, если длинное волокно проложено без сварок, сильных изгибов и соединений, то мощность оптического сигнала будет уменьшаться на коэффициент затухания каждый километр и через 100 км сигнал будет не менее, чем в 2000… раз (100 км * (-0.33dB) = -33 dB) слабее, чем излучает передающий светодиод.  Так как рефлектометром пользуются с одного конца кабеля, то измеряют отражённый сигнал, который будет ослаблен ещё на 33 dB на обратном пути и, значит, мощность вернувшегося луча, прошедшего путь в 200 км (туда сто и обратно сто) уменьшится почти в 4 миллиона раз: туда на 33 dB меньше, обратно ещё на 33 db меньше, итого 66 dB (1/(10^-6.6)=3'987'071.7). Смысл в том, что сигнал на входе приёмника рефлектометра изменяется в большом диапазоне: от десятков миллиВатт до долей наноВатт. А по току — от десятков миллиампер до пикоампер. На практике к коэффициенту ослабления сигнала добавляются, как минимум, потери на соединительном разъёме и на внутренних сплиттерах. То есть, при проектированиии нужно предусмотреть больший диапазон изменения сигнала. Кстати, для рефлектометров есть понятия номинального рабочего и номинального динамического диапазона. Рабочий, как можно догадаться, меньше. Зная затухание в кабеле и динамический диапазон прибора по паспорту, можно понять, какое расстояние способен промерить рефлектометр. У обычного магистрального рефлектометра это 36/34 dB. Посчитаем расстояние:  36 dB / 0.33 dB/км = 109 км для длины волны 1310 нм
и
34 dB / 0.19 dB/км = 178 км для длины волны 1550 нм (пользователи рефлектометров меня опять поправят, что фактически меньше) В качестве измерительного сигнала используются импульсы заданной длины (от 3 наносекунд до 20 микросекунд). На коротких трассах измерения производятся при помощи коротких импульсов, на длинных, соответственно, длинными. Чем длиннее импульс, тем больше его мощность и тем дальше можно будет видеть его отражение от неоднородностей кабеля и тем более длинную трассу можно "прострелить". Используем короткие импульсы — получаем высокое разрешение, длинные — дальнобойность. На самом деле, это несколько упрощённо, но, надеюсь, позволяет понять общие проблемы и сложности, возникающие у операторов рефлектометра в процессе выбора параметров: нужен компромисс между разрешающей способностью, дальнобойностью и длительность измерений. Длиннее импульс — больше мощность и можно промерить очень длинный тракт. Кстати, бесконечно длинный импульс сделать не получится, т.к. нужно отражённый сигнал измерять, а для этого источник излучения должен быть выключен. Да и излучатели расчитаны на импульсный режим работы с определённой скважностью. Если уменьшить период между импульсами или светить очень долго, то можно запросто сжечь лазерный диод, а это, как минимум, дорого и вредно для окружающей среды. (Длина импульса — это время, в течение которого светит лазерный светодиод. Период — время между импульсами, когда светодиод выключен. В нулевую версию передатчика мы поставили диод от dvd-привода, заклеив синей изолентой линзу и после включения эту изоленту мастерски, с дымом и шипением прожгли насквозь.) Так получилось, что сначала рефлектометр в течение четырёх лет разрабатывала одна команда, на четвёртом году параллельно и в срочном порядке начали создание альтернативной версии, и в этой заметке идёт повествование о приключениях второй команды. Про первый вариант тоже немного расскажу, но потом. Постановка задачи: сделать электронное устройство — оптический рефлектометр с динамическим диапазоном 35/37 децибел (а не 34/36, чтобы было больше, чем у конкурентов) и мёртвой зоной по событию — не более 1 метра. После предварительного анализа и расчётов пришли к выводу, что основные
компоненты системы будут такими: И пр. — это набор сплиттеров, КЗДС (комплект деталей защиты сростка), волокно компенсатора мёртвой зоны, FC-разъём для подключения к измеряемой трассе. Про системы питания и охлаждения тоже не забываем.  Передатчик: нужна большая мощность — ставим в схему мощный излучатель. При этом он должен быть и мощным и быстрым, чтобы работать на коротких импульсах, но не до такой степени мощным, чтобы можно было спички лазерным лучом поджигать или волокно плавить. Расчёты расчётами, но в конце концов пришли к тому, что излучателей на рынке не так много и решили устанавливать с такими же параметрами, как у других производителей приборов. Длиной и периодом импульсов будем управлять от FPGA. Оптическая часть: два излучателя и сплиттеры 50/50, внешний коннектор — FC. Приёмная часть: большой динамический диапазон — нужен соответствующий усилитель, и соответствующее АЦП. Вычислительная часть: в измеряемом тракте всегда будет присутствовать шум (тепловые шумы в волокне, внутренние шумы компонентов прибора, наводки и пр.). От шума можно избавиться традиционным способом — путём усреднения: суммируем N одинаковых измерений и делим на N. Усреднять значения, полученные с АЦП будем в FPGA, хранить — во внешней оперативной памяти. Стараемся по максимуму использовать готовые компоненты. Например, усилитель с переменными коэффициентами усиления. Впрочем, как раз этот дивайс нам не пригодился. В общем, примерно так:
 Для упрощения на рисунке показан только один излучающий диод. В реальном устройстве их два (1310 и 1550 нм, мощность 50 и 40 мВт) или даже три (1625 нм). Сплиттера, вносящего затухание 3 dB, тоже на этой картинке нет. Лавинный фотодиод — NR8300FP-CC — с типовым коэффициентом умножения M=40 (300 евро за шт.). Зачем лавинный фотодиод и почему нельзя обойтись обычным? Потому что отражённый сигнал, прошедший большое расстояние настолько слаб, что обычный pin-фотодиод просто не будет генерировать ток и нечего будет оцифровывать. А лавинный фотодиод умеет дополнительно усиливать принятый сигнал, на картинке показана зависимость коэффициента умножения лавинного диода от обратного напряжения и от температуры:  Ещё в этом варианте приёмника есть два канала усиления, работающих параллельно. Один с широкой полосой пропускания (600MHz), другой с большим динамическим диапазоном (100 dB-range 10nA-1mA). А также АЦП (аналого-цифровой преобразователь) — двухканальный, 14-разрядный, 65 MSPS (mega-samples per second), с которого оцифрованные данные поступают на ПЛИС (FPGA), где выполняется усреднение, а потом — передача на верхний уровень, в управляющий процессор.  Кроме того, как уже говорилось, FPGA управляет длительностью импульсов, генерируемых лазерным диодом. Ура! Схему начертили, плату развели, смонтировали, написали тестовые прошивки для FPGA, управляющие устройством скрипты и начали тестирование. Передатчик тестировали отдельно, приёмник — вместе с передатчиком... Продолжение — в следующей заметке, примерно через неделю. И так очень длинно получилось. В следующих главах расскажу про: Спасибо, что дочитали первую часть истории до конца!  разработчик