Поиск

Home Протокол обмена
Протокол обмена компьютера и контроллера PDF Печать E-mail
Автор: Administrator   
05.03.2009 01:53

Протокол обмена имеет четырёхуровневую структуру.
Протокол 1-го уровня. Кадр.
Протокол 2-го уровня. Помехоустойчивое кодирование информации.
Протокол 3-го уровня. Пакет информации.
Протокол 4-го уровня. Структура информации.

1. Протокол 1-го уровня. Кадр

Преамбула

Маркер начала

Данные

Маркер конца

B2h 4Dh B2h 4Dh B2h4Dh B2h 4Dh

2Bh

Информация согласно протоколу 2-го уровня

4Bh

Перед передачей кадра передаётся преамбула – повторяющаяся последовательность из байтов со значениями B2h и 4Dh. Длина преамбулы не должна быть короче четырёх указанных последовательностей, то есть восьми байтов. После передачи преамбулы UART однозначно синхронизируется со стартовыми и стоповыми битами и готов к приёму байтов.

Перед передачей информации помещается маркер начала кадра – байт со значением 2Bh, после неё – маркер конца кадра – байт со значением 4Bh.

2. Протокол 2-го уровня. Помехоустойчивое кодирование информации

Каждый байт разбивается на два ниббла [1] — старший и младший, после чего каждый ниббл кодируется байтом в соответствии со следующим правилом:

Значение ниббла

Значение байта

0h

55h

1h

56h

2h

59h

3h

5Ah

4h

65h

5h

66h

6h

69h

7h

6Ah

8h

95h

9h

96h

Ah

99h

Bh

9Ah

Ch

A5h

Dh

A6h

Eh

A9h

Fh

AAh

Байт кодируется двумя байтами, вначале следует байт, соответствующий старшему нибблу, затем - младшему.

3. Протокол 3-го уровня. Пакет информации

 3.1. Формат передачи пакета информации:

 

№ кадра (длина в байтах)

4(4)

3(4)

2(1)

1(0-255)

0 (2)

Сетевой идентификатор устройства-получателя

Сетевой идентификатор устройства-отправителя

Длина данных содержащихся в кадре 1

Данные протокола 4 уровня [2]

 CRC16

Сетевымиf идентификаторами «устройства - получателя» и «устройства - отправителя» являются серийные уникальные номера каждого изделия. Уникальный серийный номер занимает 3 байта, начиная со старшего. Последний (нулевой, см. таблицу ниже) байт равен нулю.

Пример 1: блок имеет заводской серийный номер 1234510, или 303916. Тогда его сетевой идентификатор будет иметь вид: 39-30-00-00.
В случае использования устройства, где серийный номер задаётся пользователем (управляющий компьютер или другое устройство), последний (нулевой, см. таблицу ниже) байт не равен нулю[3].
Пример 2: компьютеру пользователем задан идентификационный номер 0110, или 0116. Тогда его сетевой идентификатор будет иметь вид: 01-00-00-01 (нулевой байт задан равным 0116 для определенности).


Идентификатор устройства:

 

3-й байт

2-й байт

1-й байт

0-й байт

Серийный номер изделия или идентификационный номер

Если задан пользователем, равен 1

Кадр защищается кодом CRC16, определяемым по полиному X16+X15+X2+X0, или (в виде двоичного значения) 11000000000000101b.
Перед вычислением переменная CRC должна быть инициализирована значением, равным FFFFh.

3.2. Процедура расчёта CRC:


1. Подготовить значение полинома: удалить старший бит полинома и переставить остальные биты в обратной последовательности, получив, таким образом, число 1010000000000001b = A001h.
2. Загрузить 16-разрядный регистр числом FFFFh.
3. Выполнить операцию XOR над первым байтом данных и старшим байтом регистра. Поместить результат в регистр.
4. Сдвинуть регистр на один разряд вправо.
5. Если выдвинутый вправо (из регистра) байт - единица, то выполнить операцию XOR между регистром и значением полинома (A001h).
6. Повторять шаги 3 и 4 до тех пор, пока не будут выполнены 8 сдвигов регистра.
7. Выполнить операцию XOR над следующим байтом данных и регистром.
8. Повторять шаги 4...7 до тех пор, пока не будет выполнена операция XOR над всеми байтами и регистром.
9. Содержимое регистра представляет собой двухбайтовое значение CRC.
Алгоритм подсчета CRC см. в документе Расчет CRC.doc.


Приём любого пакета от отправителя подтверждается пакетом данных, или пустым пакетом с длиной данных, равной нулю, в течение 100 мс.


4. Протокол 4-го уровня. Структура информации.

 

Направление передачи информации

Указатель параметра [4]

Данные [5]

Бит 15

Биты 14-8

Биты 7-0

 

0-чтение/1-запись

Тип

Номер параметра

 

Чтение/запись – один байт. Направление чтения или записи информации [6].


На данном этапе программа устройства должна анализировать последний (младший) бит байта, но не проводить проверку байта целиком на 0 или 1 (остальные 7 битов зарезервированы для будущего применения).
Указатель параметра - состоит из двух байтов. Старший байт ссылается на тип параметра, младший байт уточняет параметр для данного типа.
Величина параметра – четыре байта. Численное значение параметра.


При возникновении «Аварии» [7] значение параметра указывает на причину аварии. Длина данных в ответе контроллера будет равна 2 — двухбайтовое слово со структурой:

 

Направление передачи информации

Указатель параметра

Бит 15

Биты 14-8

Биты 7-0

Всегда нуль

Тип

Номер параметра

Устройство, осуществляющее приём информации, производит проверку каждого байта, находящегося между маркерами начала и конца кадра, на соответствие их значениям, указанным в таблице;

  • совпадения CRC16, подсчитанного для каждого кадра, со значением, переданным в этом кадре;
  • максимального количества байтов, находящихся между маркерами начала и конца кадра;
  • длиной данных, указанной в кадре, и реальной длиной данных.

 

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


Таблица указателей параметров

 

Указатель параметра

Описание

Тип, № hex

Параметр. № hex

Коэффициент пересчета

Длина
данных

Информационные
параметры [8]

00

Тип изделия [9]

00

*1

2(w)

Смотри описание

Номер версии

01

*1

2(w)

Номер версии блока

Серийный
номер
изделия

02

*1

4

 

Системные
параметры

01

Вкл./Выкл.

00

*1

1(w)

Блок
Вкл. – 1/ Выкл - 0

Авария

01

*1

2

При аварии содержит ссылку на параметр, вызвавший аварию, иначе — длина данных в ответе = 0

Мощность

02

Выходная

00

/10

2

Pпад. Вт.

Падающая

01

/10

2

Pпад. Вт.

Отраженная

02

/10

2

Ротр. Вт.

Входная

03

/10

2

Рвх. Вт.

КСВ

04

/10

2

КСВ. Единиц.

Активная

05

/10

2

P. Вт.

Напряжение

03

Сетевое

00

/10

2

Uсет. В

Сет. Фаза А.

01

/10

2

UсетА. В

Сет. Фаза Б.

02

/10

2

UсетВ. В

Сет. Фаза С.

03

/10

2

UсетС. В

Напряжение 1

10

/10

2

U1. В

Напряжение 2

11

/10

2

U2. В

Напряжение …

/10

2

U…. В

Напряжение 16

1F

/10

2

U16. В

+5В – 1

20

/10

2

U1+5В. В.

+5В – 2

21

/10

2

U2+5В. В.

+5В – ……

/10

2

U…+5В. В.

+5В – 16

2F

/10

2

U16+5В. В.

+12В – 1

30

/10

2

U1+12В. В.

+12В – 2

31

/10

2

U2+12В. В.

+12В – …..

/10

2

U…+12В. В.

+12В – 16

3F

/10

2

U16+12В. В.

+24В – 1

40

/10

2

U1+24В. В.

+24В – 2

41

/10

2

U2+24В. В.

+24В – …

/10

2

U…+24В. В.

+24В – 16

4F

/10

2

U16+24В. В.

+48В – 1

50

/10

2

U1+48В. В.

+48В – 2

51

/10

2

U2+48В. В.

+48В – …

/10

2

U…+48В. В.

+48В –16

5F

/10

2

U16+48В. В.

Ток

04

Сетевой

00

/10

2

Iсет. В

Сет. Фаза А.

01

/10

2

IсетА. В

Сет. Фаза Б.

02

/10

2

IсетВ. В

Сет. Фаза С.

03

/10

2

IсетС. В

Ток 1.

10

/10

2

I1. A

Ток 2.

11

/10

2

I2. A

Ток ….

/10

2

I…. A

Ток16.

1F

/10

2

I16. A

Температура

05

Т1.

00

/10

2

Т1. С

Т2.

01

/10

2

Т2. С

Т….

/10

2

Т….С

Т 16.

0F

/10

2

Т 16.С

Радиатора1

10

/10

2

Трад1. С.

Радиатора2

11

/10

2

Трад2. С.

Радиатора…..

/10

2

Трад… С.

Радиатора16

1F

/10

2

Трад16.С.

В корпусе1

20

/10

2

 

В корпусе2

21

/10

2

 

В корпусе…..

/10

2

 

В корпусе16

2F

/10

2

 

Символьные
параметры

   

06

   

ФАПЧ1

00

*1

1

 ФАПЧ1 РАБОТА-1/ ОТКАЗ-0

 ФАПЧ2

 01

 

 1

 ФАПЧ2 РАБОТА-1/ ОТКАЗ-0

 ФАПЧ…

 0X

 *1

 1

 ФАПЧ... РАБОТА-1/ ОТКАЗ-0

 ФАПЧ16

 0F

 *1

 1

 ФАПЧ16 РАБОТА-1/ ОТКАЗ-0

 Уровни сигналов

 

 

07 

 

 

 Уровень видео

 01

 /10

 Lвидео, dB

 Уровень аудио (правый канал)

 10

 /10

 2

 Lаудио, dB 

 Уровень аудио левый канал

11 

 /10

 2

 Lаудио, dB

 Загрузка синтезаторов

 

 08

 

 Частота гетеродина

 00

*1 

 3

 В кГц.

Сдвиг СНЧ телевизионного формирователя 

 01

 *1

 1

 -12…+12, шаг смещения 1,302кГц

 [1] Тетрады, последовательности из четырёх битов

 [2] Подробнее см. описание протокола 4 уровня

 [3] Задание последнего байта не равным нулю обеспечивает уникальность номера без существенного сужения адресного пространства.

 [4] В ответе контроллера всегда повторяется указатель параметра из запроса компьютера

 [5] Длина данных зависит от конкретного параметра, но не превышает 32 байта

 [6] Чтение: получение компьютером значения параметра из контроллера, «Значение параметра» принимает измеренную величину. Запись: установка компьютером значения параметра через контроллер, в ответ контроллер высылает пакет без данных («нулевой» длины)

 [7] БЫЛО: При возникновении «Аварии» (см. «Таблицу указателей параметров» ниже: Системные параметры® Авария®код 0101) в байте 3 (величина параметра) длина данных в ответе контроллера будет ненулевой. В этом случае данные содержат последовательность двухбайтовых слов со структурой:

 Каждое слово содержит указатель параметра, вызвавшего аварию («аварийного параметра»). Число таких параметров не может превышать 16, поскольку длина данных не превышает 32.

 [8] Информационные параметры доступны для чтения вне зависимости от указанного номера единицы в изделии

 [9] Описание изделия по принципу действия и выполняемых функций

Обновлено 05.03.2009 06:45