SFPTotal Mini

Материал из SFPTotal Wiki
Перейти к: навигация, поиск
Программатор SFP транисверов SFPTotal Mini HW 1.3

Программатор SFPTotal Mini позволяет перепрограммировать SFP и SFP + трансиверы и предназначен для решения основных проблем, возникающих в практике интернет-провайдеров, поставщиков сетевого оборудования и системных интеграторов в процессе работы с оптическими трансиверами и коммутационным оборудованием, и требующим перепрограммирования трансиверов.

Устройство полностью совместимо в соответствии со спецификацией SFF-8074

SFPTotal Mini подключается к компьютеру через USB интерфейс, через который выполняется управление и питание устройства.

Для подключения трансиверов высокой мощности может использоваться внешний адаптер питания 5V DC.


Применение

Программатор SFPTotal Mini используются для решения следующих задач:

  • Программирование SFP / SFP + оптических трансиверов и твинаксиальных кабелей
  • Обеспечение совместимости между сетевым оборудованием различных производителей
  • Перепрограммирование памяти защищенных от записи трансиверов
  • Изменение настроек контроллеров PHY
  • Ребрендинг для OEM трансиверов
  • Диагностика приемопередатчика путем считывания DDM

Быстрый старт

  1. Подключите SFPTotal Mini к компьютеру с помощью кабеля micro USB типа B.
  2. Установите драйвер для SFPTotal Mini
  3. Скачайте программное обеспечение SFPTotal Wizard
  4. Запустите SFPTotal Wizard
  5. Вставьте трансивер в порт программатора
  6. Прочитайте память трансивера

Элементы управления

LED индикаторы

  • Индикатор POWER загорается, когда устройство подключено к компьютеру.
  • Индикатор STATUS мигает, когда питание включено и устройство ждет подключения трансивера в порт SFP. Когда трансивер подключен, светодиодный индикатор постоянно горит.
  • Индикатор ERROR постоянно горит, когда устройство работает с ошибкой или "зависает" шина данных.
  • Индикатор TX_ENA загорается, когда контакты передатчика подключены к источнику питания.
  • Индикатор RX_ENA загорается, когда ресивер контакты подключены к источнику питания.

Перемычки (джамперы)

  • Размыкание TX отключает питание передатчика.
  • Размыкание RX отключает питание приемника.
  • Размыкание TXEN активирует режим пониженного энергопотребления (лазер отключен или светит с минимальной мощностью).
  • Замыкание RS0 and RS1 подтягивает соответствующие контакты трансивера на землю.

Программное обеспечение

Для работы устройства используйте программное обеспечение SFPTotal Wizard версии 1.0.4.0 или выше.


Интерфейс управления

Устройство обеспечивает доступ к интерфейсу командной строки путем подключения через виртуальный последовательный порт. Вы можете использовать программатор без программного обеспечения SFPTotal Wizard, чтобы получить больше возможностей или реализовать функции, которые не доступны в стандартном программном обеспечении.

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

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

Serial port settings

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

Вы можете воспользоваться SFPTotal Wizard или любым специализированным программным обеспечением, поддерживающим работу с последовательным портом. Например, Putty.

Устройство поддерживает гибкие настройки baud rate, однако рекомендуется использовать значение 115200.

Настройки по-умолчанию
Baud rate: 115200
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None

Команды управления

CLI

После сброса устройства, командный интерфейс не возвращает вводимые символы. Данный режим должен быть использован при работе устройства с программным обеспечением SFPTotal Wizard.

Значение параметра по-умолчанию: CLI=0.

? CLI
CLI=0

CLI=1

Используйте CLI=1 для включения отображения вводимых символов.


STATUS

Данная команда возвращает текущее состояние выводов трансивера.

STATUS
MOD_ABS=1; TX_FAULT=1; RX_LOS=1; TX_DIS=1

С версии прошивки 1.3.0 формат вывода изменен. Порядок параметров и значений соответствует предыдущему формату.

STATUS
SFP  : 1; 1; 1; 1; 

TX_DIS

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

Чтобы активировать LPMODE, используйте команду TX_DIS=1. Данное состояние соответствует разомкнутому контакту TXEN на плате устройства.

Чтобы отключить LPMODE, используйте команду TX_DIS=0. Данное состояние соответствует замкнутому контакту TXEN на плате устройства.

TX_DIS=1

STATUS
MOD_ABS=0; TX_FAULT=1; RX_LOS=0; TX_DIS=1

TX_DIS=0
STATUS
MOD_ABS=0; TX_FAULT=1; RX_LOS=0; TX_DIS=0


VERSION

Команда возвращает информацию об аппаратной версии устройства, серийном номере и версии прошивки.

VERSION
SFPTotal Plus (c) 2015-2016
HW: 1.1
SW: 1.0.5
SN: SFPT-P1116021001


I2CRATE

Внимание: Поддерживается только программаторами с версией прошивки 1.1.0 или выше.

Команда устанавливает скорость тактирования шины данных IIC.

I2CRATE=12 # Set up speed rate 100 kHz
I2CRATE=40 # Set up speed 30 kHz
I2CRATE=C6 # Set up speed 10 kHz

Чтобы узнать текущее значение, используйте команду: ? I2CRATE

? I2CRATE
I2CRATE=C6


I2CPAUSE

Внимание: Поддерживается только программаторами с версией прошивки 1.2.2 или выше.

Команда устанавливает интервал по времени между выполнением операций на шине данных IIC. Значения представлены в миллисекундах в HEX формате.

I2CPAUSE=20 # Set interval 32ms
I2CPAUSE=32 # Set interval 50ms (for default)
I2CPAUSE=64 # Set interval 100ms

Чтобы узнать текущее значение, используйте команду: ? I2CPAUSE

? I2CPAUSE
I2CPAUSE=32


BPS

Размер блока при записи данных в память трансивера. По-умолчанию: BPS=08 Стандартная запись фрагмента размером 128 байт в память осуществляется по 8 байт. При завершении записи блока инициируется запись нового блока установленного размера, пока весь фрагмент не будет записан.


? BPS
BPS=08

BPS=01 # Set block size in 1 byte
BPS=08 # Set block size in 8 bytes (default)
BPS=80 # Set block size in 128 bytes

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


AUTO_WR_ADDTBL

Внимание: Поддерживается только программаторами с версией прошивки 1.1.0 или выше.

Если параметр установлен, программатор будет автоматически производить запись номера дополнительной таблицы, передаваемого в командах чтения или записи. По-умолчанию, AUTO_WR_ADDTBL=0

AUTO_WR_ADDTBL=1
 
AUTO_WR_ADDTBL=0

Чтобы узнать текущее значение, используйте команду: ? AUTO_WR_ADDTBL

? AUTO_WR_ADDTBL
AUTO_WR_ADDTBL=0

Чтение и запись

rXYYAABBCC (RXYYAABBCC)

Команда для чтение памяти трансивера.

R — (1 byte) — Символ команды чтения. Регистр символов отвечает за формат, в котором будет осуществлен вывод результатов чтения.

X — (1 byte) — Тип трансивера (1 - SFP, 2 - SFP+).

YY — (2 bytes) — Адрес устройства на шине данных. Например: A0 или A2.

AA — (2 bytes) — Номер дополнительной таблицы

BB — (2 bytes) — Значение смещения, по которому производится чтение. Значение в HEX.

СС — (2 bytes) — Количество байт в фрагменте, уменьшенное на 1. Например, для чтения 128 байт должно быть указано значение 7F (Пример: 128 => DEC->HEX => 80h; 80h - 1h = 7Fh)

r1A000007F
Read 128 byte(s) Table 0xA0 from 0x00

##    00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F

00 :  03  04  07  20  00  00  00  00  00  00  00  06  67  00  0A  64
01 :  00  00  00  00  4F  45  4D  20  20  20  20  20  20  20  20  20
02 :  00  20  20  20  00  00  00  00  31  30  47  42  2D  53  46  50
03 :  2D  4C  52  2D  45  20  20  20  31  2E  30  20  05  1E  00  F9
04 :  00  1A  00  00  45  58  50  39  36  4C  30  31  31  20  20  20
05 :  20  20  20  20  31  31  30  38  30  39  20  20  68  F0  03  02
06 :  45  58  54  52  45  4D  45  20  4C  52  00  00  00  00  00  00
07 :  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
R1A000007F  
03040720000000000000000667000A64000000004F454D202020202020202020
0020202000000000313047422D5346502D4C522D45202020312E3020051E00F9
001A000045585039364C30313120202020202020313130383039202068F00302
45585452454D45204C5200000000000000000000000000000000000000000000


wXYYAABBCC (WXYYAABBCC)

Команда для записи изменений в память трансивера.

w — (1 byte) — Символ команды записи. Регистр символов отвечает за последующее чтение после записи. Если вы используете верхний регистр (W), то после завершения записи, программист выполнит чтение области памяти, в которую производилась запись. Для записи без последующего чтения необходимо использовать символ команды нижнем регистре (w).

X — (1 byte) — Тип трансивера (1 - SFP, 2 - SFP+).

YY — (2 bytes) — Адрес устройства на шине данных. Например: A0 или A2.

AA — (2 bytes) — Номер дополнительной таблицы

BB — (2 bytes) — Значение смещения, по которому производится запись. Значение в HEX.

СС — (2 bytes) — Количество байт в фрагменте, уменьшенное на 1. Например, для записи 4 байт должно быть указано значение 03.

{DATA} — Данные для записи. Значение должно быть представлено в HEX с использованием символов верхнего регистра


Пример

Запись фрагмента 128 Байт в таблицу A0h по смещению 00 в память трансивера SFP:

W1A000007F
03040720000000000000000667000A64000000004F454D202020202020202020
0020202000000000313047422D5346502D4C522D45202020312E3020051E00F9
001A000045585039364C30313120202020202020313130383039202068F00302
45585452454D45204C5200000000000000000000000000000000000000000000

Пример записи пароля 0123 (HEX: 30h 31h 32h 33h) в таблицу A2h по смещению 7B для стандартного SFP+ трансивера:

w2A2007B0330313233

Внимание: Команда должна быть представлена одной строкой без символов пробела и переносов. Форматирование в примере приведено для удобства.


Режим аппаратного поиска паролей

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

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

Как это работает?

Чтобы проверить пароль, программатор выполняет следующие операции:

  1. Запись пароля в заданную настройками область ввода пароля
  2. Запись контрольного слова из 8 байт в область Vendor name
  3. Чтение памяти трансивера из области Vendor name
  4. Сравнение контрольного слова с результатами чтения

Программатор последовательно вводит значения пароля в пределах заданного диапазона, затем записывает контрольное слово «SFPTOTAL» (8 байт) в таблицу A0h по смещению 14h. После чего производит сравнение данных, которые были прочитаны после записи контрольного слова.

Если сравниваемые данные совпадают с контрольным словом, значит, запись успешна. Программатор автоматически остановит процесс поиска паролей и вернет текущий пароль в результате успешного поиска.

Данная функция была разработана и используется для тестирования трансиверов, работающих по стандарту MSA SFF-8472. Данная функция не будет эффективна в случае, если логика программирования отличается от стандарта или требуется специальная команда для сохранения изменений в памяти трансивера. Поэтому рекомендуем проверить спецификацию на трансивер перед использованием данной функции.


BFSET

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

BFSET A2 7B AAAAAAAA FFFFFFFF CCCCCCCC

A2 - Адрес таблицы, куда должен осуществляться ввод пароля. Для XFP и QSFP ввод пароля осуществляется в A0.

7B - Смещение, по которому осуществляется ввод первого байта пароля.

AAAAAAAA - Начало диапазона значений

FFFFFFFF - Конец диапазона значений

CCCCCCCC - Значение пароля, с которого необходимо начать поиск

Рекомендуемые диапазоны поиска

BFSET A2 7B 41414141 5A5A5A5A 41414141 # A-Z

BFSET A2 7B 61616161 7A7A7A7A 61616161 # a-z

BFSET A2 FC 30303030 39393939 30303030 # 0-9

BFSET A2 7B 20202020 7A7A7A7A 24367621 # Symbols + Numeric + Literal


BFSTOP

Команда останавливает процесс. Поиск может быть продолжен с места остановки командой BFSTART.


BFSTART

Команда запускает поиск с заданными настройками начиная со значения, на котором процесс был остановлен.


? BFPASS

Команда возвращает текущее значение пароля в процессе поиска. Применимо, когда используется режим CLI=0 и текущее значение не выводится через командный интерфейс.


BFCWADR

Задает адрес устройства для ввода контрольного слова. По-умолчанию, BFCWADR=A0


BFCWOFT

Задает смещение для ввода контрольного слова. По-умолчанию, BFCWOFT=14.

Внимание: для трансиверов XFP и QSFP необходимо использовать значение BFCWOFT=94.


Как запустить процесс поиска для SFP+ трансивера?

BFCWADR=A0
BFCWOFT=14
BFSET A2 7B 20202020 7A7A7A7A 20202020

Примечание

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