Opened 5 years ago

Closed 4 years ago

#484 closed улучшение (готово)

Плата УМ-02, поддержка протокола PLC v2

Reported by: vlad Owned by: san
Priority: major Component: MC04-DSL-3U и его платы
Keywords: Cc: andrei

Description (last modified by vlad)

Сделать(ДОБАВИТЬ) поддержку протокола PLC v2 для отображения платы в ПО PLC_Monitor.

Платe УМ-02 необходимо доработать (разъем кросса):

  1. A3 отрезать от GLOBAL_1
  2. B3 соединить с GLOBAL_1

В кросс-плате PLC v1 "B3" электрически не соединён ни с одной цепью (в воздухе)
В кросс-плате PLC v2 "B3" соединён с цепью 0V.

Таким образом, при старте плата определяет, по какому протоколу будет работать:

  • GLOBAL_1 =1 cross PLC v1
  • GLOBAL_1 =0 Cross PLC v2

Протокол Cross PLC_v2 описан в документе plc_interface.txt п.1, п.3.1-3.4
Ниже привожу только выдержки.
Идентификаторы плат/каналов:

0xa - плата первого усилителя прд;
0xc - плата второго усилителя прд;

Сообщения должны ограничиваться с обеих сторон символами 'Flag' 0x7E.

Передача должна выполняться с замещением символов:

0x7E ('Flag') - последовательностью 0x7D, 0x5E;
0x7D ('Esc') - последовательностью 0x7D, 0x5D.

Формат сообщений определён в разделе 1.

Плата МД выдаёт сообщения в цепь "Tx" по мере их появления.
При отсутствии сообщений для передачи плата передаёт маркеры, заполняя паузы
ожидания после передачи очередного маркера флагами. Маркер - однобайтовое сооб-
щение, состоящее из одинаковых ниблов, содержащих идентификаторы платы/канала,
определённые в разделе 1. Маркер предоставляет право занятия цепи "Rx" соответ-
ствующей плате.

После получения маркера (последовательности Флаг-Маркер-Флаг) адресуемая плата может передавать произвольное количество сообщений произвольной длины.
Если адресуемая плата намерена передавать, она должна начать передачу не позже
двух символьных интервалов (2*86.8мкс) после конца передачи постмаркерного фла-
га и обеспечивать паузы между передаваемыми символами меньше одного символьного
интервала (86.8мкс).

При обнаружении передачи по цепи "Rx" после передачи маркера, плата МД за-
держивает передачу следующих сообщений до завершения передачи по цепи "Rx".
Иначе передача следующего сообщения начинается после передачи шести флагов.

Плата, занявшая цепь "Rx", должна непрерывно контролировать активность в це-
пи "Tx" и при обнаружении передачи по цепи символов-нефлагов максимально быстро
освобождать цепь "Rx".

Цикл формирования маркеров: 55-88-66-aa-77-bb-55-cc-66-dd-77-ee.

Структура сообщений: <Указатель><Маршрут><Данные><Контроль>

Указатель занимает один байт:
бит 7 (старший) - значение 0/1, если передается команда/ответ;
бит 6 - резервный, должен быть 0;
биты 5..0 - номер активного элемента в поле машрута.

Маршрут представляется списком элементов, каждый из которых занимает половину
байта и является идентификатором платы/канала или блока по пути продвижения со-
общения. Перед идентификаторами блоков вставляется элемент со значением 0. Если
сообщение адресовано блоку, после идентификатора этого блока следует элемент со
значением 0 (признак конца списка). Остаток последнего байта маршрута должен
заполняться 0 и при приеме должен игнорироваться.

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

Сообщение должно завершаться контрольным байтом. Значение байта вычисляется
аналогично DARPA IP протоколу: сумма всех байтов сообщения и возникающих при
сложении переносов должна быть 0xFF.

При формировании команды указателю присваивается значение 0. В процессе про-
движения команды по очередному узлу ветвления определяется направление по ак-
тивному элементу списка, элемент списка модифицируется для формирования марш-
рута ответного сообщения, инкрементируется указатель и корректируется контроль-
ный байт.

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


 Сообщения для плат УМ-02
  Команда          Комментарий
    0x01           Запрос версии
  Запрос:          Число данных не имеет значения
  Ответ:           [8 байт]
      [0]          CMD(0x01)
      [1]          Ver
      [2]          Subver
      [3..6]       Уровень ПРД, дБ [float]
      [7]          Бит 0 -резерв  
                   Аварии, бит 1,2,3,4:
                      'Обрыв линии','Отказ/обрыв ФПРД', 'Нет сигнала на входе УМ', 'Высокая температура'
                   Бит 7 : 0-УМ-01, 1-УМ-02
      [8]          T, °C
                      

Добавить команду 0х02 (+регистр адреса, регистр данных) для записи параметров, которые нужно отобразить индикаторе - аналогично PLCv1

Change History (4)

comment:1 by vlad, 5 years ago

Description: modified (diff)

comment:2 by san, 5 years ago

Cc: andrei added

Андрей, с тебя нужно задание на доработку.

Платe УМ-02 необходимо доработать (разъем кросса):
A3 отрезать от GLOBAL_1
B3 соединить с GLOBAL_1

comment:3 by san, 4 years ago

GLOBAL_1 = PORTD PIN0 на контроллере.

comment:4 by san, 4 years ago

Resolution: готово
Status: newclosed

Сделано в версии v.5

Сообщения для плат УМ-02

Команда Комментарий
0x01 Чтение/запись

Запрос: Если есть данные, это запись, если данных нет - чтение.
Запись: 1 байт: бит 0 - признак двух УМ в блоке, остальные биты=0(резерв);

Ответ: на чтение и запись одинаковый [4 байт или больше]

0 CMD(0x01)
1 статус : Бит 0 -резерв, Аварии, бит 1,2,3,4:'Обрыв линии','Отказ/обрыв ФПРД', 'Нет сигнала на входе УМ', 'Высокая температура'; бит 6 - признак двух УМ в блоке ;бит 7 : 0-УМ-01, 1-УМ-02
2 Уровень ПРД, дБ [uint8_t]
3 T, °C
Note: See TracTickets for help on using tickets.