, принимающий контроллер никак на них не реагирует. В общем если кто делал что нибудь подобное то прошу помочь. Хотелось бы узнать как лучше передовать импульсы и через какой протокол. Заранее спасибо.
Как соединить 2 PIC-контроллера для передачи данных
Значит есть такая проблемма. М-у 2 микрокотроллерами есть кабель, длиной 1 километр. В кабеле 2 жилы общий провод и питание 24В. Нужно организовать односторонню передачу 1 байта из 1 контроллера в другой. Cqxfc пробую организовать это всё шунтируя на передающем блоке линию питание на GND. Импульсы до другого конца доходят но
, принимающий контроллер никак на них не реагирует. В общем если кто делал что нибудь подобное то прошу помочь. Хотелось бы узнать как лучше передовать импульсы и через какой протокол. Заранее спасибо.
, принимающий контроллер никак на них не реагирует. В общем если кто делал что нибудь подобное то прошу помочь. Хотелось бы узнать как лучше передовать импульсы и через какой протокол. Заранее спасибо.
- Реклама
1км это круто!
Как я понял, в кабеле 4 провода? т.е. 2-питание и 2 под данные? Тогда можно попробовать реализовать что-то типа IIC, но очень меееееедлееенноооо... Провода с данными нагрузить на концах резисторами, чтоб обеспечить нормальный ток по линии (меньше помех будет), и шунтировать кондёрами.
Как я понял, в кабеле 4 провода? т.е. 2-питание и 2 под данные? Тогда можно попробовать реализовать что-то типа IIC, но очень меееееедлееенноооо... Провода с данными нагрузить на концах резисторами, чтоб обеспечить нормальный ток по линии (меньше помех будет), и шунтировать кондёрами.
Кабель 2-ух жильный используется. 1 жила- GND, 2 жила - питание 24В
Сейчас пытаюсь сделать что то вроде урезанного 1-Wire т.е. герерирую импульсы следующим образом 1.5мс- лог.0 , 3мс-лог.1 Но приимающи МК толи вообще не реагирует на них , то ли не может из-за столь малого времени определить 0 или 1. (подпрограмма приёма импульсов вроде написана правильно, вечером выложу подпрограмму приёма)
На таком расстоянии, чтоб импульсы чётко различались, частоту надо делать меньше 100Гц (10мс). Сначала, конечно, надо отладить передачу вблизи. Если работает - цеплять кабель и смотреть осцилографом сигнал. Подозреваю, что он столько помех собирает...герерирую импульсы следующим образом 1.5мс- лог.0 , 3мс-лог.1
- Реклама
Значит первое что нужно сделать увеличить длительность импульсов. Тогда вопрос: по какому протоколу передавать эти импульсы или протокол который используется сейчас подойдём?(в зависимости от длительности импульса приёмник понимает лог.0 или лог.1)
Кстати смотрел на приёмном блоке импульсы через осцил вроде фронты чёткие. Вместо кабеля использовал эквивалент из RC-цепи.
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Я бы на Вашем месте смотрел в сторону передачи модулированного сигнала, несущую бы взял МГц или более. На принимающей стороне снимаете ВЧ с помощью конденсатора и отфильтровываете питание дросселем и конденсатором (на высокой частоте получится нормально). В общем, наверное нужно прочитать про технологию ADSL и оттуда перенести решение, естественно нужно соотнести с задачей и упростить до минимума.Антон писал(а):Значит есть такая проблемма. М-у 2 микрокотроллерами есть кабель, длиной 1 километр. В
АДСЛ для меня наверно тяжело будет. На изучение этого всего понадобится куча времени... Я уже смотрел в сторону HART протокола но особо много не вычитал я так понял спецификации на него сыслать могут токо за деньги...
Так а если я капитально увеличу длительность импульсов? Это поможет?
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Если увеличить длительность импульсов, то возникают повышенные требования к емкости фильтрующего конденсатора по питанию на приемной стороне, это как минимум во-первых. Во-вторых фронты сигнала будут наверняка настолько затянуты и изгажены, что вряд-ли можно будет принять данные. Так что скорее всего не получится.Антон писал(а):Так а если я капитально увеличу длительность импульсов? Это поможет?
Всем спасибо что ответили. Хотелось бы спросить ни у кого нету схемных решений приёмника и передатчика модулированнго сигнала по линии питания?
я бы посоветовал использовать кодирование "манчестер2". довольно просто и надежно.
(одновременно по линии передавать и питание и информацию)


