|
|
|
Сориентируйте по протоколам/транспортам для связи 2 микроконтроллеров |
|
|
|
Sep 22 2018, 18:51
|
Участник
Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099
|
https://easyeda.com/speed/DC_Motor_speed_co...8f540acd1a2f4bbhttps://easyeda.com/speed/Universal_speed_c...8f540acd1a2f4bbНужно сделать гальваническую развязку между высоковольтной частью регулятора скорости и внешними интерфейсами (индикатор, кнопки и т.п.). Как ни странно, но по деталькам проще всего оказывается поставить 2 микроконтроллера и свинтить их через что-то вроде adum1201. Понятно, что не особо сложно взять UART и схолхозить протокол типа modbus (запись/чтение по заданному виртуальному адресу). Но может на эту тему есть что-то стандартное, чтобы не изобретать лисапед? Я не готов выкатить полноценное ТЗ, но надеюсь по схемам и задачам примерно понятно, что может подойти. Все "мясо" - на силовом контроллере. На вспомогательном - только ручки и индикатор. Мне бы хватило, если бы вспомогательный был master-ом, и сам инициировал все опросы. Можно более сложные варианты, если есть готовые библиотеки, но не обязательно. Ну и конечно нужна какая-то минимальная защита от сбоев, чтобы обмен не затыкался. Какие есть варианты кроме самопального колхоза а ля модбас?
Сообщение отредактировал p_v - Sep 22 2018, 18:54
|
|
|
|
|
Sep 22 2018, 19:04
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(p_v @ Sep 22 2018, 21:51) Какие есть варианты кроме самопального колхоза а ля модбас? CAN с соотв. защитами. Гальванич. изоляция, если необходима. зы Не пойму, к чему тут тема ARM?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 22 2018, 20:23
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(AlexandrY @ Sep 22 2018, 22:57) На таком принципе все PLC работают. Вот только не нужно вводить народ в заблуждение! Связь между PLC и подключаемыми внешними модулями организуется через самые разношерстные интерфейсы и протоколы. Перечислять их можно долго. SPI же используется для соединения микрух на одной плате или на край между двумя платами, которые находятся недалеко друг от друга и как правило в одном корпусе. Собственно для этого он и создавался.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 22 2018, 21:41
|
Гуру
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Sep 23 2018, 00:19
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(Сергей Борщ @ Sep 23 2018, 00:41) Все мои протоколы поверх поверх УАПП (UART) чем-то похожи на WAKE, но выросли из нижнего уровня IrDA. modbus - кошмар для программиста. У SLIP-подобных протоколов главный недостаток, имхо то, что избыточность зависит от передаваемых данных. И может быть очень большой. Я в последнее время в подобных случаях использую COBS. Он имеет фиксированную избыточность, не зависящую от данных. И очень маленькую избыточность.
|
|
|
|
|
Sep 23 2018, 07:37
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Цитата(Forger @ Sep 22 2018, 23:23) Вот только не нужно вводить народ в заблуждение!
Связь между PLC и подключаемыми внешними модулями организуется через самые разношерстные интерфейсы и протоколы. Перечислять их можно долго. SPI же используется для соединения микрух на одной плате или на край между двумя платами, которые находятся недалеко друг от друга и как правило в одном корпусе. Собственно для этого он и создавался. Я думаю моя мысль понятливым понятна. Софтварные протоколы нарушают жесткий риалтайм, который обычно нужен при управлении опасной механикой. SPI по DMA один из вариантов не городить софтовую обвязку. В PLC для соединений в пределах стойки используют именно такой безсофтовый подход с отражением на память. Если знаете что-то об этом больше, то назовите хоть одно, а не с умным видом "перечислять их можно долго" Где применять SPI тож не сильны я вижу. Расстояния на которые можно использовать SPI зависят только от драйверов линии и скорости, как и в любом интерфейсе. Так что забудьте эти детские заблуждения про соединения на одной плате. Я вам по секрету скажу, что SPI используется в китайских многометровых светодиодных панелях.
|
|
|
|
|
Sep 23 2018, 07:59
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(AlexandrY @ Sep 23 2018, 10:37) Если знаете что-то об этом больше, то назовите хоть одно, а не с умным видом "перечислять их можно долго" ETHERCAT - используется в современном промышленном оборудовании. Но для данной темы он крайне избыточен и дорог. CAN - используется во всех современных авто, в разным машинах обвешивается разными протокольными надстройками. Также используется в промышленном оборудовании. Минус CAN один - требуется соотв. МК. Плюс - уже аппаратно решены многие протокольные проблемы Цитата "в китайских многометровых светодиодных панелях". Вот именно там самое место подобному применению SPI! Цитата SPI по DMA один из вариантов не городить софтовую обвязку. Тогда давайте уж дальше будем продолжать необоснованные фобии, советуя автору вообще ВСЕ делать на ПЛИС или "гулять так гулять" - на "рассыпухе"! Цитата эти детские заблуждения Да кто-бы говорил
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 23 2018, 08:02
|
Гуру
Группа: Свой
Сообщений: 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), для опроса кнопок??
|
|
|
|
|
Sep 23 2018, 08:15
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(jcxz @ Sep 23 2018, 11:02) ТСу нужна гальваноразвязка. И двунаправленная передача. Для данных интерфейсов есть чипы, обеспечивающие её? И на какой скорости? Да, все это есть. Дорого, надежно. Скорости - как у ethernet, он тут является "физикой". Но, разумеется, для данной темы ETHERCAT вообще ни к месту, это я уточнил в посте, где упомянул про него. Тут он - как на самолете в булочную, что через дорогу Для CAN cуществуют готовые драйвера с гальваноразвязкой. Например, ISO1050. Пользовал однажды такой, но его одного мало, все равно нужны доп. защиты. Если речь идет про некий выносной пульт с кнопками и лампочками, то питание и данные можно развязать еще в силовой коробке. Питание тянуть к пульту в том же кабеле, что и данные. Получится всего 4 провода. Если нужна аварийная кнопка, то ее лучше тянуть отдельными проводами.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 23 2018, 08:43
|
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 это еще проще.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|