
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Сообщ.
#1
,
|
|
|
Есть 10-20 плат ардуино и один центральный компьютер, нужно организовать между ними связь и желательно поменьше занятых проводов
Добавлено Думаю над идеей умного дома в каждой комнате будет по контролеру Ардуино и где-то будет центральный компьютер, который принимает состояние, анализирует и раздает команды. Сейчас ищется шина для обмена информации. Самый простой способ использовать приходящий в голову. делать постоянный опрос всех устройств подрят, но это лишняя нагрузка на ПК и платы |
Сообщ.
#2
,
|
|
|
Цитата Сейчас ищется шина для обмена информации. 1-wire? |
Сообщ.
#3
,
|
|
|
Цитата orb @ Сейчас ищется шина для обмена информации. RS485 ? |
Сообщ.
#4
,
|
|
|
а подробнее
как наладить общение по этой шине? Добавлено Цитата ЫукпШ @ это выходит что все платы соединяютсяRS485 в один провод RX в один провод TX В один провод земля Далее, соединяем жмут проводов RX с центральным компьютером TX и общий TX с RX ПК. Как обрабатывать информацию если все платы одновременно будут передавать данные? |
Сообщ.
#5
,
|
|
|
Цитата orb @ это выходит что все платы соединяются в один провод RX в один провод TX В один провод земля Далее, соединяем жмут проводов RX с центральным компьютером TX и общий TX с RX ПК. Как обрабатывать информацию если все платы одновременно будут передавать данные? Нет. У RS485 есть A, /B (/B - это инверсия A) и GND. Все сигналы соединяются шлейфом. При передаче A- TXD, при приёме - RXD. Оба упомянутых интерфейса полу-дуплексные. Т.е. в некий период времени может работать только один передатчик. У обоих упомянутых интерфейсов имеется один MASTER - как правило центральный компьютер и SLAVE-ы - все остальные абоненты. Общий алгоритм такой - Мастер спрашивает, Слэйв отвечает. Слэйв не может начать передачу произвольно. |
Сообщ.
#6
,
|
|
|
Цитата ЫукпШ @ тогда если у меня 20 плат, то центральный ПК будет их опрашивать с загрузкой 100% Общий алгоритм такой - Мастер спрашивает, Слэйв отвечает. ![]() в секунду на одной плате может быть 7 разных событий с частотой около 3 раз. С другой стороны например, плата которая редко используется и стоит в коморке в которой нет деятельности в течении месяцев и соответственно нет изменения статуса, но центральный ПК все равно будет ее дергать 3 раза в секунду ![]() Это будет план Б мне нужно чтобы центральный ПК делал опрос, например, раз в минуту всех устройств и в тоже время любое устройство могло само начать передачу данных, если что-то произошло Добавлено Цитата Prince @ интересная вещь1-wire читаю как ней пользоваться и сколько у нее пропускная способность Добавлено 1-wire тоже получается что центральный ПК ведущий, датчики ведомые и их нужно постоянно опрашивать Добавлено тогда вопрос в другом если у меня будет штук 30 плат и каждую мне нужно опросить 4 раза в секунду. Каждая плата кроме ИД будет возвращать около 10-15 байт данных Это нормальный подход? |
Сообщ.
#7
,
|
|
|
Цитата сколько у нее пропускная способность Цитата если у меня будет штук 30 плат и каждую мне нужно опросить 4 раза в секунду. Каждая плата кроме ИД будет возвращать около 10-15 байт данных Цикл общения с устройством на шине выглядит так(берем максимальные значения временных параметров(в мкс)): Reset Pulse 480 Presence Pulse 240 Match ROM Command 8 бит x 120=960 Send ROM 64 бит х 120 = 7680 Read Data command 8 бит х 120=960 Read Data 15 байт х 8 бит х 120 =14400 Итого: 480+240+960+7680+960+14400=24720 мкс = 25 мс. Или, примерно 40 циклов в секунду. Если взять минимальные значения, тогда примерно 80 циклов. В стандартном режиме(не overdrive). С сохранением совместимости с типовыми 1-wire устройствами: http://www.maxim-ic.com/products/1-wire/ 30 устройств, 15 байт, 4 раза в секунду вряд ли, если не продумать протокол обмена. Скажем, пусть устройство возвращает только изменившиеся параметры. Цитата С другой стороны например, плата которая редко используется и стоит в коморке в которой нет деятельности в течении месяцев и соответственно нет изменения статуса, но центральный ПК все равно будет ее дергать 3 раза в секунду Зато ПК "знает" 3 раза в секунду о том, что все устройства на шине присутствуют. Представь, твое устройство оторвали хулиганы, или оборвали провод, месяц назад, а ты ждешь изменений статуса. Кроме того, например, температурные датчики DS18B20 реагируют на команду alarm search(ECh). Она аналогичная Search ROM, за тем исключением, что на неё откликаются те датчики, в которых значение температуры выходит за установленные пределы. Можно использовать для своих устройств тот же принцип. |
Сообщ.
#8
,
|
|
|
Цитата Prince @ мне хватит раз в минуту, что бы быть уверенным что устройство не украли хулиганы Зато ПК "знает" 3 раза в секунду о том, что все устройства на шине присутствуют Добавлено есть и другая проблема каждая плата ардуино стоит не для того что бы тупо отдавать данные о статусе, у нее есть и куча другой работы Мне не нравиться что я ее буду дергать 4 раза в секунду и она будут отвечать что ничего не произошло ![]() Добавлено я вот думаю может использовать несколько шин? 1-wire — для опроса датчиков раз в минуту RS485 — для того что бы датчики сообщали что у них произошло что-то ? Добавлено как вообще поступить правильно? |
Сообщ.
#9
,
|
|
|
Цитата Мне не нравиться что я ее буду дергать 4 раза в секунду и она будут отвечать что ничего не произошло На самом деле, не 4 раза а намного больше. Протокол ведь будет реализован програмно, а значит, контроллер должен обрабатывать все события на шине. Можно воспользоваться принципом alarm search. Цитата каждая плата ардуино стоит не для того что бы тупо отдавать данные о статусе, у нее есть и куча другой работы Плата "не переаботает". Контроллеру все равно, команду nop выполнять или mov отработать. Главное, чтобы успевал выполнять все, что от него требуется. Успеет или нет, нужно будет прикидывать. В "просто контроллере" мониторинг шины был бы построен на прерываниях. Скажем, срабатывание по переднему фронту, установка триггера. Срабатывание по заднему фронту, сброс триггера, вычисление длительности импульса, принятие решения, что делать дальше. Допустим, это был ресет, длительностью 480 мкс. Т.е., 480 мкс между фронтами импульса контроллер мог быть занят чем-нибудь другим, нежели обработкой событий шины. Или, идет передача данных на шине между мастером и другим устройством, передача бита занимает 60-120 мкс. Каждые 60-120 мкс на несколько мкс контроллер будет отвлекаться на события на шине, "понимать", что он "не при делах" и заниматься дальше своей работой. При тактовой частоте 10 Мгц для выполнения "основных" задач, у контроллера останется времени куча и с горкой. А какие возможности ардуино предоставляет, без понятия. |
Сообщ.
#10
,
|
|
|
Ардуино пока звучит теоретически, у меня денег не хватит накупит столько плат, да и они не всегда будут подходить под необходимые задачи.
Скорее всего на ардуино будет тестится, изучаться и проектироваться, а потом соберется плата на микроконтроллере, который будет больше подходить Добавлено Ардуино поддерживает прерывания. я так и планировал использовать плату. Основная программа проверяет статусы, делает свои дела. В какой-то момент приходит запрос от ПК и плата отдает статус датчиков и потом продолжает делать свои дела. Но например, когда на каком-то датчике есть сигнал, то все же хочется уведомить центральный ПК, а потом сделать то что плата и должна сделать |
Сообщ.
#11
,
|
|
|
Цитата В какой-то момент приходит запрос от ПК и плата отдает статус датчиков и потом продолжает делать свои дела. Не, все не совсем так. Во время запроса от ПК и во время отдачи статуса датчиков контроллер продолжает делать свои дела, ненадолго отвлекаясь на обработку прерываний. Собственно обработка запроса - это может быть "прочитать 15 байт по некоторым адресам и перенести значения оттуда по адресу буфера 1-wire", из которого контроллер будет уже отдавать статус датчиков последовательно, по одному биту, по событиям на шине, в обработчиках прерываний(а в интервалах между прерываниями продолжать свою "основную" деятельность, которая в свою очередь тоже как правило повязана с обработкой прерываний). |
Сообщ.
#12
,
|
|
|
Цитата orb @ в секунду на одной плате может быть 7 разных событий с частотой около 3 раз. С другой стороны например, плата которая редко используется и стоит в коморке в которой нет деятельности в течении месяцев и соответственно нет изменения статуса, но центральный ПК все равно будет ее дергать 3 раза в секунду Всё проще. Контроллер абонента должен иметь достаточный буфер для хранения данных. Кроме того, не могу понять твои расчёты. Ты нигде не оперируешь скоростью передачи. А её без особых хлопот можно менять в широких пределах. Используй например 115200 ~ 11,5 кБ/сек. 125000 - 12,5 кБ/сек -> 8 мкСек/бит 250000 - 25 кб/сек -> 4 мкСек/бит |
Сообщ.
#13
,
|
|
|
Цитата ЫукпШ @ пока не определился с шиной и проблема не в скорости шины, а в том что придется постоянно запрашивать данные Ты нигде не оперируешь скоростью передачи. |
Сообщ.
#14
,
|
|
|
4 раза в секунду ответить запросом 15-30 байт данных - это проблема загрузки контроллера? orb, не смеши. Это копейки.
|
Сообщ.
#15
,
|
|
|
центральный компьютер будет опрашивать 30 таких плат. каждую 4 раза в секунду
Добавлено Цитата Adil @ поэтому и узнаю Это копейки ![]() я не знаю как делать правильно |
Сообщ.
#16
,
|
|
|
Со стороны ПК - 100 плат по 10 раз в секунду по 100 байт - это 100 кбайт/с, не копейки, но близко к ним, с учётом, скажем, максимальной скорости 300 кбит/с на длине витухи 300 м.
|
Сообщ.
#17
,
|
|
|
Спасибо
так значить и буду делать на самом деле, плат думаю будет штук 10 может даже и меньше Добавлено шина 1-wire тогда подойдет у нее 300 метров длины у меня по длине наверное 50м максимум |
Сообщ.
#18
,
|
|
|
Если реализовывать "нормальную" шину 1-wire, с возможностью подключения 1-wire девайсов, работающих по стандартному протоколу, скорость будет ограничена стандартом, а не возможностями МК/ПК. Выкладки для цикла обмена с устройством я приводил. Т.е., я хотел сказать с одной стороны то же самое, что и Adil(что МК "потянет" шину 1-wire без проблем), а с другой стороны, 30 устройств, 15 байт данных, 4 раза в секунду, без дополнительных хитростей, сама шина 1-wire "не потянет". 20 устройств - возможно, 10 устройств - вполне.
|
Сообщ.
#19
,
|
|
|
Цитата Prince @ ага, это сохранилReset Pulse 480 Presence Pulse 240 Match ROM Command 8 бит x 120=960 Send ROM 64 бит х 120 = 7680 Read Data command 8 бит х 120=960 Read Data 15 байт х 8 бит х 120 =14400 Итого: 480+240+960+7680+960+14400=24720 мкс = 25 мс. Или, примерно 40 циклов в секунду. то есть, без переделок у нас можно 10 устройств опрашивать 4 раза в секунду Добавлено на самом деле я еще не знаю сколько будет байт, так что это информация как раз для меня и важна Часть устройств я могу выделить в группу которую опрашивать стоить реже, раз в 5 секунд. А часть устройств объединить одной более крутой платой |
Сообщ.
#20
,
|
|
|
Цитата ага, это сохранил IButton standard DS18B20 1-Wire Digital Thermometer Цитата то есть, без переделок у нас можно 10 устройств опрашивать 4 раза в секунду Можно и 5 раз, и 6, и 7, и возможно, 8, на пределе пропускной способности шины, при "нормальной" скорости обмена. Если я не ошибся в расчетах. |
Сообщ.
#21
,
|
|
|
Цитата orb @ Думаю над идеей умного дома Цитата orb @ я не знаю как делать правильно orb, не смеши и забудь и об Ардуино и о всяких RS и 1-Wire. Посмотри в сторону контроллеров с Ethernet на борту. И все. В качестве ЦП обычный комп с чем угодно на борту. ![]() |
Сообщ.
#22
,
|
|
|
Цитата medved_68 @ и забудь и об Ардуино ардуино там точно не будет (у меня денег не хватит), будут какие-то самодельные платы, но эти платы будут похожи на Ардуино в плане архитектуры ![]() Цитата medved_68 @ дай примеры. Но если каждая такая плата будет 30$+ то у меня не хватит денег Посмотри в сторону контроллеров с Ethernet на борту ![]() |
Сообщ.
#23
,
|
|
|
Цитата orb @ дай примеры. Нет проблем. Соседняя тема. Со Слесарем перетри. Он на них еще со стиралки "подсел" (ИМХО). Не хочешь такое (из соображений финансового плана) - бери связку обычного 18 пика и ENC28j60. Отлично работает. На 16 переход возможен, но не рекомендую. Я огреб по самое небалуй на некоторых моделях сбои по SPI. ![]() ![]() Добавлено Да и еще. Стек ТСР от Микрочипа позволит достаточно быстро все это развернуть. Без дотошного погружения в программирование. ![]() |
Сообщ.
#24
,
|
|
|
пока ничего не понял
буду учить А чего PIC? AVR плохо разве? |
Сообщ.
#25
,
|
|
|
medved_68, редлагаешь orb-у самостоятельно изготовить удаленные девайсы на связке 18 пика и ENC28j60? Тянуть к каждому девайсу отдельную витую пару от места распололжения коммутатора, включать в сетевой коммутатор? Или я неправильно понял суть простоты твоего предложения?
![]() |
Сообщ.
#26
,
|
|
|
Цитата Prince @ неправильно понял суть простоты твоего предложения? ![]() А ты предлагаешь также тянуть 1-Wire? ![]() Цитата Prince @ самостоятельно изготовить удаленные девайсы на связке 18 пика и ENC28j60 Для тебя сие неможно? Или ты думаешь, что это настолько трудно? Хорошо, модуль с такой микросхемой стоит дешевле платы Ардуино (однозначно). Взять модуль, привесить на плату контроллера, залить стек и? ![]() ![]() Цитата Prince @ Тянуть к каждому девайсу отдельную витую пару от места распололжения коммутатора, включать в сетевой коммутатор? Ты легко можешь перейти на Wi-Fi. И обойтись без этих проводов. Нет желания? Тогда МГц радиомодуль точка-точка (радиоудлинитель). Это дорого? ![]() Добавлено Цитата orb @ А чего PIC? AVR плохо разве? Хозяин барин. Под ПИК есть стек. Под AVR стека не встречал. ![]() |
Сообщ.
#27
,
|
|
|
Цитата А ты предлагаешь также тянуть 1-Wire? Не так же. Шинная топология и звезда - не одно и то же. Цитата И строгие тайминги? Я думаю, что уже имеющаяся в наличии плата ардуино и тот же DS18B20 - неплохой вариант для того, чтобы познакомиться с программированием МК, отловить эти самые тайминги на линии связи 10/20/50 м, на 30 см короче/длиннее, с разной топологией, почувствовать, стоит ли возиться с 1-wire дальше. Не понравится, не получится, искать другой вариант, может быть, твой или ЫукпШ. Цитата Нет (ИМХО), уж лучше витую пару.... Кто ж тебе не дает витую пару под 1-wire и тем более RS-485 тянуть. Цитата Для тебя сие неможно? Или ты думаешь, что это настолько трудно? Хорошо, модуль с такой микросхеемой стоит дешевле платы Ардуино (однозначно). Взять модуль, привесить на плату контроллера, залить стек и? Это не сложнее, чем отлаживать библиотеку чтения IButton, которая почему то напрочь не воспринимает код пропуска команды ROM только потому, что длинна линии увеличилась на 30 см. Думаю, в принципе для меня сие можно, но вот так вот сходу - сложно. Нужны наработки(как и для 1-wire). Модуль с такой микросхемой(pic или AVR), с реализацией 1-wire, без связки с ENC28j60 ещё дешевле, и миниатюрней. Насчет отладки какой-то библитотеки...так отлаживай! ![]() Взять модуль, привесить плату контроллера, залить стек. Проще простого. Ты так понятно, доступно и подробно объяснил. Цитата Ты легко можешь перейти на Wi-Fi. И обойтись без этих проводов. Нет желания? Тогда МГц радиомодуль точка-точка (радиоудлинитель). Это дорого? Все у тебя легко. Сеть на базе wi-fi или радио модулей ещё проще, чем предыдущее твое предложение? ![]() ps. Может быть, твое предложение отличное(ведь задумку орб-а в подробностях мы не знаем). Но советы ты даешь...не знаю, легкомысленно, что ли. ![]() |
Сообщ.
#28
,
|
|
|
Цитата Prince @ Взять модуль, привесить плату контроллера, залить стек. Проще простого. Ты так понятно, доступно и подробно объяснил. А конкретика будет потом. Когда начнутся (если начнутся) камни. ![]() Цитата Prince @ Все у тебя легко. Да. При существующей степени интеграции это все действительно легко. Не нужно искать сложности там, где их в принципе быть не может. Для тебя тяжело разобрать заголовок IP пакета в НЕХ-кодировке по описанию? Тогда для тебя все это будет очень сильно тяжело и предстоит задуматься о смене профессии. На дворника, к примеру. ИМХО. ![]() Цитата Prince @ А кто говорит, что с ходу? С кондачка только девчонки снимаются, и то не всегда. Любой ерунде предшествует подготовка. И пройдя сие один раз - второй раз повторить просто. Может поэтому у меня все это легко? Думаю, в принципе для меня сие можно, но вот так вот сходу - сложно. ![]() Цитата Prince @ Но советы ты даешь...не знаю, легкомысленно, что ли. ![]() Ты ошибаешься. В данном случае я не даю советов. Я рекомендую один из вариантов, и рекомендую не "просто захотелось". Для это есть все основания, и если тебе они не видны - отбрось рекомендацию и иди своим путем. Грабли будут обеспечены, но они будут ТВОИ. В этом есть свой секс, не так ли? ![]() ![]() ![]() ![]() Цитата Prince @ Сеть на базе wi-fi или радио модулей ещё проще, чем предыдущее твое предложение? ![]() Ты не поверишь.... ![]() ![]() |
Сообщ.
#29
,
|
|
|
Цитата Prince @ этого делать нехочетсяТянуть к каждому девайсу отдельную витую пару от места распололжения коммутатора по жилому дому видеть кучу проводов, как то не улучшить картину дизайна Добавлено Цитата medved_68 @ для всех приборов это всего 2 общих проводка А ты предлагаешь также тянуть 1-Wire? Добавлено Цитата medved_68 @ я уже писал что Ардуино написано как пример, на нем я тренируюсь. те платы которые будут стоять окончательны будут похожи по функционалу на ардуино стоит дешевле платы Ардуино Добавлено Цитата medved_68 @ объясняй, есть необходимость Ты бы еще I2C порекомендовал для связи на 30 метров. ![]() |
Сообщ.
#30
,
|
|
|
Цитата Тогда для тебя все это будет очень сильно тяжело и предстоит задуматься о смене профессии. На дворника, к примеру. ИМХО. Ага, уел, спасибо на добром слове. Цитата А вот рекомендованное тобою (в частности 1-Wire шина) - полнейшее фуфло (уж извини ). Ты бы еще I2C порекомендовал для связи на 30 метров. Надеюсь, объяснять и разжевывать почему нет необходимости? Как раз неплохо бы разжевать. Иначе, все твои заявления выглядят совсем голословными. Объясни, пожалуйста, причины неработоспособности сети 1-wire, только объясняя, не нужно метаться от Ethernet к wi-fi, потом к I2C а затем к USB и сводить объяснения к тому, что ты крут и тебе море по колено... Цитата для всех приборов это всего 2 общих проводка Или 3 - если тянуть питание. Кабель (5-й категории) и кучка ответвлений. Схема разводки подобна электрической, под розетки. |
Сообщ.
#31
,
|
|
|
Цитата orb @ для всех приборов это всего 2 общих проводка Ну...ну. ![]() Цитата orb @ объясняй, есть необходимость Почитай про стандарт I2C - ДЛЯ чего он был разработан. Именно ДЛЯ чего, а не ВОПРЕКИ. И про USB (как ключевую вешку) не забудь. И мозаика сложится. Цитата orb @ по жилому дому видеть кучу проводов, как то не улучшить картину дизайна "Веревка" (на сегодняшний день) является самым надежным в плане "проложил и забыл". Так что хочешь не хочешь, а придется. Хотя бы на ответственных участках. А если еще учесть достаточно простой перевод на гиг... И выгоды от увеличения пропускной способности канала без изменения топологии... Да, штроборез позволит весьма съекономить время. ![]() ![]() Добавлено Цитата Prince @ Как раз неплохо бы разжевать. Иначе, все твои заявления выглядят совсем голословными. Объясни, пожалуйста, причины неработоспособности сети 1-wire (Тяжело вздохнув) Я разве говорил о неработоспособности? ![]() ![]() ![]() ![]() ![]() ![]() ![]() Цитата Prince @ Или 3 - если тянуть питание. Кабель (5-й категории) и кучка ответвлений. ![]() ![]() Цитата Prince @ Ага, уел, спасибо на добром слове. Не обижайся. ![]() ![]() |
Сообщ.
#32
,
|
|
|
Цитата Prince @ это не проблема, взять один сетевой кабель с восемью жилами. Хотя питание я думаю будет от розетки на большинстве плат Или 3 - если тянуть питание. ![]() Они же будут не просто висеть, а чем-то управлять и иметь кучу датчиков |
Сообщ.
#33
,
|
|
|
Цитата orb @ Хотя питание я думаю будет от розетки на большинстве плат ![]() orb, не делай так. ![]() |
Сообщ.
#34
,
|
|
|
Цитата Т.е. все равно витая пара...Так почему бы не Ethernet? А если учесть, что много контроллеров на 10МБ - то вполне 1 кабель два девайса.... А 10 девайсов - 5 кабелей. И ты что-то там говорил про простой перевод на гиг. Цитата Prince, ты же сам насчет записи звука/микшера кому то советовал (не мне) пользовать микшер ( ЕМНИП), как самое надежное и т.д. ![]() Я был тогда прав. И я сейчас прав. Для начала выбрать физический уровень попроще, реализуемый програмно на базе линии ввода/вывода общего назначения МК, докупить один/два датчика температуры к уже имеющейся в наличии плате контроллера, подключить их 1 - 30 метровой( ![]() И ты тоже прав. Etnernet позволит по одной сети не только данные низкоскоростных датчиков/исполнительных устройств гонять, но и аудио, видео. Если есть необходимость. Добавлено Цитата это не проблема, взять один сетевой кабель с восемью жилами. Хотя питание я думаю будет от розетки на большинстве плат Они же будут не просто висеть, а чем-то управлять и иметь кучу датчиков Каких плат? Нельзя ли конкретизировать, что там будет, на "том" конце кабеля? |
Сообщ.
#35
,
|
|
|
Цитата Prince @ Etnernet позволит по одной сети не только данные низкоскоростных датчиков/исполнительных устройств гонять, но и аудио, видео. Если есть необходимость. Поверь, необходимость ОБЯЗАТЕЛЬНО появится. ![]() Цитата Prince @ Да микшер-то каким боком... Тем, что там ты двинул ключевую мысль типа - зачем тебе заморачиваться в дальнейшем с поддержкой, проще научиться работать с микшером. А о совместимости (в дальнейшем) позаботятся писатели Оси. Цитата Prince @ И я сейчас прав. Советуя 1-Wire на 5-10 метров? ![]() ![]() Добавлено Цитата Prince @ Для начала выбрать физический уровень попроще, реализуемый програмно на базе линии ввода/вывода общего назначения МК На базе линии ввода/вывода в МК - это USART. Без каких то либо программных приблуд. И он есть у любого мало-мальски "интересного" МК. Аппаратный. Или хочешь поспорить об эффективности аппаратного решения по сравнению с программным? ![]() |
Сообщ.
#36
,
|
|
|
Цитата Prince @ Для начала выбрать физический уровень попроще, ... Самый простой вариант на 5-10 метров это RS232 "звездой". Купить и подсоединить к компу достаточное количество переходников USB-RS232 и вперёд. Вроде бывают даже 1 дивайс на 4 порта. Дуплексный приём/передача, простота программирования, относительная дешевизна. |
Сообщ.
#37
,
|
|
|
Цитата Тем, что там ты двинул ключевую мысль типа - зачем тебе заморачиваться в дальнейшем с поддержкой, проще научиться работать с микшером. А о совместимости (в дальнейшем) позаботятся писатели Оси. 1. Не придумывай за меня мои мысли. 2. Тема микшера сюда никаким боком. Цитата Советуя 1-Wire на 5-10 метров? Мда..уж. Мда, не мда, не могу тебе сейчас доказать. А ты мне. Цитата На базе линии ввода/вывода в МК - это USART. Без каких то либо программных приблуд. И он есть у любого мало-мальски "интересного" МК. Аппаратный. Или хочешь поспорить об эффективности аппаратного решения по сравнению с программным? Нет, не хочу. Тоже вариант. А адресуемые датчики, ключи с UART, они существуют? Цитата Самый простой вариант на 5-10 метров это RS232 "звездой". Купить и подсоединить к компу достаточное количество переходников USB-RS232 и вперёд. Вроде бывают даже 1 дивайс на 4 порта. Дуплексный приём/передача, простота программирования, относительная дешевизна. RS-485, предложенный вами, тоже вариант. Речь о том, что без наработок и опыта, построить с нуля "конфетку" не получится, как ни крути. И только шиной 1-wire, или Ethernet, или RS-232, или USB не обойтись. А где-нибудь и аналоговые лини аудио-видео кинуть окажется проще. Какие-то сегменты на 1-wire. Там, где имеет смысл Ethernet, там Ethernet. О чем спор? 1-wire круче Ethernet? Или наоборот? ![]() Сейчас на руках есть плата контроллера, возможность его прошивать и желание прицепить к нему какой-нибудь удаленный девайс с возможностью наращивания количества девайсов на шине. Я предполагал взять пару термодатчиков, ключей 1-wire, кусок кабеля и "поиграться" с этой шиной. Пригодится. Дополнительных затрат минимум. Опыт будет получен. А дальше видно будет. Но уже ничего не предлагаю и не предполагаю. |
Сообщ.
#38
,
|
|
|
Цитата Prince @ сейчас создам новую тему с описанием Каких плат? Нельзя ли конкретизировать, что там будет, на "том" конце кабеля? ![]() |
Сообщ.
#39
,
|
|
|
orb, извините, я в ней скорее всего уже не буду участвовать, хотя вопрос и мой. В любом случае, конкретизировать задачу было необходимо
![]() |
Сообщ.
#40
,
|
|
|
Цитата Prince @ О чем спор? Спор о том, что в конкретном случае (типа умного дома) связь между блоками лучше принять Ethernet. Только и всего. Цитата Prince @ 1. Не придумывай за меня мои мысли. Ты не это хотел сказать? ![]() ![]() Цитата Prince @ 2. Тема микшера сюда никаким боком. Подходит. Просто ты еще не понял - каким... ![]() ![]() ![]() Цитата Prince @ Но уже ничего не предлагаю и не предполагаю. Т.е. осознал? ![]() ![]() Добавлено Цитата Prince @ А адресуемые датчики, ключи с UART, они существуют? Да. Есть переходники 1-Wire -> COM ![]() |
Сообщ.
#41
,
|
|
|
подробнее — http://forum.sources.ru/index.php?showtopic=340309
сорри, тема клубневая, не хочется что бы ее заспамили через пару месяцев ньюблы. Секретного в ней ничего нету, буду любому желающему отправлять копию Добавлено Цитата medved_68 @ чем лучше?связь между блоками лучше принять Ethernet представляешь картину по по коридору у тебя дома идет жмут сетевых кабелей? мне больше нравится 1-Wire, можно обойтись всего одним сетевым кабелем в котором 5 проводом можно использовать еще под что-то или даже сделать 6 шин 1-Wire Добавлено Цитата ЫукпШ @ этого мало. длина будет колебаться от пары метров к первому устройству до метров 30 к дальнему (максимум думаю 50-70м. хотя его может и не быть) Самый простой вариант на 5-10 метров |
Сообщ.
#42
,
|
|
|
2orb:организуй дерево, правда, у промежуточных узлов по два порта понадобится..
|
Сообщ.
#43
,
|
|
|
Цитата Спор о том, что в конкретном случае (типа умного дома) связь между блоками лучше принять Ethernet. Только и всего. Связь между узловыми блоками(после того, как orb более детально описал свой замысел) и ПК, действительно, я бы не стал строить на 1-wire(хотя ради интереса попробовать мог бы). А вот обмен с датчиками и исполнительными устройствами внутри узла - в том числе по 1-wire. |
Сообщ.
#44
,
|
|
|
Цитата Prince @ почему? я бы не стал строить на 1-wire |
Сообщ.
#45
,
|
|
|
Главным образом потому, что шина очень медленная, и не поддерживается МК аппаратно. Я не предполагал таких масштабов "строительства". Подумал, что ПК будет единственным центральным устройством в сети с более-менее линейной шинной топологией, состоящей из десятка-другого оконечных устройств, т.е, непосредственно датчиков и исполнительных устройств 1-wire. Хотя как уже сказал, ради интереса я бы попробовал.
А что бы я выбрал...сейчас medved_68, наверное, снова будет потешаться, но тот же RS-232/485 для начала. Однако, на самом деле, вопрос связи между узлами я бы оставил пока открытым, до тех пор, когда будет понятна необходимая пропускная способность каналов связи, а больше сосредоточился на конечных устройствах и организации логики работы как узла так и всей системы в целом. |
Сообщ.
#46
,
|
|
|
Цитата Prince @ с этим более менее яснодо тех пор, когда будет понятна необходимая пропускная способность каналов связи обычно 10 плат, которые дают 15 байт не чаще 4 раз в секунду Максимально 30 плат С проводом, идеально если это обычный сетевой кабель — один восьмижильный. Радиоканал не хочется с соображений здоровья и по цене. При любом раскладе, центральный компьютер знает все данные о каждой плате, например. опрос температуры можно делать раз в час, а не 4 раза в секунду. Аналогично. если центральный компьютер знает что в комнате нет людей, то и датчики движения нет смысла опрашивать раз в 4 секунды |
Сообщ.
#47
,
|
|
|
Цитата orb @ Цитата Prince @ почему?я бы не стал строить на 1-wire Для реализации по этой шине нужно уметь формировать задержки ~3-5, ~60, ~750 [мкс]. (Могу ошибаться, не помню точно. Но порядки такие.) Для мастера, который командует обменом, это более-менее удобно и просто. А для слэйва - не очень. Спец. устройства этой шины решают эти проблемы на аппаратном уровне. Программно наверно тоже можно, но если нет опыта... ![]() Кроме того, это шина принципиально не очень помехо-устойчива. И разговоры про 30 метров для неё, на мой взгляд, преувеличение. Короче, если доведётся повозиться - сам поймёшь. ![]() Если нужно получить данные с удалённого датчика 1-wire, значит надо поставить микро-процессор поблизости от датчика. Например 0.5 метра. Провода скрутить. А данные из процессора качать в центральный комп любым доступным способом. RS232 больше 30 метров я бы тянуть не стал, хотя слышал об устойчивой работе до 100 метров. RS485 - 1000 метров пробовал сам, работает устойчиво. Ethernet - тоже метров 100. Для программирования самое простое - RS232. |
Сообщ.
#48
,
|
|
|
Цитата Prince @ сейчас medved_68, наверное, снова будет потешаться ![]() Цитата ЫукпШ @ 130 метров на 2400 сам без проблем реализовывал.RS232 больше 30 метров я бы тянуть не стал, хотя слышал об устойчивой работе до 100 метров. Цитата ЫукпШ @ Ethernet - тоже метров 100. От кабеля зависит. С моножилой - пойдет, с оплеткой я бы не стал рисковать и поставил бы концентратор на 80 метрах... Цитата ЫукпШ @ Для программирования самое простое - RS232. Для масштабирования не очень (ИМХО). Хотя, если на детектирование адреса перейти...Опять же Интернет доступ - нужен центральный комп. При Ethernet коммуникациях вопрос такого доступа снимается, на любой из железок может быть реализован сервер. Как вариант - через Интернет отдается команда, котел врубается на полную и температура к приезду хозяина достигает номинальной. А теперь попробуйте убедить меня, что именно это (такая реализация умного дома) не востребовано... ![]() |
Сообщ.
#49
,
|
|
|
интернет нам не нужен. для плат так это 100%
на Центральный ПК интернет я и так могу завести и с него давать команды ![]() тут вопрос именно между платами и центральным ПК, так что бы это был домашний бюджет и красиво на вид ![]() |
Сообщ.
#50
,
|
|
|
Цитата orb @ интернет нам не нужен. для плат так это 100% orb, если посчитать, сколько раз я слышу такие заявления... ![]() ![]() ![]() |
Сообщ.
#51
,
|
|
|
А зачем мне на плате может интернет понадобиться?
![]() |
Сообщ.
#52
,
|
|
|
Цитата orb @ А зачем мне на плате может интернет понадобиться? ![]() Действительно. На работе я обхаживаю/обслуживаю похожую систему. Причём с бОльшим количеством уровней управления. К интернету подключен один из компов высокого уровня. Для контроллеров нижнего (и другого разного уровня) написан соотв. софт. В результате я могу "порулить" конкретным контроллером хоть из Австралии. |
Сообщ.
#53
,
|
|
|
Цитата ЫукпШ @ если будет интернет только на центральном компьютере, я тоже смогу порулить любой из плат В результате я могу "порулить" конкретным контроллером хоть из Австралии. |
Сообщ.
#54
,
|
|
|
Цитата orb @ А зачем мне на плате может интернет понадобиться? ![]() Если это ЦУ - то понадобиться. Для удаленного управления и снятия данных. orb, ЫукпШ вполне возможно вы не поняли мою мысль. Я не говорил, что на КАЖДОМ модуле необходим интернет. Я всего лишь заострил внимание на том, что если в качестве коммуникаций будет Ethernet - то ЛЮБОЙ модуль возможно использовать в качестве ЦУ (меняй заливку и все). Это унификация. И различие только в программной части. В другом случае необходим ЦУ, специально для этого изготовленный, например комп, с кучей переходников USB-COM и кучей дополнительных контроллеров расширений USB. Ну, при желании можно и одним СОМ обойтись, но для этого ОПЯТЬ НЕОБХОДИМО делать лишние телодвижения, например, "раскроить" топологию с использованием детектирования адреса и переходом на спецрежим USART. Цитата ЫукпШ @ К интернету подключен один из компов высокого уровня. Цена аптайма при выходе этого компа из строя? Скорость замены? Дублирование? В случае сети Ethernet все это неважно, т.к. любой комп может легко быть подготовлен для ЦУ установкой необходимого ПО. Без необходимости даже перемещать его на штатное место... ![]() |
Сообщ.
#55
,
|
|
|
Цитата medved_68 @ Цена аптайма при выходе этого компа из строя? Скорость замены? Дублирование? В случае сети Ethernet все это неважно, т.к. любой комп может легко быть подготовлен для ЦУ установкой необходимого ПО. Без необходимости даже перемещать его на штатное место... ![]() Так я же и говорю - этот комп уже подключен к интернет и ещё имеет доступ к технологической сети. Цена "аптайма" зависит от общей конфигурации системы. Её ты прекрасно знаешь и без меня. ![]() В моём конкретном случае я пользуюсь купленным RadMin-ом. Скорость установки на другой комп... наверно займёт минут 10. |
Сообщ.
#56
,
|
|
|
Цитата medved_68 @ я смотрю с другой стороныЛЮБОЙ модуль возможно использовать в качестве ЦУ плата имеет ограниченное ОЗУ/ПЗУ/мощность процессора - какой смысл в написания сложной управляющей программы на плате? По временным затратам программиста дешевле писать софт на полноценном С++, а не урезанной версии микроконтроллера и в тоже время С++ имеет куда больше функционала уже готового и отлаженного в библиотеках. |
Сообщ.
#57
,
|
|
|
Цитата orb @ какой смысл в написания сложной управляющей программы на плате? Почему сложной? Сбор данных с модулей и выдача на HTTP/FTP это "сложная управляющая программа"? Если да, то тогда я умолкаю... ![]() ![]() Цитата orb @ По временным затратам программиста дешевле писать софт на полноценном С++, а не урезанной версии микроконтроллера Ну вот здесь (и ты сам понимаешь) есть поле деятельности для возражений. Только спорить о пользе молотка или кувалды мы здесь не будем. ![]() Цитата orb @ и в тоже время С++ имеет куда больше функционала уже готового и отлаженного в библиотеках. orb, скажем так - готовые схемы тоже имеют кучу функционала и отлаженного кода в библиотеках. Только воспроизведи правильно схему и заливай опкод. И все будет работать. Хочешь свое и обязательно в схемотехнике? Тогда ЗАБУДЬ о своих же словах насчет готового и отлаженного, но ДРУГИМИ. ![]() ![]() |
Сообщ.
#58
,
|
|
|
Цитата medved_68 @ Почему сложной? Сбор данных с модулей и выдача на HTTP/FTP это "сложная управляющая программа"? аутентификация пользователя, потом проверка команд которые передали из интернета (защита от дурака), да и вообще обработка канала связи по HTTP/FTP. И скажем так, если у меня 30 плат, то плата должна мне хелп вывести, что это за плата что она умеет Зачем мне этот геморой на микроконтроллере, если я могу сделать это на полноценном компьютере и сделать даже полноценный сайт с картинкой расположения плат, проверкой паролей, которые кстати легко меняются, без перепрошивки микроконтроллеров, да я могу легко сделать несколько групп доступа.что бы жена только статус проверила и рыбок покормила, и себе сделать учетную запись с полными правами. Добавлено Цитата medved_68 @ ты меня не понял, я немного о другом: С++ имеет кучу книг, примеров, не зависит от объема памяти, не зависит от мегагерц и тому подобное.скажем так - готовые схемы тоже имеют кучу функционала и отлаженного кода в библиотеках На центральном ПК я хочу обрабатывать не одну плату, а набор всех плат в купе + обработка тех же команд из интернета или личных капризов меня, когда я подошел к центральному компу и ввел данные что мне холодно и нужно поднять температуру по всему дому на +5 градусов. Может даже учитывать прогноз погоды из интернета, зайти на гисметео и скачать график температур на неделю ![]() Тут фантазировать можно долго, но это все реализовать на центральном компьютере на порядок быстрее, проще и я никогда не упрусь в нехватку ресурсов (в реальных ситуациях). |
Сообщ.
#59
,
|
|
|
Цитата orb @ и сделать даже полноценный сайт с картинкой расположения плат, проверкой паролей, которые кстати легко меняются, без перепрошивки микроконтроллеров, да я могу легко сделать несколько групп доступа.что бы жена только статус проверила и рыбок покормила, и себе сделать учетную запись с полными правами. Ну если так - тогда я соглашусь с тобою. Но опять же - я таких доводов знаешь сколько слышал... ![]() ![]() |
Сообщ.
#60
,
|
|
|
Для множества устройств управляемых централизованно (автоматика ванной комнаты) пишу свой протокол передачи по одному проводу. Нечто подобное 1-wire, но уже свои задумки. Обработчик пишу с нуля.
Например, здесь выносной пульт управления обменивается данными с основным блоком по одному проводу. ![]() Это для того, чтоб повесить все исполнительные механизми и пульты управления на общей шине из трех проводов (+) (-) (сигнал). |
Сообщ.
#61
,
|
|
|
...почитал я тут вашу тему и считаю, что RS-485 как линия связи наиболее оптимальна как в случае минимизации расходов как по монтажу и материалам (двухпроводная диффлиния), так и по расстояниям (как на коротких длинах, так и до километра ...ага, вижу что наконец-то упомянули), так и по схемотехнике (достаточно добавить копеечный конвертор ST485 к вашему МК, к примеру, и оптрончиков для развязки), так и в плане расширения. В качестве протокола рекомендую M-Link как самый простой в реализации, или по-хорошему если уж делать, то - Modbus c расчетом на будущее. Тут промелькнула мысль насчет ПК, таки собрать конвертор RS-485/USB не проблема, две мелкосхемы (могу подкинуть при желании).
Варианты с вай-фай хороши и их можно пообсуждать, если ТС распишет поподробнее по условиям эксплуатации и вариантам датчиков, если будут таковые. Для промышленных-же условий лучше радиомодемы, там скоростя хоть и диалаповские, но зато надежно, относительно конечно. Касательно выхода в Интернет таких устройств, medved_68 правильно сказал, незачем каждому устройству такой конвертор, достаточно одного центриализованного. p.s.: насчет использования аппаратного микшера это я говорил, если что. Цитата Зачем мне этот геморой на микроконтроллере, если я могу сделать это на полноценном компьютере и сделать даже полноценный сайт с картинкой расположения плат, проверкой паролей, которые кстати легко меняются, без перепрошивки микроконтроллеров, да я могу легко сделать несколько групп доступа.что бы жена только статус проверила и рыбок покормила, и себе сделать учетную запись с полными правами. тогда уж промышленный ПК или роутер в качестве базиса для экспериментов. А полноценный сайт можно и в МК запихнуть, ссылочки могу подкинуть ![]() |
Сообщ.
#62
,
|
|
|
Цитата raxp @ зачем? А полноценный сайт можно и в МК запихнуть ![]() у меня много будет плат и что на каждой плате делать полноценный сайт, а в случае модернизации переделывать и перепрошивать все платы? Добавлено Цитата raxp @ не хочу весь жилой дом дополнительно облучать хотя большей степенью тут решает дело цена Варианты с вай-фай хороши |
Сообщ.
#63
,
|
|
|
Цитата зачем? у меня много будет плат и что на каждой плате делать полноценный сайт а кто вас заставляет на каждом делать? Цитата а в случае модернизации переделывать и перепрошивать все платы ну не смешите, это проблема? Есть такая еще вещь как удаленная перепрошивка, по той же сети. Цитата не хочу весь жилой дом дополнительно облучать улыбнуло ![]() |
Сообщ.
#64
,
|
|
|
Цитата raxp @ а как же управлять всеми платами, если не на всех платах есть интернет? а кто вас заставляет на каждом делать? |
Сообщ.
#65
,
|
|
|
raxp, что ж вас улыбает?
Приведите значения мощности в точке приема, в помещении. И аналогичные значения для 50 мВт вай-фай модулей, расположенных в том же помещении. |
Сообщ.
#66
,
|
|
|
Цитата raxp @ зачем еще добавлять дополнительно? имеет мощности в 100 ватт, вот кто вас облучает |
Сообщ.
#67
,
|
|
|
Цитата orb @ а как же управлять всеми платами, если не на всех платах есть интернет? Через коммуникационный канал этой платы. Например, по своему протоколу. Или по общераспространенным... ![]() |
Сообщ.
#68
,
|
|
|
Цитата raxp, что ж вас улыбает? Приведите значения мощности в точке приема, в помещении а вам могу привести саннормы и ссылочки на частотнадзор, там все расписано по разрешенным мощностям оборудования для эксплуатации ...хотя, и сами ведь поиском умеете пользоваться. Цитата а как же управлять всеми платами, если не на всех платах есть интернет? Цитата Через коммуникационный канал этой платы вот именно ![]() Цитата имеет мощности в 100 ватт, вот кто вас облучает Цитата зачем еще добавлять дополнительно? это вам пример для сравнения, кто вас реально облучает, про саннормы уже упомянул ...по-поводу вай-фай и лишнего облучения: а мобилки вас не пугают, не? ![]() |
Сообщ.
#69
,
|
|
|
Цитата а вам могу привести саннормы и ссылочки на частотнадзор, там все расписано по разрешенным мощностям оборудования для эксплуатации Вы приведите то, что я просил: мощность сигнала на входе приемника, от 100 Ватной базовой станции и от 50 мВт вай-фай модуля. Расстояние до базовой станции 500 метров, до вай-фай модуля 5 метров. Хотя бы приблизительные цифры. Тогда будет ясно, кто же нас облучает и насколько сильно. |
Сообщ.
#70
,
|
|
|
Может лучше беспроводную свзяь сделать на RF-2400
http://www.ebay.com/itm/RF-2400-V03-2-4GHz-Wireless-Transceiver-2-4G-RF-Module-/320706935848?pt=LH_DefaultDomain_0&hash=item4aab9f7c28 Стоит копейки. Излучение небольшое. ![]() Features: * 2400-2483.5 MHz ISM band operations * Support 1 and 2 Mbps air data rate * Programmable output power (-40dBm to 5dBm) * Low power consumption * Variable payload length from 1 to 32bytes * Automatic packet processing * 6 data pipes for 1:6 star networks * 1.9V to 3.6V power supply * 4-pin SPI interface with maximum 8 MHz clock rate Добавлено Сам эти жилезки ещё не пользовал, жду когда приедут. Но выглядят интересно. Добавлено А к компу всё это дело можно приконнектить по блютусу http://www.ebay.com/itm/Arduino-Bluetooth-Module-Slave-Wireless-Serial-Port-4P-/220852015499?pt=LH_DefaultDomain_0&hash=item336bce518b [img]http://i.ebayimg.com/t/Arduino-Bluetooth-Module-Slave-Wireless-Serial-Port-4P-/00/s/NDAwWDQwMA==/$(KGrHqYOKjgE5WuvdTeMBOZsTptjI!~~60_12.JPG[/img] Эту плату тоже её не подключал, только приехала ![]() Итого, по 3 бакса на железку в комнату + 1 блютус за 10 баксов. Вобщем, втопку провода ![]() Или без блютуса, вот так: ![]() http://www.ebay.com/itm/PK1-RF-2410U-RF-2400x5-2-4G-RF-Module-Kit-/320723237064?pt=LH_DefaultDomain_0&hash=item4aac9838c8 Сообщения были разделены в тему "светомузыку на Ардуине" |
Сообщ.
#71
,
|
|
|
У меня на производстве стоят 73 платы, соединенные с "мастером" RS485 по стандартному 8-жильному кабелю. По двум парам подаю 12В. для питания микроконтроллеров через КРЕНку и на исполнительные устройства (реле, световая индикация и т.п.). При создании сего возникла проблема с синхронностью работ - чуть задержался кто с ответом - другой уже что-то лепечет...
Излечил очень просто - RS485 работает на двух парах линии: Передатчик "мастера" и все приемники подчиненных на одной паре. На другой паре приемник "мастера" и все передатчики подчиненных. Мастер передает адрес девайса с девятым битом - только девайс с таким адресом начинает отвечать. "Мастер" достаточно сложен, ведь он обслуживает все 73 устройства, имеет на борту USB для связи и программирования "мастера". Все это хозяйство находится в цеху, где основным является сварка, плазма (электрогрязи и всяких наводок просто завались). Все работает в реальном времени (что не позволяет мотбас) - это обслуживание датчиков, разбросанных по девайсам на 840 квадратных метрах, включении и выключении различных двигателей, клапанов... И, все это на 11500. просто мастер на то и мастер, чтобы знать кого надо первым обслужить, а остальное чуть попозже. Например, включился ползун горизонтального резца, ага, надо контролировать сколько проехал, конечные выключатели, его регулятор скорости, датчик усилия резца, охлаждающая жидкость... А если он сейчас в краткосрочном отпуске - пусть спит - не тревожим. По протоколу "мастер" при первом включении, и через определенное время опрашивает все девайсы на профпригодность и на отсутствие. В перечне есть специальная таблица необходимых устройств, без которых нет смысла запускать в работу (авария, поломано, украдено) данную линию. Не ответившие Устройства, не являющие необходимыми (освещение и т.п.) не влияют на основную работу, но мастер посчитал своим долгом доложить об их отсутствии. В данной системе постоянно идет модернизация - какой то девайс дорабатывается, вплоть до замены контроллера ( был PIC16, стал PIC18). Думаю, не уместно в данном случаи спорить - сие хозяйство работает уже третий год, и ни разу не было сбоя: PIC показали себя гораздо надежней АВР, у PIC помехоустойчивость оказалась выше. Добавлено Также есть удаленное оборудование (допустим, кранбалка) к которой совсем неохота тянуть провода управления. Вместо силового питающего кабеля протянули шинопровод (провода все таки путаются, рвутся гора-а-здо чаще, чем стачиваются качественные щетки), по одной из фаз идет управление балкой (12 команд). Данный девайс имеет свой адрес как подчиненный, а для самой балки является "мастером" где подчиненным для него является сам тельфер. Есть системы и с радиоканалом (TR101), это, в основном, дистанционные пульты. Фу, как долго писал, вместо того, чтобы сказать коротко - можно комбинировать все способы связи. |