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

 
 
> выбор протокола
Karl
сообщение Sep 6 2005, 04:56
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



Необходимо связать два контроллера для обмена данными. Обмениваться решил по UART. Контроллеры находятся на одной плате. Вопрос: какой протокол обмена лучше выбрать? Передачу и прием должен инициировать мастер. Хотелось бы использовать что-то типа протокола MODBUS, но попроще.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Sep 7 2005, 08:15
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



SPI хорош для скоростной коммуникации МК с неМК, например с EEPROM, DataFlash, ADC, DAC, ets... т. к. мастер принудительно выгребает данные у слейва вне зависимости от их готовности. Приходится в этом случае изощряться с дополнительными сигналами для квитирования.
Для межпроцессорного взаимодействия в этом случае более подходят UART (USART), I2C, 1Wire.
Кстати, реализация MODBUS возможна на любом из этих интерфейсов.
Go to the top of the page
 
+Quote Post
psL
сообщение Sep 7 2005, 19:24
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(IgorKossak @ Sep 7 2005, 11:15)
SPI хорош для скоростной коммуникации МК с неМК, например с EEPROM, DataFlash, ADC, DAC, ets... т. к. мастер принудительно выгребает данные у слейва вне зависимости от их готовности. Приходится в этом случае изощряться с дополнительными сигналами для квитирования.
Для межпроцессорного взаимодействия в этом случае более подходят UART (USART), I2C, 1Wire.
Кстати, реализация MODBUS возможна на любом из этих интерфейсов.
*


В принципе не очень понятно, чем с точки зрения SPI, отличается микроконтроллер в режиме слэйв от например ADC. В любом случае - придется делать полинг готовности устройства: просто в первом случае будем принимать тот же байт, что и посылаем, а во втором ожидать в принятом байте условия конца преобразования.
Чтобы определить начало кадра от слэйва достаточно, например, чтобы символы синхронизации в режиме слэйв и в режиме мастер отличались.
Я конечно согласен, что в SPI AVR нет FIFO, но обмен между процессорами сделать можно (и делают.)

А вообще вопрос не правильно поставлен, хотябы потому что неизвестны ни характер данных, ни размер пакетов, ни требуемая пропускная способность интерфейса, уже не говоря о ресурсах используемых микроконтроллеров.
В т.ч. непонятно, достаточно ли будет полудуплексного протокола или нужен дуплекс (тогда например I2C и 1Wire не применимы в принципе).
Хотя бы для начала с этим бы определиться.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:09
Рейтинг@Mail.ru


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