|
CAN over DC, Использование проводов питания для CAN |
|
|
|
Mar 3 2018, 23:59
|
Участник
Группа: Участник
Сообщений: 39
Регистрация: 14-01-18
Пользователь №: 101 066
|
Есть некий девайс, к которому, кроме питания (24-48V DC), очень трудно что-то подвести. На девайсе сервопривод, которым нужно управлять в реальном времени. Токи по питанию могут быть до 20А. Можно ли и сложно ли подключить CAN по этим же проводникам?
|
|
|
|
|
Mar 4 2018, 08:05
|
Гуру
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702
|
Цитата(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 я бы не советовал (уж слишком нагрузка у вас непростая).
|
|
|
|
|
Mar 4 2018, 12:57
|
Участник
Группа: Участник
Сообщений: 39
Регистрация: 14-01-18
Пользователь №: 101 066
|
Понятно, что нужна доработка. Вопрос - какая? Общая информация нагугливается без труда. Ясно, что в теории это возможно, и даже стандарт есть. Но примеров практических реализаций не нашёл. Интересен опыт участников форума, т.к. я не профессионал в электронике и встраиваемых системах.
Сообщение отредактировал baritono - Mar 4 2018, 12:59
|
|
|
|
|
Mar 4 2018, 13:07
|
Просто Che
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881
|
Цитата(baritono @ Mar 4 2018, 01:59) кроме питания (24-48V DC), очень трудно что-то подвести. В целом видится, что если просто "очень трудно", то все-таки возможно. И имхо, это будет проще, чем надежно передавать данные на фоне импульсов тока по 20 А з.ы. еще мысль: если расстояние мало, возможно будет проще передавать данные по радиоканалу. Но его можно заглушить извне, это минус.
|
|
|
|
|
Mar 4 2018, 14:06
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(adnega @ Mar 4 2018, 10:05) Делать свое powerline-решение под требования CAN я бы не советовал (уж слишком нагрузка у вас непростая). А что тут непростого? Имхо - как раз самая простая. DC ведь! Сделать простейший модем и передавать по ВЧ, развязав с питанием фильтрами. Если ВЧ-помех в линии нет, то всё получится очень просто. А от помех можно отстроиться по частоте например. А самый колхозный путь (если нужно только передавать управление, а обратный канал не нужен): на передатчике поставить 2 пары мощных ключей и коммутировать ими на питание устройства или положительное или отрицательное питание; на приёмнике по питанию поставить 2-х полупериодный выпрямитель; а вот управлять состояниями ключей - от передатчика с любой удобной модуляцией, например - ШИМ или ЧИМ или ...просто UART и приёмник получится простым: отрицательное питание == "0", положительное == "1" - хоть напрямую к UART-у цепляй Такую схему и программу даже школьник осилит. Да и обратный канал можно сюда прикрутить - без ВЧ-модуляции (устройство A - источник питания, устройство Б - приёмник питания). Например: каждый фронт питания (переключения с отрицательного на положительное питание) в устройстве Б заводим на SCLK SPI, Б-ведомое, Б-устройство выдвигает очередной бит по каждому фронту SCLK, выход MISO устройства Б в зависимости от значения бита включает подтяжку линии питания или к "0" или к "1", по спаду питания (переключения с положительного на отрицательное питание), устройство Б вводит кратковременный dead-time в ключ управляющий питанием (верхний и нижний ключ оба выключены) на несколько мкс, в это время устройство А стробирует состояние линии питания (с некоторой задержкой, учитывающей ёмкость и индуктивность линии питания от ключей до диодов) и вводит очередной бит с устройства Б. В устройстве Б поставить конденсаторы достаточной ёмкости и всё будет работать ок. Да эти конденсаторы там уже должны быть, раз устройство работает с такими токами питания. Цитата(adnega @ Mar 4 2018, 15:07) Если уже есть проводная линия, не понятно, что мешает дополнить ее еще парой проводов? Сколько будет стоить добавить эти провода? На мой взгляд, на порядок дешевле, чем придумывать способ обхода. Откуда Вы знаете какая серийность у автора? А если ему это надо сделать это в 100500 устройствах - тоже дешевле будет? И какие способы прокладки проводов? А если для доп. проводов нужно стены штробить или траншею рыть - тоже будет дешевле?
|
|
|
|
|
Mar 4 2018, 15:37
|
Гуру
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702
|
Цитата(jcxz @ Mar 4 2018, 17:06) А что тут непростого? Имхо - как раз самая простая. DC ведь! Не понятен спектр потребления, не понятны вопросы сертификации и т.п. Описанное вами решение не соответствует требованиям CAN, из-за выпрямителей оно не эффективно при 20А и вы теряете общий провод. Цитата(jcxz @ Mar 4 2018, 17:06) Откуда Вы знаете какая серийность у автора? А если ему это надо сделать это в 100500 устройствах - тоже дешевле будет? И какие способы прокладки проводов? А если для доп. проводов нужно стены штробить или траншею рыть - тоже будет дешевле? 24В и 20А! - какая траншея? Если бы ТС подробнее описал сложности с новой проводкой, то было бы с чем сравнивать.
|
|
|
|
|
Mar 4 2018, 15:47
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(adnega @ Mar 4 2018, 17:37) Описанное вами решение не соответствует требованиям CAN, Ну понятно что это не CAN, а просто способ передачи через такой канал. Но вроде как нету CAN-over-power-line, так что прямое решение запроса ТС невозможно. Или есть? Цитата(adnega @ Mar 4 2018, 17:37) из-за выпрямителей оно не эффективно при 20А и вы теряете общий провод. Почему неэффективно? Поясните? А нужен этот общий провод ТСу? В требованиях этого нет.
|
|
|
|
|
Mar 4 2018, 15:56
|
Знающий
Группа: Участник
Сообщений: 518
Регистрация: 29-09-11
Пользователь №: 67 450
|
Цитата(Егоров @ Mar 4 2018, 19:48) Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков? В любом случае нужно будет делать аккуратно аналоговую схему, а не уповать на какой-то чудо-кристалл, впаял - и нет забот, вот тебе стандартный CAN о двух концах. CAN односторонним не бывает, без бита подтверждения получателем контроллер работать не будет.
|
|
|
|
|
Mar 4 2018, 16:49
|
Участник
Группа: Участник
Сообщений: 39
Регистрация: 14-01-18
Пользователь №: 101 066
|
Спасибо за ответы, немного добавили ясности. Дело в том, что там не провода: девайс вращается на двух шарикоподшипниках, которые выполняют роль проводников. Беспроводной вариант (NFC) в принципе тоже рассматривается, но казалось CAN over DC проще будет. Цитата(Егоров @ Mar 4 2018, 15:48) Мало исходных данных. Расстояние, скорость передачи, односторонняя, двусторонняя? Может, там нужно передать всего 2-4 логических сигнала от датчиков? В любом случае нужно будет делать аккуратно аналоговую схему, а не уповать на какой-то чудо-кристалл, впаял - и нет забот, вот тебе стандартный CAN о двух концах. Расстояние порядка 2 см., скорость тоже мала - только команды считать/установить положение сервопривода, частота на уровне нескольких мс. Надеялся честно говоря на кристалл, но на нет и суда нет.
|
|
|
|
|
Mar 4 2018, 23:08
|
Участник
Группа: Участник
Сообщений: 39
Регистрация: 14-01-18
Пользователь №: 101 066
|
Цитата(jcxz @ Mar 4 2018, 21:39) А зачем именно CAN? Вам же просто передать/принять данные нужно? Для этого можно придумать кучу способов. Я уже описывал выше некоторые. Стандарт всё-таки, и на компе уже есть CAN-интерфейс. Сервоприводы с CAN тоже бывают.
|
|
|
|
|
Mar 5 2018, 00:44
|
Гуру
Группа: Модераторы
Сообщений: 3 868
Регистрация: 15-03-13
Пользователь №: 76 048
|
Цитата(baritono @ Mar 4 2018, 20:49) Дело в том, что там не провода: девайс вращается на двух шарикоподшипниках, которые выполняют роль проводников. Расстояние порядка 2 см., скорость тоже мала - только команды считать/установить положение сервопривода, частота на уровне нескольких мс. Надеялся честно говоря на кристалл, но на нет и суда нет. 24 ампера через подшипники.... Понятно, тут вообще ничего работать не будет, не в интерфейсе основная проблема. Цитата(novikovfb @ Mar 4 2018, 19:56) CAN односторонним не бывает, без бита подтверждения получателем контроллер работать не будет. Да какой там САN.... Сразу понятно что это неприменимое решение. После развязки можно сделать какой-то эмулятор CAN, если кроме него ничего нельзя. Но тут, похоже, не CANом единым изделие страдает.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|