Haster
Apr 14 2009, 06:21
Здравствуйте, товарищи!!!
Подскажите, можно ли непосредственно вешать два передатчика на один канал UART ? Или нужно вешать какие-нибудь буферы?
Если нет, то объясните, пожалуйста, почему.
Для пояснения смотрите вложенный рисунок...
CAN трансивер ВООБЩЕ нельзя вешать на UART (если вы конечно хотите получить CAN) - у них совершенно разные протоколы
Вешать более 2х девайсов на UART можно, но не напрямую - нужно комутировать их входы и выходы. В любой момент времени к UART должен быть подключен только одно устройство. (По крайней мере приемное, передатчиков можно повесить несколько в параллель, только они все будут принимать одно и то же)
Haster
Apr 14 2009, 08:11
В данном случае просто используются уровни CAN, а дальше это вырождается в обычный UART.
XVR, не подскажете, как лучше осуществлять коммутацию?
SasaVitebsk
Apr 14 2009, 19:46
Обычно комутацию не делают, а применяют передатчики RS485. Например ad485 или ad3485. Выбор устройства, к которому обращаются осуществляется програмно по принципу адресации. Для этого применяют протоколы. Например MODBUS.
Dog Pawlowa
Apr 15 2009, 07:24
Цитата(Haster @ Apr 14 2009, 09:21)

Подскажите, можно ли непосредственно вешать два передатчика на один канал UART ? Или нужно вешать какие-нибудь буферы?
Два передатчика можно вешать, а вот два приемника - нельзя. Сделайте монтажное ИЛИ, чтобы активный сигнал с любого приемника попадал на вход контроллера. Можно просто на диодах.
Надеюсь, что Вы понимаете, что Вы делаете и зачем. Потому как большинству это непонятно.
Haster
Apr 16 2009, 06:39
Мне нужно, чтобы в конкретный момент времени можно было передавать/принимать данные по одному передатчику (т.е. ситуацию когда передают или принимают оба исключается).
Например, одна программа позволяет передавать только по CAN, мне нужно, чтобы при этом передатчик RS232 не мешал.
В другом, случае, когда зашита другая программа, передача осуществляется по RS232, ну и в данном случае не должен мешать CAN.
Предполагаю сделать так: CAN изолируется при помощи ADUM1300, у данной микросхемы есть вход, позволяющий перевести выходы в Z-состояние, RS232 не развязан, но я использую передатчик SP3222EEA, который также позволяет переводить ножки в высоко-импедансное состояние.
Пойдет. Правда использовать ADUM1300 в качестве буфера с Z состоянием - несколько из пушки по воробьям

Но если нужна гальваническая развязка - то вполне.
Haster
Apr 16 2009, 09:39
Не, просто CAN должен быть гальванически развязан ))
XVR, спасибо )))
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.