Проводной интерфейс

086dx66

New member
Всем привет
Стадия идеи
....
Есть необходимость опрашивать много устройств по сети(100+) конечные устройства могут быть pir, dht,датчик напряжения, света, щелкать релешками. В качестве мк - атмеги/тиньки. Ножек,возможностей и производительности хватает.

Будут сегменты, в одном сегменте может быть ~30-50 устройств
Длина линии сегмента может быть до 100м
Сегментов до 5-6 , должны работать в рамках своего сегмента не пересекаясь с устройствами из других сегментов. Сбор данных от всех сегментов на пк.

Почитал про протоколы
Варианты

Rs485 (чип max1487 128 девайсов),
Минусы
интерфейс мастер слейв - нужен будет постоянный опрос всех устройств - задержка на срабатывание конечных устройств.
Плюсы
Расстояние до 1.2км
Дешевые модули
Провод 2 жилы можно телефонку, дешевый кабель.


Lan видел модули пошли на w5500 уже , не пробовал пока
Давно смотрел на enc28j60, но по ним отзывы были не очень
по w5100 норм
Минусы
Расстояние стабильно 100м на 100мбс можно ставить хабы/свитчи/репитеры для усиления сигнал
Читал тянули 300метров на 10мбс - работало
Цена лан модуля дороже, размер больше
Кабель 4 жилы витая пара
Можно 8жил, 2 пустить под пое (какое максимум расстояние для пое? 48в, а на конечных девайсах понижать для нужного)
Плюс
Интерфейс взаимодействия все со всеми
По лану можно заюзать например mqtt


Подскажите может я еще что-то упустил
 

pvvx

Активный участник сообщества
CAN. Как раз для ваших задач пойдет... Авто-контролька, авто-подтверждение доставки пакета, адресация между всеми устройствами, приоритетность по адресации для исключения колизий... Если полная реализация трансиверов - то определяет и замыкание, т.е. работает по 1 проводу с понижением скорости...
Есть только беда у дешевых трансиверов - при отключении питания приглушают линию. На RS-485 это ещё хуже... На всех проводных это беда есть, кроме разделения в изернет на свичах...
Всегда использую в таких случаях CAN с момента его создания первой редакции... Проблем там нет. Он для этого и разрабатывался.
 
Последнее редактирование:

086dx66

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

pvvx

Активный участник сообщества
Подскажи пожалуйста , а железо какое используешь для этого, провереное
И сколько макс устройств в сети было и макс длина сети
И если не секрет что это был за проект
Проектов было сотни.
Длина сетей доходила до 200 метров в отдельном луче. Соединяли всегда в беспорядке, как проще было - лучами и последовательно.
Кол-во устройств в реале доходило до сотни и то на время теста, т.к. больше пары десятков никогда нужды не было.
И счас где-то работают... Проекты промышленные....
Первые, до выхода микрух шинных драйверов, приходилось собирать на рассыпухе :) Тоже нормально работало с амплитудой по лапше в 12В :)
 

086dx66

New member
;)
А железо какое для передачи?
На rs485 max 485 или 1487 смотрел используют
 

pvvx

Активный участник сообщества
;)
А железо какое для передачи?
На rs485 max 485 или 1487 смотрел используют
Счас его куча. Отличий от драйвера RS-485 практически нет. Даже можно объединять для тестов - работают оба по той-же линии :)
Из старых, раз вы любите подешевле, вроде был Si9200ey...
Подбирайте по питанию... C гальвано-развязкой или без... iso1050
Как-бы болшиногие корпуса мы уже не пользуем... Поиск в Google CAN Transceiver

SN65HVD230 CAN bus приемопередатчик модуль связи для arduino купить на AliExpress
 
Последнее редактирование:

086dx66

New member
Во! СПАСИБО!
Я почему то думал что can шина только в авто используется
По крайней мере только там с ней сталкивался

А если вопрос надежности в приоритет (не военные нужды конечно где она должна быть запредельная) то какой модуль/микросхему посоветуете. Или sn65в принципе надежен ?
 

pvvx

Активный участник сообщества
Я почему то думал что can шина только в авто используется
По крайней мере только там с ней сталкивался
Протокол не пошел в авто на 100%. Может далее используют... А то разрабатывались и авто-лампочки с CAN :) Т.е. по всей машине всего 4-ре провода: CAN+ CAN- +12V GND. :)
А если вопрос надежности в приоритет (не военные нужды конечно где она должна быть запредельная) то какой модуль/микросхему посоветуете. Или sn65в принципе надежен ?
Вам то любой пойдет. Но про снятие питания с модулей без отключения от общей шины придется позаботиться...
 

sharikov

Active member
... какой модуль/микросхему посоветуете. Или sn65в принципе надежен ?
TJA1050, MCP2551, ISO1050. Последняя - если нужна гальваническая изоляция.
Чипы содержат TXD dominant time-out’ и не могут работать на низких скоростях.

Но про снятие питания с модулей без отключения от общей шины придется позаботиться...
Глупости! Сертифицированные трансиверы обязаны не мешать работе шины при отключении питания - требование стандарта, так оно и есть на самом деле. Если вы ставите какое-то говно или rs485 трансиверы вместо can вы сами себе злобный буратино.

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

Посмотрите лучше на что нибудь более простое. LIN, K-Line или еще что нибудь вплоть до 1-wire.
 

pvvx

Активный участник сообщества
Глупости! Сертифицированные трансиверы обязаны не мешать работе шины при отключении питания - требование стандарта, так оно и есть на самом деле. Если вы ставите какое-то говно или rs485 трансиверы вместо can вы сами себе злобный буратино.
А вы попробуйте - проверьте :) Осцил надеюсь есть...
Особо интересует при чем тут драйвер и CAN? Не могли бы уточнить? :)
Про RS-485 уточнено сразу - для теста, что это фурычит :p
CAN - неудачная идея для начинающего разработчика или хобби-проекта. Высокий порог вхождения.
Без CAN анализатора на пустом месте и без опыта проект CAN сети не поднять. Со стоимостью анализаторов желающие могут ознакомиться самостоятельно на сайте IXAAT (коробка там не стоит ничего - вся цена в софте).
Высокий порог вхождения при разработке сети на сотню элементов? Есть другие предложения, кроме стертых в вашем ответе? :)
Возможно вы что-то путаете. Разговор не про CAN-Open, а о простом устройстве составляемом из многочиcленных примеров к разным MCU c CAN с заданием одного адреса (одной маски приема) и передачи к главному, всё по фиксед адресам. 2 функции :) Этого человеку на первое время за глаза для построения желаемого.
 
Последнее редактирование:

086dx66

New member
Спасибо коллеги за ответы
Вчера пол вечера читал про rs, can.
Пока для себя выбрал обычную витуху ethernet. И чип w5100. Усилить сигналы будет просто, разработка проще, poe если надо, масштабировать проще(при условии наличия питания). И все оборудование отлажено годами. Ну и по лану можно кучу готового оборудования подключить и оно сразу же будет работать.

Почитал про w5500 который недавно вышел , пока баги у него.
 

sharikov

Active member
А вы попробуйте - проверьте :) Осцил надеюсь есть...
Проверил. Сеть работает как с обесточенным TJA1050 так и с MCP2551. Извращениями с 485 трансиверами не страдаю.
Измерения осциллографом:
TJA1050
Амплитуда доминантного уровня CANL-CANH = 1.9V, при обесточивании 1 узла не меняется.
Напряжения рецессивного уровня относительно gnd при обесточивании снижается. Изучение ДШ показало что причина в делителе на 1/2VCC - он у TJA1050 не отключаемый. Но работать все равно будет хоть и по одному проводу CANH.

MCP2551
Амплитуда доминантного уровня CANL-CANH = 1.9V, при обесточивании 1 узла не меняется.
Напряжение рецессивного уровня при обесточивании никак не меняется. Согласно ДШ в mcp2551 делитель подключен через управляемый буфер который отключается при срабатывании Brownout. Вывод VREF при обесточивании просаживается (но я его не использую).

Выводы:
1 С фирменными CAN трансиверами обесточивание узла не нарушает работу сети (как и обещалось по стандарту).
2 TJA1050 лучше не использовать
3 Если используется сплит терминация с подключением средней точки делителя к VREF обесточивание этого узла может нарушить работу сети. (на самом деле работать будет но в несимметричном однопроводном режиме)


Про RS-485 уточнено сразу - для теста, что это фурычит
Поставьте не fail-safe трансивер rs485 - фурычить перестанет.
 

086dx66

New member
Спасибо за инфо
Получает лучше юзать MCP2551 если по 2м проводам работать.
Пока для себя все таки решил лан использовать
Слишком много устройств которые из коробки работают по сети без доп оборудования и требуют минимальной настройки.
 

pvvx

Активный участник сообщества
Проверил. Сеть работает как с обесточенным TJA1050 так и с MCP2551. Извращениями с 485 трансиверами не страдаю.
Был заказ на устройство с обоими интерфейсами с выходами на те-же ноги. По заказу - переключался в конфиге, но для теста и проверял одновременно - работают оба и без проблем. :p
Были ещё устройства с обоими типами на те-же выходные ножки, но тип определялся установленным драйвером на плату при монтаже. Для отладки ставил оба - тоже прекрасно совмещается... :p
Выводы:
1 С фирменными CAN трансиверами обесточивание узла не нарушает работу сети (как и обещалось по стандарту).
2 TJA1050 лучше не использовать
3 Если используется сплит терминация с подключением средней точки делителя к VREF обесточивание этого узла может нарушить работу сети. (на самом деле работать будет но в несимметричном однопроводном режиме)
Ну вот и подтвердили, что когда в сегменте выключено несколько устройств - линия скончалась. Мелкая зависимость от типа драйверов дает только максимальное кол-во отключенных устройств для работоспособности сети. Связано это с внутренними схемами драйверов и xMOS выход чипа всегда имеет паразитный диод на питание. Различие включения чипа тоже имеет значение - зарядка емкости его питания от линии... Есть решения и этого вопроса, но надо долепливать детали...
На главный вопрос так и не ответили. Кратко: В спецификацию CAN не входят драйвера.
 
Последнее редактирование:

pvvx

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

sharikov

Active member
Ну вот и подтвердили, что когда в сегменте выключено несколько устройств - линия скончалась. Мелкая зависимость от типа драйверов дает только максимальное кол-во отключенных устройств для работоспособности сети. Связано это с внутренними схемами драйверов и xMOS выход чипа всегда имеет паразитный диод на питание.
Линия продолжает работать. Неидеальность наблюдается осциллографом.
Зависимость от типа драйвера есть: MCP2551 (проверено) и TJA1040 (по AN) не сажают линию вообще. TJA1050 сажает слабо (чтобы перестало работать надо обесточить более десятка узлов да и то не факт что перестанет работать - доминантный уровень не страдает от просадки). PCA82C250 сажает "в ноль".
Не все MOS чипы имеют диод на питание: 74LVC*
 

pvvx

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

Зависимость от типа драйвера есть: MCP2551 (проверено) и TJA1040 (по AN) не сажают линию вообще. TJA1050 сажает слабо (чтобы перестало работать надо обесточить более десятка узлов да и то не факт что перестанет работать - доминантный уровень не страдает от просадки). PCA82C250 сажает "в ноль".
Уже указал - поставьте диод на его питание с кондером. Зарядит его от линии и не будет сажать, как и в случае вашей проверки TJA1040 включенной по другой схеме.
Не все MOS чипы имеют диод на питание: 74LVC*
Да, если N-P-N ключ, а не полноценный выход. Объяснять различия работы на линию ключа и выхода с малым обратным сопротивлением? Может сами - L и коммутатор, настройка у драйвера скорости нарастания сигнала... :)
Т.е. "фирменный" в вашем сленге переводится как самый кривой и дешевый и не соответствующий спецификации для работы на токовую петлю...

То-то я гляжу, что вы пишите:
CAN - неудачная идея для начинающего разработчика или хобби-проекта. Высокий порог вхождения.
 
Последнее редактирование:
Сверху Снизу