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

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


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

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



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


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Если хотите могу подкинуть протокол на 485 аля MODBUS только вот он на AlgorithmBuilder написан, но наверное это не проблема ?
Что касательно MODBUS его действительно не стоит повторять слово в слово, ведь он был под Модиконы а в Вашем случае внутри процессора все иначе.
За основу MODBUS я взял только синхронизацию по паузе, и принцип адресации пространства + стандартные функции.
Go to the top of the page
 
+Quote Post
Old1
сообщение Sep 6 2005, 06:30
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(Karl @ Sep 6 2005, 07:56)
Необходимо связать два контроллера для обмена данными. Обмениваться решил по UART. Контроллеры находятся на одной плате. Вопрос: какой протокол обмена лучше выбрать? Передачу и прием должен инициировать мастер. Хотелось бы использовать что-то типа протокола MODBUS, но попроще.
*

Если все находится на одной плате, почему бы не использовать SPI? Он как раз и разработан для высокоскоростной синхронной передачи данных (на небольшие расстояния)...
Go to the top of the page
 
+Quote Post
Karl
сообщение Sep 6 2005, 10:22
Сообщение #4


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

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



Цитата(Old1 @ Sep 6 2005, 11:30)
Цитата(Karl @ Sep 6 2005, 07:56)
Необходимо связать два контроллера для обмена данными. Обмениваться решил по UART. Контроллеры находятся на одной плате. Вопрос: какой протокол обмена лучше выбрать? Передачу и прием должен инициировать мастер. Хотелось бы использовать что-то типа протокола MODBUS, но попроще.
*

Если все находится на одной плате, почему бы не использовать SPI? Он как раз и разработан для высокоскоростной синхронной передачи данных (на небольшие расстояния)...
*



Против SPI ничего не имею. Но протокол хотелось взять какой - нибудь стандартный. MODBUS у меня уже реализован.
Go to the top of the page
 
+Quote Post
Camelot
сообщение Sep 6 2005, 10:31
Сообщение #5


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

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Бери ссTalk (ccTalk описание)
Go to the top of the page
 
+Quote Post
Karl
сообщение Sep 6 2005, 11:05
Сообщение #6


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

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



Цитата(Camelot @ Sep 6 2005, 15:31)
Бери ссTalk (ccTalk описание)
*

Не пускают по ссылке sad.gif
Go to the top of the page
 
+Quote Post
vzyk
сообщение Sep 6 2005, 20:57
Сообщение #7


Участник
*

Группа: Validating
Сообщений: 18
Регистрация: 3-09-05
Пользователь №: 8 208



Prosto beri UART. I vsio. Vozmi 9-yj bit dlia sinchronizaciji paketov.. SPI tozhe ne ploxo.
Poka toljko 2 CPU na platie, mozesh daze nestandartnyj skorostj UART'a vziatj, naprimier UBRR=1...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Sep 7 2005, 08:15
Сообщение #8


Шаман
******

Группа: Модераторы
Сообщений: 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
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 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
Karl
сообщение Sep 8 2005, 03:47
Сообщение #10


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

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



Цитата(psL @ Sep 8 2005, 00:24)
А вообще вопрос не правильно поставлен, хотябы потому что неизвестны ни характер данных, ни размер пакетов, ни требуемая пропускная способность интерфейса, уже не говоря о ресурсах используемых микроконтроллеров.
В т.ч. непонятно, достаточно ли будет полудуплексного протокола или нужен дуплекс (тогда например I2C и 1Wire не применимы в принципе).
Хотя бы для начала с этим бы определиться.
*


Вообще - то я не интерфейс выбираю, а протокол. Повторю еще раз. Нужно что-то типа МОДБАС. Но упрощенный, для обмена между двумя контроллерами.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 8 2005, 05:41
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Karl @ Sep 8 2005, 07:47)
Цитата(psL @ Sep 8 2005, 00:24)

А вообще вопрос не правильно поставлен, хотябы потому что неизвестны ни характер данных, ни размер пакетов, ни требуемая пропускная способность интерфейса, уже не говоря о ресурсах используемых микроконтроллеров.
В т.ч. непонятно, достаточно ли будет полудуплексного протокола или нужен дуплекс (тогда например I2C и 1Wire не применимы в принципе).
Хотя бы для начала с этим бы определиться.
*


Вообще - то я не интерфейс выбираю, а протокол. Повторю еще раз. Нужно что-то типа МОДБАС. Но упрощенный, для обмена между двумя контроллерами.
*



Да придумайте, свой! Пусть займет немного времени, но зато Вы не будете ничем ограничены и максимально сможете адаприровать все требования обмена под свою систему. Все это же происходит между двумя контроллерами ('их личное дело'), а не с 'внешним миром'. smile.gif


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Karl
сообщение Sep 8 2005, 07:10
Сообщение #12


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

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



Цитата(BVU @ Sep 8 2005, 10:41)
Цитата(Karl @ Sep 8 2005, 07:47)
Цитата(psL @ Sep 8 2005, 00:24)

А вообще вопрос не правильно поставлен, хотябы потому что неизвестны ни характер данных, ни размер пакетов, ни требуемая пропускная способность интерфейса, уже не говоря о ресурсах используемых микроконтроллеров.
В т.ч. непонятно, достаточно ли будет полудуплексного протокола или нужен дуплекс (тогда например I2C и 1Wire не применимы в принципе).
Хотя бы для начала с этим бы определиться.
*


Вообще - то я не интерфейс выбираю, а протокол. Повторю еще раз. Нужно что-то типа МОДБАС. Но упрощенный, для обмена между двумя контроллерами.
*



Да придумайте, свой! Пусть займет немного времени, но зато Вы не будете ничем ограничены и максимально сможете адаприровать все требования обмена под свою систему. Все это же происходит между двумя контроллерами ('их личное дело'), а не с 'внешним миром'. smile.gif
*


Уже придумал. И почти реализовал.
Go to the top of the page
 
+Quote Post

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

 


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


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