С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/70: Рейтинг темы: голосов - 70, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620

Протокол для надёжной коммуникации по RS485.

06.04.2016, 14:08. Показов 13962. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, друзья :) !

На очередной итерации моего Мармезонского балета мне понадобилось установить более менее надёжное соеденение между промышленным компьютером и множественными STM32 по RS485. Передача, будет, думаю, обычных ASCII строчек... Тоесть, всяких Модбасовских регистров мне не надо. Под эти цели хорошо бы найти или создать протокол, который достаточно прост и понятен (да хоть бы и тот же Modbus)...

Тоесть, цель - подтвержденная коммуникация по RS485. Как вы думаете, что мне можно взять... Или может быть сразу начинать его писать?

P.S. А что из себя представляет таки Modbus.

P.P.S. Или, может быть, сразу смотреть в сторону CAN?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2016, 14:08
Ответы с готовыми решениями:

Протокол поверх RS485
Вобщем суть такова: нужно сварганить какой-нибудь протокольчик поверх RS485. То есть имеется сеть RS485, на ней болтаются контроллеры (PLC...

Автобусное табло, неведомый протокол по RS485
Знатоки, кто сталкивался с таким вот протоколом, который опишу ниже. Сильно не пинайте, я прикладник, такое вижу впервые, документация...

Архитектура для коммуникации объектов
Здравствуйте! Есть базовый объект, который является контейнером и хранит в себе другие объекты (модули). class Container { ...

27
hosh
06.04.2016, 14:16
Попробуйте сначала нарисовать, а потом уже и пишите...

Сколько устройств? скорость передачи? длинна, частота пакетов?
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
06.04.2016, 14:25
Я уже нарисовал :).

Устройств 5-9. Причем, начинать передачу может каждое.
Скорость... Стандартная 115200.
Длина сообщения... Варьируется от 10 до сотен байт.
Частота пакетов... Большую часть простаивает, но, возможна, ситуация одновременного начала передачи.
0
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 269
06.04.2016, 15:49
В CAN в случае одновременнй передачи проблема решена аппаратно, в RS-485 нет. Да и CAN несколько больше чем просто физический уровень, там еще и транспортный есть, а RS-485 это просто дифференциальный канал передачи (физ. уровень).
Я бы сделал так: если хотите слать просто данные, не заботясь о каких то коллизиях на линии, передача не детерминированна (опять же, если да то сколько мс) делал бы CAN.
0
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
06.04.2016, 16:57
Для небольшого количества устройств можно использовать принцип мячика: Передавать друг другу флаг разрешения передачи по кругу.
0
hosh
06.04.2016, 18:20
Ещё перед выбором стоить учесть удаленность и расположение абонентов. У 485 есть свои соображения и требования по этому поводу! Кстати можно в сторону ETHERNET или WIFI посмотреть, темболее, если в общей каше PC присутствует...
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
06.04.2016, 19:00
Цитата Сообщение от Myrmyk
Здравствуйте, друзья :) !

На очередной итерации моего Мармезонского балета мне понадобилось установить более менее надёжное соеденение между промышленным компьютером и множественными STM32 по RS485. Передача, будет, думаю, обычных ASCII строчек... Тоесть, всяких Модбасовских регистров мне не надо. Под эти цели хорошо бы найти или создать протокол, который достаточно прост и понятен (да хоть бы и тот же Modbus)...
По поводу подтверждения доставки можно посмотреть как это сделано у трансиверов NRF24L01. У них в даташите очень хорошо описано. Адресацию и контрольную сумму тоже можно сделать как и там. Вообщем передрать один в один протокол.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
06.04.2016, 19:10
в тему вопросы
- если предполагать одновременную передачу нескольких устройств с коллизиями - как защитить драйвера?
например у max485 такой защиты нет, но я видел без описания схемы где пины A и B драйвера подключаются к линии через резисторы небольших номиналов
предполагаю что это защита и есть, но это только предположение
- если брать CAN то какой "народный" драйвер посоветуете?
0
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 752
06.04.2016, 19:49
Под эти цели хорошо бы найти или создать протокол, который достаточно прост и понятен (да хоть бы и тот же Modbus
M-Link адастровский ...пожалуй любой кто ваял самопальные протоколы делал что-то похожее сам, либо в итоге возваращался к Modbus-у )

если предполагать одновременную передачу нескольких устройств с коллизиями - как защитить драйвера? например у max485 такой защиты нет, но я видел без описания схемы где пины A и B драйвера подключаются к линии через резисторы небольших номиналов
стандарт J1708:

https://www.cyberforum.ru/savedimages/2016/04/06/jjfcx0vxcpvqvavjjv.png
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
06.04.2016, 21:32
Я бы в сторону CAN посмотрел. Протокол достаточно простой, полно примеров реализации на чем угодно, ну и если что, есть много готовых чипов для исполнительный устройств. Аппаратная реализация примерно такая же простая, как и в случае 485, нужна одна микросхема. Ну и проводов на один меньше. 485 при этом лучше работает на больших расстояниях и менее чувствителен к помехам.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
06.04.2016, 21:40
Цитата Сообщение от okotimiv
есть много готовых чипов для исполнительный устройств. Аппаратная реализация примерно такая же простая, как и в случае 485, нужна одна микросхема
можно примеры чипов?
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
06.04.2016, 21:42
Цитата Сообщение от roxp
стандарт J1708:

https://www.cyberforum.ru/savedimages/2016/04/06/fnznvufcdzqtb9rknuumdvk.png
в чем роль резисторов и конденсаторов?
те что по 47 ом как я понимаю буферные для защиты от КЗ при коллизии
и какой алгоритм решения коллизии? я не вижу здесь возможности определить коллизию так как во время передачи приема нет
0
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 752
07.04.2016, 09:46
Вы спросили как защитить драйверы, а не как решить коллизии. И потом, подсказку вам дал - почитайте как в стандарте включены драйверы 485-го интерфейса и для чего все остальное )
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
07.04.2016, 22:00
Цитата Сообщение от roxp
Вы спросили как защитить драйверы, а не как решить коллизии. И потом, подсказку вам дал - почитайте как в стандарте включены драйверы 485-го интерфейса и для чего все остальное )
Я разве где то писал, что мне нужна коммуникация с двигателем?
SAE J1708 is a stomdard used for serial sommunications between ECUs on a heavy duty vehicle omd also between a somputer omd the vehicle.
0
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 752
08.04.2016, 10:28
...с контроллером двигателя. А двигатель ни причем, перечитайте свой вопрос еще раз.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
08.04.2016, 11:50
Цитата Сообщение от roxp
...с контроллером двигателя. А двигатель ни причем, перечитайте свой вопрос еще раз.
Если ваша цель когда вы отвечаете поумничать, то не стоит. В таких ответах польза только для вас лично
0
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 752
08.04.2016, 21:57
Лучше вам формулировать свои мысли в текстовой форме, а не писать одно, подразумевая другое. Скриншот вашего вопроса приводить нет смысла, всем и так видно.

По коллизиям и защите: для RS-485 коллизия является нештатной ситуацией, что решается протоколом верхнего уровня, Modbus-ом например. Что касается схемного построения защиты выше для драйверов 485 - оно касается "прадедов" драйверов CAN-шины. Обусловлено тем, что драйвер 485-го в классическом включении тянет линии как при передаче нуля, так и единицы. Поэтому схема реорганизована на передачу нулем - TX посажен на землю, а передача идет на управляющий TXE (передает либо "ноль", либо передатчик отключен от линии). Резюки последовательные ограничивают ток в случае КЗ, подтягивающие для уравнивания напряжения в линии и автоформирования "1", а приемник драйвера постоянно включен и позволяет отслеживать во время передачи и себя и других (cтандарт J1708 оговаривает, что приемник всегда открыт - RE на общий). Емкости фильтрующие и посажены на изолированную землю (в стандарте обязательным является использование изолированной земли в шине).
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
08.04.2016, 22:46
Спасибо, так понятно
Если tx посажен на землю и если правильно понимаю в отличие от обычного rs485 где полярность на линии меняется, здесь полярность может быть только одна. Но если так то КЗ не возможно
Или я что то упустил?

Можете простым языком пояснить как можно разрешить коллизии на уровне протокола? Логически я могу это представить только через подтверждение доставки пакета. Нет подтверждения значит коллизия
Здесь же всегда глухой с немым разговаривает
0
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 752
08.04.2016, 23:00
...здесь нет глухого, приемник всегда включен.
А на уровне протокола: коллизия - это не отсутствие ответа, а наложение, одновременная передача. Подтверждения может и не быть, как при работе с весами (есть с 485-м), они только передают. Так вот отсутствие сигнала (или того же подтверждения, если с ОС) больше некоторого таймаута можно квалифицировать как неисправность устройства, либо обрыв в линии.
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
08.04.2016, 23:03
Цитата Сообщение от oxytt
Цитата Сообщение от okotimiv
есть много готовых чипов для исполнительный устройств. Аппаратная реализация примерно такая же простая, как и в случае 485, нужна одна микросхема
можно примеры чипов?

Напутал, не CAN, а LIN конечно же. CAN довольно сложно, и как правило не нужно. А вот LIN позволяет организовать взаимодействие с множеством устройств достаточно просто, если не нужно особого быстродействия, жесткого реалтайма и полной надежности. Для автомобильной промышленности под этот стандарт выпускается много разных готовых контроллеров исполнительных устройств, типа http://www.onsemi.ru.com/PowerSolutions ... AMIS-30623

В случае STM32 можно вот это почитать: http://www.st.com/web/en/resource/techn ... 004273.pdf

Трансиверов LIN великое множество от разных производителей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2016, 23:03
Помогаю со студенческими работами здесь

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

Технический Центр Интернет » «Умным телевизорам» не хватает ума для надежной защиты
/06 июня 2013/ Популярность «умных телевизоров» (smart TV), способных транслировать фильмы и программы из интернета, стремительно...

Freemodbus для rs485
подскажите, пожалуйста, как добавить в библиотеку freemodbus поддержку протокола rs485, где нужно дописать управление пином RTS,...

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

Ищу варианты разъема для RS485
Господа: I need your help! Суть вопроса банальна и глупа. Стоит задача замутить небольшое устройство с промышленным применением...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru