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

 
 
> 3 ATMega8 к 1 COM-порту ПК
li4
сообщение Jan 5 2007, 20:45
Сообщение #1


Участник
*

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



Подскажите пожалуйста как решить такую задачу. Есть 3 ATMega8 каждый из которых используется как 3-х канальный АЦП. Мне нужно их все подключить к одному COM-порту компьютера, причем нужно чтобы передача данных происходила без потерь. Ведь пока 1 контроллер передает данные в ПК, остальные тоже работают, а данные передавать не могут, потому что линия занята.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
singlskv
сообщение Jan 15 2007, 00:01
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(defunct @ Jan 14 2007, 02:56) *
Цитата(singlskv @ Jan 11 2007, 02:22) *

Не, незамедлительно нельзя!
по стандарту нужно выдержать интервал не менее 4 длительностей байта

Я не согласен c этой частью стандарта, потому что такая задержка ничем не обоснована, кроме кривизны мастера. Нормальный драйвер переключается на прием сразу после отправки последнего бита.

Ну во первых назвать Windows нормальным мастером рука не поднимется smile.gif
Во вторых, выдерживать эти межпакетные интервалы Вам все равно придется, иначе
другие устройства, которые придерживаются стандарта могут Вас не понять
А для Win это проблема, если Вы попытаетесь воспользоваться просто задержкой
Sleep(xx) для интервала xx менее такта операционной системмы (10-20 мс) то, можете
с удивлением обнаружить, что Sleep(10) например, чудесным образом превращается
в задержку 15мс, а иногда в задержку 300 МИКРОСЕКУНД
А нужно гарантированно выдерживать не менее 4 байтов sad.gif

На самом деле конечно не все так печально.
В стандарте оговаривается рекомендация, выдерживать 3,5(4) байта промежутки
только для скоростей до 19200. При более высоких скоростях, рекомендуется выдерживать
межпакетный промежуток не менее 1750мкс.
Хотя это все равно не вписывается в возможности Win.
А если при каждой пересылке мы будем ждать 20мс, т.е. гарантированно больше такта
операционки, то максимальная производительность интерфейса будет 50 пакетов в
секунду (примерно).
При пакетах запрос/ответ например по 8 байт и скорости 115200 мы будем иметь
производительность канала: (8+4+8)*50=600 байт в секунду вместо 11520.

Еще пару слов в поддержку 4(3,5) межбайтового интервала.
Пусть у нас есть один мастер и 2 слейва.
Мастер шлет запрос первому слейву и ждет от него ответ.
В какой момент второй слейв должен решить что могла начаться передача ему ?
Вот сидит он и слушает общую линию, и как он может определить что начался новый пакет
который нужно попытаться разобрать ?
Есть еще парочка пременений этому межпакетному промежутку, но чего-то и так слишком много
буковок получилось ...
Цитата
Цитата
если ставить слишком большие таймауты, то это очень плохим образом может сказаться
на производительности линии, если она слегка шумит

Однако это позволит запросто избавиться вот от этого:
Цитата
Когда мастер PC под Win то существует проблема обрезания длинных пакетов


К сожалению, не всегда.
Здесь ИМХО, есть несколько моментов.
1.Кривизна serial драйверов Win.
2.Кривизна чипсетов на мамках.
3.Ну и опять же длина таймаутов
по пунктам 1. и 2. от нас конечно мало что зависит, ну можно конечно немного
погуглить и найти более коректный драйвер
по пункту 3. могу ответственно заявить что COMMTIMEOUTS для высоких скоростей
вещь довольно кривая, да и при скорости 115200 время одного байта 87мкс, а минимальный
таймаут 1мс

ЗЫ. У меня на нотебуке при пересылке длинных пакетов иногда пропадают байтики
внутри пакета sad.gif

Цитата(SasaVitebsk @ Jan 14 2007, 20:53) *
Слейв должен по запросу выдавать свою програмную модель что-ли.

Ну вроде никто не мешает реализовать это в рамках стандарта
Цитата
А мастер не вправе читать/писать всё подряд. Мастер и слэйв должны быть защищены друг от друга. А здесь протоколы этого не предусматривают.

Ну дык слейв и не обязан отдавать все что у него попросили и записывать все что ему сказали.
Может и отказаться и ответить что "нету у меня такого адресу, отвали"
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- li4   3 ATMega8 к 1 COM-порту ПК   Jan 5 2007, 20:45
- - Сергей Борщ   Цитата(li4 @ Jan 5 2007, 19:45) Подскажит...   Jan 5 2007, 21:34
- - Dopler   Цитата(li4 @ Jan 5 2007, 20:45) Подскажит...   Jan 5 2007, 21:35
|- - defunct   Цитата(Dopler @ Jan 5 2007, 21:35) ... Ид...   Jan 5 2007, 21:54
|- - vvs157   Цитата(defunct @ Jan 5 2007, 21:54) Толку...   Jan 5 2007, 22:01
|- - Dopler   Цитата(defunct @ Jan 5 2007, 21:54) Цитат...   Jan 5 2007, 22:30
|- - 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
|- - Dog Pawlowa   Цитата(Dopler @ Jan 5 2007, 23:30) Да ну,...   Jan 6 2007, 07:05
- - 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
|- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 06:45
Рейтинг@Mail.ru


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