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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Значит есть такая проблемма. М-у 2 микрокотроллерами есть кабель, длиной 1 километр. В кабеле 2 жилы общий провод и питание 24В. Нужно организовать односторонню передачу 1 байта из 1 контроллера в другой. Cqxfc пробую организовать это всё шунтируя на передающем блоке линию питание на GND. Импульсы до другого конца доходят но
, принимающий контроллер никак на них не реагирует. В общем если кто делал что нибудь подобное то прошу помочь. Хотелось бы узнать как лучше передовать импульсы и через какой протокол. Заранее спасибо.
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

1км это круто!

Как я понял, в кабеле 4 провода? т.е. 2-питание и 2 под данные? Тогда можно попробовать реализовать что-то типа IIC, но очень меееееедлееенноооо... Провода с данными нагрузить на концах резисторами, чтоб обеспечить нормальный ток по линии (меньше помех будет), и шунтировать кондёрами.
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Кабель 2-ух жильный используется. 1 жила- GND, 2 жила - питание 24В
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Сейчас пытаюсь сделать что то вроде урезанного 1-Wire т.е. герерирую импульсы следующим образом 1.5мс- лог.0 , 3мс-лог.1 Но приимающи МК толи вообще не реагирует на них , то ли не может из-за столь малого времени определить 0 или 1. (подпрограмма приёма импульсов вроде написана правильно, вечером выложу подпрограмму приёма)
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

герерирую импульсы следующим образом 1.5мс- лог.0 , 3мс-лог.1
На таком расстоянии, чтоб импульсы чётко различались, частоту надо делать меньше 100Гц (10мс). Сначала, конечно, надо отладить передачу вблизи. Если работает - цеплять кабель и смотреть осцилографом сигнал. Подозреваю, что он столько помех собирает...
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Значит первое что нужно сделать увеличить длительность импульсов. Тогда вопрос: по какому протоколу передавать эти импульсы или протокол который используется сейчас подойдём?(в зависимости от длительности импульса приёмник понимает лог.0 или лог.1)
Контактная информация:
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Кстати смотрел на приёмном блоке импульсы через осцил вроде фронты чёткие. Вместо кабеля использовал эквивалент из RC-цепи.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Вместо кабеля использовал эквивалент из RC-цепи.
Эээ, нет. Вся фишка в том, что кабель собирает очень много помех (ёмкость - вторично). Так что я даже не знаю, что из протоколов посоветовать. Ведь по кабелю и питание идёт, как я понял...
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Антон писал(а):Значит есть такая проблемма. М-у 2 микрокотроллерами есть кабель, длиной 1 километр. В
Я бы на Вашем месте смотрел в сторону передачи модулированного сигнала, несущую бы взял МГц или более. На принимающей стороне снимаете ВЧ с помощью конденсатора и отфильтровываете питание дросселем и конденсатором (на высокой частоте получится нормально). В общем, наверное нужно прочитать про технологию ADSL и оттуда перенести решение, естественно нужно соотнести с задачей и упростить до минимума.
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

АДСЛ для меня наверно тяжело будет. На изучение этого всего понадобится куча времени... Я уже смотрел в сторону HART протокола но особо много не вычитал я так понял спецификации на него сыслать могут токо за деньги...
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Так а если я капитально увеличу длительность импульсов? Это поможет?
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Я бы на Вашем месте смотрел в сторону передачи модулированного сигнала
Хорошая идея.
Так а если я капитально увеличу длительность импульсов? Это поможет?
Я когда советовал, думал про четырёхпроводной кабель.... с двухпроводным вряд ли выйдет. Похоже модуляция - единственное решение.
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Антон писал(а):Так а если я капитально увеличу длительность импульсов? Это поможет?
Если увеличить длительность импульсов, то возникают повышенные требования к емкости фильтрующего конденсатора по питанию на приемной стороне, это как минимум во-первых. Во-вторых фронты сигнала будут наверняка настолько затянуты и изгажены, что вряд-ли можно будет принять данные. Так что скорее всего не получится.
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 33
Зарегистрирован: Вт июл 25, 2006 06:33:54
Откуда: Казахстан, Алматы

Сообщение Антон »

Всем спасибо что ответили. Хотелось бы спросить ни у кого нету схемных решений приёмника и передатчика модулированнго сигнала по линии питания?
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Пн фев 04, 2008 08:27:21
Откуда: Уфа

Сообщение Rayan »

я бы посоветовал использовать кодирование "манчестер2". довольно просто и надежно. :) (одновременно по линии передавать и питание и информацию)
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»