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

Люди подскажите какую микросхему можно (нужно) испоьзовать для следующих целей:

из микроконтроллера данные должны передоваться на одно из четырех устройств по RS 485, перед преобразователем в RS485 нужно делать выбор канала (1 из 4), что для этого можно применить.

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


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

Люди подскажите какую микросхему можно (нужно) испоьзовать для следующих целей:

из микроконтроллера данные должны передоваться на одно из четырех устройств по RS 485, перед преобразователем в RS485 нужно делать выбор канала (1 из 4), что для этого можно применить.

ИМХО, ничего не нужно. Все решается на уровне протокола обмена, MODBUS например.

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


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

Ну а если все же ити по пути : выбор канала с помощью микросхемы, чем можно делать разделение ?

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


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

Все устройства RS485 подключаются к одной шине. Адресация устройств происходит на уровне транспортного протокола. Транспортных протоколов существует много. См., например, в Википедии. Или вот еще, Wake.

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


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

Ну а если все же ити по пути : выбор канала с помощью микросхемы, чем можно делать разделение ?

405x. Хотя типично у трансиверов RS485 есть входы выборки, так что вполне можно организовать демультиплексирование именно выборками...

Изменено пользователем rx3apf

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


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

405x. Хотя типично у трансиверов RS485 есть входы выборки, так что вполне можно организовать демультиплексирование именно выборками...

Прстейший способ - завести входы EN (или CS) всех приёмопередатчиков Rs485 на 4 ноги мк и управлять.

В зависимости от полярности на нужный выдавать 0 или 1 (на остальные соответственно 1 или 0).

Главное в этом случае - не включить больше одного одновременно.

"Железные" мультиплексоры в этом смысле надёжнее.

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


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

Люди подскажите какую микросхему можно (нужно) испоьзовать для следующих целей:

из микроконтроллера данные должны передоваться на одно из четырех устройств по RS 485, перед преобразователем в RS485 нужно делать выбор канала (1 из 4), что для этого можно применить.

 

MrYuran прав. Но если нет возможности контролировать CS/EN каждого драйвера(есть чипы в которых просто четыре дравера в одном корпусе без CS/EN )

То можно и так, вообще без дополнительных элементов(Только с помощью четырёх резисторов):

post-26793-1206965050_thumb.jpg

На который канал нужно вывести сигнал - ставишь на MASKx 'Z' (DDRx = '0', PORTx = '0'). А на остальных '1'

Изменено пользователем alkaes

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


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

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

 

А можно и так, вообще без дополнительных элементов(Только с помощью четырёх резисторов):

 

На который канал нужно вывести сигнал - ставишь на MASKx 'Z' (DDRx = '0', PORTx = '0'). А на остальных '1'

А как быть с приемом ?

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


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

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

А как быть с приемом ?

С приёмом сложнее

Тогда используй SN74CBT3253C (DUAL 1OF4 MUX/DEMUX)PDF

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


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

URANst, вам тут сейчас насоветуют :( Вы поясните, четыре устройства должны быть физически разделены или их можно все-таки объединить на одной физической шине RS485? Что это за устройства на которые МК должен передавать данные?

Это курсовая? Если да то, напишите задание полностью. Может вы его неверно интерпретируете?

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


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

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

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


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

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

Я так понял, что речь о мультиплексировании UART перед драйверами, со стороны контроллера. Естественно, коммутировать саму шину - опасный идиотизм. А вот выбрать линию (или развязать линии) 485 - вполне реальная задача. Ситуации разные бывают, топология звездой, к примеру. Или уперлись в нагрузочную способность...

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


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

Ситуации разные бывают, топология звездой, к примеру.

Да нет. Судя по вопросам, планируется создать топологию незвездой, а другой фигурой. :lol:

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


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

А как быть с приемом ?

В своё время у меня была система, объединяющая по RS-485 512 модулей.

Естественно, они были разбиты на группы по 32, для каждой группы своя шина.

Передача шла на все параллельно (использовались адресные команды),

а вот приём - объединяли все выходы DI приёмников по "или".

Правда, есть одна проблема: если какой-то модуль зависнет и оставит на шине "1", то эта единица забьёт по приёму все остальные линии (так как объединение по или.)

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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