Простой протокольчик под RS-485 |
Здравствуйте, гость ( Вход | Регистрация )
Простой протокольчик под RS-485 |
14.8.2010, 8:36
Сообщение
#21
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Рассматривается вариант формата пакета, в котором байт адреса - не первый байт, а предпоследний, и он реально не передается, а принимающая сторона может восстановить его 3/4/8 вариантами проверок CRC. Конечно, 3 варианта лучше.
Это все позволяет снизить вдвое длину буфера пакета (до 16 байт) и впихивать его ужЕ во всякую мелочь без проблем. Это и будет протокольчег. Если у кого-то есть аргументы, дескать, использовать неявные данные - это ненадежно, отпишитесь плз. |
|
|
14.8.2010, 11:52
Сообщение
#22
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Конечно ненадежно. В случае ошибки при передаче пакета при восстановлении адреса окажется, что пакет адресован другому слейву. Так вот он его и исполнит. Понятно, что if(CRC_valid && ADDR_match)receive() и if(CRC_valid){if(ADDR_match) receive();} это в вобщем случае не одно и то же. Проверил. Вероятность ошибки не меняется и для случайных одиночных искажений составит 0.78% для пакетов макс длины 0.23% Для пакетов случайной длины [attachment=1645:shturm.zip] |
|
|
Текстовая версия | Сейчас: 28.3.2024, 21:45 |