| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
МК51 последовательный порт
12.03.2010, 12:22
|
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: МК51 последовательный порт
Не. по 232 у меня буду связаны компьютер и АВР. А как мне связать АВР и четыре адука? АВР будет типа ведущим. а адуки ведомыми.
|
|
|
|
16.03.2010, 21:53
|
|
|
Гражданин KAZUS.RUN
Регистрация: 26.12.2005
Сообщений: 620
Сказал спасибо: 25
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
Re: МК51 последовательный порт
Все зависит от расстояния. Если платы рядом, то можно SPI или I2C. А если разнесены. то RS232 или RS485. Если у AVR нет второго COM-порта, можно сделать программный
|
|
|
|
17.03.2010, 10:01
|
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: МК51 последовательный порт
а где можно поподробнее узнать про многоконтроллерые системы?
У меня планируется так. АВР дает команду на какую-нить плату АДУК (здесь я как понимаю АВР - ведущий, все АДУКИ - ведомые). Через некоторое время, после выполнения команды АДУК посылает подтверждение выполнения команды (здесь получается АДУКИ ведущие, АВР - ведомый).
Как в таком случае должен быть выполнен алгоритм?
АВР (ведущий) после выдачи команды АДУКам должен становиться ведомым и ждать подтверждения от АДУКа, а затем снова становаиться ведущим чтобы дать следующую команду. Так?
А если будут возникать коллизии. Как с ними бороться?
Заранее, благодарен. Блин, мужики, только учусь микропроцессорам.
|
|
|
|
17.03.2010, 15:43
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: МК51 последовательный порт
Смысл ведущего в том, что он всегда начинает обмен, ведомый всегда должен ответить, но никогда сам не отвечает первым. Кроме того, при обмене по spi ведущий вырабатывает частоту синхронизации битов для ведомого.
АВР у вас ведущий, он раздаёт команды, (возможно) ждёт подтверждения приёма команды и ждёт ответа выполнения команды.
|
|
|
|
18.03.2010, 09:21
|
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: МК51 последовательный порт
Сообщение от =GM=
|
|
Смысл ведущего в том, что он всегда начинает обмен, ведомый всегда должен ответить, но никогда сам не отвечает первым.
|
Вот. Кем же тогда АДУК будет выступать при инизиалицзации передачи данных?
Сообщение от =GM=
|
|
ждёт ответа выполнения команды
|
Ответ должен быть представлен (у меня) как несколько байтов. Как тогда должен ведуший АВР узнать что ему хотят передать данные?
|
|
|
|
18.03.2010, 14:37
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: МК51 последовательный порт
Сообщение от SerGO_83
|
|
Вот. Кем же тогда АДУК будет выступать при инизиализации передачи данных??
|
С чего бы ему начинать первым, он что, знает что делать лучше, чем голова? И какие данные, простите? Ему сказано: передвинься на 5 мм влево, он говорит - понял, щас сделаю. Голова через секунду спрашивает: сделал?, он отвечает: а як жеж, еще полсек назад. Или так: нет, стружка в ходовой винт попала...
Сообщение от SerGO_83
|
|
Ответ должен быть представлен (у меня) как несколько байтов. Как тогда должен ведуший АВР узнать что ему хотят передать данные?
|
Посылкой запроса.
|
|
|
|
18.03.2010, 15:24
|
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: МК51 последовательный порт
то есть с определенным интервалом времени опрашивать все слейвы?
Или можеть быть сделать так - после выполнения команды генерировать прерывание для АВР-а. А т.к. АДУКа четыре то поставить их через элемент ИЛИ, и только после прерывания начинать опрос.
ЗЫ. В голове каша такая.
ЗЗЫ Во многих книжках приведены примеры работы с памятью, часами реального времени и тд . Но не видел про многопроцессорые системы
|
|
|
|
18.03.2010, 20:54
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: МК51 последовательный порт
Проще и надёжнее проектировать систему слабосвязанных многопроцессоров, взять к примеру, контроллер сдрома и винчестера.
Можно делать по опросу, можно по прерываниям, это так сказать вопрос быстродействия "команда-ответ". Вы себе ответьте, какую систему вы хотите получить? Должен главный мозг всё жёстко контролировать, или же разумно разделить функции между центром и периферией? Если должен, то зачем нужны периферийные мозги? Если нет, то где граница разделения функций?
Ну вот, представьте, получили вы одновременно 3 прерывания, что будете делать? Опросить, кто это сделал? Опять присутствует поллинг. Примите во внимание быстродействие системы, пока устройство доползёт по одной координате до заданной точки пройдёт много-много "машинных часов". Только вы, разработчик, можете решить, как будет оптимально.
|
|
|
|
18.03.2010, 21:10
|
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: МК51 последовательный порт
Спасибо за конструктивный диалог.
Сообщение от =GM=
|
|
пока устройство доползёт по одной координате до заданной точки пройдёт много-много "машинных часов"
|
я вот и боялся за быстродействие. Но до этого этапа еще далеко. Только если к лету успеем сделать макетный образец. Пока только в протуесе делаю
|
|
|
|
03.12.2010, 21:13
|
|
|
Прохожий
Регистрация: 01.03.2005
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: МК51 последовательный порт
Прошу помощи =) Подскажите как лучше сделать гальваническую развязку на выходе порта МК51, чтобы логический "0" передавался напряжение 0.2 В, а "1" - передавалась напряжением -0.2 В???
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:46.
|
|