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

хочу по витой паре передавать до 100 метров данные

Делаю для себя. Не на продажу. Хочу красиво, грамотно. Изучаю STM32 c can.

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


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

пока про can читаю. Есть STM32 с кан на борту. Осталось выяснить- сразу его в линию запускать или еще что-то надо для согласования.

Да нужно, конечно, примерно такой же драйвер, как и для RS-485. Физика примерно та же, нюансы сильно другие.

Если МК без CAN, можно взять внешний CAN контроллер с драйвером, но это будет дороже.

 

Вот вам комиксы с картинками:

http://ww1.microchip.com/downloads/en/AppNotes/00228a.pdf

 

з.ы. А если ТС захочет продать свой дом целиком с такой системой, то думаю, проблем у него не будет :biggrin:

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


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

Делаю для себя. Не на продажу. Хочу красиво, грамотно. Изучаю STM32 c can.

для себя дешевле покупать (

 

 

Если МК без CAN, можно взять

драйвер can и подключить его к uart`у так же, как и 485

разница будет в отсутствии "перетягивания каната" при коллизиях

 

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


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

Сам по себе голый CAN особого смысла не имеет, равно как голый RS485. Если CAN, то надо какой-то протокол поверх него. Сразу напрашивается CANopen, фриверная реализация - CanFestival, вот тогда будет красиво и грамотно. А это, по-моему, намного сложнее в освоении, чем RS485 c Modbus RTU, что тоже красиво и грамотно, если достаточно иметь обмен мастер-слэйв и нет амбиций на обмен по принципу producer-consumer и распределенные объекты, как в CANopen. Особенно для человека, который вообще впервые обо всем этом слышит.

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


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

пока про can читаю. Есть STM32 с кан на борту. Осталось выяснить- сразу его в линию запускать или еще что-то надо для согласования.

нужен внешний драйвер еще

 

и еще если вы собрались звезду делать то вам не 485 не can не подойдет

 

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


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

жаркие споры начались)

Про can я, действительно, первый раз слышу и не работал с ним.

 

Давайте уточним- почему звезда не подойдет?

По мне- одинаково, что сигнал по одному проводу дойдет до последнего датчика, что с другого провода. Время распространения можно как-то обыграть в коде. Или тут вопросы согласования?

 

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


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

ничего кривее, надеюсь, уже не придумают

Я вживую имел дело с несколькими протоколами, сделанными на порядок хуже, чем Модбас РТУ. Не потому, что их сложнее было реализовать, наоборот, они были намного проще, самопал. Только работали криво, сбоили при помехах. А чего-либо более помехоустойчивого, чем Модбас, для RS485 - не, вживую не встречал. Растопыренных пальцев и голословия на форумах видел много, это да.

 

Давайте уточним- почему звезда не подойдет?

Отражения от концов. Лечится снижением скорости до 5..10 kbps и частичным согласованием в центре звезды. Бельгийский VelBus, сделанный на CAN-е, обещает, что кабель можно укладывать вообще как угодно ("свободная топология"), суммарная длина может превышать 1 км. Про скорость у них трудно что-то внятное найти, но наверняка ниже 20 kbps. Свободная топология с кабелями 1 км разрешена в шинах EIB/KNX (9600 бод) и C-bus (5000 бод).

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


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

Про can я, действительно, первый раз слышу и не работал с ним.

Да тут вообще-то CAN никчему, пмсм. Может даже Dallas 1-Wire подойдёт, но лучше RS-485. Спорить ни с кем не буду.

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


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

а некий terminal bus в конце шины установить?

Так звездой получится реализовать у меня? Или крутить петлю по всему дому?

Изучаю modbus.

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


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

Сам по себе голый CAN особого смысла не имеет, равно как голый RS485. Если CAN, то надо какой-то протокол поверх него.

Если Вы не видите разницы между проколами одии из которых УЖЕ обеспечивает передачу фрейма и адресацию не говоря уже о разрешении коллизий, а второй только передачу одинокого байта и вообще БЕЗ хоть какой-то возможности разрешать коллизии, то это крайне печально. CAN сам по себе обладает самодостаточностью и МНОГО превосходит практически все, что можно натянуть на RS485 в качестве следующих уровней.

 

 

нужен внешний драйвер еще

Внешним драйвером для CAN контролера может служить все, что угодно, лишь бы доминантный 0 обеспечивало. В пределе, хоть любой "TTL" буфер с третьим состоянием.

 

 

Я вживую имел дело с несколькими протоколами, сделанными на порядок хуже, чем Модбас РТУ.

Сделать что то еще хуже, несомненно можно. Но хуже Modbus RTU, это уже надо хоть немного, но постараться :)

 

Так звездой получится реализовать у меня? Или крутить петлю по всему дому?

Вообще-то Вам наверняка нужна не шина и не звезда. Вам для дома нужно дерево.

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


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

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

Думаю, от выключателей вести слаботочный провод сразу к GPIO МК. А сам приемник ставить непосредственно в люстре. Раньше думал в распределительную коробку его встраивать.

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

Архитектура построения- дерево- это точно. MODBUS и can поддерживают ее?

 

Если использовать can- нашел STM32 недорогой с can на борту. Хотите сказать, что 3,3 В уровень сигнала в шине будет достаточно для работы? Это если просто буфер на выход МК поставить.

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


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

Архитектура построения- дерево- это точно. MODBUS и can поддерживают ее?

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

Хотите сказать, что 3,3 В уровень сигнала в шине будет достаточно для работы? Это если просто буфер на выход МК поставить.

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

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


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

скорость 19200- просто опрос датчиков и включен ли свет?

длина проводов- 50 метров от центрального щитка. Не думаю, что всё-же дерево будет. Скорее, хотел бы сделать так:

От щитка веду шину к одному контроллеру, от него же к другому, от второго к третьему. Все сидят параллельно.

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

Лучше все-же на кан ставить спец. драйвер. Посоветуйте какой под мою задачу.

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


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

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

Лучше все-же на кан ставить спец. драйвер. Посоветуйте какой под мою задачу.

Ставите обычные 485. На такой скорости и на таких расстояниях можете соединять все как попало.

 

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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