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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Посоветуйте в выборе протокола
Pyku_He_oTTyda
сообщение Jul 19 2006, 09:22
Сообщение #1


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Есть такая задача, связать два устройства находящихся на расстоянии 100 метров друг от друга по однопроводной линии. Один мастер, второй ведомый. Необходимо передать четыре команды. МК в устройствах работают от внутреннего RC генератора. Передовать команду необходимо не чаще одного раза в 100-300 мс.
Помогите выбрать протокол, по которому организовать связь.
Пока думаю в сторону применения АЦП, то есть в мастере резистивный ЦАП, в ведомом АЦП. Попробовал макетировать в коридоре - 60 метров кабеля работаетsmile.gif
Кто чего еще посоветует?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jul 19 2006, 09:35
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Pyku_He_oTTyda @ Jul 19 2006, 15:22) *
Есть такая задача, связать два устройства находящихся на расстоянии 100 метров друг от друга по однопроводной линии. Один мастер, второй ведомый. Необходимо передать четыре команды. МК в устройствах работают от внутреннего RC генератора. Передовать команду необходимо не чаще одного раза в 100-300 мс.
Помогите выбрать протокол, по которому организовать связь.
Пока думаю в сторону применения АЦП, то есть в мастере резистивный ЦАП, в ведомом АЦП. Попробовал макетировать в коридоре - 60 метров кабеля работаетsmile.gif
Кто чего еще посоветует?


Попробуйте посмотреть на LIN
http://www.lin-subbus.org
Имхо, это более хорошая идея, чем использовать мультиуровневый сигнал.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
AlexanderX
сообщение Jul 19 2006, 09:39
Сообщение #3


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

Группа: Свой
Сообщений: 107
Регистрация: 21-07-05
Из: Киев
Пользователь №: 6 977



Связъ должна быть двунаправленная или однонаправленая?

Как вариант - токовая петля.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 19 2006, 09:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Andy Mozzhevilov @ Jul 19 2006, 12:35) *
Попробуйте посмотреть на LIN

:-) Это называется "красиво жить не запретить..."

Если на двух примитивных без нормальных генераторов контроллеров есть "лишние" DAC/ADC, то почему-бы и нет. Калибруйте "приемник" в паузах между командами по уровню + легкую фильтрацию принятого и все будет абсолютно нормально работать на упомянутой скорости и четырех командах.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jul 19 2006, 09:51
Сообщение #5


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Тональными посылками можно (сильно поскипанным DTMF)


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
CDT
сообщение Jul 19 2006, 09:56
Сообщение #6


Местный
***

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



Цитата(AlexanderX @ Jul 19 2006, 12:39) *
Как вариант - токовая петля.

Правильный вариант для таких скоростей и расстояний.


--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Jul 19 2006, 10:00
Сообщение #7


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

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Вместо резистивного ЦАПа можно шимовать. И связь однонаправленная? Команда, как понял, однобайтная, (4-х битная)?

Сообщение отредактировал Alex_Pol - Jul 19 2006, 10:02
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jul 19 2006, 10:04
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(zltigo @ Jul 19 2006, 15:45) *
Цитата(Andy Mozzhevilov @ Jul 19 2006, 12:35) *

Попробуйте посмотреть на LIN

:-) Это называется "красиво жить не запретить..."

Если на двух примитивных без нормальных генераторов контроллеров есть "лишние" DAC/ADC, то почему-бы и нет. Калибруйте "приемник" в паузах между командами по уровню + легкую фильтрацию принятого и все будет абсолютно нормально работать на упомянутой скорости и четырех командах.


Если требований к помехоустойчивости не предъявляется, то можно.
Но не думаю, что реализация LIN так уж сложна, чтобы была именно "красивой жизнью".
Он и сделан то вместо действительно красивого CAN, как легкий протокол.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Семён
сообщение Jul 19 2006, 10:05
Сообщение #9


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

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(Pyku_He_oTTyda @ Jul 19 2006, 13:22) *
Есть такая задача, связать два устройства находящихся на расстоянии 100 метров друг от друга по однопроводной линии. Один мастер, второй ведомый. Необходимо передать четыре команды. МК в устройствах работают от внутреннего RC генератора. Передовать команду необходимо не чаще одного раза в 100-300 мс.
Помогите выбрать протокол, по которому организовать связь.
Пока думаю в сторону применения АЦП, то есть в мастере резистивный ЦАП, в ведомом АЦП. Попробовал макетировать в коридоре - 60 метров кабеля работаетsmile.gif
Кто чего еще посоветует?

Я решал похожую задачу на немного модифицированном 1-Ware. Если интересно могу рассказать подробней.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jul 19 2006, 10:11
Сообщение #10


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Связь однонаправленная.
LIN для данного применения слишком шикарноsmile.gif
Наверное буду использовать ЦАП/АЦП. думаю вот, поставить гальваническую развязку или обойтись защитными диодами по входу?




Цитата
Я решал похожую задачу на немного модифицированном 1-Ware. Если интересно могу рассказать подробней.


Пока ехал на работу в маршрутке, тоже такая мысль приходила в голову.
Даже думал о том, какую последовательность какой команде присвоитьsmile.gif
Если нетрудно, расскажите. Особенно интересуют применяемые скорости и возможные грабли.


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
AlexanderX
сообщение Jul 19 2006, 10:12
Сообщение #11


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

Группа: Свой
Сообщений: 107
Регистрация: 21-07-05
Из: Киев
Пользователь №: 6 977



При однонаправленной передаче можно использовать UART на токовую петлю. На приемной стороне поставите опторазвязку и будете спать спокойно. wink.gif
Go to the top of the page
 
+Quote Post
Семён
сообщение Jul 19 2006, 10:22
Сообщение #12


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

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



ИМХО: При однонаправленной передачи мастер не будет знать, принял ведомый команду или нет. Допускает ли Ваше ТЗ негарантированную доставку команды или нет? Отсюда надо и исходить.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jul 19 2006, 11:24
Сообщение #13


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
ИМХО: При однонаправленной передачи мастер не будет знать, принял ведомый команду или нет. Допускает ли Ваше ТЗ негарантированную доставку команды или нет? Отсюда надо и исходить.


Допускает. ТЗ простое, в общих чертах: четыре кнопки - четыре команды.
Пришла правильная команда - что то делаем, не распознали команду - не делаем ничего.
UART в данном случае не нравится тем, что МК работают от встроенного RC генератора, причем на открытом воздухе. Впринципе диапазон температур от -10 до +жара на солнце (а этим летом было жарко)smile.gif Опасаюсь нечеткого приема при использовании некварцованных генераторов с обеих сторон.
Кроме многоуровнего управления кажется более целесообразным либо 1-Wire, либо частотные посылки. При плавании частоты генератора проще идентифицировать команду.

З.Ы. Кстати, кто нибудь знает софт, с помощью которого можно снять импульсную последовательность команд ИК пульта дистанционного управления. Мне кроме WinLirc ничего не попадалось, а он, как оказалось не работает с Panasonic и JVC. Может существует какой либо логический анализатор для РС?
Это еще одна зубная боль в этом проекте


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Семён
сообщение Jul 19 2006, 11:30
Сообщение #14


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

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(Pyku_He_oTTyda @ Jul 19 2006, 14:11) *
Пока ехал на работу в маршрутке, тоже такая мысль приходила в голову.
Даже думал о том, какую последовательность какой команде присвоитьsmile.gif
Если нетрудно, расскажите. Особенно интересуют применяемые скорости и возможные грабли.

Мне не требовалось гальванической развязки, поэтому я использовал вот такую схему. Эта схема легко переделывается как под полевые транзисторы так и под опто пары (Правда в своё время я не нашел нужных мне оптопар).
В качестве ведомого выступала MEGA8 работающая от внутреннего генератора на 8мГц. Большую часть времени она спала или измеряла своими АЦП разные датчики.
Программная логика ведомого устройства была следующей: Сигнал IN_DALLAS подключался к порту внешнего прерывания, как только происходил отрицательный перепад запускался таймер, по положительному перепаду принималась решение помеха или сбросовый импульс, при переполнении таймера принималась решение линия замкнута. Далее шел обмен данными 3байта плюс CRC, каждый принятый пакет подтверждался OK или ERR. Кстати набор команд был небольшой, поэтому если команды такой не было, а CRC был правильный также формировался ERR. Отличием от родного 1-ware было, то, что я несколько увеличил длительность всех импульсов (хотя скорей всего это можно было не делать). По ТЗ у меня была дальность до 50 метров испытывал до 60 метров. РЕЗЮМЕ: у контролера забираются две ножки одна из них внешние прерывание и один таймер. В итоге контролер отвлекается от основной программы, только обнаружив сбросовый импульс. В качестве мастера выступала Mega162 c кварцевой стабилизацией. Кварц нужен был для передачи по UART.
Ну примерно гдето так.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jul 19 2006, 11:47
Сообщение #15


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
Семён


Спасибо! Идея понятна.


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post

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

 


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


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