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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Протокол для Rs-485, Какой выбрать?
fredo
сообщение Oct 21 2006, 18:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 13-09-06
Пользователь №: 20 357



Подскжите какой лучше протокол использовать для объединения нескольких устройств в сеть через интерфейс RS-485 ??
Всего будет порядка 5 устройств на базе Atmega16, все устройства в сети равноценны.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 21 2006, 19:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(fredo @ Oct 22 2006, 00:44) *
Подскжите какой лучше протокол использовать для объединения нескольких устройств в сеть через интерфейс RS-485 ??
Всего будет порядка 5 устройств на базе Atmega16, все устройства в сети равноценны.

Для RS-485 лучше всего подходят пакетные протоколы. Т.е. передача происходит по принципу запрос-ответ в пакетном режиме. Посмотрите протоколы типа Wake, Modbus, PiNet.
А вот мультимастер для RS-485 реализуется весьма плохо. Не предназначен он для "равноправного" доступа к линии, т.к. нет простого по реализации механизма обнаружения и устранения коллизий. Потому подумайте как сделать какой-нибудь из ваших МК ведущим, а остальные ведомыми.
Go to the top of the page
 
+Quote Post
Shread
сообщение Oct 29 2006, 12:22
Сообщение #3


иногда заглядывающий
****

Группа: Свой
Сообщений: 900
Регистрация: 18-05-05
Из: Зеленоград
Пользователь №: 5 170



очень рекомендую Modbus, прост в реализации, и удобен
Go to the top of the page
 
+Quote Post
ipc
сообщение Oct 30 2006, 06:27
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(Shread @ Oct 29 2006, 16:22) *
очень рекомендую Modbus, прост в реализации, и удобен

Согласен что модбас вещь стоящая но важно не планируется ли в данной сети использовать еще покупные устройства с RS-485 интерфейсом.Если например могут понадобится девайсы типа Adam,ICPCON или Nudam возможно что логичнее быдет реализовать протокол ADAM4000 кстати тоже весьма несложный.
Опять же надо знать какие данные необходимо пересылать,в к примеру модбасе неочень удобно передавать большие или структуированные данные и иногда гораздо проще в таких специфических применениях замутить свой кустарный протокол.
Go to the top of the page
 
+Quote Post
Alex-GTU
сообщение Oct 30 2006, 07:08
Сообщение #5


Знающий
****

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



Цитата(rezident @ Oct 21 2006, 22:07) *
Цитата(fredo @ Oct 22 2006, 00:44) *

Подскжите какой лучше протокол использовать для объединения нескольких устройств в сеть через интерфейс RS-485 ??
Всего будет порядка 5 устройств на базе Atmega16, все устройства в сети равноценны.

Для RS-485 лучше всего подходят пакетные протоколы. Т.е. передача происходит по принципу запрос-ответ в пакетном режиме. Посмотрите протоколы типа Wake, Modbus, PiNet.
А вот мультимастер для RS-485 реализуется весьма плохо. Не предназначен он для "равноправного" доступа к линии, т.к. нет простого по реализации механизма обнаружения и устранения коллизий. Потому подумайте как сделать какой-нибудь из ваших МК ведущим, а остальные ведомыми.


А почему мультимастер для RS-485 реализуется весьма плохо?

Цитата(ipc @ Oct 30 2006, 09:27) *
Цитата(Shread @ Oct 29 2006, 16:22) *

очень рекомендую Modbus, прост в реализации, и удобен

Согласен что модбас вещь стоящая но важно не планируется ли в данной сети использовать еще покупные устройства с RS-485 интерфейсом.Если например могут понадобится девайсы типа Adam,ICPCON или Nudam возможно что логичнее быдет реализовать протокол ADAM4000 кстати тоже весьма несложный.
Опять же надо знать какие данные необходимо пересылать,в к примеру модбасе неочень удобно передавать большие или структуированные данные и иногда гораздо проще в таких специфических применениях замутить свой кустарный протокол.


И что за ADAM4000? Ссылочку подскажите, пожалуйста.


--------------------
В дебрях коры, в мозговой глубине, стремные мысли пригрезились мне.
Go to the top of the page
 
+Quote Post
ipc
сообщение Oct 30 2006, 08:26
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(alex2703 @ Oct 30 2006, 11:08) *
А почему мультимастер для RS-485 реализуется весьма плохо?

И что за ADAM4000? Ссылочку подскажите, пожалуйста.


Мультимастер обеспечивается плохо потому что у RS-485 в один момент времени может быть только один передающий модуль и единственный способ сделать мультимастерность это мудрить с временным разделением передачи(обмениватся токеном или еще как).В том же CANе например два передатчика могут начать передавать одновременно но получится это у того у кого приоритет сообщения выше остальные попробуют передать позже(неразрушающий арбитраж).

А ADAM4000 это название серии модулей фирмы адвантек и их протокол был принят дефакто остальными производителями аналогичных модулей.Что то посмотреть на эту тему можно тут
Go to the top of the page
 
+Quote Post
AndreyVN
сообщение Nov 3 2006, 05:56
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Цитата(fredo @ Oct 21 2006, 21:44) *
Подскжите какой лучше протокол использовать для объединения нескольких устройств в сеть через интерфейс RS-485 ??
Всего будет порядка 5 устройств на базе Atmega16, все устройства в сети равноценны.


Не знаю как правильно назвать такой протокол, но счетчики электроэнергии Меркурий, модули IPCON 7017 по протоколу RS-485 и им подобные разговаривают следующим образом:

Запрос: ~АдресУстройстваКомандаЗапроса
Ответ: #АдресУстройстваДанныеОтвета

Все адреса и данные пишутся в ASCII коде, соответственно отлаживать обмен можно из программы терминала.

Сообщение отредактировал AndreyVN - Nov 3 2006, 05:57
Go to the top of the page
 
+Quote Post
ipc
сообщение Nov 3 2006, 06:03
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(AndreyVN @ Nov 3 2006, 08:56) *
Цитата(fredo @ Oct 21 2006, 21:44) *

Подскжите какой лучше протокол использовать для объединения нескольких устройств в сеть через интерфейс RS-485 ??
Всего будет порядка 5 устройств на базе Atmega16, все устройства в сети равноценны.


Не знаю как правильно назвать такой протокол, но счетчики электроэнергии Меркурий, модули IPCON 7017 по протоколу RS-485 и им подобные разговаривают следующим образом:

Запрос: ~АдресУстройстваКомандаЗапроса
Ответ: #АдресУстройстваДанныеОтвета

Все адреса и данные пишутся в ASCII коде, соответственно отлаживать обмен можно из программы терминала.


Это и есть ADAM4000.И RS-485 не протокол а интерфейс.
Go to the top of the page
 
+Quote Post
muravei
сообщение Nov 3 2006, 07:01
Сообщение #9


Гуру
******

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



Цитата(AndreyVN @ Nov 3 2006, 08:56) *
Запрос: ~АдресУстройстваКомандаЗапроса
Ответ: #АдресУстройстваДанныеОтвета

А если у меня все совсем просто: один мастер.
Можно так:
Запрос: АдресУстройства
Ответ: ДанныеОтвета
?
Go to the top of the page
 
+Quote Post
ipc
сообщение Nov 3 2006, 07:32
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(muravei @ Nov 3 2006, 10:01) *
Цитата(AndreyVN @ Nov 3 2006, 08:56) *

Запрос: ~АдресУстройстваКомандаЗапроса
Ответ: #АдресУстройстваДанныеОтвета

А если у меня все совсем просто: один мастер.
Можно так:
Запрос: АдресУстройства
Ответ: ДанныеОтвета
?


Можно и так только лучше всетаки передавать какойто префикс в начале чтобы знать что данные идут без разрывов.
Go to the top of the page
 
+Quote Post
Miron
сообщение Nov 3 2006, 07:36
Сообщение #11


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

Группа: Validating
Сообщений: 149
Регистрация: 11-02-05
Из: Рязань
Пользователь №: 2 574



Если вы делаете проект одноразовый для одного заказчика
то при наличии времени и желания можно придумать свой
простенький протокол особенно если в линии только один мастер
Если проект будет клонироваться для разных заказчиков
то рекомендую использовать какой нибудь распространненный
протокол (например MODBUS)
Опыт показывает что со своим протоколом жить можно но
со временем это становится сдерживающим фактором для
проталкивания своей продукции на рынок.
Go to the top of the page
 
+Quote Post
Арахис
сообщение Dec 2 2006, 02:47
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 13-11-06
Пользователь №: 22 255



Цитата(Miron @ Nov 3 2006, 07:36) *
Если вы делаете проект одноразовый для одного заказчика
то при наличии времени и желания можно придумать свой
простенький протокол особенно если в линии только один мастер
Если проект будет клонироваться для разных заказчиков
то рекомендую использовать какой нибудь распространненный
протокол (например MODBUS)
Опыт показывает что со своим протоколом жить можно но
со временем это становится сдерживающим фактором для
проталкивания своей продукции на рынок.


Удивительно точно подмечено!
Мы уже 15 лет на рынке. Продали десятки тысяч приборов нескольких десятков типов. Реальные пользователи довольны. И всё равно сейчас прихдится городить встроенные преобразователи в стандартные протоколы исключительно в рекламных целях. Нынче рынком управляют менеджеры со своими красочными картинками и пафосными фразами, а не здравый смысл.

Делайте выводы!
Go to the top of the page
 
+Quote Post
gala
сообщение Jan 18 2007, 10:06
Сообщение #13


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

Группа: Свой
Сообщений: 119
Регистрация: 29-11-05
Из: Украина, Черкассы
Пользователь №: 11 564



Какой выбрать из двух:
1) Wake
2) Modbus

Для задачи:
Master = WinXP/virtualCOM(CP210x+xx485)/C++

Slave (max10)=UART C8051Fxxx :
"текущий" передает данные с АЦП 10-20кБ/сек
"резервные" передают данные вместе до 1кБ/сек
Go to the top of the page
 
+Quote Post
ipc
сообщение Jan 18 2007, 10:25
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(gala @ Jan 18 2007, 10:06) *
Какой выбрать из двух:
1) Wake
2) Modbus

Для задачи:
Master = WinXP/virtualCOM(CP210x+xx485)/C++

Slave (max10)=UART C8051Fxxx :
"текущий" передает данные с АЦП 10-20кБ/сек
"резервные" передают данные вместе до 1кБ/сек


Думаю без вариантов это должен быть Wake(или его собственная реализация).Модбас предназначен для других целей и через него крайне неудобно передавать большие или структуированные данные.

Сейчас делаю аналогичный девайс только с FTDI и уже без труда сделана собственная реализация wake.
Go to the top of the page
 
+Quote Post
Alex-GTU
сообщение Jan 18 2007, 21:19
Сообщение #15


Знающий
****

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



Цитата(ipc @ Jan 18 2007, 10:25) *
Цитата(gala @ Jan 18 2007, 10:06) *

Какой выбрать из двух:
1) Wake
2) Modbus

Для задачи:
Master = WinXP/virtualCOM(CP210x+xx485)/C++

Slave (max10)=UART C8051Fxxx :
"текущий" передает данные с АЦП 10-20кБ/сек
"резервные" передают данные вместе до 1кБ/сек


Думаю без вариантов это должен быть Wake(или его собственная реализация).Модбас предназначен для других целей и через него крайне неудобно передавать большие или структуированные данные.

Сейчас делаю аналогичный девайс только с FTDI и уже без труда сделана собственная реализация wake.



Уважаемый IPC, почему "Модбас предназначен для других целей", а для каких тогда?


--------------------
В дебрях коры, в мозговой глубине, стремные мысли пригрезились мне.
Go to the top of the page
 
+Quote Post

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

 


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


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