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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Сориентируйте по протоколам/транспортам для связи 2 микроконтроллеров
p_v
сообщение Sep 22 2018, 18:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099



https://easyeda.com/speed/DC_Motor_speed_co...8f540acd1a2f4bb
https://easyeda.com/speed/Universal_speed_c...8f540acd1a2f4bb

Нужно сделать гальваническую развязку между высоковольтной частью регулятора скорости и внешними интерфейсами (индикатор, кнопки и т.п.). Как ни странно, но по деталькам проще всего оказывается поставить 2 микроконтроллера и свинтить их через что-то вроде adum1201.

Понятно, что не особо сложно взять UART и схолхозить протокол типа modbus (запись/чтение по заданному виртуальному адресу). Но может на эту тему есть что-то стандартное, чтобы не изобретать лисапед?

Я не готов выкатить полноценное ТЗ, но надеюсь по схемам и задачам примерно понятно, что может подойти. Все "мясо" - на силовом контроллере. На вспомогательном - только ручки и индикатор. Мне бы хватило, если бы вспомогательный был master-ом, и сам инициировал все опросы. Можно более сложные варианты, если есть готовые библиотеки, но не обязательно. Ну и конечно нужна какая-то минимальная защита от сбоев, чтобы обмен не затыкался.

Какие есть варианты кроме самопального колхоза а ля модбас?

Сообщение отредактировал p_v - Sep 22 2018, 18:54
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 22 2018, 19:04
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(p_v @ Sep 22 2018, 21:51) *
Какие есть варианты кроме самопального колхоза а ля модбас?

CAN с соотв. защитами.
Гальванич. изоляция, если необходима.

зы Не пойму, к чему тут тема ARM?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 22 2018, 19:57
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(p_v @ Sep 22 2018, 21:51) *
Можно более сложные варианты, если есть готовые библиотеки, но не обязательно. Ну и конечно нужна какая-то минимальная защита от сбоев, чтобы обмен не затыкался.

SPI с DMA с отражением на память. И никаких протоколов не надо.
Должен ходить фиксированный блок данных с фиксированной частотой.
На таком принципе все PLC работают.



Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 22 2018, 20:23
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AlexandrY @ Sep 22 2018, 22:57) *
На таком принципе все PLC работают.

Вот только не нужно вводить народ в заблуждение!

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
kovigor
сообщение Sep 22 2018, 20:57
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(p_v @ Sep 22 2018, 21:51) *
Какие есть варианты кроме самопального колхоза а ля модбас?

Токовая петля (current loop) с парой оптронов обеспечит и оптоизоляцию, и передачу данных, причем на значительное расстояние, до километра вполне может дотянуть. Больше не пробовал. Вот, например, см. стр. 4:

http://www.kron.com.ua/archive/conv/docs/T...0%20GS%20V1.pdf
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 22 2018, 21:41
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (p_v @ Sep 22 2018, 21:51) *
Понятно, что не особо сложно взять UART и схолхозить протокол типа modbus (запись/чтение по заданному виртуальному адресу). Но может на эту тему есть что-то стандартное, чтобы не изобретать лисапед?
Я изобретаю под каждую задачу. Все мои протоколы поверх поверх УАПП (UART) чем-то похожи на WAKE, но выросли из нижнего уровня IrDA. modbus - кошмар для программиста.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 23 2018, 00:19
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Sep 23 2018, 00:41) *
Все мои протоколы поверх поверх УАПП (UART) чем-то похожи на WAKE, но выросли из нижнего уровня IrDA. modbus - кошмар для программиста.

У SLIP-подобных протоколов главный недостаток, имхо то, что избыточность зависит от передаваемых данных. И может быть очень большой.
Я в последнее время в подобных случаях использую COBS. Он имеет фиксированную избыточность, не зависящую от данных. И очень маленькую избыточность.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 23 2018, 07:37
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Forger @ Sep 22 2018, 23:23) *
Вот только не нужно вводить народ в заблуждение!

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

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

Где применять SPI тож не сильны я вижу. Расстояния на которые можно использовать SPI зависят только от драйверов линии и скорости, как и в любом интерфейсе.
Так что забудьте эти детские заблуждения про соединения на одной плате.
Я вам по секрету скажу, что SPI используется в китайских многометровых светодиодных панелях.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 23 2018, 07:53
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Сергей Борщ @ Sep 23 2018, 00:41) *
Я изобретаю под каждую задачу.

+1.
Причём у меня предпочтительный вариант - это читаемый человеком формат типа "set 1 123\n". sprintf и sscanf не напрягают, да и без них это можно сделать. Тут начали всякую экзотику предлагать, а тем временем ТС так и не озувучил требования, из-за которых наличие экзотики необходимо.
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 23 2018, 07:59
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AlexandrY @ Sep 23 2018, 10:37) *
Если знаете что-то об этом больше, то назовите хоть одно, а не с умным видом "перечислять их можно долго"

ETHERCAT - используется в современном промышленном оборудовании. Но для данной темы он крайне избыточен и дорог.
CAN - используется во всех современных авто, в разным машинах обвешивается разными протокольными надстройками. Также используется в промышленном оборудовании.
Минус CAN один - требуется соотв. МК. Плюс - уже аппаратно решены многие протокольные проблемы

Цитата
"в китайских многометровых светодиодных панелях".

Вот именно там самое место подобному применению SPI!


Цитата
SPI по DMA один из вариантов не городить софтовую обвязку.

Тогда давайте уж дальше будем продолжать необоснованные фобии, советуя автору вообще ВСЕ делать на ПЛИС или "гулять так гулять" - на "рассыпухе"! lol.gif


Цитата
эти детские заблуждения
Да кто-бы говорил sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 23 2018, 08:02
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Sep 23 2018, 10:37) *
В PLC для соединений в пределах стойки используют именно такой безсофтовый подход с отражением на память.

Что значит "безсофтово" применительно к SPI? И причём тут какой-то "жёсткий реалтайм"? И в чём бОльшая жёсткость реалтайма SPI по сравнению с другими интерфейсами?
При использовании SPI не нужен механизм парсинга на кадры, так как это - кадр-ориентированный интерфейс. Кроме SPI есть множество других кадр-ориентированных интерфейсов.
Да и SPI - это не протокол, а интерфейс, всё таки.
И для задачи ТС-а минус SPI в том, что потребуется в два раза больше гальваноразвязок чем для SPI. И скорость прикладного протокола, работающего поверх SPI, может получиться невысокой.

Цитата(Forger @ Sep 23 2018, 10:59) *
ETHERCAT - используется в современном промышленном оборудовании.
CAN - используется во всех современных авто, в разным машинах обвешивается разными протокольными надстройками. Также используется в промышленном оборудовании.

ТСу нужна гальваноразвязка. И двунаправленная передача. Для данных интерфейсов есть чипы, обеспечивающие её? И на какой скорости?
И зачем ETHERCAT с огромной скоростью для "индикатор, кнопки и т.п."? Зачем использовать необоснованно тяжёлые чипы (содержащие ETHERCAT), для опроса кнопок??
Go to the top of the page
 
+Quote Post
mantech
сообщение Sep 23 2018, 08:04
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Forger @ Sep 23 2018, 10:59) *
ETHERCAT - используется в современном промышленном оборудовании.
CAN - используется во всех современных авто, в разным машинах обвешивается разными протокольными надстройками. Также используется в промышленном оборудовании.


Если уж разговор про связь ПЛК то модбас еще никуда не списали, а реализация вышеуказанных интерфейсов гораздо сложнее и дороже.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 23 2018, 08:06
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Sep 23 2018, 00:41) *
modbus - кошмар для программиста.

Если рассматривать только его механизм деления на кадры (а только он нужен для данной задачи), то что там такого страшного?
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 23 2018, 08:15
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jcxz @ Sep 23 2018, 11:02) *
ТСу нужна гальваноразвязка. И двунаправленная передача. Для данных интерфейсов есть чипы, обеспечивающие её? И на какой скорости?

Да, все это есть. Дорого, надежно. Скорости - как у ethernet, он тут является "физикой".
Но, разумеется, для данной темы ETHERCAT вообще ни к месту, это я уточнил в посте, где упомянул про него.
Тут он - как на самолете в булочную, что через дорогу sm.gif

Для CAN cуществуют готовые драйвера с гальваноразвязкой. Например, ISO1050. Пользовал однажды такой, но его одного мало, все равно нужны доп. защиты.
Если речь идет про некий выносной пульт с кнопками и лампочками, то питание и данные можно развязать еще в силовой коробке. Питание тянуть к пульту в том же кабеле, что и данные.
Получится всего 4 провода. Если нужна аварийная кнопка, то ее лучше тянуть отдельными проводами.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 23 2018, 08:43
Сообщение #15


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Forger @ Sep 23 2018, 10:59) *
ETHERCAT - используется в современном промышленном оборудовании. Но для данной темы он крайне избыточен и дорог.
CAN - используется во всех современных авто, в разным машинах обвешивается разными протокольными надстройками. Также используется в промышленном оборудовании.
Минус CAN один - требуется соотв. МК. Плюс - уже аппаратно решены многие протокольные проблемы

Все таки не поняли о чем я написал. Значит с современными PLC не имели дело, и мне нет смысла с вами спорить
Просто к сведению, там есть стойки или модули со своими соединениями, а есть межстоечные соединения.



Цитата(jcxz @ Sep 23 2018, 11:02) *
Что значит "безсофтово" применительно к SPI? И причём тут какой-то "жёсткий реалтайм"? И в чём бОльшая жёсткость реалтайма SPI по сравнению с другими интерфейсами?

Эт трудно объяснить поскольку все тесно завязано на периферию конкретного семейства ARM-ов.
Там надо привлекать не только SPI, но и связанные DMA каналы, таймеры, мультиплексоры ивентов, аппаратный блок CRC и кое-что другое.
Но мне удавалось безсофтово делать отражение АЦП, портов, и других вещей одного контроллера в память другого даже на STM32.
На Kinetis это еще проще.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th April 2024 - 03:29
Рейтинг@Mail.ru


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