Сообщения для блока Команда 0x00..0x0F - см. сетевой уровень байт 1[3:0] - идентификатор блока байты 2.. - имя блока, 0..32 байтов ответ 0x00..0x03 - см. сетевой уровень байт 1[1:0] - номер канала со стороны блока байт 2 - тип блока байты 3.. - имя блока, 0..32 байтов - Команда/ответ 0x10 - настройка физики Ethernet порта байт 2 - скорость, фазировка шнура, .. Команда/ответ 0x11 - настройка адресов Ethernet порта и SNMP байты 2,3 - MAC блока, байты 5,6 байты (5,4)[11:0] - VLAN ID байты 6..9 - IP адрес блока, байты 1..4 байты 10..13 - IP маска блока, байты 1..4 байты 14..17 - IP адрес шлюза, байты 1..4 байты 18..21 - IP адрес SNMP, байты 1..4, =0 - SNMP выключен байты 22.. - community SNMP, 0..8 байтов - Команда/ответ 0x12 - опрос счетчиков Ethernet (ETH_MMCCR: not roll over to zero) 0x13 - сброс счетчиков Ethernet (ETH_MMCCR) байты (5, 2) отв. - transmitted good frames counter register (ETH_MMCTGFCR) байты (9, 6) отв. - received good unicast frames counter register (ETH_MMCRGUFCR) байты (13,10) отв. - received frames with CRC error counter register (ETH_MMCRFCECR) байты (17,14) отв. - received frames with alignment error counter register (ETH_MMCRFAECR) Сообщения для платы МД02 Команда/ответ 0x00 - чтение дампа памяти байты (3,2) - стартовый адрес байт 4 ком. - количество запрашиваемых байтов - 1 байты 4.. отв. - запрошенные данные, 1..256 байтов Команда/ответ 0x01 - опрос версии платы байт 2 отв. - версия программы MCU байт 3 отв. - версия программы FPGA Команда/ответ 0x02 - запись программы MCU во Flash, файл *.cbi байт 2.. - см. далее Команда/ответ 0x03 - запись программы FPGA во Flash, файл *.lbi байт 2.. - см. далее Команда 0x04 - перезапуск (сброс) платы - Команда/ответ 0x06 - опрос счетчика сетевых ошибок 0x07 - то же со сбросом байт (3,2) отв. - количество ошибок Команда/ответ 0x08 - работа с часами команда 1 байт - чтение состояния часов, ответ 6 байтов команда 2 байта: - установка скорости хода часов, ответ 2 байта байт 2 - код коррекции скорости хода часов команда 5 байтов: - установка тек. времени, ответ 6 байтов байты (5..2) - текущее время ответ: байт 2 - код коррекции скорости хода часов байты (6..3)[26:0] - текущее время байт 6[7] - батарейка разряжена Код коррекции скорости хода часов задаёт смещение частоты dF,ppm = 60.3*[1/(1+C/4/29.4)-1], где знак и модуль C - сооветственно разряды 7 (0/1: +/-) и 6:0 кода коррекции. Диапазон кода ограничивается пределами 0xC8(+95ppm)..0x27(-15ppm). В ответах код 0xFF - ошибка чтения. Текущее время - остаток от деления количества секунд от начала 1970г на количество секунд в 4 годах (126230400). В ответах [26:21]=0b111110 - ошибка чтения, [26:21]=0b111111 - время не установлено. Команда/ответ 0x09 - чтение журнала событий команда, может быть 3 или 5 байтов: байты (3,2)=0xFFFF - очистить журнал байты (3,2)[15:12] - exp, количество запрашиваемых событий 2^exp байты (3,2)[11:0] - номер первого запрашиваемого события - байты (5,2)[31:28] - exp, количество запрашиваемых событий 2^exp - байты (5,2)[27:0] - время запрашиваемых событий, см. ком. 0x08 ответ: байты (4..2)[23:12] - номер после последнего события в журнале байты (4..2)[11:0] - номер первого передаваемого события байты 5.. - события, каждое по 6 байтов Байты 5.. посылаются только в ответ на запрос событий, иначе (4..2)[11:0]=0. Формат поля событий: байты (4..1)[31:28] - идентификатор платы байты (4..1)[26:0] - время, см. отв. 0x08 байты (6,5) - код события Коды событий: 0x0000 - плата выключена 0x0001 - плата включена события в каналах: [15:14]=1..3 - номер канала [13:0]=0x0000 - приёмник не активирован =0x0001 - приёмник активирован =0x0002 - транзитного сигнала нет =0x0003 - транзитный сигнал есть =0x0008+n - коэфф. ошибок Kош(n=0..5)=0.00128/(1,4,16,64,256,1024) =0x0020+n - уровень вх. сигнала Aвх(n=0..17)=n*(-3дБ) =0x0080+n - скорость приёмника Rate(n=0..35)=n*1кбит/с Команда 0x0A - запись в журнал событий байты 2,3 - код события Команда/ответ 0x10 - конфиг. общее байт 2[6:1] - уровень передатчика, 0..-25.2дБ, -0.4дБ/ед байт 3[6:0] - уровень приёмника, 0..-25.4дБ, -0.2дБ/ед байт 4 - чувствительность АРУ, 0..-51.0дБ, -0.2дБ/ед байт 5 - объединение каналов в TDM1, [7:2]=0, [1]=к3, [0]=к2 Команда/ответ 0x10+n - конфиг. канала n=1..3 байт 3[7] - канал включен/выключен байты (3,2)[9:0] - средняя частота полосы передатчика, *1кГц байты (5,4)[9:0] - средняя частота полосы приёмника, *1кГц байт 6[7:6] - режим 0..3=(Анал, Транзит, Цифр.вдщ, Цифр.вдм) байт 6[5] - OFDM: мониторинг через eoc/payload байт 6[4:0] - OFDM: запас по шуму, 31..0 дБ байт 7 - OFDM: мин. скорость приёмника, *0.1 кбит/с с версии 9 mcu: = 0..127: 0.0..12.7 кбит/с (0.1 кбит/с/ед) =128..255: 12.8..38.2 кбит/с (0.2 кбит/с/ед) с версии 11 mcu: байт 8 - OFDM: макс. скорость приёмника, = 0..127: 0.0..12.7 кбит/с (0.1 кбит/с/ед) =128..255: 12.8..38.2 кбит/с (0.2 кбит/с/ед) Команда 0x14 - команды для каналов 1..3 байт 2[2] - НЧ заворот DTx->DRx/сброс счётчика CRC байт 2[1:0] - канал n=(-,1,2,3) Команда/ответ 0x14+n - работа каналов n=1..3. Байты 4..9 - в цифровом режиме байт 2 отв. - состояние приёмника: Индикация: [7] - перегрузка [7:5]=10* перегрузка [6] - есть вх. сигнал 00* нет сигнала [5] - приёмник активирован *10 активация [3] - НЧ заворот DTx->DRr *11 приём данных [1] - разрешение отображения [0] (нет байтов 4..9) [0] - есть транзитный сигнал от КО байт 3 отв. - уровень вх. сигнала, 0.0..-51.0 дБ, -0.2дБ/ед байт 4 отв. - OFDM: скорость передатчика, *0.1 кбит/с с версии 9 mcu: = 0..127: 0.0..12.7 кбит/с (0.1 кбит/с/ед) =128..255: 12.8..38.2 кбит/с (0.2 кбит/с/ед) байт 5 отв. - OFDM: скорость приёмника, *0.1 кбит/с с версии 9 mcu: = 0..127: 0.0..12.7 кбит/с (0.1 кбит/с/ед) =128..255: 12.8..38.2 кбит/с (0.2 кбит/с/ед) байт 6 отв. - OFDM: запас по шуму, *1/8 дБ байты (8,7) отв. - OFDM: количество ошибок CRC (сброс при переполнении) байт 9 отв. - OFDM: [6:0]=-10*lg(коэффициент ошибок) Процедура записи программ Компьютер должен стартовать сеанс записи посылкой сообщения: <Тип><0,Id[14:8]> где Id (идентификатор сеанса) - случайный код. Втечение работы программы мониторинга значения Id для каждого сеанса записи должны быть уникальными. Адресуемая плата при приёме стартового сообщения должна подготовиться к приёму данных, после чего послать ответное сообщение, повторяющее принятое стартовое сообщение. После приёма ответного сообщения компьютер должен посылать сообщения: <Тип><Блок[7:0]><1,Блок[14:8]><Данные>.. Значение поля 'Блок' - номер блока данных, передаваемых в сообщении. Счёт блоков начинается со значения 0. Количество байтов данных в непоследних блоках - 256, в последнем - 0..255. Количество байтов в блоке идентифицирует конец данных. После посылки каждого сообщения с данными, в том числе и сообщения с послед- ним блоком, компьютер должен ожидать сообщение от адресуемой платы с подтвер- ждением приёма и повторять передачу сообщения с периодичностью 2*Tож, если подтверждения нет. В начале сеанса Tож должно быть 36 сек. Если интервал вре- мени от момента первой передачи сообщения до момента приёма подтверждения меньше Tож, Tож должно присваиваться значение этого интервала. После приёма очередного сообщения адресуемая плата должна обработать принятые данные в объёме, обеспечивающем возможность приёма следующего блока данных, и затем передать ответное сообщение с номером принятого блока: <Тип><Блок[7:0]><1,Блок[14:8]> Плата должна прекращать сеанс после активации принятой версии программы или в случае нарушения протокола. В зависимости от специфики платы активация прог- раммы может происходить после посылки ответного сообщения для последнего блока (автоматически) или по дополнительной команде от оператора. При обнаружении протокольной ошибки плата должна посылать ответное сообщение: <Тип><Код[7:0]><Код[15:8]> где Код=0xFFFE - ошибка; =0xFFFF - нет сеанса. Компьютер должен прекращать сеанс: - при приёме ответного сообщения для последнего блока; - при приёме ответного сообщения об ошибке; - в случае протокольной ошибки; - по инициативе оператора. Компьютер должен отображать на экране этапы сеанса на основе сообщений, при- нимаемых от программируемой платы.