Этот сайт использует файлы «cookie».

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

Команды протокола управления устройством SFPTotal


Wiki


Команды протокола управления устройством SFPTotal поддерживаются программаторами серий Mini, Plus, Plus New, Plus X.

Список команд актуален для устройств с версией встроенной прошивки SW 1.3.5 или новее.

Чтение памяти трансивера

Команда чтения позволяет обращаться по шине данных к устройствам с использованием 8-битных параметров адреса и смещения, и считывать данные из страниц размером до 256 байт.

R1A000807F

Команда чтения состоит из следующих параметров:

R + 1 + A0 + 00 + 80 + 7F

Код команды

Команда чтения начинается с кода команды — символа R (сокращение от Read).

Регистр кода команды влияет на формат вывода результата чтения.

  • R - верхний регистр - возвращает данные как HEX строку;
  • r - нижний регистр - возвращает данные как HEX таблицу.

Номер порта

Числовой идентификатор порта на плате программатора.

  1. GBIC
  2. SFP
  3. SFP+
  4. XFP
  5. QSFP

Если установлен параметр CMODPRST=01, программатор будет проверять подключение трансивера в указанный порт перед выполнением операции чтения. Отключите данный параметр, чтобы игнорировать номера порта.

Адрес страницы

Адрес страницы ведомого устройства на шине данных. Записывается в формате HEX в верхнем регистре. Например: A0 или A2.

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

Номер дополнительной страницы

Номер дополнительной страницы в HEX формате для трансиверов с поддержкой динамического адресного пространства.

Пример значений: 00, 01, 02, 03.

Если установлен параметр AWRADTBL=01, программатор будет выполнять запись номера дополнительной страницы в область Page Select byte при обращении к верхней памяти модулей XFP и QSFP, тем самым выбирая какая именно доп. таблица будет представлена трансивером в области A0h по смещению 80h:

T00 или T01 или T02 или T03.

Чтобы игнорировать параметр номера дополнительной страницы, установите AWRADTBL=00.

Смещение

Параметр задает смещение, по которому производится чтение или запись.

Например:

  • 00 - нижняя область памяти, с 0 байта
  • 80 - верхняя область памяти, со 128 байта
  • 5F - читать с 95 байта

Количество байт чтения/записи

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

  • 00 - прочитать/записать 1 байт
  • 7F - прочитать/записать 128 байт
  • 03 - прочитать/записать 4 байта

Ввод и исполнение команды

Для исполнения команды в конце необходимо передать символ переноса строки \x0D.

Форматированный вывод области чтения:

r1A000007F

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

00 :  03  04  07  00  00  00  01  20  40  0C  15  01  2A  00  00  00
01 :  0F  07  00  00  46  49  4E  49  53  41  52  20  43  4F  52  50
02 :  32  33  34  20  00  00  90  65  46  54  4C  46  38  35  32  34
03 :  50  32  42  4E  56  20  20  20  41  20  20  20  03  52  00  9C
04 :  00  32  00  00  50  42  39  31  59  5A  57  20  20  20  20  20
05 :  20  20  20  20  30  37  30  32  32  37  20  20  68  D8  01  0B
06 :  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
07 :  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

Стандартное выполнение команды чтения.

R1A000007F
0304070000000120400C15012A0000000F07000046494E4953415220434F5250323334200000906546544C46383532345032424E56202020412020200352009C0032000050423931595A57202020202020202020303730323237202068D8010B0000000000000000000000000000000000000000000000000000000000000000

Чтение 128 байт страницы T03h трансивера QSFP28 из адресного пространства A0h по смещению 80h.

R4A003807F
11CC07800000000000000003FF00020000000040484953494C49434F4E20202020202020000000004F4D333535394358313030202020202030316658051446E60607FFDE30333448545831304D3930303333383832313039333032300C1067A60000000000000000000000000000000000000000000000000000000000000000

Результат выполнения команды завершается символами переноса строки и возврата каретки.


Запись в память трансивера

Команда записи позволяет обращаться по шине данных к устройствам с использованием 8-битных параметров адреса и смещения, и записывать данные в страницу размером до 256 байт.

W4A002800F11223344556677889900AABBCCDDEEFF

Команда чтения состоит из следующих параметров:

W + 4 + A0 + 02 + 80 + 0F + 11223344556677889900AABBCCDDEEFF

Код команды

Команда записи начинается с кода команды — символа W (сокращение от Write).

Регистр кода команды влияет на возврат результата после выполнения записи.

  • W - верхний регистр - после записи выполняется контрольное чтение и возврат результата;
  • w - нижний регистр - выполняется только запись, контрольное чтение не выполняется.

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

Номер порта

Числовой идентификатор порта на плате программатора.

  1. GBIC
  2. SFP
  3. SFP+
  4. XFP
  5. QSFP

Если установлен параметр CMODPRST=01, программатор будет проверять подключение трансивера в указанный порт перед выполнением операции записи. Отключите данный параметр, чтобы игнорировать номера порта.

Адрес страницы

Адрес страницы ведомого устройства на шине данных. Записывается в формате HEX в верхнем регистре. Например: A0 или A2.

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

Номер дополнительной страницы

Номер дополнительной страницы в HEX формате для трансиверов с поддержкой динамического адресного пространства.

Пример значений: 00, 01, 02, 03.

Если установлен параметр AWRADTBL=01, программатор будет выполнять запись номера дополнительной страницы в область Page Select byte при обращении к верхней памяти модулей XFP и QSFP, тем самым выбирая какая именно доп. таблица будет представлена трансивером в области A0h по смещению 80h:

T00 или T01 или T02 или T03.

Чтобы игнорировать параметр номера дополнительной страницы, установите AWRADTBL=00.

Смещение

Параметр задает смещение, по которому производится чтение или запись.

Например:

  • 00 - нижняя область памяти, с 0 байта
  • 80 - верхняя область памяти, со 128 байта
  • 5F - читать с 95 байта

Количество байт записи/чтения

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

  • 00 - прочитать/записать 1 байт
  • 7F - прочитать/записать 128 байт
  • 03 - прочитать/записать 4 байта

Данные

Данные для команды записи указываются вводятся в конце команды в формате HEX строки в верхнем регистре символов без пробельных символов и символов переноса строки.

11223344556677889900AABBCCDDEEFF

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

Ввод и исполнение команды

Для исполнения команды в конце необходимо передать символ переноса строки \x0D.


Команды настройки

CLI

Переключает возможность отображения символов в окне терминала при вводе. Выключено по-умолчанию. Состояние возвращается в дефолтное после сброса питания.

Запрос текущего состояния

? CLI
CLI=0

Включение

CLI=1

Выключение

CLI=0


VERSION

Запрос информации о версии устройства.

SFPTotal Plus New (c) 2023
HW: 1.3
SW: 1.3.7
SN: SFPT-P1323122800
ACTIVE

CMODPRST

Проверка подключения трансивера в порт перед выполнением операций чтения и записи.

Запрос текущего состояния опции:

? CMODPRST
CMODPRST=01

Включить отслеживание подключения трансивера в порт:

CMODPRST=01

Выключить отслеживание подключения трансивера в порт:

CMODPRST=00

После включения опции программатор при подключении более одного трансивера в порты возвращает ошибку:

QERR: MTDOC

При выполнении операций чтения и записи и при отсутствующем трансивере в порту программатор возвращает соответствующий код ошибки:

QERR: SFP_EMPTY

AWRADTBL

Команда включает автоматическую запись номера дополнительной страницы в регистр Page Select byte при обращении к адресным пространствам страниц T00h, T01h, T02h, T03h.

Запрос текущего состояния опции:

? AWRADTBL
AWRADTBL=01

Включение функции записи номера дополнительной страницы:

AWRADTBL=01

Отключение функции записи номера дополнительной страницы:

AWRADTBL=00


STATUS

Состояние вводов и выводов портов программатора.

STATUS
GBIC : 1; 0; 0; 1;
SFP  : 1; 1; 1; 1;
XFP  : 1; 1; 1; 1; 1;
QSFP : 1; 1; 1; 1;

Позиции значений параметров соответствует следующей карте:

GBIC  : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS;
SFP   : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS;
XFP   : MOD_ABS; RX_LOS; INTERRUPT; MOD_SEL; P_DOWN/RESET;
QSFP  : MOD_ABS; INTL; MOD_SEL; RESETL;


TX_DIS

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

Включение лазера, отключение режима Low power mode

TX_DIS=0

Выключение лазера, включение режима Low power mode

TX_DIS=1

На плате программатора может присутствовать перемычка для аппаратного управления режимом Low power mode. Замкнутая перемычка имеет приоритет.


I2CRATE

Устанавливает скорость тактирования программатора на шине данных в режиме master.

Параметр представлен шестнадцатеричным регистром.

I2CRATE=12 # Частота тактирования 100 kHz
I2CRATE=40 # Частота тактирования 30 kHz
I2CRATE=C6 # Частота тактирования 10 kHz

Для запроса текущего значения скорости используйте команду ? I2CRATE

? I2CRATE
I2CRATE=C6

Может принимать значения от 01h до FFh.

Скорость тактирования рассчитывается по формуле:

16 000 000 / (2 * I2CRATE * I2CPRESC + 16) = Speed Rate Hz


I2CPRESC

Предделитель значения частоты тактирования программатора на шине данных в режиме master.

Параметр представлен шестнадцатеричным регистром. Значение по-умолчанию: 04h

I2CPRESC=04

Для запроса текущего значения скорости используйте команду ? I2CPRESC

? I2CPRESC
I2CPRESC=04

Может принимать значения 00h, 04h, 10h, 40h.

I2CPAUSE

Задержка перед выводом результатов чтения на шине. Значение в миллисекундах. Значение по-умолчанию: 64h или 100ms

? I2CPAUSE
I2CPAUSE=64

I2CPAUSE=32
I2CPAUSE=32

I2CDELAY

Устанавливает задержку перед выполнением условия ReSTART c шагом 0.1 ms.

Значение по-умолчанию: 0Ah

? I2CPAUSE
I2CPAUSE=0A

I2CPAUSE=64
I2CPAUSE=64

I2CRESET

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

Сброс шины данных:

I2CRESET

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

I2CRESET=01

Отключить триггер.

I2CRESET=00

I2CSTATE

Возвращает состояние линий шины данных.

I2CSTATE
SCL=01  SDA=02

USBDELAY

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

? USBDELAY
USBDELAY=0A

USBDELAY=10
USBDELAY=10


Управление питанием

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

PWRRST

Сброс питания портов для подключения трансиверов.

PWRRST

Значение I2CPAUSE влияет на длину интервала сброса шины данных с шагом 10 мс.

PWRCTRL

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

Выключить питание.

PWRCTRL=0

Включить питание.

PWRCTRL=1

Изменение состояния питания должно сопровождаться соответствующей светодиодной индикацией.


Аппаратный поиск паролей

Программатор поддерживает функцию аппаратного поиска паролей в диапазоне от 00000000 до FFFFFFFF

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

BFCWADR

Адрес страницы, в которую будет записываться контрольное слово.

BFCWOFT

Смещение при записи контрольного слова.

BFSET

Команда запуска аппаратного поиска паролей. Имеет следующие параметры:

  • Страница ввода пароля
  • Смещение ввода пароля
  • Начало диапазона значений
  • Конец диапазона
  • Стартовая позиция

Команда запускает поиск с вводом паролей в область страницы A2h по смещению 7Bh в диапазоне от 41414141h до 5A5A5A5Ah, начиная с позиции 45454545h.

BFSET A2 7B 41414141 5A5A5A5A 45454545

Device=A2
Offset=7B
From    41 41 41 41
To      5A 5A 5A 5A
Start   45 45 45 45

45 45 45 46

BFSTOP

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

BFSTOP

STOP
Device=A2
Offset=7B
From    41 41 41 41
To      5A 5A 5A 5A
Current 45 45 47 5A

BFSTART

Запускает поиск паролей с места, на котором процесс был остановлен.

BFPASS

Команда ? BFPASS возвращает текущее значение.

? BFPASS
45 45 47 5A