Последовательный протокол DPM


Последовательный коммуникационный протокол DPM

(Dilbertian протокол изменения)

Обратите внимание на имя протокола
Имя “Dilbertiano” приходит от первой версии этого протокола, Мы назвали “ВПЛ Перевернутый Dilbertian протокол” (2010), где были представлены нулей с ячейкой “закрыть” и с ячейкой “большие” (“0” тощий и “1” жир – согласно следующим виньетка приходит от “Дилберт” от Scott Adams – www.Dilbert.com).

английский

итальянский
dilbertian_one


Потому что новый протокол ?

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

Существует аналогичный протокол, мы должны были написать его. Текущая версия собирает лучших многих лет экспериментов и исследований.

Скачать документ в формате PDF:
Theremino система - DPM_Protocol_2015_ENG.PDF
Theremino система - DPM_Protocol_2015_ITA.PDF


Особенности

  • Двунаправленный последовательный на одного провода.
  • Автоматическая настройка.
  • Автоматическое обнаружение подключенных устройств.
  • Количество устройств, начиная от 1 в 200.
  • Количество байтов, отправленных и полученных варьируется в зависимости от типа устройства.
  • Скорость передачи данных до 4 Мегабит/сек для передачи большого объема данных с короткие кабели.
  • Скорость передачи данных до 100 Килобит/сек для длинных кабелей (до 10 Км).
  • Высокая эффективность коммуникации (От 10 в 20 раза больше, чем может).


Электрические ставни

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

Любое устройство, которое поддерживает DPM должен иметь входной разъем (Мастер) и один выход на выходе устройства (Рабы)

Обычно используются разъемы 3 Поли, с интервалов 2.54 мм.

На связи цепь должна иметь мастер (обеспечение питания и времени) и количество устройств, подключенных в каскад (под названием Slave).

Напряжение, что мастер предоставляет на линии 5 V, с же толерантности и же максимальный ток 5 V что снятие разъема USB.

Максимальный ток, который может предоставить мастер ограничивает количество и тип устройств, которые могут быть подключены. Этот ток, обычно 250 но, и может быть увеличена до 500 но. Идя над ним будет превышать емкости USB ’ и будет налагать необычных особенностей к разъемам.

Максимальное количество подключаемых устройств ограничен следующими факторами:
– Максимальный ток, “Мастер” может обеспечить.
– Максимальное количество байтов, которые линия несет в время цикла риса-передачи.

Оба “Мастер” что “Раб” подключены к линии с демпфирующих резисторов, Он также действует как низких частот, Защита радио помех и перенапряжения. Этот резистор обычно значение от 33 в 330 ом


Формат вещания

Используя формат номера-возвращение к нулю (NRZ) стандарт.

Формат по умолчанию = 8, N, 1
– 1 Начало немного
– 8 биты данных
– No-Parity
– 1 стоповый бит


Уровни данных линии “Линия com.”

Линии в сторону его на уровень вверх (3.3 V)
Сигнал “1” обозначается 3.3 V
Сигнал “0” обозначается 0 Vdilbertian two


Повтор раз и пропускная способность

Скорость передачи данных
Использование низких скоростях когда длина, и поэтому возможности подключения кабелей, высоки. Когда расстояния короткие и высокие скорости может использоваться для взаимодействия с большим числом устройств (или взаимодействовать с устройствами, которые требуют большое количество байтов) Установленным именованным скорости от “1” (1 k бит/сек) до “12” (4 мега бит в секунду)

Максимальное количество байтов
В зависимости от скорости максимальное количество байтов, которые могут быть переданы перечислены в следующей таблице.


Раз, расстояние и количество байтов

Скорость
время
бит
для
второй
Байт
Каждый
15MS
Байт каждый
30MS
Максимальное расстояние
Максимальная емкость
Рабы
Макс.
номер
1
1 MS
1K
1
3
10 Км
1 UF
3
2
500 нас
2K
3
6
5 Км
500 NF
6
3
200 нас
5K
4
8
2 Км
200 NF
15
4
100 нас
10K
15
30
1 Км
100 NF
30
5
50 нас
20K
30
60
500 m
50 NF
60
6
20 нас
50K
40
80
200 m
20 NF
150
7
10 нас
100K
150
300
100 m
10 NF
160
8
5 нас
200K
300
600
50 m
5 NF
80
9
2 нас
500K
400
800
20 m
2 NF
32
10
1 нас
1M
1500
3000
10 m
1 NF
16
11
500 NS
2M
3000
6000
5 m
500 PF
8
12
250_nS
4M
6000
12000
2.5 m
250 PF
4

Все устройства должны реализовать по крайней мере скорость “7” что считается скорость по умолчанию. Если вы хотите задать различные скорость от “7” все устройства в цепочке должны поддерживать его.

В “Максимальное расстояние” зависит от характеристик кабелей, значения таблицы вычисляются для экранированного кабеля RG58 от 50 ом с возможностью 100pF на метр.

При низких скоростях количество “рабы” ограничено максимальное количество байтов, которое может быть передано в 30 миллисекунд. (каждый раб использует по крайней мере один байт и вы утверждаете повторения достаточно быстро сделать жидкости движений)

На высокой скорости, количество “рабы” ограничивается максимальная вместимость, Каждый “раб” Добавляет мощностью приблизительно 40..60 PF и уменьшает максимальное расстояние приблизительно 50 см.

Емкость была рассчитана на основе 30pF за “раб” плюс другие 20pF соединительный кабель от 20 см и другие 10pF принять во внимание дополнительные сопротивления “двусторонним выключатель” (Итого: 60PF)


Максимальная длина кабеля связи чем ток и сопротивления на метр

Кабель Тип —>
Максимальный ток
( пиковый ток )
H1500/H1000/H500/H155/КАБЕЛЬ RG11
20 ом Милли
или меньше
за метр
RG58 /RG59U / H155 /
NET Кабели
о
50 ом Милли
за метр
Кабель Rg59/RG6 /Телефон витой провод /
NET Кабели
о
100 ом Милли
за метр
10 но 1 Км 400 m 200 m
20 но 500 m 200 m 100 m
50 но 200 m 80 m 40 m
80 но 125 m 50 m 25 m
100 но 100 m 40 m 20 m
200 но 50 m 20 m 10 m
400 но 25 m 10 m 5 m
500 но 20 m 8 m 4 m
800 но 12.5 m 5 m 2.5 m
1 В 10 m 4 m 2 m

При расчете расстояния мы принимаем во внимание, что падение напряжения на земле, не превышает 200 MV. Падение напряжения на кабеле питания, не вызывает ошибок передачи, Она также может быть значительно выше (в 5 V может опускаться вниз до 3.3 V без создания проблем) В случае экранированных кабелей на земле является экран, которая, как правило, имеет меньшее сопротивление, чем объявленные, так что расстояние будет больше.


Емкость кабеля

Значения “Максимальная длина” указано в приведенной выше таблице действительны только для присоединения кабеля с мощностью около 100 PF на метр. В следующей таблице перечислены исправления для применяться для наиболее часто используемых кабелей.

Кабель
Внешние
Диаметр
( мм )
Импеданс
( ом )
Емкость
(pF/МТ.)
Сопротивление
(milliohm
/ метр)
Макс длина корректор
H1500
15
50
80
4
x 1.25
H1000
10.3
50
80
11
x 1.25
RG213
10.3
50
100
H500
9.8
50
82
15
x 1.22
H155
5.8
50
82
32
x 1.22
RG8
10
52
90
КАБЕЛЬ RG11 (ТЕЛЕВИЗОР)
10.3
75
60
21
x 1.7
КАБЕЛЬ RG59 (ТЕЛЕВИЗОР)
6.15
75
67
159
x 1.5
RG6_(TVsat)
6.8
75
51
100
x 2.0
RG56/в _(ТЕЛЕВИЗОР)
6.9
75
53
x 2.0
_ RG59/U(ТЕЛЕВИЗОР)
4.5
75
53
45
x 2.0
RG58
5.2
50
100
53
RG142
4.95
50
96
RG174
2.8
50
100
RG178
1.85
50
95
RG179
2.55
75
64
x 1.5
RG187
2.7
75
65
x 1.5
RG188
2.7
50
95
RG196
1.9
50
93
RG316
2.5
50
95
Сетевой кабель
мин 50
Макс. 130
мин 60
Макс. 200
x 2.0
x 0.7
PC аудио кабель
мин 120
Макс. 300
мин 500
Макс. 3000
x 0.8
x 0.5
Микрофонной
кабель
мин 60
Макс. 300
x 1.7
x 0.3
Телефонные витые провода
50
100
x 2.0

Есть также кабели малой емкости (мало используется и трудно найти):

  • Rg62 – 93 ом – 44 PF/mt
  • RG71 – 93 ом – 44 PF/mt
  • Rg210 – 93 ом – 44 PF/mt
  • RG63 – 125 ом – 33PF/mt
  • RG114 – 185 ом – 27PF/mt

Мера способности неизвестного кабеля:

  • Подготовить идеальный шкуры экранированного кабеля и сохраняя изолированные центральной стренге.
  • Измерения между Центральной и внешний щит с метр или измерителя.
  • Для повышения точности измерения, использовать пять или десять метров кабеля.
  • Разделите значение измеряется количество метров кабеля Picofarads.


Типы устройств

Устройства помечены с числом от 0 в 199 определение ее «тип».
На этапе признания и нумерация каждого устройства идентифицирует себя с этим «Тип».

В настоящее время определены следующие устройства:

Тип устройства
Скорость
мин
Макс скорость
В из булавки
Мощность
Имя
0
Специальные “пользовательские” Тип
1
1
12
1
12 но
Емкостный датчик
Привет качество
2
1
12
10
InOut сервопривода
3
1
12
12
InOut универсальный
4
1
12
12
InOut
5
6
Виртуальный Мастер ПИН
(Первая версия)
8
10
Виртуальный Мастер ПИН – V2
9 12 Виртуальный Мастер ПИН – V4
255 Неизвестно

Максимальное количество устройств
Ограничено максимальное количество подключаемых устройств:
– Максимальное количество байтов, которые могут быть переданы в зависимости от выбранной скорости.
– максимальный ток, который может обеспечить «мастер» (обычно 500 но)
– Максимальное количество устройств, поддерживаемых протоколом 200 (От 0 в 199)


Типы ПИН

Контакты помечены с числом от 0 в 255 определение ее «PinType».

Типы вывода Pin

Закрепление вывода
Тип
Имя
Мастер подчиненных
байт
Раб мастер
байт
0
НЕИСПОЛЬЗУЕМЫЕ
0
0
1
DIG_OUT
1
0
2
PWM_8
1
0
3
PWM_16
2
0
4
SERVO_8
1
0
5
SERVO_16
2
0
6 СТЕППЕР 4 0
7 PWM_FAST 5 0

Типы ввода ПИН-кода

Закрепление ввода
Тип
Имя
Мастер подчиненных
байт
Раб мастер
байт
129
DIG_IN
0
1
130
DIG_IN_PU
0
1
131
ADC_8
0
1
132
ADC_16
0
2
133
CAP_8
0
1
134
CAP_16
0
2
135
RES_8
0
1
136
RES_16
0
2
140
СЧЕТЧИК
0
2
141
COUNTER_PU
0
2
142
FAST_COUNTER
0
2
143
FAST_COUNTER_PU
0
2
144
ПЕРИОД
0
4
145
PERIOD_PU
0
4
146
SLOW_PERIOD
0
4
147
SLOW_PERIOD_PU
0
4
150
USOUND_SENSOR
0
2
160
CAP_SENSOR
0
3
165
STEPPER_DIR
0
4
180
ENCODER_A
0
2
181
ENCODER_A_PU
0
2
182
ENCODER_B
0
0
183
ENCODER_B_PU
0
0
175
ADC_24
0
1
176
ADC_24_DIN
0
0
177
ADC_24_DOUT
0
0


Связь между мастером и рабов (последовательный порт)

Первый байт Тип передачи Передача Получение
255 (*4) Специальный расширенный
(для будущего расширения)
1 байт (расширение)
>>>>> Таблица расширенного глаголов <<<<<
254 (*1) RecogStart
Раннее распознавание
и нумерация
1 байт (число байтов данных = 0)
1 байт (CRC Cmd / 0)
253 (*2) Распознавания
Введите порядковый номер и запрос типа
1 байт (число байтов данных = 1)
1 байт (От 0 в 199)
1 байт (CRC/тип Cmd Nbytes)
1 байт ( Тип )
1 байт ( CRC )
251 (*3) FastDataExchange
Обмен данных.
1 байт (число байтов данных = 0)
1 байт (CRC Cmd/0)
От 0 в 60 байт данных
От 0 в 63 байт данных
249 (*4) SetupSlavePins
Введите параметры для
один контакт “раб”
1 байт (Индекс раб)
1 байт (количество байтов данных)
NN байт (PinTypes: 1 байтов на PIN-код)
1 байт (CRC Cmd/SlaveId/и т.д...)
1 байт (Индекс раб)
1 байт (CRC на байт
Предыдущий)
248 (*4) SetMasterName
Введите имя “Мастер”
NN байт (символов имени прекращается на ноль)
247 (*4) GetMasterName
Чтение имя “Мастер”
NN байт (Персонажи
имя, завершенной на ноль)
246 (*4) SendValuesToSlave
Отправка “n” байт
раб “m”
(Макс. 56 байт)
1 байт (Индекс раб)
1 байт (количество байтов)
байт 1 . . . n байт
1 байт (CRC
Cmd/SlaveId/nBytes/n)
1 байт (Индекс раб)
1 байт (CRC на байт
Предыдущий)
245 (*4) GetValuesFromSlave
Запрос “n” байт для раб “m”
(Макс. 56 байт)
1 байт (Индекс раб)
1 байт (количество байтов)
1 байт (CRC Cmd/SlaveId/nBytes)
байт1 . . n байт
1 байт (Индекс раб)
1 байт (CRC на
n + 1 предыдущие байт)
244 (*4) SendBytesToSlave
Отправка “n” байт для раб “m”
(Макс. 56 байт)
1 байт (Индекс раб)
1 байт (количество байтов)
байт 1 . . . n байт
1 байт (CRC
Cmd/SlaveId/nBytes/n)
1 байт ( Индекс раб )
1 байт ( CRC ) на байт
Предыдущий
243 (*4) GetBytesFromSlave
Запрос “n” байт для раб “m”
(Макс. 56 байт)
1 байт (Индекс раб)
1 байт (количество байтов)
1 байт (CRC Cmd/SlaveId/nBytes)
байт 1 . . . n байт
1 байт (Индекс раб)
1 байт ( CRC ) о
n + 1 предыдущие байт
199 (*5) SetSpeed 1 байт (COMM. Скорость)
1 байт (CRC на скорости Cmd/Comm.)
0 Никаких действий

(*1) Сервис-команды.
(*2) Команда используется только мастер и рабы распознавания при распознавании.
(*3) Быстрая связь – Мастер обменивает значения всех рабов, используя только один USB обмен
(*4) Команды связи на одного раба
(*5) Специальные команды

SendValuesToSlave отправляет значения выходного контакта раба (Физические формы на Master или виртуальный рабов)

GetValuesFromSlave считывает значения из ввода Pin раба (Физические формы на Master или виртуальный рабов)

SendBytesToSlave отправить общий байт (Пример конфигурации), на пути к раб (Физические формы на Master или виртуальный рабов)

GetBytesFromSlave универсальный закон байт (Например, государства), с рабом (Физические формы на Master или виртуальный рабов)

Все команды имеют коды 200 в 255, для предотвращения, в случае ошибки, Идентификаторы и типы раб (От 0 в 199) может быть истолковано как команда. (Setspeed не рассчитывать, потому что он никогда не отправляется вниз по последовательной линии, но только ’ Хэл, Мастер, через USB)


Связь между компьютером и мастер (USB)

Comandi da “Хост” Версо “Мастер”

Имя команды ID
USB_TxData[0]
ПАРАМЕТРЫ
USB_TxData[1 до n]
RecogStart Идентификатор CommandID, Nbytes
FastDataExchange Идентификатор CommandID, От 0 Кому 60 байт данных
SetupSlavePins Идентификатор CommandID, SlaveId, Nbytes
SetMasterName Идентификатор CommandID, MasterName (нулевой прекращено)
GetMasterName Идентификатор CommandID,
SendValuesToSlave Идентификатор CommandID, SlaveId, Nbytes, Байт1….Бытень
GetValuesFromSlave Идентификатор CommandID, SlaveId, Nbytes
SendBytesToSlave Идентификатор CommandID, SlaveId, Nbytes, Байт1….Бытень
GetBytesFromSlave Идентификатор CommandID, SlaveId, Nbytes
SetSpeed Идентификатор CommandID, CommSpeed

Risposte да “Мастер” Версо “Хост”

Имя команды ОТВЕТ
USB_RxData[0]
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
USB_RxData[1 до n]
RecogStart 0 = ОК Nslaves, Type1 раб … Раб типа N
FastDataExchange 0 = ОК От 0 Кому 63 байт данных
SetupSlavePins 0 = ОК
SetMasterName 0 = ОК
GetMasterName 0 = ОК Название Мастер (нулевой прекращено)
SendValuesToSlave 0 = ОК
GetValuesFromSlave 0 = ОК Байт 1 … Байт N
SendBytesToSlave 0 = ОК
GetBytesFromSlave 0 = ОК Байт 1 … Байт N
SetSpeed 0 = ОК

Нулевой позиции буфера USB указывает, была ли выполнена команда из “Мастер” успешно.


Вычисление CRC

Все используемые CRC рассчитываются за определенное количество последовательных байтов и CRC результат является байт. Вычисление CRC, используя алгоритм, основанный на «продольной избыточности проверки».

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

Dim CRC as Byte  CRC = 0  For each byte b      CRC = CRC Xor b  Next

Чтобы избежать «столкновения» между мирской последовательности ( Например, 0000 = 1111 или 123 = 321 ) и простой последовательности, которые производят действительный CRC ( Например, 0000 с КПР = 0 ) выше метод изменяется с перестановкой.

Вычисление CRC результатом эффективной и чрезвычайно простой.

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

Dim CRC as Byte  CRC = 0  For each byte b      CRC = CRC Xor b      CRC = CRC + 1  Next 


Настройка скорости

Если вы решите использовать скорость помимо по умолчанию, Затем «мастер» следует довести до всех устройств в цепочке Новая скорость.

Этот параметр должен быть возможным даже до принятия цикла распознавания устройств и должны быть также возможно с очень долго ЛЭП. Поэтому есть специальная команда, которая теперь отображается.

1 – Мастер поддерживает высокая линия для 50 MS
2 – Все рабы определенно размещаются до одного символа
3 – Мастер генерирует перерыв (низкий уровень линия 12 бит на минимальной скорости
4 – Мастер выдает 55 символов (01010101) нужную скорость
5 – Все рабы вывести скорость от этого байт (Авто бод)
6 – Мастер направляет один байт, которое указывает «Скорость» (От 1 в 12)
7 – Мастер направляет один байт КПР, рассчитанные на два байта (cmd/скорость)
8 – Если раб является ошибкой не изменить его скорость

dilbertian eig

Проверить скорость

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

Если ошибки передачи нуля или меньше чем 0.1% Затем набор скорость действителен.


Признание и нумерация

1 – Мастер выводит к подчиненному всю последовательность параметра «Скорость», чтобы убедиться, что все взаимодействовать с той же скоростью.
2 – Мастер не передавать команды 50 миллисекунд.
3 – На данный момент все рабы следует ждать для команды.
4 – Мастер выдает код «254″ (RecogStart).
5 – Все рабы, они положили слабых тянуть вверх (100-400 UA) по ввода вывода и открыть соединение выхода к течению устройств. Они больше не реагировать на любые команды, за исключением «253″ (Распознавания).
6 – Мастер выдает код «253″ (Тип запроса) и затем байт с числом 0″, первого устройства в цепочке встречает байт с его типом, Удаляет подтягивающий, подключиться к течению работорговли и не реагирует на команды.
7 – Мастер выдает код «253″ (Тип запроса) и затем байт с номером 1″, второе устройство в цепочке встречает байт с его типом, Удаляет подтягивающий, подключиться к течению работорговли и не реагирует на команды.
8 – Мастер выдает код «253″ (Тип запроса) и затем байт с номером "2″,

…. в “253” (Тип запроса) повторяется до 200 раз
Когда нет больше реагирует на срок больше, чем 10 бит на текущую пропускную способность, означает, что цепи над. Чтобы избежать этого вычисления, Вы можете использовать время ожидания 12 MS, который всегда работает, даже при низкой скорости.

9 – Мастер выдает сторону рабов все последовательности параметр «Скорость», Это показывает все рабы в режиме нормальной связи.
10 – Мастер сообщает принимающей (PC) через USB Slave признано, количество и тип каждого.

Roberto_Cena & Livio_Cicala (2010 – 2016)

Комментарии закрыты.