Один модуль, два тракта для проверки
Идентификация
Считайте идентификационные данные из памяти модуля при отключённом оптоволокне.
Проверка
Сравните младшие восемь битов суммы со значением CC_BASE.
Проверка
Подключите оптоволокно и отдельно проверьте прохождение трафика.
Контрольный список для стендовой проверки
До подключения оптоволокна запишите номер порта, идентификационные данные модуля и время. Затем проверьте состояние линии связи и отправьте тестовый кадр, который можно однозначно распознать.
Установите трансивер SFP в промышленный коммутатор на испытательном стенде, не подключая оптоволокно. На странице управления уже могут отображаться производитель, номер изделия или серийный номер, хотя порт всё ещё сообщает, что линия связи не поднята. Эти данные поступают через электрический интерфейс в задней части модуля. Коммутатор считывает идентификационные данные, сообщаемые модулем, по низкоскоростному каналу управления. Трафик проходит по отдельному тракту с электрическим и оптическим участками. Каждый из этих трактов позволяет проверить разные вещи.
Два тракта в одном модуле
Модуль вставляется в гнездо на передней панели, и его краевые контакты соединяются с разъёмом устройства. Подключение питания и земли обеспечивает запуск электроники модуля. В оборудовании с традиционным интерфейсом управления SFP сигнал присутствия может сообщить устройству, что в гнездо вставлен модуль. Затем устройство может считать данные модуля по низкоскоростному двухпроводному интерфейсу. Сам по себе сигнал присутствия говорит лишь о том, что в гнезде что-то установлено. Для отображения производителя или номера изделия необходимо успешно считать и правильно интерпретировать байты. Задержки инициализации, сообщения об ошибках и порядок повторных попыток зависят от реализации устройства.
Две линии интерфейса — SCL для тактового сигнала и SDA для данных. Коммутатор запрашивает у модуля байты по заданному смещению и интерпретирует полученные данные согласно согласованной карте памяти. Всё это происходит внутри корпуса. Оптический разъём при этом может оставаться пустым, а устройство на другом конце — выключенным. В отдельном высокоскоростном тракте устройство обменивается с модулем сигналами трафика через высокоскоростной электрический интерфейс. Передатчик преобразует электрические сигналы в свет, а приёмник преобразует свет обратно в электрические сигналы. Для работы этого второго тракта важны оптоволокно, устройство на другом конце, условия приёма и режим линии связи.
В спецификации коммутатора Feichang уровня 3 для монтажа на DIN-рейку с четырьмя оптическими портами на 10 Гбит/с и восемью гигабитными медными портами получение сведений о модуле SFP указано как функция управления. Этот коммутатор служит реальным примером для пояснения. На схемах показаны общие принципы работы. Документация на эту модель не описывает разводку платы, последовательность опроса или правила допуска трансиверов. Используйте трансивер и режим порта, поддержка которых указана в документации соответствующего устройства.

Какие байты идентифицируют модуль?
Традиционные модули SFP и оптические трансиверы, использующие карту памяти управления SFF-8472, хранят идентификационные данные в определённых позициях. В спецификации базовый адрес обозначен как A0h. В инструменте, использующем семибитную запись адресов I²C, этот адрес обозначается как 0x50. Формы записи различаются, поскольку адресный байт включает бит чтения/записи. Если сдвинуть 0x50 на один разряд влево, адресный байт для записи будет 0xA0, а для чтения — 0xA1. Это разные представления одного и того же адреса устройства. Если ввести 0xA0 в инструменте, который ожидает семибитный адрес, может показаться, что исправный модуль не отвечает.
Адрес устройства и смещение поля служат разным целям. Адрес выбирает область идентификации, а смещение указывает положение байта внутри неё. В этой карте памяти байт 0 определяет тип устройства, а байт 2 — тип разъёма. Байты с 20 по 35 содержат название производителя, байты с 40 по 55 — номер изделия, присвоенный производителем, а байты с 68 по 83 — серийный номер. Смещения здесь указаны в десятичной системе. Если модуль поддерживает диагностику, диагностические данные могут быть доступны по адресу A2h, которому в семибитной записи соответствует 0x51. Считывание базовых идентификационных данных не подтверждает ни доступность, ни отображение всех диагностических измерений.
Например, устройство может интерпретировать шестнадцать байтов номера изделия как текст. Допустим, четыре из этих байтов имеют шестнадцатеричные значения 44, 45, 4D и 4F. При отображении они образуют строку DEMO. Остальная часть поля фиксированной длины может быть заполнена пробелами. Если на странице управления нет номера изделия, выясните, не удалось ли устройству считать поле, оказалось ли поле пустым или интерфейс не отобразил считанное значение. Измеритель оптической мощности отвечает на другой вопрос. Текст на странице получен путём считывания данных по электрическому интерфейсу внутри корпуса.
Что проверяет контрольная сумма?
Устройство может сложить значения первых 63 байтов в области A0h, от смещения 0 до смещения 62, оставить младшие восемь битов и сравнить их со значением CC_BASE по смещению 63. Допустим, сумма в шестнадцатеричной записи равна 0x034A. Младшие восемь битов дают 0x4A. Если байт 63 также содержит 0x4A, проверка пройдена. Если он содержит 0x4B, сохраните исходные байты, проверьте диапазон байтов и редакцию спецификации и выясните, повторяется ли результат при повторном считывании. Эти числа приведены для иллюстрации расчёта и не получены измерениями на каком-либо устройстве или трансивере Feichang.
Совпадение контрольной суммы показывает, что эти байты согласуются с сохранённым для них контрольным кодом. Разные сочетания байтов могут давать одну и ту же сумму. Проверка не подтверждает подлинность сведений о производителе, не доказывает достоверность полей и не гарантирует, что устройство примет модуль. Серийный номер начинается с байта 68, за пределами диапазона, охватываемого CC_BASE. У расширенной области идентификации есть собственный контрольный код CC_EXT. В отчёте об успешной проверке CC_BASE следует указывать проверенный диапазон.

Определите, на каком этапе получены те или иные данные
Если производитель и номер изделия отображаются, а поле серийного номера пустое, сначала проверьте, выводит ли интерфейс серийный номер. Затем, если устройство позволяет просматривать считанные данные в исходном виде, проверьте их. Успешное считывание байтов с 0 по 63 и успешная проверка базовой контрольной суммы показывают, что из базовой области получено достаточно данных. Серийный номер начинается со смещения 68. Если расширенная область считана не полностью, базовая контрольная сумма не позволяет считать пустое поле серийного номера подтверждённым значением от производителя. Запись «базовая область читается; расширенная область не проверена» информативнее, чем простое указание, что модуль идентифицирован.
Рассмотрим обратный случай. В системе управления сетью сохранился ранее считанный номер изделия, а коммутатор сейчас сообщает, что модуль отсутствует. Эти записи относятся к разным моментам времени. Сопоставьте время опросов и повторно опросите нужное гнездо. Иначе результат из кэша можно принять за текущий ответ и без необходимости начать искать неисправность в оптоволокне на удалённой стороне. Указывайте порт, время и источник данных, чтобы различать показания локального интерфейса, данные из кэша системы управления и результат текущего считывания по шине.

Проверяйте канал управления и прохождение трафика отдельно
Используйте модуль, работоспособность которого с данным устройством подтверждена. На изолированном испытательном стенде запишите номер порта, версию программного обеспечения устройства и номер изделия модуля. Вставьте модуль, не подключая оптоволокно, затем проверьте, сообщает ли устройство о присутствии модуля и отображает ли полные сведения о нём. Если номер изделия отображается, значит, по каналу управления удалось считать по меньшей мере это поле. На этом этапе линия передачи трафика может оставаться неактивной. Подключите подходящее оптоволокно и устройство на другом конце согласно документации. Зафиксируйте состояние линии связи и показания счётчиков передачи и приёма на обоих концах, затем отправьте распознаваемый тестовый кадр, чтобы подтвердить прохождение трафика. Сохраните результаты обеих проверок.
Если интерфейс управления сообщает, что гнездо пусто, проверьте, правильно ли выбран порт, до конца ли вставлен модуль и подтверждена ли совместимость в документации. Если интерфейс сообщает о присутствии модуля, но не может считать данные, попробуйте установить в тот же порт совместимый модуль, данные которого заведомо считываются, или переставьте исходный модуль в заведомо совместимый порт на стенде. Не меняйте остальные условия и запишите, следует ли проблема за модулем или остаётся в том же гнезде. Если номер изделия виден, но линия передачи трафика не поднимается, проверьте режимы обоих портов, правильность подключения оптоволокна от передатчика к приёмнику и оптическую мощность. По счётчикам определите, проходят ли какие-либо кадры. Не смотрите в оптические порты и не извлекайте и не вставляйте модули многократно на действующей производственной линии связи для проверки идентификации.
Некоторые устройства кэшируют ранее считанные сведения, а некоторые показывают отдельные поля только на специальном экране или через сервисный интерфейс. Запишите время считывания, номер порта и факт установки или извлечения модуля и воспользуйтесь поддерживаемым способом обновления или запроса данных. В понятной записи для передачи результатов достаточно трёх столбцов: присутствие модуля, считывание идентификационных данных и проверка прохождения трафика. Тогда будет ясно, что именно подтверждает снимок экрана.
Источники и область применимости
SNIA SFF-8472, ред. 12.5a · Спецификация коммутатора Feichang уровня 3 для монтажа на DIN-рейку (на китайском языке)
Переведено с китайской технической статьи: Прочитать оригинальную статью на китайском языке.
Частые вопросы
Почему коммутатор может показывать номер изделия без подключения оптоволокна?
Устройство считывает номер изделия по двухпроводному электрическому интерфейсу. Трафик передаётся по оптоволокну по отдельному тракту.
Обозначают ли A0h и 0x50 разные устройства?
Это две формы записи адреса одного и того же устройства: восьмибитный адресный байт и семибитный адрес.
Подтверждает ли успешная проверка CC_BASE совместимость модуля?
Она показывает, что контрольная сумма байтов с 0 по 62 совпадает со значением контрольного байта по смещению 63. Совместимость и прохождение трафика проверяйте отдельно.
Дополнительные материалы
Что передаёт гигабитный оптический порт между кадрами · Оптическая мощность и качество сигнала


