Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 11.04.2008, 12:22  
vikpol
Частый гость
 
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
vikpol на пути к лучшему
По умолчанию Вопрос по протоколам обмена данными в ATmegaAVR

Доброго всем здоровьечка!
Спецы, подскажите пожалуйста...
Есть три контроллера ATmega32 №1, №2 и №3. Между собой они должны общаться по следующему алгоритму:
1. №3 передает данные №1 и №2.
2. Затем №1 передает данные №2.
3. Затем №1 и №2 передают данные №3
Вопрос: Каким протоколом это можно сделать проще всего - TWI, USART или SPI? Хотелось бы сделать это используя только один протокол (задействовано меньше ножек да и код попроще). Я склоняюсь к TWI (т.е. №3 - ведущий передатчик/приемник, №1 - ведомый приемник/передатчик, №2 - ведомый приемник/передатчик), но из описания TWI так и не понял - может ли ведомый передавать данные ведомому?
Или же стоит №1 сделать ведущим, а №2 и №3 - ведомыми (но тогда опять передача идет от ведомого №2 к ведомому №3)?
Реклама:
__________________
Нет слов "не могу" - есть "не хочу"
vikpol вне форума  
Непрочитано 11.04.2008, 12:50  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

Если есть возможность изменить алгоритм работы, то будет намного проще организовать сеть с одним ведущим. Например научите первый контроллер работать ретранслятором.
И поищите в Сети WAKE -- думаю кучка вопросов отпадет.
AndryG вне форума  
Непрочитано 11.04.2008, 16:05  
rubel
Гражданин KAZUS.RU
 
Аватар для rubel
 
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
rubel на пути к лучшему
По умолчанию Re: Вопрос по протоколам обмена данными в ATmegaAVR

Сообщение от vikpol
Доброго всем здоровьечка!
Спецы, подскажите пожалуйста...
Есть три контроллера ATmega32 №1, №2 и №3. Между собой они должны общаться по следующему алгоритму:
1. №3 передает данные №1 и №2.
2. Затем №1 передает данные №2.
3. Затем №1 и №2 передают данные №3
Вопрос: Каким протоколом это можно сделать проще всего - TWI, USART или SPI? Хотелось бы сделать это используя только один протокол (задействовано меньше ножек да и код попроще). Я склоняюсь к TWI (т.е. №3 - ведущий передатчик/приемник, №1 - ведомый приемник/передатчик, №2 - ведомый приемник/передатчик), но из описания TWI так и не понял - может ли ведомый передавать данные ведомому?
Или же стоит №1 сделать ведущим, а №2 и №3 - ведомыми (но тогда опять передача идет от ведомого №2 к ведомому №3)?
Привет односельчанам Я бы остановился на USART-›RS485.Дешево и сердито. Контроллеры на разных платах ведь? или на одной? 8O какое max расстояние между девайсами?
Насчет TWI - теоретически все могут там передавать друг дружке, но всегда делают 1Master ,остальные - рабы,(мастер формирует клоки на SCL);если будет более одного командира - путаница неизбежна.Другое дело, когда в процессе работы функции мастера на время возьмет другой девайс... но это гемор. Если по времени не критично, согласен с AndryG насчет ретранслятора.
rubel вне форума  
Непрочитано 11.04.2008, 16:51  
vikpol
Частый гость
 
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
vikpol на пути к лучшему
По умолчанию

Контроллеры на одной плате. Максимальное расстояние 100 мм. Вопрос времени весьма критичен. Как раз поэтому и были разделены контроллеры №1 и №2 - что бы не отвлекались.
Цитата:
И поищите в Сети WAKE
Если имеется в виду Wake-on-LAN, то мне это не подходит - девайсы не спят, а пашут как глухонемые.
И все - таки, в протоколе TWI может быть так:
ведущий/передатчик передает ведущему/приемнику (в случае двух ведущих и одного ведомого) или ведомый/передатчик передает ведомоиу/приемнику (в случае одного ведущего и двух ведомых)?
Как мне кажется, в принципе это возможно - ведь каждый контроллер имеет свой индивидуальный адрес.
Хотя может я ошибаюсь...
__________________
Нет слов "не могу" - есть "не хочу"
vikpol вне форума  
Непрочитано 11.04.2008, 16:58  
vikpol
Частый гость
 
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
vikpol на пути к лучшему
По умолчанию

Ксати, что означает
Цитата:
научите первый контроллер работать ретранслятором
?
Вы имеете в виду, что, например, контроллер №1 получит от контроллера №2 данные для контроллера №3 и затем передаст их контроллеру №3?
Над этим стоит подумать.
__________________
Нет слов "не могу" - есть "не хочу"
vikpol вне форума  
Непрочитано 11.04.2008, 17:08  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

Ретранслятора Вы поняли верно ... WAKE http://www.spetspribor.ru/support/so...wake/wake.html Хотя если на одной плате -- это слишком.

Может стоит почитать IIC ? на TWI он, говорят, строится нормально ... и предназначен для "на плтаной" коммуникации.

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

Хочет контроллер сказать чего-нить .. смотрит, на эту линию .. ждет, пока освободится линия ... захватывает ее и начинает вещать.

А вообще всё зависит от характера данных, скорость, объем и т.д.

описывайте подробней, что творите - может конкретней будут разговоры.
AndryG вне форума  
Непрочитано 13.04.2008, 22:17  
vikpol
Частый гость
 
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
vikpol на пути к лучшему
По умолчанию

Если подробнее, то по идее выглядит все это следующим образом (просто сейчас продумываю концепцию и разрабатываю алгоритм):
1.Контроллер №3 работает с ЖКИ и клавиатурой. Т.е. через клавиатуру задаются основные параметры системы для контроллеров №1 и №2. Разумеется все отображается на ЖКИ. Заданные параметры в контроллере №3 формируются в пакеты отдельно для №1 и отдельно №2. Затем по команде завершения ввода данных они передаются сначала №1, затем №2. Команда "старт" передается для системы через контроллер №3.
2.Контроллер №1 обрабатывает полученные данные и выдает обработанные данные контроллеру №2.
3.Контроллер №2 обрабатывает данные от №1 и №3 и выдает управляющие команды в аналоговую схему.
4.При необходимости по команде от контроллера №3 контроллеры №1 и №2 выдают обработанные данные на №3 для отображения на ЖКИ.
Разумеется, напрашивается объединение №1 и №2 в один кристалл, но... Время!
Каждый из контроллеров №1 и №2 получают через АЦП по 3-4 аналоговых сигнала. Преобразование занимает слишком много времени, а время реакции системы должно быть по возможности максимально быстрым.
__________________
Нет слов "не могу" - есть "не хочу"
vikpol вне форума  
Непрочитано 13.04.2008, 22:22  
vikpol
Частый гость
 
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
vikpol на пути к лучшему
По умолчанию

Кстати, в тему...
Подскажите пожалуйста, насколько точно и корректно моделирует протокол TWI Proteus7.2? Сами понимаете, такое дело надо максимально проверять до изготовления вживую!
__________________
Нет слов "не могу" - есть "не хочу"
vikpol вне форума  
Непрочитано 14.04.2008, 10:07  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

Тут, наверно, стоит вспомнить архитектуру ПК ... контроллер клавы/видео работает сам по себе и общается с центральным процем "через регистры".

С терминалом (клава/видео) стоит общаться только одному процу.

первый проц - принимает данные и приводит их в стоящий вид для второго
второй принимает данные и реализует бизнес-логику
третий - терминал, управляется (как и первый) вторым

Может так? меньше ветвлений и параллельных задач - меньше глюков и непоняток.
AndryG вне форума  
Непрочитано 14.04.2008, 17:59  
rubel
Гражданин KAZUS.RU
 
Аватар для rubel
 
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
rubel на пути к лучшему
По умолчанию

Сообщение от vikpol
Если подробнее, то по идее выглядит все это следующим образом (просто сейчас продумываю концепцию и разрабатываю алгоритм):
1.Контроллер №3 работает с ЖКИ и клавиатурой. Т.е. через клавиатуру задаются основные параметры системы для контроллеров №1 и №2. Разумеется все отображается на ЖКИ. Заданные параметры в контроллере №3 формируются в пакеты отдельно для №1 и отдельно №2. Затем по команде завершения ввода данных они передаются сначала №1, затем №2. Команда "старт" передается для системы через контроллер №3.
2.Контроллер №1 обрабатывает полученные данные и выдает обработанные данные контроллеру №2.
3.Контроллер №2 обрабатывает данные от №1 и №3 и выдает управляющие команды в аналоговую схему.
4.При необходимости по команде от контроллера №3 контроллеры №1 и №2 выдают обработанные данные на №3 для отображения на ЖКИ.
Разумеется, напрашивается объединение №1 и №2 в один кристалл, но... Время!
Каждый из контроллеров №1 и №2 получают через АЦП по 3-4 аналоговых сигнала. Преобразование занимает слишком много времени, а время реакции системы должно быть по возможности максимально быстрым.
Т.е. необходимость использовать 2 контроллера(№1 и №2) вызвана только низким быстродействием АЦП?
rubel вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите по Си, программа обмена данными по 232 russo_turisto Микроконтроллеры, АЦП, память и т.д 4 25.03.2009 16:40
вопрос по протоколу обмена Gladkih Микроконтроллеры, АЦП, память и т.д 12 17.02.2009 13:46
С++ обмен данными через USB Boris_Britva Микроконтроллеры, АЦП, память и т.д 8 24.06.2008 11:58
Ищу программу для работы с буфером обмена Don_Ambrosio Информация по радиокомпонентам 0 23.04.2008 11:02
Скопировать и расшифровать протокол обмена georg222 Делимся опытом 1 05.03.2008 08:03


Часовой пояс GMT +4, время: 21:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot