Changes between Initial Version and Version 1 of AdcProtocol


Ignore:
Timestamp:
Apr 22, 2019, 5:21:39 PM (5 years ago)
Author:
san
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdcProtocol

    v1 v1  
     1
     2== Протокол обмена данными c UPS-1200 ==
     3 
     4=== 1. Формат пакета ===
     5
     6|FLAG | ADDR |  CMND |  DATA |  CSUM |  FLAG |
     7
     8Рис 1.
     9
     10- Поле FLAG имеет размер 1 байт, предназначено для определения приемником границ пакета, значение поля фиксированное $7E. Флаги могут постоянно передаваться в сети между пакетами. Если сетевой элемент обнаруживает байт, не являющийся флагом, он тем самым уведомляется о начале пакета. При обнаружении следующего флага, элемент будет знать, что поступил полный пакет.
     11- Поле ADDR имеет размер 1 байт, предназначено для передачи адресной информации и трактуется по-разному в зависимости от направления движения пакета. Для пакета исходящего от сетевого модуля ADDR=0. Для пакета исходящего из UPS-1200 ADDR=0x7F.
     12- Поле CMND имеет размер 1 байт, предназначено для кодирования команд или ответов. Значения $00-$7F кодируют команды, значения $80-$FF - ответы. Кодировка команд и ответов приведена ниже.
     13- Поле DATA может быть размером 0-74 байт, содержимое зависит от значения поля CMND (см. п. 5).
     14- Поле CSUM имеет размер 1 байт, предназначено для контроля полей ADDR, CMND и DATA. Вычисляется как ИСКЛЮЧАЮЩЕЕ ИЛИ всех байтов в контролируемых полях.
     15
     16=== 2. Кодирование ===
     17Для предотвращения ложного распознавания границ пакета, все передаваемые данные, кроме полей FLAG, должны подвергаться следующей процедуре:
     18- если значение байта данных есть $7E, то он заменяется двумя байтами $7D и $5E;
     19- если значение байта данных есть $7D, то он заменяется двумя байтами $7D и $5D.
     20Все размеры полей приведены без учета описанных выше замен.
     21После распознавания пакета производится:
     221. обратная замена байтов. Если длина пакета после замены больше 77 байт, пакет не обрабатывается;
     232. проверка контрольной суммы пакета. Если контрольная сумма не совпадает, то пакет не обрабатывается;
     243. проверка поля адреса, как описано в п.2. и п.3.2.;
     254. обработка команды, если пакет адресован данному сетевому элементу. Если код команды не известен сетевому элементу, пакет не обрабатывается;
     265. посылается ответ.
     27
     28Команды запроса состояния сетевого элемента посылаются периодически, поэтому единичная потеря ответа на эти команды допустима (произойдет задержка отображения состояния).