Easyelectronics.ru

Электроника для всех
Текущее время: 01 окт 2020, 18:05

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Протокол для надёжной коммуникации по RS485.
СообщениеДобавлено: 13 апр 2016, 14:11 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
akatenev писал(а):
LIN не адресно-ориентированный протокол, там разделение по функциям. Поэтому сложно сказать, сколько именно устройств. Рекомендуется не более 16, но вообще-то может быть и гораздо больше, если обмен данными небольшой и задержки не очень страшны.

но в описании явно выделены 4 бита под адресацию

akatenev писал(а):
Вот один из самых популярных трансиверов: http://www.aliexpress.com/af/l9638.html ... Text=l9638

спасибо. Чем он лучше http://www.nxp.com/documents/data_sheet/TJA1020.pdf?
последний в 2.5 раза дешевле и есть у проверенных продавцов

нет ли примера проекта с LIN? в описании встречаются такие вещи как "синхронизация RC генератора МК" и не совсем понятно что необходимо для работоспособной сети


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Протокол для надёжной коммуникации по RS485.
СообщениеДобавлено: 13 апр 2016, 20:04 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Насколько критична скорость доставки?
Если можно подождать несколько мс то у меня есть такой вариант (реализовывался не на RS485 но не суть)
Каждое устройство в сети может быть мастером. При подключении устройство ждет от сети широковещательного сигнала. Этот сигнал представляет собой пакет из заголовка, адреса отправителя, адреса получателя (в данном случае = 0) и пустых данных (такой формат не обязателен но у нас была фиксированная длинна пакета).
Адресация устройств в сети задается на этапе прошивки (можно джамперами на плате и т.д.). Каждое устройство не может отвечать не в свое время. Т.е. если появился в сети девайс с адресом 1, он ждет 10 мс и если ничего не пришло, то шлет свой пакет в сеть. Далее ждет еще столько же.
Если появился девайс с адр. 2, то он тоже ждет 10 мс. За это время №1 прислал пакет, второй его получил и посмотрел что пришел пакет с адресом на 1 меньше, значит его очередь слать.
Подключился девайс №3 - он ждет свой очереди. и т.д.
При получении широковещательного пакета девайсы запоминают кто онлайн.
Выпал к примеру девайс №2, при этом №3 ждет от него пакет, прошел таймаут 10 мс, ничего не получил - шлет пакет вместо него.

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

Плюсы
- нет главного, все могут слать кому угодно.
- нет коллизий
Минусы
- данные отсылаются только по времени и в строгой очереди.
- нужно не провтыкать с раздачей адресов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Протокол для надёжной коммуникации по RS485.
СообщениеДобавлено: 13 апр 2016, 23:43 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3570
Откуда: Китай, Пекин
не совсем понял вопроса, но если он НЕ об организации коммуникации на физическом уровне, то я порекомендовал бы взять за основу mavlink https://github.com/mavlink/mavlink .
mavlink на основе спецификации генерирует код протокола на разных языках, С в том числе.

активно используется для создания протоколов управления различных дистанционно управляемых аппаратов.

предусмотренно разделение каналов, можно попробовать использовать это для мульти точечного обмена. как разруливать конфликты, организовавать доступ к среде передачи придется самому придумывать. решаемо - не бином ньютона.

главное - mavlink безошибочно генерирует код. корявенький, на мой вкус, но....

ах да, без ложки дёгтя не обойтись, для генерации, питон ставить придётся, гадость конечно...

_________________
unirail.org


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB