|
|
 |
Ответов
|
Jan 5 2007, 21:35
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(li4 @ Jan 5 2007, 20:45)  Подскажите пожалуйста как решить такую задачу. Есть 3 ATMega8 каждый из которых используется как 3-х канальный АЦП. Мне нужно их все подключить к одному COM-порту компьютера, причем нужно чтобы передача данных происходила без потерь. Ведь пока 1 контроллер передает данные в ПК, остальные тоже работают, а данные передавать не могут, потому что линия занята. Это реализуется довольно просто, все зависит от объемов данных. Вот самый примитивный вариант: 1. В каждой меге буффер данных, например, 1024 байт 2. Каждая мега знает свой адрес (номер) на шине, например, 1, 2, 3. 3. Инициатором обмена всегда выступает ПК. 4. ПК шлет адрес меги, а та в свою очередь выдает данные и переводит линии в третье состояние. 5. Так опрашиваются все меги по очереди. Главное убедится, что время заполнения буффера в три и более раз меньше, чем время передачи данных в ПК. Так же, по адресной посылке меги можно синхронизировать (если это надо). Можно почитать пункт Multi-processor Communication Mode в разделе описания UART в даташите, там Atmel дает некоторые рекомендации.
|
|
|
|
|
Jan 5 2007, 21:54
|

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

|
Цитата(Dopler @ Jan 5 2007, 21:35)  ... Идея правильная Только вот здесь небольшая проблемка: Цитата 4. ПК шлет адрес меги, а та в свою очередь выдает данные и переводит линии в третье состояние. Толку переводить линии в третье состояние? Чтобы больше никогда не словить обращение Хоста?.. Тут нужно добавить внешний мультиплексор, завести на его входы Tx от каждого МК, выход мультиплексора подключить к входу RS232 преобразователя. Rx'ы всех МК соединить параллельно и подключить к выходу RS232 преобразователя.
|
|
|
|
|
Jan 5 2007, 22:30
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(defunct @ Jan 5 2007, 21:54)  Цитата(Dopler @ Jan 5 2007, 21:35)  ...
Идея правильная Только вот здесь небольшая проблемка: Цитата 4. ПК шлет адрес меги, а та в свою очередь выдает данные и переводит линии в третье состояние. Толку переводить линии в третье состояние? Чтобы больше никогда не словить обращение Хоста?.. Тут нужно добавить внешний мультиплексор, завести на его входы Tx от каждого МК, выход мультиплексора подключить к входу RS232 преобразователя. Rx'ы всех МК соединить параллельно и подключить к выходу RS232 преобразователя. Да ну, зачем такие сложности. Линии TX от ПК соединяются в одну и подключаются к линиям RX меги (без мультиплексоров), так как линии RX у меги входные. Линии TX от мег соединяются в одну и подключаются к RX ПК. В неактивном состоянии (в режиме, когда ПК выбрал другую мегу) мега переводит свою линию TX в третье состояние (как только заканчивает передачу данных), а когда получает свой адрес по линии RX (которая всегда активна), берет контроль над своей линией TX. Таким образом, в сети будет активна только одна мега, и их можно подключать до бесконечности. Стоит помнить, что в UART неактивный уровень - лог. единица, поэтому линия TX мег должна быть подтянута к плюсу.
|
|
|
|
|
Jan 6 2007, 07:05
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Dopler @ Jan 5 2007, 23:30)  Да ну, зачем такие сложности. Линии TX от мег соединяются в одну и подключаются к RX ПК. В неактивном состоянии (в режиме, когда ПК выбрал другую мегу) мега переводит свою линию TX в третье состояние (как только заканчивает передачу данных), а когда получает свой адрес по линии RX (которая всегда активна), берет контроль над своей линией TX. Таким образом, в сети будет активна только одна мега, и их можно подключать до бесконечности. Действительно, зачем такие сложности? Цена вопроса - три диода и резистор без всяких изысков программирования. Схема называется "монтажное ИЛИ" и приводится в книжках по цифровой электронике уже 40 лет Но я не понял одного - разве есть компьютеры с TTL выходом последовательного интерфейса. Автор, Вы в курсе про RS232 уровни и TTL уровни?
--------------------
Уходя, оставьте свет...
|
|
|
|
Сообщений в этой теме
li4 3 ATMega8 к 1 COM-порту ПК Jan 5 2007, 20:45 Сергей Борщ Цитата(li4 @ Jan 5 2007, 19:45) Подскажит... Jan 5 2007, 21:34  vvs157 Цитата(defunct @ Jan 5 2007, 21:54) Толку... Jan 5 2007, 22:01   defunct Цитата(Dopler @ Jan 5 2007, 22:30) Линии ... Jan 5 2007, 22:40    Dopler ЦитатаЦитатаЛинии TX от мег соединяются в одну и п... Jan 5 2007, 23:01     defunct Цитата(Dopler @ Jan 5 2007, 23:01) Посмот... Jan 5 2007, 23:11      Dopler Цитата(defunct @ Jan 5 2007, 23:11) Цитат... Jan 5 2007, 23:18 jorikdima А можно я тут несколько в сторону отойду. У меня п... Jan 5 2007, 23:41 Сергей Борщ Цитата(jorikdima @ Jan 5 2007, 22:41) Вне... Jan 6 2007, 11:20  li4 Цитата(Сергей Борщ @ Jan 6 2007, 11:20) Я... Jan 6 2007, 12:52   Dopler Цитата(li4 @ Jan 6 2007, 12:52) Цитата(Се... Jan 6 2007, 13:34   SasaVitebsk Цитата(li4 @ Jan 6 2007, 13:52) Цитата(Се... Jan 6 2007, 14:30    Dog Pawlowa Цитата(SasaVitebsk @ Jan 6 2007, 15:30) .... Jan 6 2007, 15:22     Dopler Цитата(Dog Pawlowa @ Jan 6 2007, 15:22) Ц... Jan 6 2007, 17:00     Сергей Борщ Цитата(Dog Pawlowa @ Jan 6 2007, 14:22) Н... Jan 6 2007, 20:54     SasaVitebsk Цитата(Dog Pawlowa @ Jan 6 2007, 16:22) Ц... Jan 6 2007, 22:34      Сергей Борщ Цитата(SasaVitebsk @ Jan 6 2007, 21:34) В... Jan 6 2007, 23:28      Dog Pawlowa Цитата(SasaVitebsk @ Jan 6 2007, 23:34) В... Jan 7 2007, 16:03       SasaVitebsk Цитата(Dog Pawlowa @ Jan 7 2007, 17:03) Д... Jan 7 2007, 19:12        Dog Pawlowa Цитата(SasaVitebsk @ Jan 7 2007, 20:12) .... Jan 7 2007, 21:42         prottoss Цитата(Dog Pawlowa @ Jan 8 2007, 01:42) .... Jan 7 2007, 22:02          singlskv Цитата(prottoss @ Jan 7 2007, 22:02) Я ко... Jan 8 2007, 01:34           prottoss Цитата(singlskv @ Jan 8 2007, 05:34) Прош... Jan 8 2007, 04:52            singlskv Цитата(prottoss @ Jan 8 2007, 04:52) Цита... Jan 8 2007, 13:35             prottoss Цитата(singlskv @ Jan 8 2007, 17:35) Есть... Jan 8 2007, 13:52              singlskv Цитата(prottoss @ Jan 8 2007, 13:52) Цита... Jan 8 2007, 14:40             prottoss [quote name='singlskv' date='Jan 8 200... Jan 8 2007, 14:51          Dog Pawlowa Цитата(prottoss @ Jan 7 2007, 23:02) Цита... Jan 8 2007, 10:31           prottoss Цитата(Dog Pawlowa @ Jan 8 2007, 14:31) З... Jan 8 2007, 10:48            Dog Pawlowa Цитата(prottoss @ Jan 8 2007, 11:48) ребя... Jan 8 2007, 13:00             prottoss Цитата(Dog Pawlowa @ Jan 8 2007, 17:00) Ц... Jan 8 2007, 13:13             SasaVitebsk Цитата(Dog Pawlowa @ Jan 8 2007, 14:00) Ц... Jan 8 2007, 20:30              prottoss Цитата(SasaVitebsk @ Jan 9 2007, 00:30) М... Jan 8 2007, 20:54               singlskv Цитата(prottoss @ Jan 8 2007, 20:54) ЗЫ: ... Jan 9 2007, 01:43                prottoss Цитата(singlskv @ Jan 9 2007, 05:43) Цита... Jan 9 2007, 03:55         SasaVitebsk Цитата(Dog Pawlowa @ Jan 7 2007, 22:42) Ц... Jan 8 2007, 04:05 Serj78 Подтверждаю, можно отдельно включать и приемник и... Jan 5 2007, 23:46 li4 Спасибо всем ответившим.ЦитатаЛинии TX от мег соед... Jan 6 2007, 09:15 beer_warrior ЦитатаА почему нельзя RS232 так объединить?
А пото... Jan 6 2007, 13:25 li4 ЦитатаПочему нельзя применить RS485?
Я спросил пот... Jan 6 2007, 23:16 defunct Цитата(li4 @ Jan 6 2007, 23:16) Цитата По... Jan 7 2007, 00:35 li4 Значит выбираю RS485 .
Достаточно каждый контролле... Jan 7 2007, 01:17 SasaVitebsk Цитата(li4 @ Jan 7 2007, 02:17) Значит вы... Jan 7 2007, 02:37 li4 С USB это интересно и перспективно, но сначала хоч... Jan 7 2007, 12:20 defunct Цитата(li4 @ Jan 7 2007, 12:20) С USB это... Jan 7 2007, 12:55 Сергей Борщ Цитата(li4 @ Jan 7 2007, 11:20) Выводы TX... Jan 7 2007, 13:48 prottoss Цитата(li4 @ Jan 6 2007, 00:45) Подскажит... Jan 7 2007, 14:31 li4 ЦитатаПочитайте даташит, сравните уровни напряжени... Jan 7 2007, 17:14 prottoss Цитата(li4 @ Jan 7 2007, 21:14) Значит на... Jan 7 2007, 17:26 Сергей Борщ Цитата(li4 @ Jan 7 2007, 16:14) Из описан... Jan 8 2007, 01:51 Stanislav Граждане, а можно и мне свой пятачок вставить?
Ч... Jan 8 2007, 02:08 Сергей Борщ Цитата(Stanislav @ Jan 8 2007, 01:08) Име... Jan 8 2007, 03:02 li4 Подумал и решил что избавиться от программного кон... Jan 8 2007, 15:27 Сергей Борщ Цитата(li4 @ Jan 8 2007, 14:27) прошу пос... Jan 8 2007, 15:56 li4 Все исправил, схемы приняли вид:
RS232 to RS485:
... Jan 8 2007, 18:56 Сергей Борщ Цитата(li4 @ Jan 8 2007, 17:56) Все испра... Jan 8 2007, 21:20  prottoss Цитата(Сергей Борщ @ Jan 9 2007, 01:20) В... Jan 8 2007, 21:29   WHALE Цитата(prottoss @ Jan 8 2007, 21:29) Цита... Jan 8 2007, 21:59    SasaVitebsk Цитата(WHALE @ Jan 8 2007, 22:59) Цитата(... Jan 9 2007, 01:13 otrog Дабы не заморачиваться с микросекундными задержкам... Jan 9 2007, 13:46 prottoss Цитата(otrog @ Jan 9 2007, 17:46) Дабы не... Jan 9 2007, 13:57 GDI в WAKE используется байт-стаффинг, так что удвоени... Jan 9 2007, 14:13 prottoss Цитата(GDI @ Jan 9 2007, 18:13) в WAKE ис... Jan 9 2007, 14:31 GDI не все так плохо.. признаком стаффинга является ... Jan 9 2007, 15:01 otrog Ссылка на WAKE
http://www.spetspribor.com/support/... Jan 9 2007, 15:19 prottoss Цитата(otrog @ Jan 9 2007, 19:19) 2 prott... Jan 9 2007, 19:15  SasaVitebsk Цитата(prottoss @ Jan 9 2007, 20:15) Цита... Jan 10 2007, 13:42   defunct Цитата(SasaVitebsk @ Jan 10 2007, 13:42) ... Jan 11 2007, 01:04    singlskv Цитата(defunct @ Jan 11 2007, 01:04) Слей... Jan 11 2007, 02:22     SasaVitebsk Цитата(singlskv @ Jan 11 2007, 03:22) Кст... Jan 11 2007, 03:44     defunct Цитата(singlskv @ Jan 11 2007, 02:22) Не,... Jan 14 2007, 02:56      SasaVitebsk Я думаю всё это обосновано следующим. Должно быть ... Jan 14 2007, 20:53       otrog Цитата(SasaVitebsk @ Jan 14 2007, 20:53) ... Jan 15 2007, 15:36        SasaVitebsk Цитата(otrog @ Jan 15 2007, 16:36) Цитата... Jan 15 2007, 18:40         Dog Pawlowa Я потерял исходное сообщение, кто это высказал:
... Jan 16 2007, 21:01          SasaVitebsk Цитата(Dog Pawlowa @ Jan 16 2007, 22:01) ... Jan 16 2007, 23:28          otrog Цитата(Dog Pawlowa @ Jan 16 2007, 21:01) ... Jan 17 2007, 08:55 li4 Цитатаotrog: Выложил сохраненную страницу со всеми... Jan 9 2007, 19:01 otrog Цитата(li4 @ Jan 9 2007, 19:01) Цитатаotr... Jan 10 2007, 10:54 prottoss 2 singlskv
Зачем так щипетильно относится к станд... Jan 11 2007, 09:09 Leonty 1. В асинхронном режиме можно ввести метрику проце... Jan 12 2007, 16:37 singlskv Цитата(defunct @ Jan 14 2007, 02:56) Цита... Jan 15 2007, 00:01 SasaVitebsk Цитата(singlskv @ Jan 15 2007, 01:01) ...... Jan 15 2007, 14:29 Svin62 Скажите пожалуйста, вот если соединять слейвы с ма... Feb 8 2009, 09:38 demiurg_spb ИМХО никак.
Но может быть есть драйверы RS-232 кот... Feb 8 2009, 11:09 zltigo Цитата(Svin62 @ Feb 8 2009, 12:38) Короче... Feb 8 2009, 11:15  Svin62 Цитата(zltigo @ Feb 8 2009, 14:15) Управл... Feb 8 2009, 11:54   zltigo Цитата(Svin62 @ Feb 8 2009, 14:54) Значит... Feb 8 2009, 12:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|