Аббревиатуру «сделай сам» переводить не нужно. PLC это Powerline Communication. Как ни странно, но есть еще те, кому не безразлична идея передачи данных по электрической проводке. Да, в мире немало людей, столкнувшихся с этим явлением лицом к лицу, кто-то, возможно, только собирается познакомиться с технологиями, открывающими такие возможности, для кого-то это уже состоявшийся удачный или неудачный опыт, но это никак не вчерашний день.

image


На настоящий момент существует масса протоколов PLC как программной, так и аппаратной реализации, наиболее популярные — PowerLine HomePlug AV, со скоростью передачи данных до 1500 мбит/сек.

Задача: для умельцев, сделать решение, где сам микроконтроллер помимо функций управления «вещами» будет работать PLC модемом.

Почему все таки PLC? Ответ прост: как минимум 90% устройств, в том числе датчики, устройства управления, питаются от линии ~220V. Встает вопрос: нафига тянуть еще провода, когда в принципе можно использовать те, которые уже проложены? Да, знаю про существование RF технологий, но опять-таки, зачем радио, когда уже есть провода? Да и в концепцию «минимальной обвески» микроконтроллера не вписывается. Не стоит задача «глобальной» сети. Нужно собрать в сеть устройства дома, огорода и пр. «хозяйства».

Итак, приступим. Есть дом с кучей всяких устройств, подключенных в розетку. Что-то вроде этого:

image

Попытаемся реализовать озвученную выше идею. Вкратце, как выглядит передача информации по проводам ~220V:

image

В качестве микроконтроллера будет STM32F100C8T6 / STM32F103C8T6. Чтобы не попасть под «раздачу», мощность отдаваемая в провод не должна превышать 70 мВт, иначе наше устройство подлежит обязательной регистрации. Если использовать ШИМ контролера в качестве генератора/смесителя то предельная частота для этого чипа будет 2 мГц. Вспоминаем про любительский диапазон 160м (1.87 мГц). Это чтобы точно никому не мешать. 1.9 мГц как раз почти предельная частота для этого контроллера.

Просканировав диапазон 160м обнаруживаю, что в нем давно никто не работает… Выбираем метод модуляции CW ( телеграфный ключ ), как самое простое и в то же время надежное решение. Для «умных вещей» нам большие скорости не нужны. В общем то более, чем достаточно 20 кбит/сек. Архитектура: мастер-слэйвы. Т.е. один контроллер опрашивает/посылает команды остальным.

Для начала, попытаемся получить «помощь» клуба: пороемся в тыр-нете, может кто-то добрый уже соорудил что-то подобное. Находим только следующее: простая схема для передачи информации по низковольтным силовым линиям

Не совсем подходит, ибо на низковольтное решение и постоянный ток. Ок, адаптируем данное решение для линии ~220V. Сооружаем гальваническую развязку и одновременно фильтр высоких частот. Получается такое:

image

Тестируем… Работает, но дальше 10 м не «пробивает»:

1. Не хватает мощности передатчика.
2. У приемника нет усилителя.

Ясно, что идея не сработала. Садимся думать… Не забывая о предельно простой «обвязке». Получается такое:

image

Исследуем, что получилось. Модулированный выход UART на трансформаторе (передатчик перед емкостями):

image

Что творится в реальной сети ~220V. Жилой, 9-ти этажный дом. Вход после трансформатора приемника. Амплитуда 20-100 mV. Расстояние передатчик-приемник примерно 60-70 м.

image

Увеличенный фрагмент. Видно, что у кого-то здорово фонит импульсный источник. Примерно 76 кГц. Настоящий китайский :)

image

Верхняя осциллограмма — выход детектора. Нижняя осциллограмма — Выход компаратора (восстановленный сигнал UART).

image

Т.е. видим, что решение — работает. Проверил в офисе, на расстоянии примерно 100-120м — решение работает.

Терминатор для сигнала — емкость 10nF включенная параллельно проводам ~220V. После нее сигнала практически нет. Для работы по разным фазам теоретически можно использовать емкости те же 10 nF, но включенные между фазами. Не проверял. Более надежно — на каждую фазу свой модем.

Через один пилот (в них присутствует емкость в качестве фильтра НЧ) сигнал проходит. Через два — уже нет. В принципе, HomePlug AV модемы через два пилота тоже не «пробивают».

Как выглядит прототип (на макетной плате):

image

«Упаковано» в стандартный корпус на DIN-рейку: (в заголовке статьи).
Спасибо за внимание!
Поделиться с друзьями
-->

Комментарии (53)


  1. dlinyj
    14.10.2016 11:36

    Респект автору! Я только с Х10 работал.


  1. Ocelot
    14.10.2016 11:42

    Всю приёмную часть можно сделать на одном сдвоенном операционнике. Первый ОУ — усилитель-фильтр, второй — компаратор.


    1. leocat33
      14.10.2016 13:53

      Не можно. Такая мысль была. Цена текущей обвески — копейки. Высокочастотный операционник стоит в 3-4 раза дороже STM32F100. Да и фильтры все равно городить придется.


  1. Aleksandr_Zh
    14.10.2016 11:44
    +5

    я два года убил в эту технологию. С нуля разработал железо и софт. Насмотрелся в питающей сети «грязи» по самый огого. Немного помогало то, что я по образованию электрик, работал вед.инженером в эл.сетях города и было проще снять все параметры сети в любо точке города и любое время.
    Скажу так: если есть возможность НЕ использовать PLC — не используйте.
    Это не только мой опыт. Это опыт людей из 7 стран СНГ. И не думайте, что купил в странах Европы готовые комплекты ВЧ-связи, вы получите всегда работающий продукт.
    На момент моего ухода их проекта даже ребята из TI не смогли получить что-то работающее. Моё работало в 95% случаев. Но у меня скорость была около 100 бит/с. Да и то, работало только при выполнении правил установки комплектов связи и монтажа питающей сети.
    А x10 просто слезы. Я за основу взял принцип, но протокол был свой: с подтверждением, возможности ретрансляции, повтора пакетов.

    ps
    да, кстати: проект умер, так как за 3 года не смогли найти ни ретейлеров, ни бета-тестеров продукции: диммеры, выключатели, розетки, датчики движения, рольставни, утечек, качества воздуха, освещения и прочее…


    1. gorbln
      14.10.2016 16:00
      +1

      Скажу так: если есть возможность НЕ использовать PLC — не используйте.

      Подпишусь. Четыре года (боже мой!) я пусконалаживал системы АСКУЭ на PLC — дрянь та ещё. При это PLC был далеко не самый плохой DLMS от ISKRA


      1. xpehter
        15.10.2016 04:39

        Aleksandr_Zh и gorbln, вот Вы ушли от передачи данных по электрической проводке, а к чему в итоге ушли, как по Вашему мнению имеет смысл передавать данные?


        1. gorbln
          17.10.2016 15:23

          Наиболее адекватно работают АСКУЭ с выделенным каналом для передачи данных. В случае многоквартирного дома — это, например, RS-485. По проводам. По совокупным расходам получается даже дешевле, чем PLC. Другой вопрос, что в каком-нибудь частном секторе и старых хрущах со счётчиками в квартирах — растяжка витой пары нецелесообразна. Для частного сектора, я думаю, будет работать передача по воздуху (CC2500 и всё такое), а вот что в хрущах — не знаю. Но PLC там тоже работает препаршивейше.

          В случае нового строительства — имеет большой смысл выводить все коммуникации (включая воду) в подъездный щиток.
          Мы, когда делали объекты нового строительства, применяли коммутационную коробку собственной разработки. С двух сторон были RJ45 (8p8c), экранированные, а сбоку — 4 дырки RJ11, от которых шли пигтейлы к счётчикам. Монтаж быстрый, удобный. Пусконаладка (при условии, что монтажники не рукожопы (как это получилось у нас)) очень простая и быстрая. По витухе идут две независимые линии 485 и питание. В подвале (или на чердаке, как удобнее) находится концентратор и блок питания.


          1. leocat33
            20.10.2016 13:14

            Тогда уж лучше CAN. RS-485 более капризен.


            1. dimao79
              20.10.2016 19:05
              -1

              Ну здраствуйте, приехали. CAN — логический уровень, RS-485 — физический.

              10BASE-T плохой, TCP/IP гораздо лучше, ага…


              1. leocat33
                21.10.2016 12:55
                +1

                Вам тоже — привет!
                CAN одновременно и физическая и логическая реализация. Прежде, чем писать, нужно было прочитать про стандарты CAN. Так же как и 485-й — дифференциальная пара, но отличается реализацией. Без специализированных чипов-формирователей интерфейса вряд ли что сделаете. Я использую MCP2515.
                Кстати, натыкался, но ссылку потерял, на израильских производителей чипа CAN over PLC. Решение интересное, но цена пока «кусается».


    1. dimao79
      14.10.2016 16:52
      +1

      Пробовал TDA5051 — разные схемы, разная обвязка. Результат — работает, но… В итоге так же отказался


  1. 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-instruments


    1. leocat33
      14.10.2016 13:55

      Читал. Работал с PLC долго и много. Разными инкарнациями. HomePlug начинается именно с этой частоты.


    1. leocat33
      14.10.2016 14:47

      Да, «вдогонку», про чипы PLC от TI, в частности G3 (Prime). Работал с ними более 2-х лет. Самые неприятные воспоминания…


  1. golf2109
    14.10.2016 12:01
    -2

    не совсем понятно при чем тут ШИМ, о котором упоминается в начале, если автор использует UART.
    И кстати максимальная частота для тактирования таймера данного контроллера 36 Мгц, а не 2 Мгц о которых упоминается


    1. IronHead
      14.10.2016 12:07

      не совсем понятно, откуда всегда вылезают такие комментаторы?
      автор сначала пробовал с ШИМ, частота ШИМа всегда меньше, чем частота тактирования таймера. Видимо у автора проц тактировался от 16МГц, при этом 8 битный ШИМ вышел как раз 2МГц.
      UART видимо используется в связке с таймером для модуляции более высокой частотой.


      1. leocat33
        14.10.2016 14:10

        Кварц в схеме есть, но на практике я его не использовал. При комнатных температурах достаточно встроенного осцилятора. Девиация ничтожно мала. И на скорости 19200 никак не влияет.
        Частота осцилятора 8 мГц. Частота шины 24 мГц.
        Частоту несущей коэффициентами делителя можно получить как раз 1.87 мГц ( 160м )


        1. IronHead
          14.10.2016 14:26

          А можно поподробнее про часть связки UART и таймера, правильно ли я понимаю — вы выход UART в линию подключаете только одновременно со срабатыванием таймера, то есть модулируете медленную UART посылку высокочастотным заполнителем (1.87 мГц )?


          1. leocat33
            14.10.2016 14:41

            Да, верно. Срабатывание — прерывания GPIO ( смена состояний ). Ушло в «0» — включили ШИМ, «1» — отключили ШИМ. Таймер работает постоянно, меняю только скважность ШИМ. Минимум нагрузки на микроконтроллер. Можно решать какие то другие задачи. Напр.: мониторить напряжение и ток в розетке.
            Т.е. идея такова, чтобы «обвеска» помимо предельной простоты должна еще и не загружать процессор.


            1. IronHead
              14.10.2016 14:44

              Ну примерно это я и имел ввиду. Не знал как сформулировать правильно.
              А если «1» кодировать одной частотой, а «0» — другой (в 2 раза меньшей например) + добавить проверочные биты?


              1. leocat33
                14.10.2016 14:54

                Думал над таким решением. В 2 раза меньшей — нельзя. Вот тут Россвязьнадзор и «нахлобучит». Частота может быть только в пределах диапазона 160м http://27kb.ru/zou.php?f=590&frequency=181000-200000
                Если совсем точно, то я использую 1.876 мГц. Даже если 20 Вт в антенну «вдувать», то могу CW работать как 3-й категорией (не требуется регистрации). Главное, чтобы гармоник не было.
                2-я причина — усложнение детектора.
                Ну и при передаче-приеме можно программно использовать кодирование Хэмминга или Рида-Соломона.


                1. IronHead
                  14.10.2016 16:13

                  У меня вообще как то была мысль — сделать свой низко скоростной но высоконадежный велосипед для передачи информации через любые низко скоростные каналы связи с полосой пропускания 0 — 4кГц.
                  Идея была похожа на принцип bluetooth:
                  Инфа передается генерацией последовательностей частотных посылок в диапазоне полосы пропускания (0 — 4кГц) с шагом предположим 200Гц. При этом перескок частоты идет по псевдо случайному алгоритму (определяемому например стартовой инициализацией пары модулей). При этом приемник так же ищет сигналы, перестраивая цифровой фильтр на входе по тому же псево-случайному алгоритму.


                  1. Ocelot
                    14.10.2016 18:03

                    Ещё можно DSSS попробовать, он вроде устойчивее к широкополосным помехам, чем псевдослучайная перестройка.


                    1. leocat33
                      14.10.2016 19:02

                      Ну так это вроде и есть на основе генерации псевдослучайных чисел
                      https://ru.wikipedia.org/wiki/Метод_расширения_спектра_методом_прямой_последовательности


                      1. Ocelot
                        14.10.2016 23:30
                        +1

                        Да, в основе тоже рандом, но не скачки по частотам, а хитрая модуляция одновременно на куче поднесущих. Метод псевдослучайной перестройки придумали против пеленгации и узкополосных глушилок, а метод прямой последовательности — для работы при низком соотношении сигнал/шум.


  1. serafims
    14.10.2016 12:05

    PLC тема интересная, особенно самодельная.
    Вот эти ребята делали раньше модули, но перешли только на управление освещением
    http://light-09.ru/elektrosetevye-priemniki-komand/

    Я тоже изучал все это, и пока жду момента заказать микросхем К1446ХК1, но так как мне для теста не нужны 10 штук, могу с кем-то скооперироваться в Питере.
    Странно, что на ebay нет копеечного решения…


  1. Aleksandr_Zh
    14.10.2016 12:12
    +1

    К1446ХК1 — полный шлак! я с них начинал
    если надо — могу поискать свои заметки по тесту разных типовых м-м.
    кстати, в конце концов, перепробовав от типовых микросхем до готовых модулей типа Plinius, я всё сделал на atmega8


    1. Aleksandr_Zh
      14.10.2016 12:16
      +3

      ps
      на казус.ру встречал сообщение от создателя этой микросхемы. Писал, что было много версий, отличаются наличием встроенного полосового фильтра. И сам же рекомендовал использовать иной, не даташитовский, выходной каскад. Да и транс там не ахти.


  1. x893
    14.10.2016 12:23

    Я так и не понял как с разными фазами поступать. Делать типа шлюза в обе фазы?


    1. Aleksandr_Zh
      14.10.2016 12:26

      если дальность большая, то только или активный ретранслятор, или трёхфазный модем

      если малая, то конденсатор между фазами. Только это не панацея: самое «тихое» время без помех в момент перехода тока через ноль. А между фазами это время отличается. Связь будет хуже или вообще не будет, если модем имеет окно приёма в момент перехода тока через ноль.


      1. leocat33
        14.10.2016 13:57

        Да, я в общем то упомянул, что на 3 фазы — 3 модема. Как шлюз.


  1. Aleksandr_Zh
    14.10.2016 12:33

    да, еще автору: у вас рисунок с методами «смешения» сигналов неверный :)
    Котельников против.
    сами найдёте ошибку? :)


    1. leocat33
      14.10.2016 14:01

      Верный:)
      Постарайтесь увидеть резонансный контур.
      К тому же явного смешивания нет. В качестве «смесителя» используется ШИМ микроконтроллера.
      Есть данные от UART — есть несущая, нет данных — нет несущей.


      1. Aleksandr_Zh
        14.10.2016 14:03

        неа. Значит не понимаете.
        Сигналы суммируются, никаких промодулированых синусоид с частотой силовой сети не будет.


        1. leocat33
          14.10.2016 14:06

          Модуляция CW. Да я и не работаю с частотой сети. Все, что ниже 50-70 кгц в принципе не видно.


          1. Aleksandr_Zh
            14.10.2016 14:21

            не понимаете. Ладно. Проехали. http://www.falstad.com/circuit/circuitjs.html

            но частоту смените: получить проблему от Россвязьнадзора — дело не хитрое…
            Стандарт я уже указал выше.


            1. leocat33
              14.10.2016 14:31

              Никакого смешивания нет. Есть прямоугольный сигнал на входе и синусоида на выходе.
              C11-L2 это просто колебательный контур.
              Мощность в антену (провода) = 40 мВт, предельно допустимая для свободного использования 160м = 76 мВт. Частота 160м — свободна для использования (радиолюбительская)
              Поверьте радиолюбителю со стажем:)


              1. Aleksandr_Zh
                14.10.2016 15:23

                не верю радиолюбителю, так как сейчас почти в 3 раза меньше.
                ex UA3YQJ :)


                1. leocat33
                  14.10.2016 16:52

                  По сравнению с какими временами? Если брать лет этак 30 тому назад, так не 3, а 30 раз. Да и частота 160 метров это по сути «песочница».


  1. 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 б\с, так как помехи не дают раскурить скорость :)


    1. leocat33
      14.10.2016 14:05

      Скорости в 2 кбита — совсем не интересно. Я сделал на 20 кбит.
      Для увеличения надежности можно программно добавить кодирование Хэмминга или Рида-Соломона.


      1. Vespertilio
        14.10.2016 22:09

        Прошу прощения, но я чего-то не понимаю? Тут идет разговор на килобиты в секунду ито с такими сложностями, как тогда устройства TP-Link прокачивают по PLC до 2х Gbps?


        1. Ocelot
          14.10.2016 23:32
          +1

          На гигагерцовых частотах. Тот же вайфай, только вещает не в воздух, а в кабель. Прохождение сигнала оставляет желать лучшего.


          1. leocat33
            15.10.2016 04:49

            Там частоты не гигагерцовые. Используется спектр от 2 до 68 мГц. Насчет желать лучшего — глубоко ошибаетесь… Это не X10.


        1. leocat33
          15.10.2016 04:48

          Тут идет разговор о том, как сделать PLC модем самому. В серийных модемах, если это стандарт HomePlug AV стоит DSP, специализированный чип. Чаще всего линейка AR7420 и выше. Цена чипа мелким оптом $7-12. Стоимость предложенной обвески — копейки.


  1. Aleksandr_Zh
    14.10.2016 14:25

    сделаете — пожму лапу, как в том анекдоте )))


  1. sav6622
    14.10.2016 14:34

    PLC это не только «Powerline Communication», но и «Powerline Carrier». Часто их путают. В России «Powerline Carrier» называется «ВЧ-связь».


    1. leocat33
      14.10.2016 14:34

      И еще куча значений: https://ru.wikipedia.org/wiki/PLC


  1. AlexSam
    14.10.2016 22:58

    Можно увидеть вторую картинку в нормальном разрешении и номиналы всех деталей? Спасибо.


    1. AlexSam
      14.10.2016 23:04

      *Вторую схему конечно же


      1. Ocelot
        14.10.2016 23:32

        Откройте её в отдельной вкладке — она раскукожится в полный размер.


  1. AlexPublic
    19.10.2016 20:44

    А зачем на схемах пины МК PA4 и PB10 подтянуты к питанию, а PB2 заведён на землю? Вроде как вообще не нужные элементы схемы.

    И я так понимаю смысл этой схемы исключительно в её дешевизне по отношению к AR7420 и т.п. готовым решениям?


    1. leocat33
      20.10.2016 13:25

      PA4 и PB10 это использование UART3 Tx на вход управления ШИМ-а. Да, UART имеет постоянно присутствующую единицу, но иногда может поймать «мусор» из сети, когда кто-то коммутирует индуктивную нагрузку через реле. Данное решение снимает эту проблему.
      PB2 на корпус это для прошивки МК через UART (вроде бы тривиальное решение).