UART, Два ведуших

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 54
Зарегистрирован: Сб мар 03, 2007 21:08:15
Откуда: Киев. Украина.

Сообщение Voodoo-Cat »

Подскажите пожалуйста как организовать двухсторонний обмен между МК и ПК, но так что-бы команды возвращали значения.
Что-бы не было накладок с занятым каналом.

Может передавать друг-другу флаги ведущих?
Или какая-то хитрая система буферов, с номерами команды, что бы знать на какое сообщение ответили
Реклама
Собутыльник Сэра Мурра
Аватара пользователя
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

Может передавать друг-другу флаги ведущих?
это типа менять раба и госпожу туда сюда местами каждый раз? не, ну я вот так делал, тока не с МК, и скажу что так - никакого удовольствия :)))
А серьезно - может можно обойтись и без двух ведущих устройств? какая цель системы вообще? может можно просто возложить на ведомое устройство доп обязанность в виде отправки какого-нибудь агрумента?
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 54
Зарегистрирован: Сб мар 03, 2007 21:08:15
Откуда: Киев. Украина.

Сообщение Voodoo-Cat »

Компьютер должен получать инфу от датчиков и других МК на 1-wire шине.
но и в МК иногда возникают события, на которые должен отреагировать компьютер.
Можно компьютер сделать ведущим, но тогда ему придется проверять постоянно куча переменных в памяти МК.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

А что за МК? Насколько мне известно - у PIC'ов есть "адресуемый" UART, может стоит копнуть в эту сторону?
R2AIV 73!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 54
Зарегистрирован: Сб мар 03, 2007 21:08:15
Откуда: Киев. Украина.

Сообщение Voodoo-Cat »

ATmega16
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 54
Зарегистрирован: Сб мар 03, 2007 21:08:15
Откуда: Киев. Украина.

Сообщение Voodoo-Cat »

Ладно, попробую с флагами ( или по свободности канала).
я думал, есть какие-то общие принципы :?
Реклама
Опытный кот
Аватара пользователя
Сообщения: 800
Зарегистрирован: Ср апр 25, 2007 09:50:43
Откуда: Киев

Сообщение Аксель »

...была старинная реализация сети на компортах под ДОС. :))) :))) :)))

Принцип такой, несколько компов объединялись задействуя толко один COM-порт на один компьютер, а именно (прономерованы компьютеры): 1-й TX --> 2-й RX, 2-й TX --> 3-й RX, 3-й TX --> 1-й RX.

...Может 1-Wire устройства оставить этим нескольким МК для датчиков, а обмен с компом организовать таким хитрым способом.
Скелет колобка состоит из черепа.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 54
Зарегистрирован: Сб мар 03, 2007 21:08:15
Откуда: Киев. Украина.

Сообщение Voodoo-Cat »

с 1-wire вопросов(пока) нет, Микроконтроллер - ведущий.

проблема обмена Микроконтроллер и Компьютера, они должны быть по очереди ведущими, но загружать каналы постоянным перебрасываниями флага ведущего не хотелось бы.
Опытный кот
Аватара пользователя
Сообщения: 885
Зарегистрирован: Сб июл 19, 2008 02:16:33
Откуда: Саратов

Сообщение Kotische »

Voodoo-Cat
В 1-wire есть команда "ALARM SEARCH [ECh]"
компьютер периодически посылает эту команду, а устройство заинтересованное в обслуживаниее на неё отзывается.
В случае появления на шине устройства запрашивающего обслуживание компьютер должен просканировать шину найти это устройство и его опросить.
Это по стандарту.
Абсолютно аналогично работают USB и PCI-E когда устройстру нужно послать контроллеру прерывание.
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

... если уарт то шина двунаправленная... и когда МК что-то посылает, просто обработайте комманду и отреагируйте как надо...
и канал у вас не загржуен... если вы конечно не используете два МК на один ком порт... а вот если юзаете два мк на один порт, то ведущий будет у вас комп, он и будет посылать по очереди запросы МК, о готовности их что-то отправить, если очень срочно ну просто очень срочно, то пускай МК посылает свой адрес, а потом комманду, при чём подумайте о коллизии, вообще почитайте спецификацию юсб, там ведущий только один, он посылает с каким-то интервалом запросы. это очень разумно и достаточно просто организовать.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Ответить

Вернуться в «Интеграция с ПК»