Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интересный вопросик. UART<->RS232(UART)
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
EXeGLuMATOR
День добрый.
Собственно имеется устройство с UART (АТ89С2051) надо его подключить к RS232, но также чтобы сохранилась возможность работы с устройствами с UART. Реально ли сделать "прозрачный" формирователь уровней чтобы работать и с UART и с RS232 без перемычек и т.п.?
Схема согласования на транзисторах работает отлично (по одному транзисторц на RX-TX линии в качестве инвертора), но годится только для RS 232, для UART линии получаются инвертированные. И немного не те приходят. smile.gif Или как их обработать, например в контроллере, для компенсации инверсии при приеме-передаче? Просто инверсия не проходит.
K_AV
Цитата(EXeGLuMATOR @ Dec 17 2007, 12:10) *
Собственно имеется устройство с UART (АТ89С2051) надо его подключить к RS232, но также чтобы сохранилась возможность работы с устройствами с UART. Реально ли сделать "прозрачный" формирователь уровней чтобы работать и с UART и с RS232 без перемычек и т.п.?
RS232 (да и UART) не допускает двух передатчиков на одной линии (приемники в принципе параллелить можно). Соответственно, сохранить двунаправленный информационный обмен между 2 устройствами с UART и при этом иметь двунаправленный информационный обмен с RS232 даже одного из устройств с UART нельзя.
Цитата
Схема согласования на транзисторах работает отлично (по одному транзисторц на RX-TX линии в качестве инвертора), но годится только для RS 232, для UART линии получаются инвертированные. И немного не те приходят. smile.gif Или как их обработать, например в контроллере, для компенсации инверсии при приеме-передаче? Просто инверсия не проходит.
Это неполноценное согласование (не обеспечивает уровни сигнала по спецификации RS232). Сооветственно, "для дома-для семьи" можно, с риском, что на каком-то компьютере может и не заработать. Для мало-мальски ответственного применения не годится. Выпускается масса недорогих преобразователей уровня UART-RS232, совершенно не являющихся дефицитом.
rezident
Для RS232 поставьте MAX3222, у нее вход Enable для разрешения работы выхода RX_OUT приемника имеется. Или монтажным ИЛИ объедините выходы всех приемников.
K_AV
Да, забыл еще уточнить (или я чего-то не так понял в постановке вопроса).
"прозрачный" преобразователь не требуется, UART-UART соединяются непосредственно, а на RS232 ответвляется через преобразователь уровня.
Или вам требуется именно на одном и том же выходе (разъеме) на выбор UART или RS232?
EXeGLuMATOR
Цитата(K_AV @ Dec 17 2007, 14:37) *
Или вам требуется именно на одном и том же выходе (разъеме) на выбор UART или RS232?


Именно так! Немного некорректно вопрос задал. smile.gif Сорри. Именно - на одних и тех-же проводах может быть как RS232, так и UART. Либо то либо то. Выбор девайса либо паршивкой контроллера (одна сигнальная нога) либо преремычкой. Преобразование уровней не требуется, поскольку все нормально работает и в уровнях 0-5в. По крайней мере на современных RS232 девайсах. Проблема именно в инверсии. Т.е. Для UART инверсия не нужна, а для RS232 - нужна инверсия. Причем микросхемы ставить некуда, максимум пара-тройка СМД транзисторов. Места нет.
K_AV
Цитата(EXeGLuMATOR @ Dec 17 2007, 15:03) *
Именно так! Немного некорректно вопрос задал. smile.gif Сорри. Именно - на одних и тех-же проводах может быть как RS232, так и UART. Либо то либо то. Выбор девайса либо паршивкой контроллера (одна сигнальная нога) либо преремычкой. Преобразование уровней не требуется, поскольку все нормально работает и в уровнях 0-5в. По крайней мере на современных RS232 девайсах. Проблема именно в инверсии. Т.е. Для UART инверсия не нужна, а для RS232 - нужна инверсия. Причем микросхемы ставить некуда, максимум пара-тройка СМД транзисторов. Места нет.

1. Настоятельно не рекомендую инвертированный UART называть RS232. Если Вам нравится самозаблуждаться на этот счет - не вводите в заблуждение окружающих, которые при виде наименования RS232 понимают вполне определенные свойства интерфейса, которых у Вас нет. То, что сигнал с уровнями 0-5 В принимается частью устройств, имеющих порт RS232, никаких прав в части наименования не дает. Равно как и гарантий работоспособности с произвольно выбранными устройствами, имеющими RS232, соответствующий спецификации. На это можно зажмуриться только если Вы классифицируете свое изделие как "наколенное изделие школьника".
2. На одном контакте разъема непосредственно объединить выходы 2 отдельных устройств (даже с одинаковыми логическими уровнями) можно, только если они оба "открытые" (открытый коллектор, открытый эмиттер) или поочередно отключаются (устанавливаются в высокоимпедансное состояние). Даже если отключать выход преобразователя уровня RS232 (как Вам советует rezident) - Вы не сможете отключать подключенный в ту же точку выход UART. Нужен промежуточный коммутирующий элемент между ним и выходным контактом.
3. Управляемо инвертировать цифровой сигнал можно при помощи логического элемента "Исключающее ИЛИ". Место для микросхемы в корпусе SO14 найдете? В ней будет 4 линии с управляемой инверсией.
EXeGLuMATOR
Цитата(K_AV @ Dec 18 2007, 14:04) *
1. Настоятельно не рекомендую инвертированный UART называть RS232. Если Вам нравится самозаблуждаться на этот счет - не вводите в заблуждение окружающих, которые при виде наименования RS232 понимают вполне определенные свойства интерфейса, которых у Вас нет. То, что сигнал с уровнями 0-5 В принимается частью устройств, имеющих порт RS232, никаких прав в части наименования не дает. Равно как и гарантий работоспособности с произвольно выбранными устройствами, имеющими RS232, соответствующий спецификации. На это можно зажмуриться только если Вы классифицируете свое изделие как "наколенное изделие школьника".
2. На одном контакте разъема непосредственно объединить выходы 2 отдельных устройств (даже с одинаковыми логическими уровнями) можно, только если они оба "открытые" (открытый коллектор, открытый эмиттер) или поочередно отключаются (устанавливаются в высокоимпедансное состояние). Даже если отключать выход преобразователя уровня RS232 (как Вам советует rezident) - Вы не сможете отключать подключенный в ту же точку выход UART. Нужен промежуточный коммутирующий элемент между ним и выходным контактом.
3. Управляемо инвертировать цифровой сигнал можно при помощи логического элемента "Исключающее ИЛИ". Место для микросхемы в корпусе SO14 найдете? В ней будет 4 линии с управляемой инверсией.


1. Спасибо за очень "ценную" информацию. Никто никого никуда не вводит. Речь идет о СОПРЯЖЕНИИ устройств. Вы где видели в посте что нужно ПОЛНОСТЬЮ соблюсти требования интерфейса. Читайте внимательней, а потом умничайте по поводу и без. А там жмурьтесь или жмурьте кого угодно и в каких угодно ракурсах. Но тиииииихо... про себя, так сказать. Без громкого и никому не нужного флейма, который в данном случае выглядит просто как неудачный пук в лужу.
Извините, но пункт 1 выглядит именно так.
2. Я в курсе. Спасибо. Про то что и как соединять речи не шло. Речь шла о сопряжении устройств. Поэтому тему и создал. Интересно, может кто решал такую задачу и решил-ли.
3. Спасибо. Это вариант. Только места под такой корпус нету. Поищем где 2 элемента. Вроде что-то было подобное в линейке...
K_AV
Цитата(EXeGLuMATOR @ Dec 19 2007, 19:28) *
1. Спасибо ...
2. ... Спасибо...
3. Спасибо...
Да на здоровье.
Насчет лужи - Это Вам виднее (может, опыт имеется).
А в остальном - сами же признаете
Цитата
Немного некорректно вопрос задал. smile.gif Сорри.
Тоже тренироваться полезно.
Цитата
...Речь идет о СОПРЯЖЕНИИ устройств. Вы где видели в посте что нужно ПОЛНОСТЬЮ соблюсти требования интерфейса...
Ну как же:
Цитата
надо его подключить к RS232, но также чтобы сохранилась возможность работы с устройствами с UART. Реально ли сделать "прозрачный" формирователь уровней чтобы работать и с UART и с RS232
Без оговорок о "неполноценности" RS232. А простое упоминание стандартного наименования подразумевает стандартные свойства упомянутого. Не забывайте - эту ветку форума и начинающие читать будут. И могут Ваш "нестандарт" принять за правду. В общем, писать надо внимательнее, чтобы не приходилось возмущаться.

Насчет "прозрачного" преобразователя - он ведь все описанное все равно внутри содержать должен, шла об этом речь в Ваших постах или нет. И к устройству сложностью наподобие 2 транзисторов или в габаритах менее SO14 все равно не сведется.
В качестве решения, совместимого с Вашими опробованными 2 транзисторами, можно предложить забыть о встроенном в МК UART и сделать свой программый как бы UART, который будет создавать нужную инверсию сигналов (включая стартовые и стоповые биты) в зависимости от того, с кем он на связи будет находиться. Собственно, тут вам и транзисторы станут не нужны. нужен только признак - кто на связи.
Микросхем с 2 элементами "исключающее ИЛИ" (т.е. с количеством выводов менее 14) не встречал, поэтому и писал сразу об SO14.
EXeGLuMATOR
Цитата(K_AV @ Dec 20 2007, 15:37) *
Да на здоровье.
Насчет лужи - Это Вам виднее (может, опыт имеется).
А в остальном - сами же признаете Тоже тренироваться полезно.
Ну как же:Без оговорок о "неполноценности" RS232. А простое упоминание стандартного наименования подразумевает стандартные свойства упомянутого. Не забывайте - эту ветку форума и начинающие читать будут. И могут Ваш "нестандарт" принять за правду. В общем, писать надо внимательнее, чтобы не приходилось возмущаться.

Насчет "прозрачного" преобразователя - он ведь все описанное все равно внутри содержать должен, шла об этом речь в Ваших постах или нет. И к устройству сложностью наподобие 2 транзисторов или в габаритах менее SO14 все равно не сведется.
В качестве решения, совместимого с Вашими опробованными 2 транзисторами, можно предложить забыть о встроенном в МК UART и сделать свой программый как бы UART, который будет создавать нужную инверсию сигналов (включая стартовые и стоповые биты) в зависимости от того, с кем он на связи будет находиться. Собственно, тут вам и транзисторы станут не нужны. нужен только признак - кто на связи.
Микросхем с 2 элементами "исключающее ИЛИ" (т.е. с количеством выводов менее 14) не встречал, поэтому и писал сразу об SO14.


smile.gif
Ну в общем мы друг-друга поняли. beer.gif
Насчет исключающее или - это мысль. Буду вкорячивать. Просто девайс есть и работает. На 2 транзистора место найти можно (2 уже есть) На SO14 - тяжелее, к тому-же транзисторы также остаются, как буферы. Что-то элементов с ОК повыходу таких я не помню. sad.gif Собсно наверное вряд-ли что-то лучше придумается. Посему, думаю можно закругляться.
Спасибо всем за идеи. smile.gif
Кстати, есть неплохой формирователь для 232 - DS276. smile.gif Стоит правда дороговато. Но зато маленький и всего 2 детали внешних.

Да. Вдруг кому пригодится. Двойной КСОР.ё
http://focus.ti.com/paramsearch/docs/param...ompare=true#sdp
vladec
Не совсем понятно, как Вы собираетесь объединять на одном контакте передатчик RS-232, котрый имеет выход, на котором бывают отрицательные напряжения и обычный логический выход UART.
K_AV
Цитата(vladec @ Dec 21 2007, 09:48) *
Не совсем понятно, как Вы собираетесь объединять на одном контакте передатчик RS-232, котрый имеет выход, на котором бывают отрицательные напряжения и обычный логический выход UART.
Да он писал уже, что UART и RS232 у него не бывают одновременно. Проблема может быть только в отрицательном напряжении от RS232, но нигде и не сказано, что оно на вход обычной логики приходит.
EXeGLuMATOR
Цитата(K_AV @ Dec 21 2007, 17:36) *
Да он писал уже, что UART и RS232 у него не бывают одновременно. Проблема может быть только в отрицательном напряжении от RS232, но нигде и не сказано, что оно на вход обычной логики приходит.


Таки именно так. smile.gif На входе стоит транзистор и все. И ничего страшного ему не сделается. smile.gif
Далее стоят 2 элемента XOR, а потом уже микроконтроллер. smile.gif Вот и все.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.