|
|
  |
Посоветуйте в выборе протокола |
|
|
|
Jul 19 2006, 09:35
|

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

|
Цитата(Pyku_He_oTTyda @ Jul 19 2006, 15:22)  Есть такая задача, связать два устройства находящихся на расстоянии 100 метров друг от друга по однопроводной линии. Один мастер, второй ведомый. Необходимо передать четыре команды. МК в устройствах работают от внутреннего RC генератора. Передовать команду необходимо не чаще одного раза в 100-300 мс. Помогите выбрать протокол, по которому организовать связь. Пока думаю в сторону применения АЦП, то есть в мастере резистивный ЦАП, в ведомом АЦП. Попробовал макетировать в коридоре - 60 метров кабеля работает  Кто чего еще посоветует? Попробуйте посмотреть на LIN http://www.lin-subbus.orgИмхо, это более хорошая идея, чем использовать мультиуровневый сигнал.
--------------------
Пасу котов...
|
|
|
|
|
Jul 19 2006, 09:56
|
Местный
  
Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044

|
Цитата(AlexanderX @ Jul 19 2006, 12:39)  Как вариант - токовая петля. Правильный вариант для таких скоростей и расстояний.
--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
|
|
|
|
|
Jul 19 2006, 10:04
|

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

|
Цитата(zltigo @ Jul 19 2006, 15:45)  Цитата(Andy Mozzhevilov @ Jul 19 2006, 12:35)  Попробуйте посмотреть на LIN
:-) Это называется "красиво жить не запретить..." Если на двух примитивных без нормальных генераторов контроллеров есть "лишние" DAC/ADC, то почему-бы и нет. Калибруйте "приемник" в паузах между командами по уровню + легкую фильтрацию принятого и все будет абсолютно нормально работать на упомянутой скорости и четырех командах. Если требований к помехоустойчивости не предъявляется, то можно. Но не думаю, что реализация LIN так уж сложна, чтобы была именно "красивой жизнью". Он и сделан то вместо действительно красивого CAN, как легкий протокол.
--------------------
Пасу котов...
|
|
|
|
|
Jul 19 2006, 10:05
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(Pyku_He_oTTyda @ Jul 19 2006, 13:22)  Есть такая задача, связать два устройства находящихся на расстоянии 100 метров друг от друга по однопроводной линии. Один мастер, второй ведомый. Необходимо передать четыре команды. МК в устройствах работают от внутреннего RC генератора. Передовать команду необходимо не чаще одного раза в 100-300 мс. Помогите выбрать протокол, по которому организовать связь. Пока думаю в сторону применения АЦП, то есть в мастере резистивный ЦАП, в ведомом АЦП. Попробовал макетировать в коридоре - 60 метров кабеля работает  Кто чего еще посоветует? Я решал похожую задачу на немного модифицированном 1-Ware. Если интересно могу рассказать подробней.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Jul 19 2006, 10:11
|

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

|
Связь однонаправленная. LIN для данного применения слишком шикарно  Наверное буду использовать ЦАП/АЦП. думаю вот, поставить гальваническую развязку или обойтись защитными диодами по входу? Цитата Я решал похожую задачу на немного модифицированном 1-Ware. Если интересно могу рассказать подробней. Пока ехал на работу в маршрутке, тоже такая мысль приходила в голову. Даже думал о том, какую последовательность какой команде присвоить  Если нетрудно, расскажите. Особенно интересуют применяемые скорости и возможные грабли.
--------------------
Андрей Смирнов
|
|
|
|
|
Jul 19 2006, 10:22
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

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

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

|
Цитата ИМХО: При однонаправленной передачи мастер не будет знать, принял ведомый команду или нет. Допускает ли Ваше ТЗ негарантированную доставку команды или нет? Отсюда надо и исходить. Допускает. ТЗ простое, в общих чертах: четыре кнопки - четыре команды. Пришла правильная команда - что то делаем, не распознали команду - не делаем ничего. UART в данном случае не нравится тем, что МК работают от встроенного RC генератора, причем на открытом воздухе. Впринципе диапазон температур от -10 до +жара на солнце (а этим летом было жарко)  Опасаюсь нечеткого приема при использовании некварцованных генераторов с обеих сторон. Кроме многоуровнего управления кажется более целесообразным либо 1-Wire, либо частотные посылки. При плавании частоты генератора проще идентифицировать команду. З.Ы. Кстати, кто нибудь знает софт, с помощью которого можно снять импульсную последовательность команд ИК пульта дистанционного управления. Мне кроме WinLirc ничего не попадалось, а он, как оказалось не работает с Panasonic и JVC. Может существует какой либо логический анализатор для РС? Это еще одна зубная боль в этом проекте
--------------------
Андрей Смирнов
|
|
|
|
|
Jul 19 2006, 11:30
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

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