реклама на сайте
подробности

 
 
7 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> 3 ATMega8 к 1 COM-порту ПК
li4
сообщение Jan 6 2007, 12:52
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Цитата(Сергей Борщ @ Jan 6 2007, 11:20) *
Я чего-то подумал что есть три законченных устройства, каждое из которых общается с компом, и надо их свести вместе.

Так и есть. Сейчас это 3 законченных устройства, каждое из которых по отдельности может быть подключено к com-порту компьютера.
А почему нельзя RS232 так объединить?

Сообщение отредактировал li4 - Jan 6 2007, 12:54
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jan 6 2007, 13:25
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
А почему нельзя RS232 так объединить?

А потому, что выходы приемопередатчиков не открытый коллектор, а двухтактные. И что будет если на одном выходе 1, а на другом 0 ?
(Входы можно объеденять почти неограничено)


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Dopler
сообщение Jan 6 2007, 13:34
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Цитата(li4 @ Jan 6 2007, 12:52) *
Цитата(Сергей Борщ @ Jan 6 2007, 11:20) *
Я чего-то подумал что есть три законченных устройства, каждое из которых общается с компом, и надо их свести вместе.

Так и есть. Сейчас это 3 законченных устройства, каждое из которых по отдельности может быть подключено к com-порту компьютера.
А почему нельзя RS232 так объединить?



Действительно, если надо соединить уже три законченных устройства, то просто объединить линии RS232 (те, которые +10, -10 В) не получится. В этом случае проще всего в каждом устройстве сигналы TTL уровня UART перевести в дифференциальный стандарт (RS485 или LVDS), которые позволяют передавать данные на расстояние до 100 метров, а затем на маленькой платке перед ПК перевести эти сигналы обратно в TTL уровни и объединить по монтажному ИЛИ, преобразовать в RS232 и передать в ПК.

Логика работы програм в МК остается той же самой.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 6 2007, 14:30
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(li4 @ Jan 6 2007, 13:52) *
Цитата(Сергей Борщ @ Jan 6 2007, 11:20) *
Я чего-то подумал что есть три законченных устройства, каждое из которых общается с компом, и надо их свести вместе.

Так и есть. Сейчас это 3 законченных устройства, каждое из которых по отдельности может быть подключено к com-порту компьютера.
А почему нельзя RS232 так объединить?


Честно говоря, не понимаю зачем делать ч/з заднюю дверь.
1) Вам предлагается применить схемотехническое решение на уровне 5V, так как RS232 не предполагает объединений и ADM232(или 207 к примеру) просто вылетит. Но для этого предусмотрен интерфейс RS485 или RS422 со своими драйверами ADM485 (и много других фирм AD,TI,MAX,...) которые предусматривают паралельную работу и стоят СТОЛЬКО ЖЕ!
2) Вам предлагают использовать режим Мастер-Слэйв, так как RS232 предполагает ОДНОВРЕМЕННУЮ передачу в две стороны и аппаратное управление потоком. Именно в RS485 используется режим Мастер-слэйв, а в 422 мультимастер с разрешением коллизий. То есть програмно Вам придётся творить что-то подобное.
3) Результирующий монстр будет непонятного интерфейса, а если Вы будете реализовывать RS485, то Вы можете гордо указать это! И, что ещё важнее, Вы сможете легко добавить пятое, шестое .... и т.д. изделия.

Ну и последнее. Я сейчас практически не применяю COM порт. Проще применить USB. В данном случае переходник USB<->RS232 будет содержать 2 микрухи (FT232RL+ADM207), а USB<->RS485 две(FT232RL+ADM485) или три микрухи (+74HC00) и помещается в спичечный коробок.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 6 2007, 15:22
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(SasaVitebsk @ Jan 6 2007, 15:30) *
.. Именно в RS485 используется режим Мастер-слэйв, а в 422 мультимастер с разрешением коллизий. То есть програмно Вам придётся творить что-то подобное.

Уважаемый, не пугайте народ smile.gif
Интерфейс RS422 - это всего лишь две дифференциальных пары - Rx и Tx вместо одной в RS485.
Мультимастеринг не оговаривается и в подавляющем большинстве реальных протоколов не используется.

Цитата(Dopler @ Jan 6 2007, 14:34) *
Действительно, если надо соединить уже три законченных устройства, то просто объединить линии RS232 (те, которые +10, -10 В) не получится.

Ну, смотря что называть словом "просто" smile.gif
Непосредственно - да, не получится. А с помощью тех же волшебных трех диодов и резистора - запросто получится. Это сложно?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Dopler
сообщение Jan 6 2007, 17:00
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Цитата(Dog Pawlowa @ Jan 6 2007, 15:22) *
Цитата(Dopler @ Jan 6 2007, 14:34) *

Действительно, если надо соединить уже три законченных устройства, то просто объединить линии RS232 (те, которые +10, -10 В) не получится.

Ну, смотря что называть словом "просто" smile.gif
Непосредственно - да, не получится. А с помощью тех же волшебных трех диодов и резистора - запросто получится. Это сложно?


Получится и не сложно, судя по всему, автору поста так и надо поступить.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 6 2007, 20:54
Сообщение #22


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Dog Pawlowa @ Jan 6 2007, 14:22) *
Непосредственно - да, не получится. А с помощью тех же волшебных трех диодов и резистора - запросто получится. Это сложно?
Два замечания:
1) Потребуется еще один диод и конденсатор чтобы получать из Tx компьютера уровень -12, к которому будет подтягивать ваш резистор (Можно использовать DTR, RTS но их терминалка любит ставить в +12).
2) Дальность и помехоустойчивость такого решения будет сильно ниже чем у "честного" RS232 (хотя его дальше соседнего стола редко кто таскает).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 6 2007, 22:34
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Dog Pawlowa @ Jan 6 2007, 16:22) *
Цитата(SasaVitebsk @ Jan 6 2007, 15:30) *

.. Именно в RS485 используется режим Мастер-слэйв, а в 422 мультимастер с разрешением коллизий. То есть програмно Вам придётся творить что-то подобное.

Уважаемый, не пугайте народ smile.gif
Интерфейс RS422 - это всего лишь две дифференциальных пары - Rx и Tx вместо одной в RS485.
Мультимастеринг не оговаривается и в подавляющем большинстве реальных протоколов не используется.


Вот блин даже попугать не дадут. smile.gif
На самом деле RS422/485/232 не описывают програмные протоколы а определяют разъёмы и сигналы. Поэтому это я к слову. Но построение определяет. RS422 это даже не две пары, но бог с ними ...

Вы мне объясните, дураку.
1) Почему нельзя применить RS485?
2) Что это за интерфейс у Вас получится?
3) Как это всё механически будет выглядеть? Три законченных устр-ва с преобраз или без них подключаются к коробочке, в которой стоят пребраз. в 5V, потом диоды или микросхема и выходные преобразователи. Плюс внешнее питание! Или если без преобразователей, то 5V короткий кабель (30см) коробочка в ней мелкосхема и выходные преобразователи. Плюс внешнее питание или питание заводится от одного из устр-в. Простите но это же бред!!!
4) Чем хуже мой вариант? Законченное устр-во с двумя разъёмами. Допускает подключение до 32 устр-в. По цене - то же решение. По надёжности и помехозащищённости лучше. По дальности лучше. Конструктивно законченое. Програмно - абсолютно одинаково придётся решать.

Так в чём дело? Кто-нибудь мне пояснит?
Go to the top of the page
 
+Quote Post
li4
сообщение Jan 6 2007, 23:16
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Цитата
Почему нельзя применить RS485?

Я спросил потому что не знаю как реализовать, а разнообразие ответов меня немного сбивает с толку. Что лучше использовать? Если RS485 подходит, то буду искать примеры на эту тему. Спасибо.

Сообщение отредактировал li4 - Jan 6 2007, 23:23
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 6 2007, 23:28
Сообщение #25


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(SasaVitebsk @ Jan 6 2007, 21:34) *
Вы мне объясните, дураку.
1) Почему нельзя применить RS485?

4) Чем хуже мой вариант? Законченное устр-во с двумя разъёмами. Допускает подключение до 32 устр-в. По цене - то же решение. По надёжности и помехозащищённости лучше. По дальности лучше. Конструктивно законченое. Програмно - абсолютно одинаково придётся решать.

Так в чём дело? Кто-нибудь мне пояснит?
Ну первое что приходит в голову:
а) придется переделывать не только софт существующих устройств но и их железо.
б) Устройство в количестве 1 шт. само по себе работать не сможет - все равно нужен будет переходник в 485(422).

В остальном - конечно, в случае нескольких устройств применение 485 оправдано и грамотно. Обсуждаемый вариант соединения RS232 по И элементом диодно-резисторной логики на рассыпухе - это скорее наиболее простое, быстрое, настольное, одноразовое решение для себя. Т.е. себе я бы так сделал, кому-то - или 485 или мультиплексор на проце однозначно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 7 2007, 00:35
Сообщение #26


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(li4 @ Jan 6 2007, 23:16) *
Цитата
Почему нельзя применить RS485?

Я спросил потому что не знаю как реализовать, а разнообразие ответов меня немного сбивает с толку. Что лучше использовать? Если RS485 подходит, то буду искать примеры на эту тему. Спасибо.

Подходит более чем, это будет стандартное решение задачи.

Просто уже редко встречаются темы где стандартные решения уместны. ;>
Вот вам и насоветовали экзотики.
Go to the top of the page
 
+Quote Post
li4
сообщение Jan 7 2007, 01:17
Сообщение #27


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Значит выбираю RS485 smile.gif.
Достаточно каждый контроллер (выводыTX и RX) подключить к DS485 и тогда их можно будет объединить в одну линию? А чтобы эту линию подключить к компу использовать один преобразователь ST232?

Сообщение отредактировал li4 - Jan 7 2007, 01:18
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 7 2007, 02:37
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(li4 @ Jan 7 2007, 02:17) *
Значит выбираю RS485 smile.gif.
Достаточно каждый контроллер (выводыTX и RX) подключить к DS485 и тогда их можно будет объединить в одну линию? А чтобы эту линию подключить к компу использовать один преобразователь ST232?


преобразователь типа такого
Прикрепленные файлы
Прикрепленный файл  USB_485.zip ( 18.3 килобайт ) Кол-во скачиваний: 101
 
Go to the top of the page
 
+Quote Post
li4
сообщение Jan 7 2007, 12:20
Сообщение #29


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



С USB это интересно и перспективно, но сначала хочу подключить к COM-порту, потому что уже есть готовая программа для считывания из него, а с USB у меня вообще опыта работы нет.
Выводы TX и RX ADM485 можно подключать напрямую к соответствующим выводам ATMega8 или нужно сначала преобразовать уровни с помощью ADM232?

Сообщение отредактировал li4 - Jan 7 2007, 12:31
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 7 2007, 12:55
Сообщение #30


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(li4 @ Jan 7 2007, 12:20) *
С USB это интересно и перспективно, но сначала хочу подключить к COM-порту, потому что уже есть готовая программа для считывания из него, а с USB у меня вообще опыта работы нет.
Выводы TX и RX ADM485 можно подключать напрямую к соответствующим выводам ATMega8 или нужно сначала преобразовать уровни с помощью ADM232?

Дык Вам не придется менять программу, подключив устройство на FT232 к USB у вас появится просто еще один ком-порт..
Go to the top of the page
 
+Quote Post

7 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 13:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016