Страница 1 из 1

Как соединить 2 PIC-контроллера для передачи данных

Добавлено: Пт май 29, 2009 09:58:49
Антон
Значит есть такая проблемма. М-у 2 микрокотроллерами есть кабель, длиной 1 километр. В кабеле 2 жилы общий провод и питание 24В. Нужно организовать односторонню передачу 1 байта из 1 контроллера в другой. Cqxfc пробую организовать это всё шунтируя на передающем блоке линию питание на GND. Импульсы до другого конца доходят но
, принимающий контроллер никак на них не реагирует. В общем если кто делал что нибудь подобное то прошу помочь. Хотелось бы узнать как лучше передовать импульсы и через какой протокол. Заранее спасибо.

Добавлено: Пт май 29, 2009 10:19:01
ploop
1км это круто!

Как я понял, в кабеле 4 провода? т.е. 2-питание и 2 под данные? Тогда можно попробовать реализовать что-то типа IIC, но очень меееееедлееенноооо... Провода с данными нагрузить на концах резисторами, чтоб обеспечить нормальный ток по линии (меньше помех будет), и шунтировать кондёрами.

Добавлено: Пт май 29, 2009 10:22:55
Антон
Кабель 2-ух жильный используется. 1 жила- GND, 2 жила - питание 24В

Добавлено: Пт май 29, 2009 10:29:29
Антон
Сейчас пытаюсь сделать что то вроде урезанного 1-Wire т.е. герерирую импульсы следующим образом 1.5мс- лог.0 , 3мс-лог.1 Но приимающи МК толи вообще не реагирует на них , то ли не может из-за столь малого времени определить 0 или 1. (подпрограмма приёма импульсов вроде написана правильно, вечером выложу подпрограмму приёма)

Добавлено: Пт май 29, 2009 10:47:28
ploop
герерирую импульсы следующим образом 1.5мс- лог.0 , 3мс-лог.1
На таком расстоянии, чтоб импульсы чётко различались, частоту надо делать меньше 100Гц (10мс). Сначала, конечно, надо отладить передачу вблизи. Если работает - цеплять кабель и смотреть осцилографом сигнал. Подозреваю, что он столько помех собирает...

Добавлено: Пт май 29, 2009 14:17:08
Антон
Значит первое что нужно сделать увеличить длительность импульсов. Тогда вопрос: по какому протоколу передавать эти импульсы или протокол который используется сейчас подойдём?(в зависимости от длительности импульса приёмник понимает лог.0 или лог.1)

Добавлено: Пт май 29, 2009 14:20:49
Антон
Кстати смотрел на приёмном блоке импульсы через осцил вроде фронты чёткие. Вместо кабеля использовал эквивалент из RC-цепи.

Добавлено: Пт май 29, 2009 14:38:18
ploop
Вместо кабеля использовал эквивалент из RC-цепи.
Эээ, нет. Вся фишка в том, что кабель собирает очень много помех (ёмкость - вторично). Так что я даже не знаю, что из протоколов посоветовать. Ведь по кабелю и питание идёт, как я понял...

Re: Как соединить 2 PIC-контроллера для передачи данных

Добавлено: Пт май 29, 2009 14:59:52
smac
Антон писал(а):Значит есть такая проблемма. М-у 2 микрокотроллерами есть кабель, длиной 1 километр. В
Я бы на Вашем месте смотрел в сторону передачи модулированного сигнала, несущую бы взял МГц или более. На принимающей стороне снимаете ВЧ с помощью конденсатора и отфильтровываете питание дросселем и конденсатором (на высокой частоте получится нормально). В общем, наверное нужно прочитать про технологию ADSL и оттуда перенести решение, естественно нужно соотнести с задачей и упростить до минимума.

Добавлено: Пт май 29, 2009 15:21:23
Антон
АДСЛ для меня наверно тяжело будет. На изучение этого всего понадобится куча времени... Я уже смотрел в сторону HART протокола но особо много не вычитал я так понял спецификации на него сыслать могут токо за деньги...

Добавлено: Пт май 29, 2009 15:30:42
Антон
Так а если я капитально увеличу длительность импульсов? Это поможет?

Добавлено: Пт май 29, 2009 15:41:31
ploop
Я бы на Вашем месте смотрел в сторону передачи модулированного сигнала
Хорошая идея.
Так а если я капитально увеличу длительность импульсов? Это поможет?
Я когда советовал, думал про четырёхпроводной кабель.... с двухпроводным вряд ли выйдет. Похоже модуляция - единственное решение.

Добавлено: Пт май 29, 2009 17:17:46
smac
Антон писал(а):Так а если я капитально увеличу длительность импульсов? Это поможет?
Если увеличить длительность импульсов, то возникают повышенные требования к емкости фильтрующего конденсатора по питанию на приемной стороне, это как минимум во-первых. Во-вторых фронты сигнала будут наверняка настолько затянуты и изгажены, что вряд-ли можно будет принять данные. Так что скорее всего не получится.

Добавлено: Сб май 30, 2009 19:50:32
Антон
Всем спасибо что ответили. Хотелось бы спросить ни у кого нету схемных решений приёмника и передатчика модулированнго сигнала по линии питания?

Добавлено: Пн июн 01, 2009 08:51:22
Rayan
я бы посоветовал использовать кодирование "манчестер2". довольно просто и надежно. :) (одновременно по линии передавать и питание и информацию)