Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: монтаж CAN шины в доме
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Страницы: 1, 2, 3
typedef
Всем привет!

принимайте новичка sm.gif
давно чесались руки попрограммировать микроконтроллеры, да все не было конкретной задачи.
Сейчас появилась - задача управления сервоприводами водяного теплого пола. Пока ничего особенного - в каждое помещение повесить датчик температуры, один-два уличных и на каждую гребенку по микроконтроллеру, который будет на основании показаний датчиков и заданной желаемой температуры рулить сервоприводами.

Поскольку опыта в этом деле нет пока никакого, посвятил неделю активному гуглению. Выкурил кучу инфы на русском и английском языке. Остановил свой выбор на CAN шине и микроконтроллерах STM32F103/105/107 или STM8a(s)207/208 + L9615/9616 в качестве трансивера.

С удивлением для себя обнаружил отсутсвие (возможно не там искал) или крайне скупое описание монтажа самой шины, а также ее архитектуры. Везде в основном встречалось или общая информация по шине или вопросы по программированию. Не нашел ни одного конретного примера как и что делать. наверное у профи это само собой разумеется, но для меня этот вопрос сейчас наиважнейший, поскольку на данном этапе надо заложить все провода и продумать архитектуру.

Вобщем вопросы у меня такие:
1. Архитектура.
Например, взять этаж - 4 помещения, одна гребенка с четырьмя контурами теплого пола. Соотв. 4 датчика температуры, возможно 4 LCD с парой кнопок для отображения температуры и задания желаемой. Мне пока не ясно что из этого будет являтся узлом CAN-шины. Или на каждый датчик вешать контроллер и трансивер. Получится узел шины, котоорый будет пулять свои данные (и)или отвечать на запросы. Или один контроллер, который будет обслуживать несколько датчиков и сам же крутить сервопривода. Тогда вопрос как это все правильно соединить (1-Wire для датчиков)

2. Монтаж.
Далее, в зависимости от архитектуры, как все правильно расположить физически в стене и как и чем между собой соединить.

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

Если есть где-нибудь инфа, в которой можно найти ответы на эти вопросы - буду благодарен.
AlexandrY
Цитата(typedef @ Oct 23 2014, 15:01) *
Если есть где-нибудь инфа, в которой можно найти ответы на эти вопросы - буду благодарен.


Здесь все проще чем может показаться.
Берете обычный UTP или STP кабель, каким Ethernet прокладывают, или просто витую пару (сечение не критично) и соединяете по цепочке от одного контроллера к другому последовательно все обходя.
Можно и не по цепочке и делать отростки звездой по несколько метров.
Главное не забыть терминаторный резистор 120 ом на одном из концов. Достаточно только на одном конце для такой короткой сети. Но надежнее будет чтобы стояло на обоих концах по резистору.

Скорость настроить не слишком высокую, напримет 100 кбит/c.

Архитектура выбирается по опыту, как проще программировать, соблюсти безопасность функционирования и требования быстродействия.

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

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

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

В вашем случае можно было бы сделать узел для 1-wire шины на который вешать по нескольку датчиков температуры и узел с LCD и кнопками. Для нескольких LCD применитить несколько узлов с LCD.
Кстати имеем контроллеры 1-Wire в CAN как раз сделаны на STM32
Нажмите для просмотра прикрепленного файла




typedef
Цитата(AlexandrY @ Oct 23 2014, 17:07) *
Здесь все проще чем может показаться.
Берете обычный UTP или STP кабель, каким Ethernet прокладывают, или просто витую пару (сечение не критично) и соединяете по цепочке от одного контроллера к другому последовательно все обходя.
Можно и не по цепочке и делать отростки звездой по несколько метров.
Главное не забыть терминаторный резистор 120 ом на одном из концов. Достаточно только на одном конце для такой короткой сети. Но надежнее будет чтобы стояло на обоих концах по резистору.


большое спасибо за ответ!
т.е. если я правильно понял Вашу мысль, то на одном этаже получается
- узел 1-Wire, на котором висят 4 температурных датчика (ну или больше, те что на этаже)
- по одному узлу на каждый LCD с кнопками
- узел, обслуживающий сервоприводы гребенки

тут у меня все равно остались вопросы по монтажу
1. получается что на каждом этаже будет своя 1-Wire сеть, кроме того одна общая CAN шина. Как это правильно делать? Витая пара для 1-Wire, обходящая все датчики + витая пара для CAN на весь дом?

2. Вы говорите, что CAN шину можно тянуть звездой с отростками. Тут имеется ввиду 4 провода из витой пары в сторону отростка и 4 оставшихся обратно или?

3. как уложить провода чтобы потом можно было сеть наращивать?
все таки для тупых, как узел соединяется с шиной? Где то видел вариант с RJ45 проходной розеткой, в которую патчкордом можно присоединять узлы. Т.е. получается разбрасываем равномерно по этажу розетки, потом по мере развития подключаемся или если возникла необходимость врезаться в шину, режем ее, вставляем тройник?

4. где обычно размещаются контроллеры? на одной плате с трансивером? на сколько далеко от шины?
AlexandrY
Цитата(typedef @ Oct 23 2014, 18:39) *
т.е. если я правильно понял Вашу мысль, то на одном этаже получается
- узел 1-Wire, на котором висят 4 температурных датчика (ну или больше, те что на этаже)
- по одному узлу на каждый LCD с кнопками
- узел, обслуживающий сервоприводы гребенки


Да все правильно.
Если на примере нашего контроллера, то выглядело бы так:
Нажмите для просмотра прикрепленного файла
На шину 1-Wire витая пара не нужна, там любым проводм можно класть, только отвести на сантиметр или больше от сетевых кабелей.
CAN шина общая на все этажи.
Отросток это то, что на схеме у меня изображено от тройника до контроллера LCD
Разъемы для CAN могут быть какие угодно. Могут быть и тройники.
Трансивер это такая маленькая 8-и ножная микросхемка она всегда рядом с процессором стоит, так как ее линии связи с процессором должны быть короткими.
А до разъемов шины от трансивера уже ведите хоть полметра.
typedef
Цитата(AlexandrY @ Oct 23 2014, 23:24) *
Да все правильно.
Если на примере нашего контроллера, то выглядело бы так:
Нажмите для просмотра прикрепленного файла
На шину 1-Wire витая пара не нужна, там любым проводм можно класть, только отвести на сантиметр или больше от сетевых кабелей.
CAN шина общая на все этажи.
Отросток это то, что на схеме у меня изображено от тройника до контроллера LCD
Разъемы для CAN могут быть какие угодно. Могут быть и тройники.

нарядно sm.gif
тут у меня тоже был вопрос из области общих знаний. Куплю какую-нить отладочную плату, все запрограммирую. А как потом принято делать. Рисовать и заказывать плату или брать какую-нить дешевую отладочную?
Я правда из того что видел, все отладочные платы с поддержкой CAN выглядят как CAN-шилд. Т.е. трансивер не впаян, как это у Вас.

Цитата
Трансивер это такая маленькая 8-и ножная микросхемка она всегда рядом с процессором стоит, так как ее линии связи с процессором должны быть короткими.
А до разъемов шины от трансивера уже ведите хоть полметра.

ага, увидел его. Но раз хоть полметра, значит два-три метра это уже много. Т.е. сама плата должна располагаться где-то рядом с CAN шиной.
AlexandrY
Цитата(typedef @ Oct 23 2014, 23:20) *
нарядно sm.gif
тут у меня тоже был вопрос из области общих знаний. Куплю какую-нить отладочную плату, все запрограммирую. А как потом принято делать. Рисовать и заказывать плату или брать какую-нить дешевую отладочную?
Я правда из того что видел, все отладочные платы с поддержкой CAN выглядят как CAN-шилд. Т.е. трансивер не впаян, как это у Вас.


ага, увидел его. Но раз хоть полметра, значит два-три метра это уже много. Т.е. сама плата должна располагаться где-то рядом с CAN шиной.


Я бы конечно плату спроектировал сам на вашем месте. Зачем ограничиваить свой полет фантазии дешевой отладкой единственная цель которой - быть дешевой?

И немного странный ваш вопрос по расстоянию до шины. Шина это просто два проводка в экране, куда хотите туда их и проведите, это же не железная дорога.
Но если имеется в виду можно ли до этих двух проводков провести ответвление до платы еще чем то более примитивным, то вполне можно на несколько метров.
Но лучше всегда смотреть осциллографом на сигналы в шине.
Когда у прямоугольных сигналов в шине серьезные искажения занимают более 1/15 длинны самого короткого сигнального импульса то с экспериментами с проводами надо завязывать и делать все по уму.

typedef
Цитата(AlexandrY @ Oct 24 2014, 00:56) *
И немного странный ваш вопрос по расстоянию до шины. Шина это просто два проводка в экране, куда хотите туда их и проведите, это же не железная дорога.

ну да, чего то я тупанул...

у меня еще вопрос по CAN трансиверам. Их у каждого производителя есть. Если я использую микропроцессор STM32, то и трансивер брать от ST, например L9615 ?
Смотрю они существенно дороже тех же MCP2551.
_3m
Цитата(typedef @ Oct 24 2014, 21:20) *
у меня еще вопрос по CAN трансиверам. Их у каждого производителя есть. Если я использую микропроцессор STM32, то и трансивер брать от ST, например L9615 ?
Смотрю они существенно дороже тех же MCP2551.

Трансивер ставьте тот что больше нравится, только с учетом питания процессора (совсем старые трансиверы типа PCA82*** несовместимы с 3-х вольтовой логикой).
MCP2551 применяем наравне с TJA1050 совместно с lpc11c14 - пока без проблем.
typedef
сейчас пытаюсь найти подходящую отладочную плату для STM32F103/105/107
Странно, но трансиверы всегда идут шилдами. Почему бы его сразу не впаять рядом с MCU, так как оно будет уже в конечном варианте?
Или может не там ищу...
AlexandrY
Цитата(typedef @ Oct 24 2014, 20:45) *
сейчас пытаюсь найти подходящую отладочную плату для STM32F103/105/107
Странно, но трансиверы всегда идут шилдами. Почему бы его сразу не впаять рядом с MCU, так как оно будет уже в конечном варианте?
Или может не там ищу...


CAN мультиплексируется у STM32 всегда с другими интерфейсами.
Если они впаяют туда трансивер они потеряют пару других функций у тех же пинов.
В результате плата станет дороже, а декларируемых интерфейсов меньше. А это никому не надо.
typedef
Цитата(AlexandrY @ Oct 24 2014, 23:45) *
CAN мультиплексируется у STM32 всегда с другими интерфейсами.
Если они впаяют туда трансивер они потеряют пару других функций у тех же пинов.
В результате плата станет дороже, а декларируемых интерфейсов меньше. А это никому не надо.

спасибо за грамотный ответ! Вы опять все толково объяснили sm.gif
typedef
по ходу дела возникли еще вопросы по монтажу.
Если взять витую пару, то три провода понятно - CAN_L, CAN_H и GND
осталось еще пять. Для STM32F103xx согласно даташиту надо 2-3,6V.
Если смотреть на блоки питания на DIN-рейку, то там есть 5, 12, 15, 24 и 48V.
- какое питание подавать на плату с контроллером?
- как его понизить до нужных 2-3,6V? Вопрос тупой, интересует типичное решение.
- чем задействовать оставшиеся 4 провода?
- на какую максимальную мощность можно рассчитывать ?
- сервопривод, который надо крутить 3W, есть на 24V и на 230V. Что из опыта лучше поставить между ним и контроллером?

Я прекрасно понимаю, что вопросы в большинстве своем у профессионалов вызовут улыбку, просьба сильно не пинать, можно ткнуть носом в интернет.
AlexandrY
Цитата(typedef @ Oct 26 2014, 18:39) *
по ходу дела возникли еще вопросы по монтажу.
Если взять витую пару, то три провода понятно - CAN_L, CAN_H и GND
осталось еще пять. Для STM32F103xx согласно даташиту надо 2-3,6V.
Если смотреть на блоки питания на DIN-рейку, то там есть 5, 12, 15, 24 и 48V.
- какое питание подавать на плату с контроллером?
- как его понизить до нужных 2-3,6V? Вопрос тупой, интересует типичное решение.
- чем задействовать оставшиеся 4 провода?
- на какую максимальную мощность можно рассчитывать ?
- сервопривод, который надо крутить 3W, есть на 24V и на 230V. Что из опыта лучше поставить между ним и контроллером?

Я прекрасно понимаю, что вопросы в большинстве своем у профессионалов вызовут улыбку, просьба сильно не пинать, можно ткнуть носом в интернет.


Можете оставшиеся использовать для 1-Wire, или подать какие нибудь сигналы не очень мощные, можете оставить незадействованными.
Мы обычно в своих системах используем 26V. (блок питания 24 В с подстройкой на 26 В)
Это обосновывается несколькими причинами:
- это еще низкое напряжение,
- но токи в два раза меньше чем при 12В,
- такое напряжение позволяет легко еще сделать резервное питание от аккумуляторов,
- это напряжение Stanby для типовых 2-х 12 В аккумуляторов,

Сервопривод естественно тогда тоже питать от 24 В.

Чтобы было яснее я вам сразу всю схему нашего 1Wire-CAN контроллера привожу :
Нажмите для просмотра прикрепленного файла
ZASADA
это ничего, что на SMAJ28A может быть 45,4 В, а LM22672 допускает по входу мах 43 В?
да и на CAN-шине никакой защиты не видно.
AlexandrY
Цитата(ZASADA @ Oct 27 2014, 08:21) *
это ничего, что на SMAJ28A может быть 45,4 В, а LM22672 допускает по входу мах 43 В?
да и на CAN-шине никакой защиты не видно.


Ничего умного сказать об этой защите нельзя не проанализировав систему подвода питания.
Обратите только внимание на конденсаторы и энергию импульса.

В драйвере CAN-а есть "ESD Protection Exceeds 2000 V Per MIL-STD-883, Method 3015; Exceeds 200 V Using Machine Model (C = 200 pF, R = 0)"
Машинная модель это именно то с чем мы имеем дело.
typedef
ну вот среди спецов разногласия, что делать нам, дилетантам sm.gif
на самом деле я потом обязательно все перелопачу и во всем разберусь.
Сейчас самое главное заложить провода. Пока, как я понял, нужен провод под 1-Wire для датчиков температуры, одну витую пару под CAN-шину. Вопрос - что подводить к гребенкам для сервоприводов.
Всего в доме 16 контуров, то есть 16 сервоприводов по 3W каждый. Т.е. получается 48W и как пишут в спеках к ним - по 220mA каждый. Что то мне видится питание их по CAN-шине проблематичным. Проще завести в каждый шкаф с гребенкой (по 4 контура каждый) от своего щитка отдельный провод с питанием, рядом поставить обслуживающий данную гребенку контроллер. Вот что поставить между ними, какое то реле на 24В или 220В, как то развязать это между собой.... это для меня пока не ясно.

Хотелось бы на данном этапе грубо представлять как будет все выглядеть физически, чтобы потом не долбить стены заново.
AlexandrY
Цитата(typedef @ Oct 27 2014, 14:40) *
Вопрос - что подводить к гребенкам для сервоприводов.
Всего в доме 16 контуров, то есть 16 сервоприводов по 3W каждый.


Вообше-то это не форум АВОК.
Многие могут и не знать что такое 'гребенка', чем управляют в вашем случае сервоприводы и сервоприводы ли это, и что включают в себя контура.
Разъясните, и может больше получите ответов.
ZASADA
если бы я автоматизировал свой дом, то исходил бы из простого принципа- везде уже проложена сеть 220В. так что по максимуму использовал бы это напряжение.
typedef
Цитата(AlexandrY @ Oct 27 2014, 17:16) *
Вообше-то это не форум АВОК.
Многие могут и не знать что такое 'гребенка', чем управляют в вашем случае сервоприводы и сервоприводы ли это, и что включают в себя контура.
Разъясните, и может больше получите ответов.

Гребенка - это а-ля коллектор, из которого выходя контура теплого пола - петли из полиэтиленовой трубы, уложенные в пол. Сервопривод, например такой - http://www.oventrop.de/ArticleInfo.aspx?art=1012842, при подаче напряжения открывает\закрывает петлю. Подобные терморегуляторы накручивают на батареи, только работают они по принципу термостата в машине, а эти управляются 220В или 24В.

Цитата(ZASADA @ Oct 27 2014, 17:24) *
если бы я автоматизировал свой дом, то исходил бы из простого принципа- везде уже проложена сеть 220В. так что по максимуму использовал бы это напряжение.

вот и мне чисто интуитивно чего то также кажется...
Подскажите плз. типовое решение когда контроллер включает\выключает 220В.
ZASADA
реле
AlexandrY
Цитата(typedef @ Oct 27 2014, 20:48) *
вот и мне чисто интуитивно чего то также кажется...
Подскажите плз. типовое решение когда контроллер включает\выключает 220В.


Только вот на прошлой неделе одалживал коллеге логгер для записи напряжения в сети.
У бедолаги в доме вдруг выгорела куча приборов, при ясной погоде, без малейших атмосферных аномалий.
Выяснилось, что рядом стоял строительный кран видать с неисправной системой торможения.
В таких случаях в сеть вырываются сотни киловат мощности и при плохом балансе на подстанции возникают дикие перенапряжения на фазах в сети.
Такое может и лифт сотворить, большие перенапряжения возникают даже когда перегорают лампочки.
Так что оочень осторожно бы использовал сетевое напряжение для автоматики.
typedef
Цитата(AlexandrY @ Oct 28 2014, 12:49) *
Так что оочень осторожно бы использовал сетевое напряжение для автоматики.

а как же тогда управление освещением, воротами и прочими потребителями 220В?
AlexandrY
Цитата(typedef @ Oct 28 2014, 11:09) *
а как же тогда управление освещением, воротами и прочими потребителями 220В?


Так и живем с этим. Чиним ворота, вкручиваем лампочки ... biggrin.gif
typedef
Цитата(ZASADA @ Oct 28 2014, 12:28) *
реле

нашел такое - http://www.aliexpress.com/item/10DA-Din-ra...1581576845.html
Что скажете? Понятно что китайское, может есть чего подобное посерьезнее...
Уж больно привлекла мысль поместить его в шкаф на дин-рейку и смотреть на светодиоды, какой из каналов включен.
AlexandrY
Цитата(typedef @ Oct 29 2014, 22:54) *
нашел такое - http://www.aliexpress.com/item/10DA-Din-ra...1581576845.html
Что скажете? Понятно что китайское, может есть чего подобное посерьезнее...
Уж больно привлекла мысль поместить его в шкаф на дин-рейку и смотреть на светодиоды, какой из каналов включен.


С симисторами надо аккуратно выбирать нагрузку.

Резкие скачки напряжения приводят к самопроизвольному открыванию тиристоров.
Резкие скачки тока приводят к пробою тиристоров.
Индуктивные нагрузки могут приводить к нестабильному отпиранию тиристоров с zerocrossing цепью.
Поскольку китайцы насчет выходных тиристоров/симисторов не дали вообще никакой спецификации то это будут эксперименты на себе.
typedef
Цитата(AlexandrY @ Oct 30 2014, 01:32) *
С симисторами надо аккуратно выбирать нагрузку.

Резкие скачки напряжения приводят к самопроизвольному открыванию тиристоров.
Резкие скачки тока приводят к пробою тиристоров.
Индуктивные нагрузки могут приводить к нестабильному отпиранию тиристоров с zerocrossing цепью.
Поскольку китайцы насчет выходных тиристоров/симисторов не дали вообще никакой спецификации то это будут эксперименты на себе.

тогда, посоветуйте плз. какое реле использовать на 220В (можно и 24В)
typedef
в очередной раз задумался над архитектурой сети и понял, что вариант CAN-узла, который опрашивает все датчики, соединенные по 1-Wire, подходит только в случае, если это будут просто датчики.

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

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


как всегда появились вопросы:

1. нормальна ли такая архитектура, если нет, то что не так?

2. на сколько реально купив готовый термостат на том же aliexpress, вставить в него свою плату управления, которая будет реализовывать функции:
- показать на LCD тек. температуру
- посылать CAN-сообщения с тек. температурой
- уметь отвечать на запросы от других CAN-узлов
- с помощью кнопок на морде изменять желаемую температуру
- при пересечении заданного порога, посылать сообщение в CAN-шину
AlexandrY
Цитата(typedef @ Nov 13 2014, 21:36) *
1. нормальна ли такая архитектура, если нет, то что не так?

2. на сколько реально купив готовый термостат на том же aliexpress, вставить в него свою плату управления, которая будет реализовывать функции:


Нынче никто дисплеями не заморачивается.
Берут смартфон с андроидом и весь пользовательский интерфейс реализуют на нем.
На CAN узле просто Bluetooth модуль или WiFi модуль ставят. А смартфон или носят или к стене приколочивают.

Насколько известно лучшие термостаты с изменяемым числом сенсоров и неопределенностью окружающей обстановки делаются на базе алгоритмов Fuzzy Logic.
Они же и наиболее экономичные.
В китайских же термостатах во первых никак не поменять программу во вторых они работают на примитивных алгоритмах.
Подключиться к китайскому LCD конечно можно, но это вынудит применить дорогой микроконтроллер с кучей ног и периферией заточенной под LCD.
На мой взгляд тупиковый путь.
typedef
Цитата(AlexandrY @ Nov 13 2014, 22:58) *
В китайских же термостатах во первых никак не поменять программу во вторых они работают на примитивных алгоритмах.
Подключиться к китайскому LCD конечно можно, но это вынудит применить дорогой микроконтроллер с кучей ног и периферией заточенной под LCD.
На мой взгляд тупиковый путь.

ну да, я имел ввиду как раз вариант взять просто красивый корпус и дисплей, остальное свое. Поскольку дилетант, то была мысль посмотреть на задней стенке модель LCD, найти доку под него и вперед.
AlexandrY
Цитата(typedef @ Nov 13 2014, 22:04) *
ну да, я имел ввиду как раз вариант взять просто красивый корпус и дисплей, остальное свое. Поскольку дилетант, то была мысль посмотреть на задней стенке модель LCD, найти доку под него и вперед.


Никакой модели на задней стенке не найдете. Такие дисплей заказные и радиолюбители их просто прозванивают и составляют карту сегментов.
Но печальней цены на микроконтроллеры поддерживающие такие дисплеи и бессмысленная трудоемкость написания софта для работы с ними
typedef
Цитата(AlexandrY @ Nov 14 2014, 00:52) *
Никакой модели на задней стенке не найдете. Такие дисплей заказные и радиолюбители их просто прозванивают и составляют карту сегментов.
Но печальней цены на микроконтроллеры поддерживающие такие дисплеи и бессмысленная трудоемкость написания софта для работы с ними

Вот это действительно печально sad.gif
Спасибо Вам за полезную информацию!
Уж просто очень привлекательно выглядит такая готовая коробочка, которую не стыдно поместить на стену.
AlexandrY
Цитата(typedef @ Nov 14 2014, 15:01) *
Вот это действительно печально sad.gif
Спасибо Вам за полезную информацию!
Уж просто очень привлекательно выглядит такая готовая коробочка, которую не стыдно поместить на стену.


Да ваша мысль не нова.
Проходили и калькофоны когда телефонный АОН вставляли в китайский калькулятор, потому что у него кнопки были красивые.
И панафоны когда в китайский стационарный телефон вставляли GSM модем и делали его беспроводным потому что у китайца был красивый дисплей.

Но это реально трудоемкие проекты. Я бы больше за такие не брался.

Juray
Цитата(typedef @ Oct 23 2014, 18:39) *
2. Вы говорите, что CAN шину можно тянуть звездой с отростками. Тут имеется ввиду 4 провода из витой пары в сторону отростка и 4 оставшихся обратно или?


Стандартная топология шины CAN - линия, от неё короткие ответвления на тройниках


на концах линии - нагрузочные резисторы общим сопротивлением 60 Ом.

максимально допустимая длина ответвлений зависит от скорости обмена (как и длина сегмента):




(взято из http://digital.ni.com/public.nsf/allkb/D5D...625795A000FC025 )

Если ответвления всё же надо делать длиннее, то каждое такое длинное ответвление должно терминироваться. При этом общее сопротивление всех нагрузочных резисторов в сегменте (фактически, соединенных параллельно) должно оставаться 60 Ом.

Также применяется чисто звездообразная топология, т.н. "Hub based" с одним соединением в центре, и длинными линиями до узлов. При этом нагрузочный резистор ставится один, в точке соединения:


(ну, резистор тут составной, такая схема уменьшает синфазные помехи)


Это из патента US5734658 фирмы Daimler-Benz.

Более того, возможно вот такое комбинирование:


В таком варианте методология прокладки сети та же, что и для Ethernet. Даже разъёмы можно использовать похожие - например, в CANopen используются RJ10, RJ11, RJ12


(подробнее - http://www.cd-systems.com/Can/can-cables.htm )
ZASADA
если нормально все продумать, то никакие ответвления не понадобятся. на каждом узле 2 разъема.
typedef
Цитата(ZASADA @ Nov 18 2014, 09:51) *
если нормально все продумать, то никакие ответвления не понадобятся. на каждом узле 2 разъема.

а можно по-подробнее Вашу мысль?
Как именно должен узел соединяться с шиной?

а также, если брать utp5e, то какие из 8 контактов принято использовать или брать лучше другой кабель под CAN ?
ZASADA
Цитата(typedef @ Nov 23 2014, 14:09) *
а можно по-подробнее Вашу мысль?
Как именно должен узел соединяться с шиной?

этому методу 100 лет в обед.на каждом устройстве 2 запараллеленых одинаковых разъема. на самом крайнем узле в разъем_1 вставляем терминатор. разъем_2 соединяем отрезком кабеля с разъем_1 следующего узла. и т.д. на самом последнем в разъем_2 вставляем терминатор. получается линия с ответвлениями почти нулевой длины.
typedef
Цитата(ZASADA @ Nov 23 2014, 18:32) *
этому методу 100 лет в обед.на каждом устройстве 2 запараллеленых одинаковых разъема. на самом крайнем узле в разъем_1 вставляем терминатор. разъем_2 соединяем отрезком кабеля с разъем_1 следующего узла. и т.д. на самом последнем в разъем_2 вставляем терминатор. получается линия с ответвлениями почти нулевой длины.

если не трудно киньте ссылкой на фотку данного разъема
ZASADA
рандомная схема из гугла. в параллель стоят 2 DB-9.
образец от микрочипа. схема на стр.26. в параллель стоят 2 разъема J1, J2
в вашем случае это будут два RJ-45 с одинаковой цоколевкой, подключенные к одной микросхеме физики CAN

по поводу кабеля utp5. видел пару раз в живом железе. разбивки по проводам стандартной нет. логично сделать 1 пару под CAN, одну под GND, одну под +POWER и последнюю смешанную один провод +POWER+второй GND. хотя видел и вариант (разбивка по 4 парам):
1. +POWER
2. CAN_L+GND
3.CAN_H+GND
4.POWER+GND
Cвинец
Как продвигается? Если это не была шутка про "решил поучиться МК попрограммировать", то подозреваю, что дальше прокладки проводов дело ещё не сдвинулось. Если работы кипят, дальше можно не читать.

Поскольку у меня идентичная ситуация, только с опережением на 1 год, могу посоветовать взять 5-вольтовые контроллеры попроще, а не STM32. Всё равно трансиверы 5V и датчики ширпотребные в основном 5V и примеров в Интернете больше под какую-нибудь Atmega32. И паять новичку TQFP44 намного проще, чем LQFP100. STM32 в виде 2хх или 4хх семейств пригодятся когда захочется видео или аудио обрабатывать, но это уже второй круг ада, не стоит забегать вперёд sm.gif)))

Я сначала нарисовал платы 1-сторонние, но ни один из моих старых контактов (которые ЛУТили платы под 1wire) не смог качественно сделать даже TQFP64 (at90can32), в итоге потерял 2-3 месяца времени и 200 баксов, т.к. пришлось выбросить at90can32 и дозаказать atmega32 + mcp2515.
Вывод: сразу рисуем 2хсторонние платы и заказываем у китайцев на сииидстудио (или российских псэлектро в 5-10 раз дороже).

Ещё посоветую выкинуть архаичное 1wire. ds18b20 подключаем к CAN, а во всех конечных устройствах сразу закладывать реакцию на данные с этих датчиков. В этом вся прелесть CAN - не нужен центральный узел, все устройства видят друг друга и работают автономно.
Я лично рядом с САN пущу rs485 для звука и видео (по CAN команды летают, по RS485 данные), но это уже как минимум третий круг ада.

Если заниматься данной задачей в режиме хобби - несколько часов в неделю, то примерно через годик будет первый результат. sm.gif
Могу выложить мою печатную плату в формате sprint layout (5х5см), сколько то времени сэкономит.


p.s. Ещё заказывать комплектующие на ebay или у официалов (с Alibaba от разных поставщиков примерно 50% комплектухи совсем трупы или отпаянное Б\У).
typedef
Цитата(Cвинец @ Jan 7 2015, 21:29) *
Как продвигается? Если это не была шутка про "решил поучиться МК попрограммировать", то подозреваю, что дальше прокладки проводов дело ещё не сдвинулось. Если работы кипят, дальше можно не читать.

Поскольку у меня идентичная ситуация, только с опережением на 1 год, могу посоветовать взять 5-вольтовые контроллеры попроще, а не STM32. Всё равно трансиверы 5V и датчики ширпотребные в основном 5V и примеров в Интернете больше под какую-нибудь Atmega32. И паять новичку TQFP44 намного проще, чем LQFP100. STM32 в виде 2хх или 4хх семейств пригодятся когда захочется видео или аудио обрабатывать, но это уже второй круг ада, не стоит забегать вперёд sm.gif)))

Я сначала нарисовал платы 1-сторонние, но ни один из моих старых контактов (которые ЛУТили платы под 1wire) не смог качественно сделать даже TQFP64 (at90can32), в итоге потерял 2-3 месяца времени и 200 баксов, т.к. пришлось выбросить at90can32 и дозаказать atmega32 + mcp2515.
Вывод: сразу рисуем 2хсторонние платы и заказываем у китайцев на сииидстудио (или российских псэлектро в 5-10 раз дороже).

Ещё посоветую выкинуть архаичное 1wire. ds18b20 подключаем к CAN, а во всех конечных устройствах сразу закладывать реакцию на данные с этих датчиков. В этом вся прелесть CAN - не нужен центральный узел, все устройства видят друг друга и работают автономно.
Я лично рядом с САN пущу rs485 для звука и видео (по CAN команды летают, по RS485 данные), но это уже как минимум третий круг ада.

Если заниматься данной задачей в режиме хобби - несколько часов в неделю, то примерно через годик будет первый результат. sm.gif
Могу выложить мою печатную плату в формате sprint layout (5х5см), сколько то времени сэкономит.


p.s. Ещё заказывать комплектующие на ebay или у официалов (с Alibaba от разных поставщиков примерно 50% комплектухи совсем трупы или отпаянное Б\У).


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

STM32 выбрал как перспективное направление. Выбор сделан естественно не из личного опыта, а после месяца гугления.
Понятно, что настоящие спецы выбирают платформу под каждую задачу. Я понимаю, что у меня времени на освоение нескольких МК не хватит точно. При небольших ценах на МК, я решил выбрать STM32, изучить его и уж делать все на нем.

Очень вовремя Вы отписались! Меня как раз мучает вопрос по архитектуре сети в целом.
Про то что в CAN нет центрального узла и каждый узел просто слушает и реагирует на сообщения от других - это то почему я и остановился на этом варианте.
Но вот окончательная концепция у меня в голове так и не оформилась.

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

не делать же из каждого датчика свой узел CAN. Потому и думаю сделать на этаже 1-Wire, который соберет все датчики и будет представлять из себя один CAN узел. Еще один узел будет исполнительный, который будет крутить сервопривода. Ну и наверное, какой-нить мозг, который будет раздавать команды.
Посоветуйте плз. как у Вас это сделано, какие провода и как проложены.

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

p.s. посоветуйте где заказывать комплектующие. Мне кажется на e-bay доставка все съест. Я честно говоря очень расчитывал на Aliexpress.
Cвинец
Цитата(typedef @ Jan 7 2015, 19:33) *
По поводу программирования, я вообще не парюсь, ибо сам профессиональный программист и уже чего только не программировал.


Если это Java, C#, Perl, c++ и тд, то это только мешать будет. Под микроконтроллеры не пишут с классами, ООП и прочими новомодными причиндалами. Наоборот, всё на глобальных переменных, я думаю и богомерзкий GOTO вполне уместен sm.gif))

Цитата(typedef @ Jan 7 2015, 19:33) *
не делать же из каждого датчика свой узел CAN


Вам раньше писали, что "из каждого датчика свой узел CAN" вполне допустимо. Лично мне непонятно как потом наращивать функционал, если по этажу будет брошен только 1wire (как по нему гонять текст для LCD или картинки/аудио/видео). Если ограничиться только теплым полом, то конечно и один большой узел на этаж допустим, просто программа будет сложнее. Особенно если предполагается взаимодействие разных этажей. Я считаю, что теплые полы должны остывать когда никого нет дома и частично остывать когда все спят, для этого ещё нужны как минимум датчики движения и дальности.


Чтобы потестить CAN надо 2 платы, а лучше больше, т.к. по первости их можно и спалить (например ковыряясь с переферией в виде 24вольтового привода). Дороговато получится (с CAN трансивером скорее всего ещё и редкость).

На ebay почти на всё free shipping и цены ниже, чем у россиских поставщиков. Aliexpress тоже нормально. Отстой это Alibaba.
typedef
Цитата(Cвинец @ Jan 8 2015, 09:44) *
Если это Java, C#, Perl, c++ и тд, то это только мешать будет. Под микроконтроллеры не пишут с классами, ООП и прочими новомодными причиндалами. Наоборот, всё на глобальных переменных, я думаю и богомерзкий GOTO вполне уместен sm.gif))

всяко можем, хотя от GOTO отучили лет 20 назад sm.gif

Цитата(Cвинец @ Jan 8 2015, 09:44) *
Вам раньше писали, что "из каждого датчика свой узел CAN" вполне допустимо. Лично мне непонятно как потом наращивать функционал, если по этажу будет брошен только 1wire (как по нему гонять текст для LCD или картинки/аудио/видео). Если ограничиться только теплым полом, то конечно и один большой узел на этаж допустим, просто программа будет сложнее. Особенно если предполагается взаимодействие разных этажей. Я считаю, что теплые полы должны остывать когда никого нет дома и частично остывать когда все спят, для этого ещё нужны как минимум датчики движения и дальности.

тут я пока в больших сомнениях. Идея была посредством сбора по 1-Wire нескольких датчиков в один CAN узел сделать из них один "умный" датчик, который будет способен ответить на запрос параметра любого из своих датчиков. Цель - сэкономить на контроллерах для CAN узлов. Если это того не стоит, то можно и отказаться.
А вообще сейчас у меня наперво задача провести кабеля, пока не заштукатурили все.
Если я правильно понимаю, то хоть для 1-Wire, хоть нет, нужно просто к каждому узлу\датчику подвести CAT5(e), разорвав его в этом месте. Пока думаю тянуть шину под потолком, опуская вертикально вниз к месту расположения узла, там разрыв и подъем обратно под потолок.
Это нормально? Как у Вас?

Цитата(Cвинец @ Jan 8 2015, 09:44) *
Чтобы потестить CAN надо 2 платы, а лучше больше, т.к. по первости их можно и спалить (например ковыряясь с переферией в виде 24вольтового привода). Дороговато получится (с CAN трансивером скорее всего ещё и редкость).

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

Цитата(Cвинец @ Jan 8 2015, 09:44) *
На ebay почти на всё free shipping и цены ниже, чем у россиских поставщиков. Aliexpress тоже нормально. Отстой это Alibaba.

ну у меня с Aliexpress пока только положительный опыт
Cвинец
Если не интересно порисовать свои платы, то купить 2-3 девборда c CAN-трансиверами за 4-7 тыр будет намного дешевле и быстрее, чем рисовать-заказывать-паять. Несколько десятков-сотен часов свободного времени дороже 7 тыр.

Где разместить провода - это не проблема (я под плинтусом. экранированная витая пара + ШВВП 2х0.75 для питания), а вот как устройства и датчики размещать неколхозно и какой корпус взять, на этот вопрос ещё не ответил для себя. ИМХО, надо на этапе отделки делать ниши и штробы под провода. Только так красиво получится. Но надо знать что и где будет заранее.

Кстати, где-то на этом форуме писали, что STM32F1xx вроде как скоро с производства снимут. Так что перспективности тоже не очень много.
typedef
Цитата(Cвинец @ Jan 13 2015, 17:54) *
Если не интересно порисовать свои платы, то купить 2-3 девборда c CAN-трансиверами за 4-7 тыр будет намного дешевле и быстрее, чем рисовать-заказывать-паять. Несколько десятков-сотен часов свободного времени дороже 7 тыр.

но вот и я также подумал

Цитата(Cвинец @ Jan 13 2015, 17:54) *
Где разместить провода - это не проблема (я под плинтусом. экранированная витая пара + ШВВП 2х0.75 для питания), а вот как устройства и датчики размещать неколхозно и какой корпус взять, на этот вопрос ещё не ответил для себя. ИМХО, надо на этапе отделки делать ниши и штробы под провода. Только так красиво получится. Но надо знать что и где будет заранее.

опа, а я думал питание по той же витой паре. Правда я думал про неэкранированную.

Цитата(Cвинец @ Jan 13 2015, 17:54) *
Кстати, где-то на этом форуме писали, что STM32F1xx вроде как скоро с производства снимут. Так что перспективности тоже не очень много.

не слышал... но это у меня пока еще впереди
A. Fig Lee
А зачем CAN с проводами? Если есть беспроводные 802.15.4?
adnega
Цитата(typedef @ Jan 13 2015, 20:31) *
но вот и я также подумал

Все мы по-маленьку делаем жилище умнее. У мну тоже есть умный дом поверх CAN на своих контроллерах аж с 2008 года.
Если интересно, то могу предоставить больше инфы через личку.
typedef
Цитата(adnega @ Jan 13 2015, 22:50) *
Все мы по-маленьку делаем жилище умнее. У мну тоже есть умный дом поверх CAN на своих контроллерах аж с 2008 года.
Если интересно, то могу предоставить больше инфы через личку.

конечно интересно!
любая инфа приветствуется, а то мозг пухнет уже sm.gif

Цитата(A. Fig Lee @ Jan 13 2015, 22:33) *
А зачем CAN с проводами? Если есть беспроводные 802.15.4?

когда "курил" тему про CAN что то мне попадалось про Wireless Can (ZegBee и т.п.) и были там отзывы не очень.
Что конкретно уже не помню, но для себя решил что не стоит.

Интересно услышать конечно мнение профессионалов. А то может и правда не стоит морочиться с проводами...
A. Fig Lee
Цитата(typedef @ Jan 14 2015, 12:28) *
когда "курил" тему про CAN что то мне попадалось про Wireless Can (ZegBee и т.п.) и были там отзывы не очень.
Что конкретно уже не помню, но для себя решил что не стоит.

Интересно услышать конечно мнение профессионалов. А то может и правда не стоит морочиться с проводами...

А я про ZigBee ничего не говорил. Только про физический уровень. Передача пакетов на 802.15.4
Майкрочиповские модули по цене грязи: 12 долларей за штуку на диджикий.
Есть еще кстати, майкрочиповский Miwi протокол сверху 802.15.4
Мы на работе отсебятину гоняем.
Ruslan1
Цитата(typedef @ Jan 14 2015, 19:28) *
Интересно услышать конечно мнение профессионалов. А то может и правда не стоит морочиться с проводами...

Я вообще не понимаю зачем тут CAN. Возьмите рабоче-крестьянский RS485 и вперед. Все гораздо предсказуемей. И отлаживаться проще и в разводке неприхотливо, и в оборудовании доступней. Почему CAN? Вам не нужны те навороты, для которых разрабатывался CAN, но все его требования Вы должны выдержать от и до, иначе он совсем работать не будет.
typedef
Цитата(A. Fig Lee @ Jan 14 2015, 20:36) *
А я про ZigBee ничего не говорил. Только про физический уровень. Передача пакетов на 802.15.4
Майкрочиповские модули по цене грязи: 12 долларей за штуку на диджикий.
Есть еще кстати, майкрочиповский Miwi протокол сверху 802.15.4
Мы на работе отсебятину гоняем.

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

Цитата(Ruslan1 @ Jan 14 2015, 20:43) *
Я вообще не понимаю зачем тут CAN. Возьмите рабоче-крестьянский RS485 и вперед. Все гораздо предсказуемей. И отлаживаться проще и в разводке неприхотливо, и в оборудовании доступней. Почему CAN? Вам не нужны те навороты, для которых разрабатывался CAN, но все его требования Вы должны выдержать от и до, иначе он совсем работать не будет.

на самом деле интересно. Может быть потом и получится RS485, сейчас главное провода правильно разложить.
Конкретно сейчас еще задумался может и впрямь рядом с витой парой какой-нить ШВВП положить под питание узлов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.