На настоящий момент существует масса протоколов PLC как программной, так и аппаратной реализации, наиболее популярные — PowerLine HomePlug AV, со скоростью передачи данных до 1500 мбит/сек.
Задача: для умельцев, сделать решение, где сам микроконтроллер помимо функций управления «вещами» будет работать PLC модемом.
Почему все таки PLC? Ответ прост: как минимум 90% устройств, в том числе датчики, устройства управления, питаются от линии ~220V. Встает вопрос: нафига тянуть еще провода, когда в принципе можно использовать те, которые уже проложены? Да, знаю про существование RF технологий, но опять-таки, зачем радио, когда уже есть провода? Да и в концепцию «минимальной обвески» микроконтроллера не вписывается. Не стоит задача «глобальной» сети. Нужно собрать в сеть устройства дома, огорода и пр. «хозяйства».
Итак, приступим. Есть дом с кучей всяких устройств, подключенных в розетку. Что-то вроде этого:
Попытаемся реализовать озвученную выше идею. Вкратце, как выглядит передача информации по проводам ~220V:
В качестве микроконтроллера будет STM32F100C8T6 / STM32F103C8T6. Чтобы не попасть под «раздачу», мощность отдаваемая в провод не должна превышать 70 мВт, иначе наше устройство подлежит обязательной регистрации. Если использовать ШИМ контролера в качестве генератора/смесителя то предельная частота для этого чипа будет 2 мГц. Вспоминаем про любительский диапазон 160м (1.87 мГц). Это чтобы точно никому не мешать. 1.9 мГц как раз почти предельная частота для этого контроллера.
Просканировав диапазон 160м обнаруживаю, что в нем давно никто не работает… Выбираем метод модуляции CW ( телеграфный ключ ), как самое простое и в то же время надежное решение. Для «умных вещей» нам большие скорости не нужны. В общем то более, чем достаточно 20 кбит/сек. Архитектура: мастер-слэйвы. Т.е. один контроллер опрашивает/посылает команды остальным.
Для начала, попытаемся получить «помощь» клуба: пороемся в тыр-нете, может кто-то добрый уже соорудил что-то подобное. Находим только следующее: простая схема для передачи информации по низковольтным силовым линиям
Не совсем подходит, ибо на низковольтное решение и постоянный ток. Ок, адаптируем данное решение для линии ~220V. Сооружаем гальваническую развязку и одновременно фильтр высоких частот. Получается такое:
Тестируем… Работает, но дальше 10 м не «пробивает»:
1. Не хватает мощности передатчика.
2. У приемника нет усилителя.
Ясно, что идея не сработала. Садимся думать… Не забывая о предельно простой «обвязке». Получается такое:
Исследуем, что получилось. Модулированный выход UART на трансформаторе (передатчик перед емкостями):
Что творится в реальной сети ~220V. Жилой, 9-ти этажный дом. Вход после трансформатора приемника. Амплитуда 20-100 mV. Расстояние передатчик-приемник примерно 60-70 м.
Увеличенный фрагмент. Видно, что у кого-то здорово фонит импульсный источник. Примерно 76 кГц. Настоящий китайский :)
Верхняя осциллограмма — выход детектора. Нижняя осциллограмма — Выход компаратора (восстановленный сигнал UART).
Т.е. видим, что решение — работает. Проверил в офисе, на расстоянии примерно 100-120м — решение работает.
Терминатор для сигнала — емкость 10nF включенная параллельно проводам ~220V. После нее сигнала практически нет. Для работы по разным фазам теоретически можно использовать емкости те же 10 nF, но включенные между фазами. Не проверял. Более надежно — на каждую фазу свой модем.
Через один пилот (в них присутствует емкость в качестве фильтра НЧ) сигнал проходит. Через два — уже нет. В принципе, HomePlug AV модемы через два пилота тоже не «пробивают».
Как выглядит прототип (на макетной плате):
«Упаковано» в стандартный корпус на DIN-рейку: (в заголовке статьи).
Спасибо за внимание!
Комментарии (53)
Ocelot
14.10.2016 11:42Всю приёмную часть можно сделать на одном сдвоенном операционнике. Первый ОУ — усилитель-фильтр, второй — компаратор.
leocat33
14.10.2016 13:53Не можно. Такая мысль была. Цена текущей обвески — копейки. Высокочастотный операционник стоит в 3-4 раза дороже STM32F100. Да и фильтры все равно городить придется.
Aleksandr_Zh
14.10.2016 11:44+5я два года убил в эту технологию. С нуля разработал железо и софт. Насмотрелся в питающей сети «грязи» по самый огого. Немного помогало то, что я по образованию электрик, работал вед.инженером в эл.сетях города и было проще снять все параметры сети в любо точке города и любое время.
Скажу так: если есть возможность НЕ использовать PLC — не используйте.
Это не только мой опыт. Это опыт людей из 7 стран СНГ. И не думайте, что купил в странах Европы готовые комплекты ВЧ-связи, вы получите всегда работающий продукт.
На момент моего ухода их проекта даже ребята из TI не смогли получить что-то работающее. Моё работало в 95% случаев. Но у меня скорость была около 100 бит/с. Да и то, работало только при выполнении правил установки комплектов связи и монтажа питающей сети.
А x10 просто слезы. Я за основу взял принцип, но протокол был свой: с подтверждением, возможности ретрансляции, повтора пакетов.
ps
да, кстати: проект умер, так как за 3 года не смогли найти ни ретейлеров, ни бета-тестеров продукции: диммеры, выключатели, розетки, датчики движения, рольставни, утечек, качества воздуха, освещения и прочее…gorbln
14.10.2016 16:00+1Скажу так: если есть возможность НЕ использовать PLC — не используйте.
Подпишусь. Четыре года (боже мой!) я пусконалаживал системы АСКУЭ на PLC — дрянь та ещё. При это PLC был далеко не самый плохой DLMS от ISKRAxpehter
15.10.2016 04:39Aleksandr_Zh и gorbln, вот Вы ушли от передачи данных по электрической проводке, а к чему в итоге ушли, как по Вашему мнению имеет смысл передавать данные?
gorbln
17.10.2016 15:23Наиболее адекватно работают АСКУЭ с выделенным каналом для передачи данных. В случае многоквартирного дома — это, например, RS-485. По проводам. По совокупным расходам получается даже дешевле, чем PLC. Другой вопрос, что в каком-нибудь частном секторе и старых хрущах со счётчиками в квартирах — растяжка витой пары нецелесообразна. Для частного сектора, я думаю, будет работать передача по воздуху (CC2500 и всё такое), а вот что в хрущах — не знаю. Но PLC там тоже работает препаршивейше.
В случае нового строительства — имеет большой смысл выводить все коммуникации (включая воду) в подъездный щиток.
Мы, когда делали объекты нового строительства, применяли коммутационную коробку собственной разработки. С двух сторон были RJ45 (8p8c), экранированные, а сбоку — 4 дырки RJ11, от которых шли пигтейлы к счётчикам. Монтаж быстрый, удобный. Пусконаладка (при условии, что монтажники не рукожопы (как это получилось у нас)) очень простая и быстрая. По витухе идут две независимые линии 485 и питание. В подвале (или на чердаке, как удобнее) находится концентратор и блок питания.leocat33
20.10.2016 13:14Тогда уж лучше CAN. RS-485 более капризен.
dimao79
20.10.2016 19:05-1Ну здраствуйте, приехали. CAN — логический уровень, RS-485 — физический.
10BASE-T плохой, TCP/IP гораздо лучше, ага…leocat33
21.10.2016 12:55+1Вам тоже — привет!
CAN одновременно и физическая и логическая реализация. Прежде, чем писать, нужно было прочитать про стандарты CAN. Так же как и 485-й — дифференциальная пара, но отличается реализацией. Без специализированных чипов-формирователей интерфейса вряд ли что сделаете. Я использую MCP2515.
Кстати, натыкался, но ссылку потерял, на израильских производителей чипа CAN over PLC. Решение интересное, но цена пока «кусается».
dimao79
14.10.2016 16:52+1Пробовал TDA5051 — разные схемы, разная обвязка. Результат — работает, но… В итоге так же отказался
Aleksandr_Zh
14.10.2016 11:51+1автору: вы выбрали неверные частоты! поищите стандарт Cenelec (ABC): там прописаны все полосы для потребителей и поставщиков.
хотя бы это: http://www.compel.ru/lib/ne/2013/7/7-realizatsiya-umnyih-setey-na-baze-komponentov-plc-ot-texas-instrumentsleocat33
14.10.2016 13:55Читал. Работал с PLC долго и много. Разными инкарнациями. HomePlug начинается именно с этой частоты.
leocat33
14.10.2016 14:47Да, «вдогонку», про чипы PLC от TI, в частности G3 (Prime). Работал с ними более 2-х лет. Самые неприятные воспоминания…
golf2109
14.10.2016 12:01-2не совсем понятно при чем тут ШИМ, о котором упоминается в начале, если автор использует UART.
И кстати максимальная частота для тактирования таймера данного контроллера 36 Мгц, а не 2 Мгц о которых упоминаетсяIronHead
14.10.2016 12:07не совсем понятно, откуда всегда вылезают такие комментаторы?
автор сначала пробовал с ШИМ, частота ШИМа всегда меньше, чем частота тактирования таймера. Видимо у автора проц тактировался от 16МГц, при этом 8 битный ШИМ вышел как раз 2МГц.
UART видимо используется в связке с таймером для модуляции более высокой частотой.leocat33
14.10.2016 14:10Кварц в схеме есть, но на практике я его не использовал. При комнатных температурах достаточно встроенного осцилятора. Девиация ничтожно мала. И на скорости 19200 никак не влияет.
Частота осцилятора 8 мГц. Частота шины 24 мГц.
Частоту несущей коэффициентами делителя можно получить как раз 1.87 мГц ( 160м )IronHead
14.10.2016 14:26А можно поподробнее про часть связки UART и таймера, правильно ли я понимаю — вы выход UART в линию подключаете только одновременно со срабатыванием таймера, то есть модулируете медленную UART посылку высокочастотным заполнителем (1.87 мГц )?
leocat33
14.10.2016 14:41Да, верно. Срабатывание — прерывания GPIO ( смена состояний ). Ушло в «0» — включили ШИМ, «1» — отключили ШИМ. Таймер работает постоянно, меняю только скважность ШИМ. Минимум нагрузки на микроконтроллер. Можно решать какие то другие задачи. Напр.: мониторить напряжение и ток в розетке.
Т.е. идея такова, чтобы «обвеска» помимо предельной простоты должна еще и не загружать процессор.IronHead
14.10.2016 14:44Ну примерно это я и имел ввиду. Не знал как сформулировать правильно.
А если «1» кодировать одной частотой, а «0» — другой (в 2 раза меньшей например) + добавить проверочные биты?leocat33
14.10.2016 14:54Думал над таким решением. В 2 раза меньшей — нельзя. Вот тут Россвязьнадзор и «нахлобучит». Частота может быть только в пределах диапазона 160м http://27kb.ru/zou.php?f=590&frequency=181000-200000
Если совсем точно, то я использую 1.876 мГц. Даже если 20 Вт в антенну «вдувать», то могу CW работать как 3-й категорией (не требуется регистрации). Главное, чтобы гармоник не было.
2-я причина — усложнение детектора.
Ну и при передаче-приеме можно программно использовать кодирование Хэмминга или Рида-Соломона.IronHead
14.10.2016 16:13У меня вообще как то была мысль — сделать свой низко скоростной но высоконадежный велосипед для передачи информации через любые низко скоростные каналы связи с полосой пропускания 0 — 4кГц.
Идея была похожа на принцип bluetooth:
Инфа передается генерацией последовательностей частотных посылок в диапазоне полосы пропускания (0 — 4кГц) с шагом предположим 200Гц. При этом перескок частоты идет по псевдо случайному алгоритму (определяемому например стартовой инициализацией пары модулей). При этом приемник так же ищет сигналы, перестраивая цифровой фильтр на входе по тому же псево-случайному алгоритму.Ocelot
14.10.2016 18:03Ещё можно DSSS попробовать, он вроде устойчивее к широкополосным помехам, чем псевдослучайная перестройка.
leocat33
14.10.2016 19:02Ну так это вроде и есть на основе генерации псевдослучайных чисел
https://ru.wikipedia.org/wiki/Метод_расширения_спектра_методом_прямой_последовательностиOcelot
14.10.2016 23:30+1Да, в основе тоже рандом, но не скачки по частотам, а хитрая модуляция одновременно на куче поднесущих. Метод псевдослучайной перестройки придумали против пеленгации и узкополосных глушилок, а метод прямой последовательности — для работы при низком соотношении сигнал/шум.
serafims
14.10.2016 12:05PLC тема интересная, особенно самодельная.
Вот эти ребята делали раньше модули, но перешли только на управление освещением
http://light-09.ru/elektrosetevye-priemniki-komand/
Я тоже изучал все это, и пока жду момента заказать микросхем К1446ХК1, но так как мне для теста не нужны 10 штук, могу с кем-то скооперироваться в Питере.
Странно, что на ebay нет копеечного решения…
Aleksandr_Zh
14.10.2016 12:12+1К1446ХК1 — полный шлак! я с них начинал
если надо — могу поискать свои заметки по тесту разных типовых м-м.
кстати, в конце концов, перепробовав от типовых микросхем до готовых модулей типа Plinius, я всё сделал на atmega8Aleksandr_Zh
14.10.2016 12:16+3ps
на казус.ру встречал сообщение от создателя этой микросхемы. Писал, что было много версий, отличаются наличием встроенного полосового фильтра. И сам же рекомендовал использовать иной, не даташитовский, выходной каскад. Да и транс там не ахти.
x893
14.10.2016 12:23Я так и не понял как с разными фазами поступать. Делать типа шлюза в обе фазы?
Aleksandr_Zh
14.10.2016 12:26если дальность большая, то только или активный ретранслятор, или трёхфазный модем
если малая, то конденсатор между фазами. Только это не панацея: самое «тихое» время без помех в момент перехода тока через ноль. А между фазами это время отличается. Связь будет хуже или вообще не будет, если модем имеет окно приёма в момент перехода тока через ноль.
Aleksandr_Zh
14.10.2016 12:33да, еще автору: у вас рисунок с методами «смешения» сигналов неверный :)
Котельников против.
сами найдёте ошибку? :)leocat33
14.10.2016 14:01Верный:)
Постарайтесь увидеть резонансный контур.
К тому же явного смешивания нет. В качестве «смесителя» используется ШИМ микроконтроллера.
Есть данные от UART — есть несущая, нет данных — нет несущей.Aleksandr_Zh
14.10.2016 14:03неа. Значит не понимаете.
Сигналы суммируются, никаких промодулированых синусоид с частотой силовой сети не будет.leocat33
14.10.2016 14:06Модуляция CW. Да я и не работаю с частотой сети. Все, что ниже 50-70 кгц в принципе не видно.
Aleksandr_Zh
14.10.2016 14:21не понимаете. Ладно. Проехали. http://www.falstad.com/circuit/circuitjs.html
но частоту смените: получить проблему от Россвязьнадзора — дело не хитрое…
Стандарт я уже указал выше.leocat33
14.10.2016 14:31Никакого смешивания нет. Есть прямоугольный сигнал на входе и синусоида на выходе.
C11-L2 это просто колебательный контур.
Мощность в антену (провода) = 40 мВт, предельно допустимая для свободного использования 160м = 76 мВт. Частота 160м — свободна для использования (радиолюбительская)
Поверьте радиолюбителю со стажем:)Aleksandr_Zh
14.10.2016 15:23не верю радиолюбителю, так как сейчас почти в 3 раза меньше.
ex UA3YQJ :)leocat33
14.10.2016 16:52По сравнению с какими временами? Если брать лет этак 30 тому назад, так не 3, а 30 раз. Да и частота 160 метров это по сути «песочница».
Aleksandr_Zh
14.10.2016 12:49+1автору
вот моя тема 2012 года: http://radiokot.ru/forum/viewtopic.php?f=3&t=4907&start=80
я в этой теме с 2005 года… Что конкретно интересует*?
знайте, что:
1. частоты выше 50-60 кгц по сети проходят хреново, а нам, потребителям, и отданы 95-125 кгц. Ниже — заняты энергетиками и их службами
2. простая схемотехника при частотах 95-125 кгц не даёт дальности более 40 метров даже в хороших российских сетях. Надо ретрансляторы
3. высокая чувствительность приемника не поможет, даже помешает, так как помех в сети — ОФИГЕННО много
4. передавать с уровнем больше 1 вольта нельзя — стандарты
многие крупные компании-разработчики отказались от продвижения этих методов передачи сигналов в РФ, так как параметры очень жесткие
устройства из-за бугра у нас половина не работают изначально,
из оставшегося — половина через раз (Plinius, Х10, LonWork и Neiron), остальное на малых расстояниях…
наши м-мы типа КР1446ХК1 — гэ еще то. Схематехника убогая, передатчики горели как семечки на сковороде :(
от неё отказались через 2 мес переписки с производством (почитайте мои вопросы на Kazus.ru — там много интересного. Ищите по этому логину и слову «1446ХК1»)
делаем сами на 1 МК, скорости низки, но зато надёжно в наших российских сетях ;)
делал на 2 кБита в секунду, но пришлось опуститься ниже 500 б\с, так как помехи не дают раскурить скорость :)
leocat33
14.10.2016 14:05Скорости в 2 кбита — совсем не интересно. Я сделал на 20 кбит.
Для увеличения надежности можно программно добавить кодирование Хэмминга или Рида-Соломона.Vespertilio
14.10.2016 22:09Прошу прощения, но я чего-то не понимаю? Тут идет разговор на килобиты в секунду ито с такими сложностями, как тогда устройства TP-Link прокачивают по PLC до 2х Gbps?
leocat33
15.10.2016 04:48Тут идет разговор о том, как сделать PLC модем самому. В серийных модемах, если это стандарт HomePlug AV стоит DSP, специализированный чип. Чаще всего линейка AR7420 и выше. Цена чипа мелким оптом $7-12. Стоимость предложенной обвески — копейки.
AlexPublic
19.10.2016 20:44А зачем на схемах пины МК PA4 и PB10 подтянуты к питанию, а PB2 заведён на землю? Вроде как вообще не нужные элементы схемы.
И я так понимаю смысл этой схемы исключительно в её дешевизне по отношению к AR7420 и т.п. готовым решениям?leocat33
20.10.2016 13:25PA4 и PB10 это использование UART3 Tx на вход управления ШИМ-а. Да, UART имеет постоянно присутствующую единицу, но иногда может поймать «мусор» из сети, когда кто-то коммутирует индуктивную нагрузку через реле. Данное решение снимает эту проблему.
PB2 на корпус это для прошивки МК через UART (вроде бы тривиальное решение).
dlinyj
Респект автору! Я только с Х10 работал.