Easyelectronics.ru

Электроника для всех
Текущее время: 29 сен 2020, 03:19

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



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

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

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 856
Здравствуйте, друзья :) !

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

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

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

P.P.S. Или, может быть, сразу смотреть в сторону CAN?


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

Зарегистрирован: 23 окт 2012, 15:51
Сообщения: 462
Попробуйте сначала нарисовать, а потом уже и пишите...

Сколько устройств? скорость передачи? длинна, частота пакетов?

_________________
#define ? ?


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

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 856
Я уже нарисовал :).

Устройств 5-9. Причем, начинать передачу может каждое.
Скорость... Стандартная 115200.
Длина сообщения... Варьируется от 10 до сотен байт.
Частота пакетов... Большую часть простаивает, но, возможна, ситуация одновременного начала передачи.


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

Зарегистрирован: 24 июн 2011, 14:05
Сообщения: 309
Откуда: Новочеркасск
В CAN в случае одновременнй передачи проблема решена аппаратно, в RS-485 нет. Да и CAN несколько больше чем просто физический уровень, там еще и транспортный есть, а RS-485 это просто дифференциальный канал передачи (физ. уровень).
Я бы сделал так: если хотите слать просто данные, не заботясь о каких то коллизиях на линии, передача не детерминированна (опять же, если да то сколько мс) делал бы CAN.


Последний раз редактировалось ELEKTROS 07 апр 2016, 19:37, всего редактировалось 1 раз.

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

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 647
Откуда: Киев
Для небольшого количества устройств можно использовать принцип мячика: Передавать друг другу флаг разрешения передачи по кругу.


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

Зарегистрирован: 23 окт 2012, 15:51
Сообщения: 462
Ещё перед выбором стоить учесть удаленность и расположение абонентов. У 485 есть свои соображения и требования по этому поводу! Кстати можно в сторону ETHERNET или WIFI посмотреть, темболее, если в общей каше PC присутствует...

_________________
#define ? ?


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

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1799
Откуда: Новокузнецк
Mirmik писал(а):
Здравствуйте, друзья :) !

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

По поводу подтверждения доставки можно посмотреть как это сделано у трансиверов NRF24L01. У них в даташите очень хорошо описано. Адресацию и контрольную сумму тоже можно сделать как и там. Вообщем передрать один в один протокол.

_________________
elisey.su


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
в тему вопросы
- если предполагать одновременную передачу нескольких устройств с коллизиями - как защитить драйвера?
например у max485 такой защиты нет, но я видел без описания схемы где пины A и B драйвера подключаются к линии через резисторы небольших номиналов
предполагаю что это защита и есть, но это только предположение
- если брать CAN то какой "народный" драйвер посоветуете?


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

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1038
Цитата:
Под эти цели хорошо бы найти или создать протокол, который достаточно прост и понятен (да хоть бы и тот же Modbus
M-Link адастровский ...пожалуй любой кто ваял самопальные протоколы делал что-то похожее сам, либо в итоге возваращался к Modbus-у )

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

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


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

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 6095
Откуда: Москва
Я бы в сторону CAN посмотрел. Протокол достаточно простой, полно примеров реализации на чем угодно, ну и если что, есть много готовых чипов для исполнительный устройств. Аппаратная реализация примерно такая же простая, как и в случае 485, нужна одна микросхема. Ну и проводов на один меньше. 485 при этом лучше работает на больших расстояниях и менее чувствителен к помехам.


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
akatenev писал(а):
есть много готовых чипов для исполнительный устройств. Аппаратная реализация примерно такая же простая, как и в случае 485, нужна одна микросхема


можно примеры чипов?


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
raxp писал(а):
стандарт J1708:
Изображение

в чем роль резисторов и конденсаторов?
те что по 47 ом как я понимаю буферные для защиты от КЗ при коллизии
и какой алгоритм решения коллизии? я не вижу здесь возможности определить коллизию так как во время передачи приема нет


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

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1038
Вы спросили как защитить драйверы, а не как решить коллизии. И потом, подсказку вам дал - почитайте как в стандарте включены драйверы 485-го интерфейса и для чего все остальное )

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
raxp писал(а):
Вы спросили как защитить драйверы, а не как решить коллизии. И потом, подсказку вам дал - почитайте как в стандарте включены драйверы 485-го интерфейса и для чего все остальное )


Я разве где то писал, что мне нужна коммуникация с двигателем?
Цитата:
SAE J1708 is a standard used for serial communications between ECUs on a heavy duty vehicle and also between a computer and the vehicle.


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

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1038
...с контроллером двигателя. А двигатель ни причем, перечитайте свой вопрос еще раз.

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
raxp писал(а):
...с контроллером двигателя. А двигатель ни причем, перечитайте свой вопрос еще раз.

Если ваша цель когда вы отвечаете поумничать, то не стоит. В таких ответах польза только для вас лично


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

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1038
Лучше вам формулировать свои мысли в текстовой форме, а не писать одно, подразумевая другое. Скриншот вашего вопроса приводить нет смысла, всем и так видно.

По коллизиям и защите: для RS-485 коллизия является нештатной ситуацией, что решается протоколом верхнего уровня, Modbus-ом например. Что касается схемного построения защиты выше для драйверов 485 - оно касается "прадедов" драйверов CAN-шины. Обусловлено тем, что драйвер 485-го в классическом включении тянет линии как при передаче нуля, так и единицы. Поэтому схема реорганизована на передачу нулем - TX посажен на землю, а передача идет на управляющий TXE (передает либо "ноль", либо передатчик отключен от линии). Резюки последовательные ограничивают ток в случае КЗ, подтягивающие для уравнивания напряжения в линии и автоформирования "1", а приемник драйвера постоянно включен и позволяет отслеживать во время передачи и себя и других (cтандарт J1708 оговаривает, что приемник всегда открыт - RE на общий). Емкости фильтрующие и посажены на изолированную землю (в стандарте обязательным является использование изолированной земли в шине).

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
Спасибо, так понятно
Если tx посажен на землю и если правильно понимаю в отличие от обычного rs485 где полярность на линии меняется, здесь полярность может быть только одна. Но если так то КЗ не возможно
Или я что то упустил?

Можете простым языком пояснить как можно разрешить коллизии на уровне протокола? Логически я могу это представить только через подтверждение доставки пакета. Нет подтверждения значит коллизия
Здесь же всегда глухой с немым разговаривает


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

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1038
...здесь нет глухого, приемник всегда включен.
А на уровне протокола: коллизия - это не отсутствие ответа, а наложение, одновременная передача. Подтверждения может и не быть, как при работе с весами (есть с 485-м), они только передают. Так вот отсутствие сигнала (или того же подтверждения, если с ОС) больше некоторого таймаута можно квалифицировать как неисправность устройства, либо обрыв в линии.

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


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

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 6095
Откуда: Москва
axill писал(а):
akatenev писал(а):
есть много готовых чипов для исполнительный устройств. Аппаратная реализация примерно такая же простая, как и в случае 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 великое множество от разных производителей.


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
LIN вчера читал, там максимум 15 устройств + один мастер
Или я что то не то читал?
Про трансиверы в мелких вопросах писал
На фарнеле нашел много, а вот у китайцев только один и то вроде как устаревший
Толи мне не попался действительно популярный, толи они не такие уж и популярные
А так да, по описанию LIN штука интересная
На STK600 есть LIN наравне с CAN и RS232
Но сколько не разглядывал так и не понял на чем там физический уровень слелан)
Вот этот нашел у китайцев TJA1020


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

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 6095
Откуда: Москва
LIN не адресно-ориентированный протокол, там разделение по функциям. Поэтому сложно сказать, сколько именно устройств. Рекомендуется не более 16, но вообще-то может быть и гораздо больше, если обмен данными небольшой и задержки не очень страшны.

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

Вообще на Али их полно, вы просто как-то не так ищете. По названиям микросхем ищите.

У LIN есть один существенный недостаток - он медленный. В остальном очень хороший стандарт, делать просто, пользоваться удобно, поддержка со стороны производителей МК как правило очень хорошая, потому что автомобильная индустрия очень важный потребитель.

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

Мне очень нравится использовать LIN для подключения драйверов небольших шаговичков.

Если надо большую скорость, большие расстояния, или имеются большие помехи, то надо конечно в сторону 485 смотреть. Ну или чего-то более серьезного. Ethernet, кстати, очень неплохо работает в качестве шины для промышленной автоматики, и если есть возможность, то можно сделать на нем.


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

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 856
А чем CAN сложно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 апр 2016, 10:27 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 6095
Откуда: Москва
Сам протокол гораздо сложнее, там довольно навороченные КА. Если нет больших требований к надежности и RT, его обычно не используют. Но никто не мешает и CAN попробовать, конечно, поддержка тоже хорошая.

На ethernet будет проще сделать, если возможности МК позволяют загнать в него IP стек. 485 + modbus тоже никто не отменял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: 11 апр 2016, 12:06 
Старожил

Зарегистрирован: 24 июн 2011, 14:05
Сообщения: 309
Откуда: Новочеркасск
akatenev писал(а):
Сам протокол гораздо сложнее, там довольно навороченные КА.

Если софтово реализовывать, то на много сложнее (хотя тут нужен контроллер с частотой от сотен мегагерц наверное, не встрецал неразу такого изврата). А использование готовых модулей в контроллере или внешних делает использование CAN для передачи достаточно простым, на уровне UART (хотя именно настройка модуля сложнее, но имея кучу готовых примеров и это не так сложно).


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


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


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

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


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

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

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