5 февраля этого года был утверждён новый стандарт на 10-мегабитный Ethernet. Да, вы верно прочитали: десять мегабит в секунду.
Для чего в 21-м веке нужна такая «маленькая» скорость? Для замены того зоопарка, который скрывается под ёмким названием «полевая шина» — Profibus, Modbus, CC-Link, CAN, FlexRay, HART и т.д. Их слишком много, они несовместимы между собой и относительно сложны в настройке. А хочется просто воткнуть кабель в коммутатор, и всё. Как с обычным Ethernet.
И вскоре это станет возможным! Знакомьтесь: «802.3cg-2019 — IEEE Standard for Ethernet — Amendment 5:Physical Layer Specifications and Management Parameters for 10 Mb/s Operation and Associated Power Delivery over a Single Balanced Pair of Conductors».
Чем же интересен этот новый Ethernet? Прежде всего – он работает по одной витой паре, а не по четырём. Поэтому у него меньше разъёмы и тоньше кабели. И можно использовать уже проложенную витую пару, идущую к датчикам и исполнительным механизмам.
Вы можете возразить, что Ethernet работает до 100 метров, а датчики расположены гораздо дальше. Действительно, раньше это было проблемой. Но 802.3cg работает на расстоянии до 1 км! По одной паре! Неплохо?
На самом деле, ещё лучше: по этой же паре может подаваться и электропитание. Вот с него и начнём.
IEEE 802.3bu Power over Data Lines (PoDL)
Думаю, многие из вас слышали о PoE (Power over Ethernet) и знают, что для передачи питания нужны 2 пары проводов. Ввод/вывод питания сделан в средних точках трансформаторов каждой пары. Используя одну пару такое сделать невозможно. Поэтому пришлось делать по-другому. Как именно – показано на рисунке внизу. Для примера добавлен и классический PoE.
Здесь:
PSE – power sourcing equipment (источник питания)
PD – powered device (устройство на дальнем конце, потребляющее электричество)
Изначально 802.3bu имел 10 классов электропитания:
Цветом выделены три условных градации напряжения источника: 12, 24 и 48В.
Обозначения:
Vpse — напряжение источника питания, В
Vpd min — минимальное напряжение на PD, В
I max — максимальный ток в линии, А
Ppd max — максимальная потребляемая мощность PD, Вт
С появлением протокола 802.3cg добавилось ещё 6 классов:
Разумеется, при таком многообразии PSE и PD должны согласовывать класс электропитания перед подачей полного напряжения. Делается это с помощью SCCP ( Serial Communications Classification Protocol). Это низкоскоростной протокол (333 бит/с), основанный на 1-Wire. Он работает только тогда, когда в линию не подано основное питание (в т.ч. в спящем режиме).
На блок-схеме показано, как выполняется подача питания:
- подаётся ток 10мА и проверяется наличие на том конце стабилитрона на 4В
- производится согласование класса питания
- подаётся основное питание
- если потребление падает меньше 10мА – включается спящий режим (подача дежурного питания 3.3В)
- если потребление превышает 1мА – происходит выход из спящего режима
Согласование класса питания можно не делать, если он заранее известен. Такой вариант называется Fast Startup Mode. Применяется, например, в автомобилях, т.к. там нет необходимости менять конфигурацию подключенного оборудования.
Инициировать переход в спящий режим может как PSE, так и PD.
Теперь перейдём к описанию передачи данных. Там тоже интересно: в стандарте определены два режима работы – дальнобойный и для небольших расстояний.
10BASE-T1L
Это вариант для большой дальности (long reach). Основные характеристики следующие:
- дальность действия – до 1км
- проводники 18AWG (0.8мм2)
- до 10 промежуточных разъёмов (и два оконечных)
- режим работы точка-точка
- полный дуплекс
- символьная скорость 7.5Мбод
- модуляция PAM-3, кодирование 4B3T
- сигнал с амплитудой 1В (1Vpp) или 2.4В
- поддержка Energy Efficient Ethernet (“quiet/refresh” EEE)
Очевидно, что этот вариант предназначен для индустриального применения, систем контроля доступа, автоматизации зданий, лифтов. Для управления расположенными на крышах чиллерами, кондиционерами, вентиляторами. Или находящимися в технических помещениях отопительными котлами и насосами. То есть, уйма всяких применений помимо промышленности. Не говоря уже про интернет вещей (IoT).
Стоит упомянуть, что 10BASE-T1 только один из стандартов Single Pair Ethernet (SPE). Есть ещё 100BASE-T1 (802.3bw) и 1000BASE-T1 (802.3bp). Правда, они разрабатывались для автомобильных применений, поэтому там дальность только 15 (UTP) или 40 метров (STP). Однако, в планах уже есть и дальнобойный 100BASE-T1L. Так что в будущем добавят автосогласование скорости.
А пока согласование не используется – заявлен «быстрый старт» интерфейса: меньше 100мс от подачи питания до начала обмена данными.
Ещё одна опция (необязательная) – увеличение амплитуды передачи с 1 до 2.4В для улучшения отношения сигнал/шум, уменьшения количества ошибок, противодействия индустриальным помехам.
Ну и, разумеется, EEE. Это способ экономить электричество за счёт отключения передатчика, если в данный момент нет данных для передачи. На диаграмме показано, как это выглядит:
Нет данных – отсылаем сообщение “я ушла спать” и отключаемся. Изредка просыпаемся и отсылаем сообщение “я ещё здесь”. Когда появляются данные, противоположной стороне выдаётся предупреждение “я просыпаюсь” и начинается передача. То есть, постоянно работают только приёмники.
Теперь посмотрим, что придумали со вторым вариантом стандарта.
10BASE-T1S
Уже по последней букве понятно, что это протокол для коротких расстояний (short reach). Но зачем он нужен, если на коротких расстояниях и T1L работает? Читаем характеристики:
- дальность действия до 15м в режиме точка-точка
- дуплекс или полудуплекс
- проводники 24-26AWG (0.2-0.13мм2)
- символьная скорость 12.5Мбод
- DME, кодирование 4B5B
- сигнал с амплитудой 1В (1Vpp)
- до 4-х промежуточных разъёмов (и два оконечных)
- нет поддержки EEE
Вроде бы ничего особенного. Так для чего же он нужен? А вот для этого:
- дальность действия до 25м в режиме мультипоинт (до 8 узлов)
И этого:
- режим работы с предотвращением коллизий PLCA RS (PHY-Level Collision Avoidance Reconciliation Sublayer)
И это уже гораздо интереснее, не правда ли? Т.к. помогает сильно уменьшить количество проводов в управляющих шкафах, станках, роботах, автомобилях. И уже есть предложения использовать его как замену I2C в серверах, коммутаторах и прочей электронике.
Но у режима мультипоинт есть недостатки. Основной из них – разделяемая среда передачи данных. Конечно, коллизии разрешаются с помощью CSMA/CD. Но неизвестно, какая при этом будет задержка. А для некоторых применений это критично. Поэтому в новом стандарте дополнили мультипоинт специальным режимом PLCA RS (см. следующий раздел).
Второй недостаток – в мультипоинте не работает PoDL. То есть питание придётся подавать по отдельному кабелю или брать где-то на месте.
Впрочем, в режиме точка-точка PoDL работает и на T1S.
PLCA RS
Работает этот режим следующим образом:
- узлы распределяют между собой идентификаторы, узел с ID=0 становится координатором
- координатор выдаёт в сеть BEACON signal, означающий начало нового цикла передачи и передаёт свой пакет данных
- после передачи пакета данных очередь на передачу переходит к следующему узлу
- если в течение времени, необходимого для передачи 20 бит узел не начал передачу, очередь переходит к следующему узлу
- когда все узлы передали данные (или пропустили свою очередь), координатор начинает новый цикл
В целом это напоминает TDMA. Но с той особенностью, что узел не использует свой временной фрейм, если ему нечего передавать. И размер фрейма жёстко не задан, т.к. зависит от размера пакета данных, передаваемого узлом. И всё это работает поверх стандартных фреймов Ethernet 802.3 (PLCA RS не обязателен, поэтому должна быть совместимость).
Результат использования PLCA – внизу на графиках. Первый – задержка в зависимости от загрузки, второй – пропускная способность в зависимости от количества передающих узлов. Хорошо заметно, что задержка стала гораздо более предсказуемой. И она в худшем случае на 2 порядка меньше, чем в худшем случае CSMA/CD:
И пропускная способность канала в случае PLCA выше, т.к. не расходуется на разрешение коллизий:
Разъёмы
Изначально выбирали из 6-ти вариантов разъёмов, предложенных разными фирмами. В результате остановились на этих двух вариантах:
Для обычных условий эксплуатации был выбран LC разъём IEC 63171-1 компании CommScope.
Для суровых условий эксплуатации – семейство разъёмов IEC 63171-6 (бывший 61076-3-125) компании HARTING. Эти разъёмы рассчитаны на степени защиты от IP20 до IP67.
Разумеется, разъёмы и кабели могут быть как UTP, так и STP.
Прочее
Можно применять обычный четырёхпарный кабель Ethernet, используя каждую пару для отдельного канала SPE. Чтобы не тянуть куда-то вдаль четыре отдельных кабеля. Или использовать однопарный кабель, а на дальнем конце поставить коммутатор однопарного Ethernet.
А можно подключить этот коммутатор прямо в локальную сеть предприятия, если в дальние дали уже протянута сеть по оптоволокну. Воткнуть там в него датчики, а показания с них смотреть здесь. Прямо по сети. Без конвертеров интерфейсов и шлюзов.
И ведь это не обязательно должны быть датчики. Могут быть видеокамеры, домофоны или «умные» лампочки. Приводы каких-нибудь клапанов или турникеты на проходных.
Так что перспективы открываются интересные. Вряд ли, конечно, SPE заменит все полевые шины. Но изрядный кусок он у них откусит. Уж в автомобилях-то точно.
PS Я не нашёл текст стандарта в открытом доступе. Приведенная выше информация собиралась по кусочкам из разных презентаций и доступных в интернете материалов. Так что в ней могут быть неточности.
justhabrauser
Описание PLCA RS смутно напоминает
Token RingArc-Netчто-то знакомое...Dr_Faksov
А мне вообще телетайпная 100mA токовая петля вспомнилась. Та, правда, 10 км по физлинии вытягивала.
Klukonin
Зашёл написать этот комментарий.
Gordon01
Да, только решает проблему энергосбережения. Если станции нечего передавать, она может просто молчать и это никак не влияет на работу остальной сети.
justhabrauser
А если датчику есть что сказать?
Причем срочно.
Gordon01
То он ждет окна и передает.
Причем наихудшее время ожидания окна можно высчитать, в отличии от CSMA/CD.
Причем в статье об этом написано.
justhabrauser
> она может просто молчать
> он ждет окна и передает
Или я плохо читал — или определимся с понятиями «станция» и «молчать».
Если «станция» == координатор, то оно не может «молчать», т.к. обязано раздавать токены.
Причем в статье об этом написано.
Gordon01
Что вы пытаетесь мне доказать?
Если вы не понимаете, зачем нужна эта абстракция нужна, то все просто — она не для вас.