Перейти к содержанию
    

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала стоит прочитать стандарт CAN хотя бы в части физической линии. Тогда станет ясно, что напрямую - нельзя. Остается городить какую-то свою физику двусторонней передачи информации по проводам (ВЧ модуляция и т.п.) и колхозить шлюзы с CAN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала стоит прочитать стандарт 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кроме питания (24-48V DC), очень трудно что-то подвести.

В целом видится, что если просто "очень трудно", то все-таки возможно.

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

 

з.ы. еще мысль:

если расстояние мало, возможно будет проще передавать данные по радиоканалу. Но его можно заглушить извне, это минус.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.к. я не профессионал в электронике и встраиваемых системах.

У профессионалов, как правило, нет проблем с дополнительной парой проводов при решении задачи оптимальным способом.

Если уже есть проводная линия, не понятно, что мешает дополнить ее еще парой проводов? Сколько будет стоить добавить эти провода?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делать свое powerline-решение под требования CAN я бы не советовал (уж слишком нагрузка у вас непростая).

А что тут непростого? Имхо - как раз самая простая. DC ведь!

Сделать простейший модем и передавать по ВЧ, развязав с питанием фильтрами. Если ВЧ-помех в линии нет, то всё получится очень просто. А от помех можно отстроиться по частоте например.

А самый колхозный путь (если нужно только передавать управление, а обратный канал не нужен): на передатчике поставить 2 пары мощных ключей и коммутировать ими на питание устройства или положительное или отрицательное питание; на приёмнике по питанию поставить 2-х полупериодный выпрямитель; а вот управлять состояниями ключей - от передатчика с любой удобной модуляцией, например - ШИМ или ЧИМ или ...просто UART ;) и приёмник получится простым: отрицательное питание == "0", положительное == "1" - хоть напрямую к UART-у цепляй B) Такую схему и программу даже школьник осилит.

Да и обратный канал можно сюда прикрутить - без ВЧ-модуляции (устройство A - источник питания, устройство Б - приёмник питания). Например: каждый фронт питания (переключения с отрицательного на положительное питание) в устройстве Б заводим на SCLK SPI, Б-ведомое, Б-устройство выдвигает очередной бит по каждому фронту SCLK, выход MISO устройства Б в зависимости от значения бита включает подтяжку линии питания или к "0" или к "1", по спаду питания (переключения с положительного на отрицательное питание), устройство Б вводит кратковременный dead-time в ключ управляющий питанием (верхний и нижний ключ оба выключены) на несколько мкс, в это время устройство А стробирует состояние линии питания (с некоторой задержкой, учитывающей ёмкость и индуктивность линии питания от ключей до диодов) и вводит очередной бит с устройства Б. В устройстве Б поставить конденсаторы достаточной ёмкости и всё будет работать ок. Да эти конденсаторы там уже должны быть, раз устройство работает с такими токами питания.

 

Если уже есть проводная линия, не понятно, что мешает дополнить ее еще парой проводов? Сколько будет стоить добавить эти провода?

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

Откуда Вы знаете какая серийность у автора? А если ему это надо сделать это в 100500 устройствах - тоже дешевле будет?

И какие способы прокладки проводов? А если для доп. проводов нужно стены штробить или траншею рыть - тоже будет дешевле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что тут непростого? Имхо - как раз самая простая. DC ведь!

Не понятен спектр потребления, не понятны вопросы сертификации и т.п.

Описанное вами решение не соответствует требованиям CAN, из-за выпрямителей оно не эффективно при 20А и вы теряете общий провод.

Откуда Вы знаете какая серийность у автора? А если ему это надо сделать это в 100500 устройствах - тоже дешевле будет?

И какие способы прокладки проводов? А если для доп. проводов нужно стены штробить или траншею рыть - тоже будет дешевле?

24В и 20А! - какая траншея?

Если бы ТС подробнее описал сложности с новой проводкой, то было бы с чем сравнивать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Описанное вами решение не соответствует требованиям CAN,

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

 

из-за выпрямителей оно не эффективно при 20А и вы теряете общий провод.

Почему неэффективно? Поясните? А нужен этот общий провод ТСу? В требованиях этого нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков?

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

CAN односторонним не бывает, без бита подтверждения получателем контроллер работать не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков?

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

 

Расстояние порядка 2 см., скорость тоже мала - только команды считать/установить положение сервопривода, частота на уровне нескольких мс. Надеялся честно говоря на кристалл, но на нет и суда нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вариант (NFC) в принципе тоже рассматривается, но казалось CAN over DC проще будет.

А зачем именно CAN? Вам же просто передать/принять данные нужно? Для этого можно придумать кучу способов. Я уже описывал выше некоторые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем именно CAN? Вам же просто передать/принять данные нужно? Для этого можно придумать кучу способов. Я уже описывал выше некоторые.

 

Стандарт всё-таки, и на компе уже есть CAN-интерфейс. Сервоприводы с CAN тоже бывают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что там не провода: девайс вращается на двух шарикоподшипниках, которые выполняют роль проводников.

Расстояние порядка 2 см., скорость тоже мала - только команды считать/установить положение сервопривода, частота на уровне нескольких мс. Надеялся честно говоря на кристалл, но на нет и суда нет.

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

 

CAN односторонним не бывает, без бита подтверждения получателем контроллер работать не будет.

Да какой там САN.... Сразу понятно что это неприменимое решение.

После развязки можно сделать какой-то эмулятор CAN, если кроме него ничего нельзя.

Но тут, похоже, не CANом единым изделие страдает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...