Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CAN over DC
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
baritono
Есть некий девайс, к которому, кроме питания (24-48V DC), очень трудно что-то подвести. На девайсе сервопривод, которым нужно управлять в реальном времени. Токи по питанию могут быть до 20А. Можно ли и сложно ли подключить CAN по этим же проводникам?
novikovfb
Для начала стоит прочитать стандарт CAN хотя бы в части физической линии. Тогда станет ясно, что напрямую - нельзя. Остается городить какую-то свою физику двусторонней передачи информации по проводам (ВЧ модуляция и т.п.) и колхозить шлюзы с CAN.
adnega
Цитата(novikovfb @ Mar 4 2018, 09:09) *
Для начала стоит прочитать стандарт CAN хотя бы в части физической линии.

И где же в стандарте говориться про физический уровень? Я прочитал, что
Цитата
The Physical Layer defines how signals are actually transmitted. Within this
specification the physical layer is not defined
so as to allow transmission medium
and signal level implementations to be optimized for their application.
т.е. в стандарте физический уровень не описывается.
Для работы CAN нужно в среде создать два состояния: доминантное и рецессивное, каждое со своими свойствами.
Как это сделать - зависит от задачи. Конкретно для этой задачи вряд ли есть стандартное решение или простое решение.
Проще передавать по какой-нить powerline-технологии и сделать CAN-шлюзы под данную технологию - тут я с novikovfb согласен.
Делать свое powerline-решение под требования CAN я бы не советовал (уж слишком нагрузка у вас непростая).
baritono
Понятно, что нужна доработка. Вопрос - какая? Общая информация нагугливается без труда. Ясно, что в теории это возможно, и даже стандарт есть. Но примеров практических реализаций не нашёл. Интересен опыт участников форума, т.к. я не профессионал в электронике и встраиваемых системах.
Baser
Цитата(baritono @ Mar 4 2018, 01:59) *
кроме питания (24-48V DC), очень трудно что-то подвести.

В целом видится, что если просто "очень трудно", то все-таки возможно.
И имхо, это будет проще, чем надежно передавать данные на фоне импульсов тока по 20 А

з.ы. еще мысль:
если расстояние мало, возможно будет проще передавать данные по радиоканалу. Но его можно заглушить извне, это минус.
adnega
Цитата(baritono @ Mar 4 2018, 15:57) *
т.к. я не профессионал в электронике и встраиваемых системах.

У профессионалов, как правило, нет проблем с дополнительной парой проводов при решении задачи оптимальным способом.
Если уже есть проводная линия, не понятно, что мешает дополнить ее еще парой проводов? Сколько будет стоить добавить эти провода?
На мой взгляд, на порядок дешевле, чем придумывать способ обхода. При этом по надежности с выделенной линией вряд ли что сравнится.
jcxz
Цитата(adnega @ Mar 4 2018, 10:05) *
Делать свое powerline-решение под требования CAN я бы не советовал (уж слишком нагрузка у вас непростая).

А что тут непростого? Имхо - как раз самая простая. DC ведь!
Сделать простейший модем и передавать по ВЧ, развязав с питанием фильтрами. Если ВЧ-помех в линии нет, то всё получится очень просто. А от помех можно отстроиться по частоте например.
А самый колхозный путь (если нужно только передавать управление, а обратный канал не нужен): на передатчике поставить 2 пары мощных ключей и коммутировать ими на питание устройства или положительное или отрицательное питание; на приёмнике по питанию поставить 2-х полупериодный выпрямитель; а вот управлять состояниями ключей - от передатчика с любой удобной модуляцией, например - ШИМ или ЧИМ или ...просто UART wink.gif и приёмник получится простым: отрицательное питание == "0", положительное == "1" - хоть напрямую к UART-у цепляй cool.gif Такую схему и программу даже школьник осилит.
Да и обратный канал можно сюда прикрутить - без ВЧ-модуляции (устройство A - источник питания, устройство Б - приёмник питания). Например: каждый фронт питания (переключения с отрицательного на положительное питание) в устройстве Б заводим на SCLK SPI, Б-ведомое, Б-устройство выдвигает очередной бит по каждому фронту SCLK, выход MISO устройства Б в зависимости от значения бита включает подтяжку линии питания или к "0" или к "1", по спаду питания (переключения с положительного на отрицательное питание), устройство Б вводит кратковременный dead-time в ключ управляющий питанием (верхний и нижний ключ оба выключены) на несколько мкс, в это время устройство А стробирует состояние линии питания (с некоторой задержкой, учитывающей ёмкость и индуктивность линии питания от ключей до диодов) и вводит очередной бит с устройства Б. В устройстве Б поставить конденсаторы достаточной ёмкости и всё будет работать ок. Да эти конденсаторы там уже должны быть, раз устройство работает с такими токами питания.

Цитата(adnega @ Mar 4 2018, 15:07) *
Если уже есть проводная линия, не понятно, что мешает дополнить ее еще парой проводов? Сколько будет стоить добавить эти провода?
На мой взгляд, на порядок дешевле, чем придумывать способ обхода.

Откуда Вы знаете какая серийность у автора? А если ему это надо сделать это в 100500 устройствах - тоже дешевле будет?
И какие способы прокладки проводов? А если для доп. проводов нужно стены штробить или траншею рыть - тоже будет дешевле?
adnega
Цитата(jcxz @ Mar 4 2018, 17:06) *
А что тут непростого? Имхо - как раз самая простая. DC ведь!

Не понятен спектр потребления, не понятны вопросы сертификации и т.п.
Описанное вами решение не соответствует требованиям CAN, из-за выпрямителей оно не эффективно при 20А и вы теряете общий провод.
Цитата(jcxz @ Mar 4 2018, 17:06) *
Откуда Вы знаете какая серийность у автора? А если ему это надо сделать это в 100500 устройствах - тоже дешевле будет?
И какие способы прокладки проводов? А если для доп. проводов нужно стены штробить или траншею рыть - тоже будет дешевле?

24В и 20А! - какая траншея?
Если бы ТС подробнее описал сложности с новой проводкой, то было бы с чем сравнивать.
jcxz
Цитата(adnega @ Mar 4 2018, 17:37) *
Описанное вами решение не соответствует требованиям CAN,

Ну понятно что это не CAN, а просто способ передачи через такой канал. Но вроде как нету CAN-over-power-line, так что прямое решение запроса ТС невозможно. Или есть?

Цитата(adnega @ Mar 4 2018, 17:37) *
из-за выпрямителей оно не эффективно при 20А и вы теряете общий провод.

Почему неэффективно? Поясните? А нужен этот общий провод ТСу? В требованиях этого нет.
Егоров
Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков?
В любом случае нужно будет делать аккуратно аналоговую схему, а не уповать на какой-то чудо-кристалл, впаял - и нет забот, вот тебе стандартный CAN о двух концах.
novikovfb
Цитата(Егоров @ Mar 4 2018, 19:48) *
Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков?
В любом случае нужно будет делать аккуратно аналоговую схему, а не уповать на какой-то чудо-кристалл, впаял - и нет забот, вот тебе стандартный CAN о двух концах.

CAN односторонним не бывает, без бита подтверждения получателем контроллер работать не будет.
baritono
Спасибо за ответы, немного добавили ясности. Дело в том, что там не провода: девайс вращается на двух шарикоподшипниках, которые выполняют роль проводников. Беспроводной вариант (NFC) в принципе тоже рассматривается, но казалось CAN over DC проще будет.

Цитата(Егоров @ Mar 4 2018, 15:48) *
Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков?
В любом случае нужно будет делать аккуратно аналоговую схему, а не уповать на какой-то чудо-кристалл, впаял - и нет забот, вот тебе стандартный CAN о двух концах.


Расстояние порядка 2 см., скорость тоже мала - только команды считать/установить положение сервопривода, частота на уровне нескольких мс. Надеялся честно говоря на кристалл, но на нет и суда нет.
jcxz
Цитата(baritono @ Mar 4 2018, 18:49) *
вариант (NFC) в принципе тоже рассматривается, но казалось CAN over DC проще будет.

А зачем именно CAN? Вам же просто передать/принять данные нужно? Для этого можно придумать кучу способов. Я уже описывал выше некоторые.
baritono
Цитата(jcxz @ Mar 4 2018, 21:39) *
А зачем именно CAN? Вам же просто передать/принять данные нужно? Для этого можно придумать кучу способов. Я уже описывал выше некоторые.


Стандарт всё-таки, и на компе уже есть CAN-интерфейс. Сервоприводы с CAN тоже бывают.
Егоров
Цитата(baritono @ Mar 4 2018, 20:49) *
Дело в том, что там не провода: девайс вращается на двух шарикоподшипниках, которые выполняют роль проводников.
Расстояние порядка 2 см., скорость тоже мала - только команды считать/установить положение сервопривода, частота на уровне нескольких мс. Надеялся честно говоря на кристалл, но на нет и суда нет.

24 ампера через подшипники.... Понятно, тут вообще ничего работать не будет, не в интерфейсе основная проблема.

Цитата(novikovfb @ Mar 4 2018, 19:56) *
CAN односторонним не бывает, без бита подтверждения получателем контроллер работать не будет.

Да какой там САN.... Сразу понятно что это неприменимое решение.
После развязки можно сделать какой-то эмулятор CAN, если кроме него ничего нельзя.
Но тут, похоже, не CANом единым изделие страдает.
jcxz
Цитата(Егоров @ Mar 5 2018, 02:44) *
24 ампера через подшипники.... Понятно, тут вообще ничего работать не будет, не в интерфейсе основная проблема.

Ну как-же - это довольно известный эффект: http://izobreteniya.net/dvigatel-iz-podshipnika/ rolleyes.gif
Там чем ток больше - тем быстрее.
baritono
Цитата(Егоров @ Mar 5 2018, 00:44) *
24 ампера через подшипники.... Понятно, тут вообще ничего работать не будет, не в интерфейсе основная проблема.


Да какой там САN.... Сразу понятно что это неприменимое решение.
После развязки можно сделать какой-то эмулятор CAN, если кроме него ничего нельзя.
Но тут, похоже, не CANом единым изделие страдает.


Это не простые подшипники. Мог бы дать ссылку на них, но не буду. Пусть это будет Вашим домашним заданием, для саморазвития.
adnega
Цитата(baritono @ Mar 5 2018, 23:54) *
Пусть это будет Вашим домашним заданием, для саморазвития.

Погуглил. Существуют вещи типа SRH0317-2.
Может, лучше их поставить и не выдумывать модемы-шлюзы-протоколы-конструкции?
AlexandrY
Цитата(adnega @ Mar 6 2018, 08:54) *
Погуглил. Существуют вещи типа SRH0317-2.
Может, лучше их поставить и не выдумывать модемы-шлюзы-протоколы-конструкции?

Это не то.
На алибабе есть куча токопроводящих подшипников, но у них сопротивление измеряется сотнями ом.
А тут мы видим подшипник с сопротивлением менее 0.050 Ом
Причем подшипник на видео как бы самый обычный.
Это виде либо фэйк, либо автору дали некую очень продвинутую смазку.
adnega
Цитата(AlexandrY @ Mar 6 2018, 10:27) *
Это не то.

Сила пусть через спец подшипники идет, а CAN лучше пустить через токосъемники, если скорость вращения позволяет.
Не нужен никакой огород с электроникой.
Хвост Слона
ИМХО - проще по радиоканалу. Можно блютус модуль ( типа HC-05 или HC-06) в режиме прозрачного УАРТа, можно HM-TRP от HOPERF в том же режиме. Меньше хлопот с изобретением велосипеда.
adnega
Цитата(Хвост Слона @ Mar 6 2018, 20:16) *
ИМХО - проще по радиоканалу. Можно блютус модуль ( типа HC-05 или HC-06) в режиме прозрачного УАРТа, можно HM-TRP от HOPERF в том же режиме. Меньше хлопот с изобретением велосипеда.

Это если CAN не нужен. А если CAN нужен? Нет прозрачного решения CAN-UART-CAN - нужно так или иначе шлюз мастерить.
Я так понял у ТС
Цитата
на компе уже есть CAN-интерфейс. Сервоприводы с CAN тоже бывают.
baritono
Хотелось обойтись без существенного усложнения и удорожания конструкции. Да и помехи извне опять же, всё беспроводное им подвержено в какой-то мере. Может, что-то оптическое можно придумать? Девайс большей частью внутри корпуса, там темно. Грубо говоря: красная лампочка на передачу, зелёная на приём?
Хвост Слона
Шлюз CAN-UART-CAN в свое время делал на STM32. Оказалось не сложно. А вот надежно пробросить CAN через скользящие контакты или поверх силовой шины - предполагаю будет трудно. Помехи в беспроводной передаче, конечно, возможны, но и в оптике от них не уйти полностью.
mantech
Цитата(Хвост Слона @ Mar 7 2018, 09:27) *
Шлюз CAN-UART-CAN в свое время делал на STM32. Оказалось не сложно. А вот надежно пробросить CAN через скользящие контакты или поверх силовой шины - предполагаю будет трудно. Помехи в беспроводной передаче, конечно, возможны, но и в оптике от них не уйти полностью.


ТСу оже неоднократно сказано было, что кан здесь не подходит, но похоже, для него это как мантра...
baritono
Цитата(mantech @ Mar 7 2018, 06:32) *
ТСу оже неоднократно сказано было, что кан здесь не подходит, но похоже, для него это как мантра...


Глаза боятся, а руки делают: http://yamar.com/product/dcan250-evb/
AlexandrY
Цитата(baritono @ Mar 7 2018, 10:11) *
Глаза боятся, а руки делают: http://yamar.com/product/dcan250-evb/

Эт на автомобильную DC шину, на которой отродясь не было никаких BLDC и зашунтированных к тому же конденсаторами со сверхнизким ESR.
Судя по году авторы потом забросили идею.
adnega
Цитата(Хвост Слона @ Mar 7 2018, 09:27) *
Шлюз CAN-UART-CAN в свое время делал на STM32. Оказалось не сложно.

Для какой-то частной задачи можно найти много упрощений, но иногда бывают непростые случаи.
Например, у меня в шине CAN помимо управляющий посылок с высоким приоритетом могут гулять всякие неважные мультимедийные посылки (тот же интерком).
Шина при этом может быть загружена на 100%. Часть мультимедийных посылок может быть потеряна (это будет эквивалентно половинной Fд), но
управляющий трафик всегда должен выигрывать арбитраж. Скорость не большая 50кБит/с. Я не вижу простого шлюза, а тоже
хотелось бы прокинуть все через какую-нить esp8266.
vadimp61
Цитата(AlexandrY @ Mar 6 2018, 10:27) *
Это не то.
На алибабе есть куча токопроводящих подшипников, но у них сопротивление измеряется сотнями ом.
А тут мы видим подшипник с сопротивлением менее 0.050 Ом
Причем подшипник на видео как бы самый обычный.
Это виде либо фэйк, либо автору дали некую очень продвинутую смазку.

Вот это я покупал и тестировал
https://ru.aliexpress.com/item/through-bore...2311.0.0.oJ5L1v
6 проводов по 10А,то есть мы имеем 30А если их соединить 2х3. А по сигнальным контактам езернет пропускали и пинги не терялись при вращении этой штуки.
k155la3
Оптический канал можно расматривать или индукционный. Хотя для этой цели радио - более оптимально.
(например датчики давления в шинах. Понятно что это на CAN).
a123-flex
Цитата(AlexandrY @ Mar 6 2018, 10:27) *
А тут мы видим подшипник с сопротивлением менее 0.050 Ом
Причем подшипник на видео как бы самый обычный.
Это виде либо фэйк, либо автору дали некую очень продвинутую смазку.

судя по уровню, это просто гон


Цитата(baritono @ Mar 4 2018, 02:59) *
Есть некий девайс, к которому, кроме питания (24-48V DC), очень трудно что-то подвести. На девайсе сервопривод, которым нужно управлять в реальном времени. Токи по питанию могут быть до 20А. Можно ли и сложно ли подключить CAN по этим же проводникам?

Объяснили ведь уже, вас ждет plc модем, или беспроводной канал, их готовых есть. И не мечтайте о халяве - дороже выйдет.
Дадите хорошим людям, что в этом топике множество, от 400 тыр, и усе будет в лучшем виде, и считайте задаром.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.