реклама на сайте
подробности

 
 
> SLP - последовательный протокол, Еще один велосипед
Огурцов
сообщение Oct 4 2008, 17:37
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цель - разработка, испытания, некая стандартизация.
Как думаете, будет ли интересен сабж ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
umup
сообщение Oct 5 2008, 17:26
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 2-06-06
Пользователь №: 17 720



Цитата
А вот Вы как обнаруживаете начало пакета, тот байт, в котором packet_size ?
Что будете делать, если пакет придет наполовину, как начало следующего ловить ?

просто - по тайм-ауту приема. если пакет/к.с./данные/адреса неверные, последующие данные просто игнорируются до наступления тайм-аута, указатель приема данных сбрасывается на начало буфера. Так можно работать с устройствами, которые имеют разные настройки скорости/четности/стопов на одной шине.
если мастер не получает ответа на свой запрос, после паузы шлет повторные запросы, если превышено макс. количество запросов, возвращает в основную программу ошибку.
Цитата
Дыкть, специально для этого символ предусмотрен - Slp_packet_end.
а если он будет искажен помехой ? контролироваться должны все данные.

в приложении - текст библиотеки.
Прикрепленные файлы
Прикрепленный файл  ul_prot.zip ( 5.25 килобайт ) Кол-во скачиваний: 33
 
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 5 2008, 19:40
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(umup @ Oct 5 2008, 17:26) *
просто - по тайм-ауту приема

А если между пакетами пройдет помеха ? Тогда у Вас следующий пакет будет отброшен, хотя и мог бы быть принят без ошибок. В общем, не сюр.
Кстати, в полудуплексе, на rs485 без растяжек Ваш протокол работает ? Без ошибок ?

Цитата(umup @ Oct 5 2008, 17:26) *
работать с устройствами, которые имеют разные настройки скорости/четности/стопов

Жуть.

Цитата(umup @ Oct 5 2008, 17:26) *
а если он будет искажен помехой ?

Значит слейв продолжит дожидать завершение пакета, а мастер, после таймаута, повторит запрос.

Цитата(umup @ Oct 5 2008, 17:26) *
контролироваться должны все данные.

Считать CRC ? От управляющих символов ? Смысл ? При искажении итак перезапрос произойдет, хоть контролируй, хоть не контролируй.


Часть команд:

Код
// Slp_pipe_commands ===========================================================
//
#define    Slp_pipe_commands        0x00

#define    Slp_pipe_a            0x0A    // 0x0A D..D C-C
#define    Slp_pipe_b            0x0B    // 0x0B D..D C-C
#define    Slp_pipe_c            0x0C    // 0x0C D..D C-C
#define    Slp_pipe_d            0x0D    // 0x0D D..D C-C


Код
// Slp_system_commands =========================================================
//
#define    Slp_system_commands        0x10

#define    Slp_system_reset        0x10    // 0x10 C-C
#define    Slp_system_start        0x11    // 0x11 C-C
#define    Slp_system_wakeup        0x12    // 0x12 C-C
#define    Slp_system_sleep        0x13    // 0x13 C-C
#define    Slp_system_standby        0x14    // 0x14 C-C
#define    Slp_system_set_datetime        0x15    // 0x15 S-M-H-D-D-M-Y C-C
#define    Slp_system_set_bitrate        0x16    // 0x16 B-B-B C-C
#define    Slp_system_enumerate        0x17    // 0x17 A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A S C-C

Про перечисление устройств я уже писал где-то рядом, а остальное вроде бы должно быть понятно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 02:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016