|
|
  |
Интересный вопросик. UART<->RS232(UART) |
|
|
|
Dec 17 2007, 10:10
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305

|
День добрый. Собственно имеется устройство с UART (АТ89С2051) надо его подключить к RS232, но также чтобы сохранилась возможность работы с устройствами с UART. Реально ли сделать "прозрачный" формирователь уровней чтобы работать и с UART и с RS232 без перемычек и т.п.? Схема согласования на транзисторах работает отлично (по одному транзисторц на RX-TX линии в качестве инвертора), но годится только для RS 232, для UART линии получаются инвертированные. И немного не те приходят.  Или как их обработать, например в контроллере, для компенсации инверсии при приеме-передаче? Просто инверсия не проходит.
|
|
|
|
|
Dec 17 2007, 11:27
|
Местный
  
Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667

|
Цитата(EXeGLuMATOR @ Dec 17 2007, 12:10)  Собственно имеется устройство с UART (АТ89С2051) надо его подключить к RS232, но также чтобы сохранилась возможность работы с устройствами с UART. Реально ли сделать "прозрачный" формирователь уровней чтобы работать и с UART и с RS232 без перемычек и т.п.? RS232 (да и UART) не допускает двух передатчиков на одной линии (приемники в принципе параллелить можно). Соответственно, сохранить двунаправленный информационный обмен между 2 устройствами с UART и при этом иметь двунаправленный информационный обмен с RS232 даже одного из устройств с UART нельзя. Цитата Схема согласования на транзисторах работает отлично (по одному транзисторц на RX-TX линии в качестве инвертора), но годится только для RS 232, для UART линии получаются инвертированные. И немного не те приходят.  Или как их обработать, например в контроллере, для компенсации инверсии при приеме-передаче? Просто инверсия не проходит. Это неполноценное согласование (не обеспечивает уровни сигнала по спецификации RS232). Сооветственно, "для дома-для семьи" можно, с риском, что на каком-то компьютере может и не заработать. Для мало-мальски ответственного применения не годится. Выпускается масса недорогих преобразователей уровня UART-RS232, совершенно не являющихся дефицитом.
|
|
|
|
|
Dec 17 2007, 13:03
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305

|
Цитата(K_AV @ Dec 17 2007, 14:37)  Или вам требуется именно на одном и том же выходе (разъеме) на выбор UART или RS232? Именно так! Немного некорректно вопрос задал.  Сорри. Именно - на одних и тех-же проводах может быть как RS232, так и UART. Либо то либо то. Выбор девайса либо паршивкой контроллера (одна сигнальная нога) либо преремычкой. Преобразование уровней не требуется, поскольку все нормально работает и в уровнях 0-5в. По крайней мере на современных RS232 девайсах. Проблема именно в инверсии. Т.е. Для UART инверсия не нужна, а для RS232 - нужна инверсия. Причем микросхемы ставить некуда, максимум пара-тройка СМД транзисторов. Места нет.
|
|
|
|
|
Dec 18 2007, 11:04
|
Местный
  
Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667

|
Цитата(EXeGLuMATOR @ Dec 17 2007, 15:03)  Именно так! Немного некорректно вопрос задал.  Сорри. Именно - на одних и тех-же проводах может быть как RS232, так и UART. Либо то либо то. Выбор девайса либо паршивкой контроллера (одна сигнальная нога) либо преремычкой. Преобразование уровней не требуется, поскольку все нормально работает и в уровнях 0-5в. По крайней мере на современных RS232 девайсах. Проблема именно в инверсии. Т.е. Для UART инверсия не нужна, а для RS232 - нужна инверсия. Причем микросхемы ставить некуда, максимум пара-тройка СМД транзисторов. Места нет. 1. Настоятельно не рекомендую инвертированный UART называть RS232. Если Вам нравится самозаблуждаться на этот счет - не вводите в заблуждение окружающих, которые при виде наименования RS232 понимают вполне определенные свойства интерфейса, которых у Вас нет. То, что сигнал с уровнями 0-5 В принимается частью устройств, имеющих порт RS232, никаких прав в части наименования не дает. Равно как и гарантий работоспособности с произвольно выбранными устройствами, имеющими RS232, соответствующий спецификации. На это можно зажмуриться только если Вы классифицируете свое изделие как "наколенное изделие школьника". 2. На одном контакте разъема непосредственно объединить выходы 2 отдельных устройств (даже с одинаковыми логическими уровнями) можно, только если они оба "открытые" (открытый коллектор, открытый эмиттер) или поочередно отключаются (устанавливаются в высокоимпедансное состояние). Даже если отключать выход преобразователя уровня RS232 (как Вам советует rezident) - Вы не сможете отключать подключенный в ту же точку выход UART. Нужен промежуточный коммутирующий элемент между ним и выходным контактом. 3. Управляемо инвертировать цифровой сигнал можно при помощи логического элемента "Исключающее ИЛИ". Место для микросхемы в корпусе SO14 найдете? В ней будет 4 линии с управляемой инверсией.
|
|
|
|
|
Dec 19 2007, 17:28
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305

|
Цитата(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 элемента. Вроде что-то было подобное в линейке...
|
|
|
|
|
Dec 20 2007, 12:37
|
Местный
  
Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667

|
Цитата(EXeGLuMATOR @ Dec 19 2007, 19:28)  1. Спасибо ... 2. ... Спасибо... 3. Спасибо... Да на здоровье. Насчет лужи - Это Вам виднее (может, опыт имеется). А в остальном - сами же признаете Цитата Немного некорректно вопрос задал.  Сорри. Тоже тренироваться полезно. Цитата ...Речь идет о СОПРЯЖЕНИИ устройств. Вы где видели в посте что нужно ПОЛНОСТЬЮ соблюсти требования интерфейса... Ну как же: Цитата надо его подключить к RS232, но также чтобы сохранилась возможность работы с устройствами с UART. Реально ли сделать "прозрачный" формирователь уровней чтобы работать и с UART и с RS232 Без оговорок о "неполноценности" RS232. А простое упоминание стандартного наименования подразумевает стандартные свойства упомянутого. Не забывайте - эту ветку форума и начинающие читать будут. И могут Ваш "нестандарт" принять за правду. В общем, писать надо внимательнее, чтобы не приходилось возмущаться. Насчет "прозрачного" преобразователя - он ведь все описанное все равно внутри содержать должен, шла об этом речь в Ваших постах или нет. И к устройству сложностью наподобие 2 транзисторов или в габаритах менее SO14 все равно не сведется. В качестве решения, совместимого с Вашими опробованными 2 транзисторами, можно предложить забыть о встроенном в МК UART и сделать свой программый как бы UART, который будет создавать нужную инверсию сигналов (включая стартовые и стоповые биты) в зависимости от того, с кем он на связи будет находиться. Собственно, тут вам и транзисторы станут не нужны. нужен только признак - кто на связи. Микросхем с 2 элементами "исключающее ИЛИ" (т.е. с количеством выводов менее 14) не встречал, поэтому и писал сразу об SO14.
|
|
|
|
|
Dec 20 2007, 21:27
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305

|
Цитата(K_AV @ Dec 20 2007, 15:37)  Да на здоровье. Насчет лужи - Это Вам виднее (может, опыт имеется). А в остальном - сами же признаете Тоже тренироваться полезно. Ну как же:Без оговорок о "неполноценности" RS232. А простое упоминание стандартного наименования подразумевает стандартные свойства упомянутого. Не забывайте - эту ветку форума и начинающие читать будут. И могут Ваш "нестандарт" принять за правду. В общем, писать надо внимательнее, чтобы не приходилось возмущаться.
Насчет "прозрачного" преобразователя - он ведь все описанное все равно внутри содержать должен, шла об этом речь в Ваших постах или нет. И к устройству сложностью наподобие 2 транзисторов или в габаритах менее SO14 все равно не сведется. В качестве решения, совместимого с Вашими опробованными 2 транзисторами, можно предложить забыть о встроенном в МК UART и сделать свой программый как бы UART, который будет создавать нужную инверсию сигналов (включая стартовые и стоповые биты) в зависимости от того, с кем он на связи будет находиться. Собственно, тут вам и транзисторы станут не нужны. нужен только признак - кто на связи. Микросхем с 2 элементами "исключающее ИЛИ" (т.е. с количеством выводов менее 14) не встречал, поэтому и писал сразу об SO14.  Ну в общем мы друг-друга поняли. Насчет исключающее или - это мысль. Буду вкорячивать. Просто девайс есть и работает. На 2 транзистора место найти можно (2 уже есть) На SO14 - тяжелее, к тому-же транзисторы также остаются, как буферы. Что-то элементов с ОК повыходу таких я не помню.  Собсно наверное вряд-ли что-то лучше придумается. Посему, думаю можно закругляться. Спасибо всем за идеи.  Кстати, есть неплохой формирователь для 232 - DS276.  Стоит правда дороговато. Но зато маленький и всего 2 детали внешних. Да. Вдруг кому пригодится. Двойной КСОР.ё http://focus.ti.com/paramsearch/docs/param...ompare=true#sdp
|
|
|
|
|
Dec 21 2007, 14:36
|
Местный
  
Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667

|
Цитата(vladec @ Dec 21 2007, 09:48)  Не совсем понятно, как Вы собираетесь объединять на одном контакте передатчик RS-232, котрый имеет выход, на котором бывают отрицательные напряжения и обычный логический выход UART. Да он писал уже, что UART и RS232 у него не бывают одновременно. Проблема может быть только в отрицательном напряжении от RS232, но нигде и не сказано, что оно на вход обычной логики приходит.
|
|
|
|
|
Dec 21 2007, 22:53
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305

|
Цитата(K_AV @ Dec 21 2007, 17:36)  Да он писал уже, что UART и RS232 у него не бывают одновременно. Проблема может быть только в отрицательном напряжении от RS232, но нигде и не сказано, что оно на вход обычной логики приходит. Таки именно так.  На входе стоит транзистор и все. И ничего страшного ему не сделается.  Далее стоят 2 элемента XOR, а потом уже микроконтроллер.  Вот и все.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|