Подскажите как организовать сеть МК

Обсуждаем цифровые устройства...
Ответить
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

Задача: нужно организовать сеть МК AVR.
1. Все участники сети подключаются к шине паралельно
2. Используются только аппаратные интерфейсы (возможно с небольшими программными дополнениями)
3. Сеть будет протяженностью 50-100метров внутри здания, поэтому нужна помехозащищенность на аппаратном уровне.

Пока вижу такое решение
Аппаратный SPI пропускается через max232 чтобы улучшить помехозащищенность и дальность передачи. Сигнал reset не используется (если сильно глючить будет буду использовать один на всех)
Дополнительно используется сигнал INT - прерывание. Активный уровень низкий. Когда slave устройству необходимо передать master какие-либо данные оно выдает низкий INT и мастер опрашивает всех устройств сети. Каждое устройство slave будет иметь свой адрес. Как показано на схеме у каждого slave устройства на линиях выхода будет резистор и диод, для того чтобы если несколько устройств на линии будут передавать разные данные ничего не сгорело и на выходе был низкий уровень. На схеме я не изображал обвязку max232 там все понятно и очевидно.

Предложения, замечания...
Вложения
bus.rar
spl7 формат если понадобиться исправить что-либо
(2.37 КБ) 263 скачивания
bus.GIF
Схема
(15.48 КБ) 400 скачиваний
Реклама
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Инженер писал(а):Задача: нужно организовать сеть МК AVR.
3. Сеть будет протяженностью 50-100метров внутри здания, поэтому нужна помехозащищенность на аппаратном уровне.
...
Предложения, замечания...
Весьма вероятно, что разнесенные на такое расстояние устройства будут запитаны от разных силовых щитов. Следовательно, "земляные" клеммы будут иметь разный потенциал, и соединять их напрямую нельзя. Рекомендую использовать гальваническую развязку устройств от общей шины.

Попробуйте также использовать вместо RS232 RS485, он лучше подходит для передачи данных на расстояние свыше нескольких метров.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

у меня нет rs232. Я использую только физическую часть rs232 и насколько я знаю его помехозащищенности хватает на 100 метров. Если ты предлагаешь использовать физическую часть rs485 то микрсхем нужно в 2 раза больше, цена их в 2 раза дороже, и проводов в два раза больше. Или ты предлагаешь использовать полностью rs485? Тогда уж лучше RS422 но он не позволяет на одну шину вешать много устройств. Я пока не уверен но 80% что питание будет общее.
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Инженер, на твои дистанции в 100 м, предложу использовать RS422 драйверы и витую пару в качестве физического носителя..

Тогда уж лучше RS422 но он не позволяет на одну шину вешать много устройств.
Это кто такую глупость сморозил ? :)))

P.S. мя те там про твой драйвер отписал... :)
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

а как устранять физические конфликты на шине? rs232 на какое расстояние будет работать? rs422 это тот же rs232 только физически разный способ передачи а rs232 не позволяет подключать много устройств на шину. (мне нужна двух сторонняя передача)
Последний раз редактировалось Инженер Вс май 08, 2011 18:29:12, всего редактировалось 1 раз.
Реклама
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Например, как в сетевых карточках, методом "контроля несущей"..

Вообще, нафига в качестве интерфейса использовать SPI с кучей сигналов ? В этом есть какой-то "глобальный" смысл...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

Предлагай что-то другое. Количество устройств сети заранее не известно и должна быть возможность увеличения количества устройств сети без переделки физической части. Т.е. подключение к общей сети и никаких индивидуальных проводов.
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Инженер писал(а):Если ты предлагаешь использовать физическую часть rs485 то микрсхем нужно в 2 раза больше, цена их в 2 раза дороже, и проводов в два раза больше.
Это конкретно сколько в деньгах в пересчете на одну точку? С такой экономией IMHO лучше вообще не начинать сетевой проект.
Инженер писал(а):Тогда уж лучше RS422.
Чем конкретно лучше?
Инженер писал(а):а как устранять физические конфликты на шине?
Например, при помощи протокола. Ведущее устройство опрашивает ведомые, посылая им пакеты опроса. Ведомое устройство выдает пакет информации только после того, как получит от ведущего пакет-разрешение. Типовая полудуплексная сеть "петля".
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Инженер, а при чём тут количество устройств на шине?

А ещё мя про SPI спросил.. :)
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

Goldsmith писал(а):
Инженер писал(а):Тогда уж лучше RS422.
Чем конкретно лучше?
Ну например не надо бороться с эхом. А SPI мне нравиться за синхронность - вероятность ошибок меньше ИМХО.
У драйверов есть Z-состояния на выходе? Иначе все бездействующие устройства не дадут целевому устройству что-либо передать они просто задавять своим сигналом. Некоторые МК могут находиться в других температурных условиях (на улице зимой) и частота внутреннего генератора может уйти - появяться ошибки rs232 а SPI на все это начихать.
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Инженер..
Ну например не надо бороться с эхом.
С эхом вообще борются согласованием линии.. :)

У драйверов есть Z-состояния на выходе?
Как правило - есть..

Иначе все бездействующие устройства не дадут целевому устройству что-либо передать они просто задавять своим сигналом.
:shock: Дык.. они-же "бездействующие", а с чего им давить-то...


P.S. Не знаю как в AVR, но у МК51 была возможность объединения их в сеть посредством специального бита, адреса устройства и режима UARTа..
Последний раз редактировалось МитяРа Вс май 08, 2011 19:04:23, всего редактировалось 1 раз.
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Инженер писал(а):Ну например не надо бороться с эхом.
Эхо определяется вовсе не интерфейсом, а согласованием длинной линии. Поставьте на концах линии согласованные с ее импедансом нагрузки, и никакого эха не будет.
Инженер писал(а):А SPI мне нравиться за синхронность - вероятность ошибок меньше ИМХО.
Синхронность - штука опасная. Если собираетесь передавать синхроимпульсы по отдельной паре, то имейте в виду, что задержка сигнала в разных парах одного кабеля может быть весьма значительной. Я когда-то занимался сертификацией кабельных систем для серьезного заказчика и накопил немало статистики по этой теме.

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

Кстати, обратите внимание, что в сетях Ethernet инхроимпульсы не передаются, хотя есть свободные пары, а используется самосинхронизированный Manchester-II. Именно поэтой причине.
Инженер писал(а):У драйверов есть Z-состояния на выходе?
Есть, полудуплексная работа допускается.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

под эхом я имел ввиду когда посылаешь байт его преобразователь конвертирует в rs485 а потом обратно и получаем на входе МК то что посылали. Или у конвертора есть какая-то защита от этого
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

Инженер писал(а):под эхом я имел ввиду когда посылаешь байт его преобразователь конвертирует в rs485 а потом обратно и получаем на входе МК то что посылали. Или у конвертора есть какая-то защита от этого
Приемник и передатчик соединяются только на линии. Устройству нет никакой необходимости передавать принятые данные обратно в линию.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Речь шла о 422-м, а для 485-го такая защита есть в контроллере.. :)
Просто когда передаёшь байт - запрещаешь приём, а когда передал - включаешь его..
Более того, на драйвере 485-го есть вход управления приёмом/передачей, можно его использовать...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

Итого RS485 и RS422 будат на длинных линиях надежнее чем синхронный SPI (с таким же физическим преобразованием как у RS422)?
Опытный кот
Сообщения: 844
Зарегистрирован: Пн апр 11, 2011 10:08:52

Сообщение -=Vovka=- »

Инженер писал(а):Итого RS485 и RS422 будат на длинных линиях надежнее чем синхронный SPI (с таким же физическим преобразованием как у RS422)?
Да, и проводов меньше!

В принципе можно и на токовой петле соорудить: http://vovka.sv19.com/index.php?vs=11&idp=35 :))
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Зачем изобретать колесо? :roll: Есть проверенное решение rs485 + modbus. Разрешение коллизий - также несложная задача, для этого как раз нужно отправлять и слушать. Если принятое=отправленному, значит конфликта не произошло. Если в сети предполагается "мастер", то конфликтов вообще можно избежать, организовав обмен типа "запрос-ответ". Можно сделать передачу маркера, как в token ring. Короче готовых решений (идей) существует достаточно много, берите и используйте :hunger:
Все будет только лучше, в крайнем случае - хуже.
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Откуда: Ульяновск

Сообщение Инженер »

Еще одна причина почему я выбрал SPI потому что UART задействован для других целей - нужно будет передавать команды другому устройству по UART. Если выбирать rs485 то нужен МК с двумя UART самый дешевый это mega64 (или есть дешевле?) програмный UART писать не хочу - уже писал работал хуже аппаратного не смотря на то что десять раз проверил код и все временные интервалы и симулятор использовал.
Да самое главное. какой преобразователь uart-ts485 посоветуете? И еще неплохо бы глянуть uart-ts422. Ведь если вы с этими штуками работали наверное какой-то уже выбрали.
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Инженер писал(а):Если выбирать rs485 то нужен МК с двумя UART самый дешевый это mega64 (или есть дешевле?) програмный UART писать не хочу - уже писал работал хуже аппаратного не смотря на то что десять раз проверил код и все временные интервалы и симулятор использовал.
Да самое главное. какой преобразователь uart-ts485 посоветуете? И еще неплохо бы глянуть uart-ts422. Ведь если вы с этими штуками работали наверное какой-то уже выбрали.
Tак возьмите мегу64. Она стоит аж $7 - это проблема? У Вас, как я понял, разовый проект. Или планируется серийное производство? Только, когда речь идет о крупносерийном производстве, нужно считать эти копейки. А у вас 10МК*7$=70$. А теперь затраты времени на разработку прикиньте, с учетом зарплаты итд.
Насчет rs485 - берите любой драйвер, MAX485, ST485... - какой у Вас доступен, они все работают одинаково хорошо. Почему я советую rs485 - потому, что это реально работает в системах управления доступом, например. У моих знакомых на одной шине висит около 30 электронных замков, считывателей карт итп, притом длинна линии оклол 100 метров - все работает без проблем
Все будет только лучше, в крайнем случае - хуже.
Ответить

Вернуться в «Цифровая техника»