Управление приемопередатчиком Ethernet в условиях
его тестирования и отладки
Д.Е.Гурьев
Аннотация—В статье описываются аппаратные и программные средства, предназначенные для управления микросхемой, реализующей физический уровень протокола Ethernet, в условиях ее тестирования и отладки, в том числе - в условиях автономного тестирования, без взаимодействия с аппаратурой канального уровня. В дополнение кратко обсуждаются средства для реализации других сценариев тестирования, в том числе - определения вероятности битовой ошибки и автоматического согласования варианта протокола. Обсуждаемые средства разработаны для отладки микросхемы приемопередатчика Ehthernet, поддерживающей скорости передачи 10, 100 и 1000 Мбит/с (протоколы 10BASE-T, 100BASE-TX и 1000BASE-T).
Ключевые слова—Ethernet, 10BASE-T, 100BASE-TX, 1000BASE-T, MAC, PHY, MDIO, МП, GMII, FT232H, MPSSE, phytool, mii-reg.
Ethernet канального и физического уровней - Media Independent Interface (MII) [1 - Clause 22]. Составной частью этого интерфейса является интерфейс управления Management Data Input/Output (MDIO). Интерфейс MDIO также используется совместно с ускоренными версиями MII - GMII, RGMII и SGMII, -предназначенными для реализации протокола lOOOBASE-T.
В настоящей статье описываются технические средства для управления микросхемой приемопередатчика Ethernet по интерфейсу MDIO. В дополнение кратко обсуждаются другие средства тестирования и отладки, находящиеся на разных стадиях разработки и вовлеченности в процесс отладки приемопередатчика. Эти инструменты разработаны на основе анализа и переработки материалов [2-4].
I. Введение
Требования конформности протоколу Ethernet изложены в [1]. Некоторые практические подходы к построению тест-плана приемопередатчиков Ethernet опубликованы в [2-4]. Эти материалы, однако, ориентированы на аттестацию уже работающих устройств. При отладке частично работающих устройств возникает необходимость множества тестов ad-hoc для демонстрации частичной работоспособности, выявления отказов и выяснения их причин. Спланировать заранее такой набор тестов практически невозможно.
Начиная с протокола 100BASE-TX, комитетом 802.3 предложен стандартный интерфейс между аппаратурой
II. ИНТЕРФЕЙС MDIO
Интерфейс MDIO [1 - Clause 22] является последовательным интерфейсом, использующим две сигнальные линии: линию синхронизации MDC и линию передачи данных MDIO. Линия синхронизации управляется ведущим устройством на шине MDIO (в ситуации штатной эксплуатации им является MAC-контроллер), а линия MDIO служит для передачи данных в обоих направлениях: от ведущего устройства к ведомому и от ведомого к ведущему. Форматы кадров интерфейса MDIO представлены на Рисунке 1 (а, б).
Кадр MDIO содержит следующие поля:
1) Преамбула - 32 символа «1».
лллллллллллллллллллллллллллллллллллл_
а)
"I I |_J I а 41 а з I а д I d 11 а п I г* I гэ I гд I n I гп I | fi и fj ю | d> |d= |(Ь |dc |d3 |d*|d3 |di |di |jp |-
старт
КОП:
пп
адрес регистра
_/.:н:-:ын регистре
ллллллллллллл |di|ап ллллллллллллллллллллллт г*|гф|п|гп|- 1
б) старт КОП: ЧГ-ЭВН-Э адре-с ПП адрес регистра п Ii? di4|diï diî dillo 1 -:1s |ds | -:l? |dt |dз |d-+|ds -Ь [di |cl□ данные регистра г-
Рисунок 1. Формат кадра интерфейса МОЮ. а) - формат кадра операции записи, б) - формат кадра операции чтения.
Статья получена 18 марта 2018. 2) Старт кадра - символы «01».
Д.Е.Гурьев - научный сотрудник факультета ВМК МГУ им. 3) Код операции (чтение/запись); чтение кодируется М.В.Ломоносова (email [email protected]).
последовательностью символов «10», запись - «01».
4) Адрес ведомого устройства (0-31; шина MDIO допускает подключение до 32 ведомых устройств).
5) Адрес управляющего регистра (0-31).
6) Двухсимвольная пауза для возможной смены источника данных; в случае операции записи в этой паузе передаются символы «10», в случае операции чтения ведущее устройство уходит в состояние высокого импеданса, а ведомое выставляет символ «0» во втором символе паузы.
7) Значение управляющего регистра (16 бит); в случае операции чтения эта часть кадра является ответом ведомого устройства.
Интерфейс MDIO обеспечивает доступ к 32-м 16-битным управляющим регистрам микросхемы приемопередатчика. Назначение регистров 0 - 15 зафиксированы в стандарте [1 - Clause 22], а назначение регистров 16-31 определяет разработчик микросхемы. При помощи чтения/записи управляющих регистров программное обеспечение имеет возможность определять текущее состояние устройства, изменять состояние, наблюдать процесс автоматического согласования варианта протокола с линк-партнером и вмешиваться в этот процесс. В условиях тестирования и отладки, с использованием регистров, определенных разработчиком, программное обеспечение может выполнять тонкую настройку устройства и тесты, специфичные именно для этого типа микросхем.
Шестнадцати регистров, определенных стандартом, и шестнадцати регистров, определенных разработчиком микросхемы, обычно недостаточно для контроля и управления всеми аспектами работы современных приемопередатчиков Ethernet. Для этой цели стандарт предусматривает возможность организации
дополнительных регистровых страниц, определяемых разработчиком микросхемы. Доступ к этим страницам осуществляется при помощи косвенной адресации, для который зарезервированы стандартные регистры 13 и 14. Следует отметить, что разработчики некоторых современных приемопередатчиков Ethernet не соблюдают стандарт в этой части, реализуя взамен другие схемы косвенной адресации (например, [5, 6]).
III. Аппаратный интерфейс USB -MDIO
Для управления приемопередатчиком Ethetnet при тестировании в автономном режиме (без участия MAC-контроллера) используется плата производства компании Adafruit [7] или аналогичная, на основе микросхемы FT232H [8] производства компании FTDI. Такая плата подключается к персональному компьютеру при помощи интерфейса USB и к шине MDIO при помощи своих последовательных линий.
В мультирежимной микросхеме FT232H используется режим MPSSE (Multiprotocol Synchronous Serial Engine), который позволяет «запрограммировать» микросхему для поддержки множества последовательных протоколов, включая I2C, SPI, JTAG и другие. Программное обеспечение (см. раздел IV) обеспечивает программирование микросхемы для
поддержки интерфейса MDIO.
Взаимодействие программного обеспечения и микросхемы FT232H организовано следующим образом. Микросхема в режиме MPSSE имеет (двоичный) входной язык, на котором может быть задана своего рода «канальная программа», определяющей передаваемые и принимаемые сигналы и данные и их временные характеристики [9]. Программное обеспечение формирует такую «канальную программу», создающую кадр MDIO нужного формата и отправляет ее по интерфейсу USB в микросхему. Микросхема выполняет эту «программу», а затем возвращает по интерфейсу USB данные, принятые с шины MDIO, если это предусмотрено форматом кадра MDIO.
IV. Программное обеспечение
Для управления приемопередатчиком Ethernet по интерфейсу MDIO разработана программа «mfectl». Программа может быть собрана для платформ Windows и Linux и вызывается из командной строки. Основные функциональные возможности программы следующие:
- чтение и запись регистров приемопередатчика, в том числе - регистров, доступных при помощи косвенной адресации,
- чтение и запись групп битов и отдельных битов в регистрах приемопередатчика,
- выполнение пауз между действиями,
- проверка условий и ожидание наступления условий,
- действия могут быть заданы как в командной строке, так и в текстовом файле (скрипте).
В программе предусмотрена возможность задания регистров, отдельных битов и групп битов в них при помощи имен, а не числовых значений. Привязка имен вынесена в отдельный конфигурационный файл, который можно изменять независимо от кода самой программы. Однако, как показала практика, этой возможностью разработчики и тестировщики микросхем пользуются достаточно редко. Вероятнее всего, так происходит по следующим причинам:
- имеется разница в допустимом синтаксисе названий (и, следовательно, в самих названиях), в языках описания аппаратуры (например, Verilog) и в программе mfectl, и запоминание двух групп имен является ненужным обременением при решении и без того сложных задач,
- инженеры сконцентрированы на отладке аппаратуры и не хотят тратить свои ресурсы на потенциальные ошибки в механизмах именования,
- спецификации регистров микросхем изменяются в процессе их отладки, и редакторы схем именований не успевают за этими изменениями,
- программа используется в тестовых экспериментах также для управления линк-партнерами - микросхемами приемопередатчиков других производителей, у которых, естественно, другие управляющие регистры и, соответственно, их имена.
Первоначально программа разработана для управления приемопередатчиком при помощи аппаратного интерфейса USB-MDIO, но в процессе эксплуатации, в ответ на возникающие задачи по тестированию, ее возможности связи с управляемым устройством были расширены до следующего спектра:
- для условий автономного тестирования приемопередатчика - при помощи аппаратного интерфейса USB-MDIO,
- для условий тестирования совместно с MAC-контроллером - при помощи прямого доступа к регистрам MAC-контроллера, ответственным за обмен по интерфейсу MDIO (только определенный тип МАС-контроллера, только на платформе Linux),
- для условий тестирования совместно с MAC-контроллером и программным обеспечением, для управления линк-партнерами в тестовых сценариях - при помощи системных вызовов
a)
ioctl, отвечающих за обмен по интерфейсу MDIO (только на платформе Linux; в этом режиме программа является более совершенным аналогом известных программ phytool [10], mii-reg [11]).
V. ДРУГИЕ программы для тестирования приемопередатчиков
Разрабатываются и находятся в разной степени готовности и вовлеченности в процесс тестирования приемопередатчиков следующие программы.
Программа test_ber предназначена для определения вероятности битовой ошибки, а также используется в процессе отладки как генератор тестовых данных. Программа позволяет выбирать скорость передачи (10/100/1000 Мбит/с), размер кадра, число тестовых кадров или продолжительность передачи, содержание тестовых кадров (случайные значения, инкрементальные или заданные). Программа выполняет контроль
б)
компьютер компьютер
ПП ЛП
д)
Рисунок 2. Варианты включения тестируемого устройства. а) - режим самопроверки («ближней петли»), б) - режим проводной петли, в) - режим дальней петли, г) - режим работы с линк-партнером на одном хосте, режим работы с линк-партнером на разных хостах. Условные обозначения: ПП - приемопередатчик Ethernet, ЛП - линк-партнер.
корректности передачи кадров при помощи контрольных сумм. При этом, проверки контрольных сумм аппаратурой MAC-контроллера программа отключает (для известных типов MAC-контроллеров). Программа может сконфигурировать тестируемое устройство и линк-партнера для передачи и приема с заданной скоростью. Для этого программа использует возможности управления при помощи
стандартизированных управляющих регистров MDIO. Также программа может полностью воздержаться от конфигурирования тестируемого устройства или линк-партнера, считая, что конфигурирование уже выполнено другими средствами (например, программой mfectl) -такой режим полезен на стадии начальной отладки приемопередатчиков. Программа может выполнять тесты передачи данных в различных вариантах включения тестируемого устройства с тестовой петлей или устройством - линк-партнером (см. Рисунок.2).
Программа test aneg предназначена для тестирования способности автоматического согласования варианта протокола с линк-партнером. Проверяются способности устройств договориться о скорости передачи (10/100/1000 Мбит/с), режиме дуплекс/полудуплекс, выборе ведущего устройства (master) в протоколе 1000BASE-T, c учетом различных возможностей и искусственных ограничений возможностей на стороне тестируемого устройства и линк-партнера.
Программа test rneg проверяет способность повторно договориться о скорости и режиме передачи данных после временного отключения линк-партнера, или его временного переходя на другую скорость или режим.
При проектировании описанных программ и планировании набора тестов, которые они в совокупности выполняют, использованы материалы [24].
VI. Заключение
Рассмотрены аппаратно-программные средства для управления приемопередатчиком Ethernet по интерфейсу MDIO при различных вариантах подключения, а также -некоторые другие средства тестирования приемопередатчиков Ethernet. Программа управления по интерфейсу MDIO обеспечивает доступ к управляющим
регистрам приемопередатчика, доступных при помощи как прямой, так и косвенной адресации. Программа использует разные способы подключения к шине MDIO. Дополнительно, в программе реализовано обращение к регистрам и их полям по именам, которое, однако, не нашло широкого практического использования. В программе измерения битовой ошибки реализован собственный контроль корректности передачи тестовых кадров при помощи контрольных сумм и отключение аппаратной проверки контрольных сумм Ethernet (для известных типов MAC-контроллеров). Рассмотренные средства используются для отладки разрабатываемого приемопередатчика Ethernet.
Библиография
[1] IEEE Std 802.3 - 2012. IEEE Standard for Ethernet.
[2] UNH IOL 10BASE-T Testing Test Plans. https://www.iol.unh.edu/testing/ethernet/10baset/test-plans. Retrieved: 17.03.2018.
[3] UNH IOL Fast Ethernet Test Plans. https://www.iol.unh.edu/testing/ethernet/fe/test-plans Retrieved: 17.03.2018.
[4] UNH IOL Gigabit Ethernet Test Plans. https://www.iol.unh.edu/testing/ethernet/ge/test-plans Retrieved: 17.03.2018.
[5] KSZ9021RL/RN - Gigabit Ethernet Transceiver with RGMII Support. http://ww1.microchip.com/downloads/en/DeviceDoc/ksz9021rl-rn_ds.pdf Retrieved: 17.03.2018.
[6] Intel® 82579 GbE PHY: Datasheet, Vol. 2.1. https://www.intel.com/content/www/us/en/embedded/products/netwo rking/82579-gbe-phy-datasheet-vol-2-1.html Retrieved: 17.03.2018.
[7] Adafruit FT232H Breakout - General Purpose USB to GPIO+SPI+I2C. https://www.adafruit.com/product/2264 Retrieved: 17.03.2018.
[8] FT232H - Hi-Speed Single Channel USB UART/FIFO IC. http://www.ftdichip.com/Products/ICs/FT232H.htm Retrieved: 17.03.2018.
[9] FTDI Application Note AN_108. Command Processor for MPSSE and MCU Host Bus Emulation Modes. http://www.ftdichip.com/Support/Documents/AppNotes/AN_108_Co mmand_Processor_for_MPSSE_and_MCU_Host_Bus_Emulation_M odes.pdf Retrieved: 17.03.2018.
[10] phytool. Linux MDIO register access. https://github.com/wkz/phytool Retrieved: 17.03.2018.
[11] mii-reg.c on conformance testing. Gateworks Wiki. http://trac.gateworks.com/attachment/wiki/conformance_testing/mii-reg.c Retrieved: 17.03.2018.
Tools to control an Ethernet transceiver under testing and
debugging
Dmitry E. Gouriev
Abstract— The article describes hardware and software tools to control a chip, which provides functions of the physical layer of the Ethernet protocol, in conditions of testing and debugging of the chip, including the cases of autonomous testing without an interconnection with data link layer equipment. In addition, tools for implementing other testing scenarios are discussed shortly, including BER measuring tool and auto-negotiation testing tool. Discussed tools were developed to support testing and debugging of an Ethernet transceiver chip which supports transmit speed of 10, 100 and 1000 Mbit/s (10BASE-T, 100BASE-TX and 1000BASE-T protocols).
Keywords—Ethernet, 10BASE-T, 100BASE-TX, 1000BASE-T, MAC, PHY, MDIO, MII, GMII, FT232H, MPSSE, phytool, mii-reg.