|
Гигабит Ethernet: RGMII и PHY 88e1111. Вопросы по взаимодействию |
|
|
|
Oct 9 2017, 07:40
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682

|
Добрый день, господа! Появилась у меня задача - написать простой MAC для связи FPGA c ПК по Гигабит Ethernet. Реализовано все это будет на Cyclone 4 (плата DE2 115). Вроде задача не сложная, но возник вопрос по взаимодействию с PHY (Marvell 88e1111), который установлен на плате. Обмен данных с PHY будет организован по интерфейсу RGMII. Собственно вопросы следующие: 1. Как правильно подавать управляющий сигнал TX_EN (transmit enable)? В стандарте на Ethernet (параграф 22) есть следующее описание - Код It shall be asserted by the Reconciliation sublayer synchronously with the first nibble of the preamble and shall remain asserted while all nibbles to be transmitted are presented to the MII Т.е. этим сигналом должны выделяются все байты преамбулы, судя из описания и картинки. Но в то же время, аналогичный сигнал RX_DV (Receive Data Valid), который идет от PHY, судя по описанию, устанавливается несколько иначе - Код RX_DV must encompass the frame, starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter. Здесь (при приеме от PHY) преамбула не обязана быть выделена этим сигналом. Выделен обязательно должен быть только байт SFD, идущий непосредственно переда байтами данных. 2. Правильно ли я понял, что получается немного разная логика формирования управляющих сигналов при приеме и передаче? Или я где то ошибся и есть еще какие то тонкости? 3. И как быть с байтом END OF FRAME? При приеме данных от PHY в описании есть явные указания на то, что он не выделяется сигналом RX_DV. А вот при передаче данных на PHY про это ничего не написано. Этот байт также не выделяется стробом TX_EN? Или я опять что то упускаю? Заранее спасибо!
Эскизы прикрепленных изображений
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 28)
|
Oct 11 2017, 15:09
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(gin @ Oct 11 2017, 17:58)  Возможно преамбула - это и рудимент, но раз в стандарте про нее написано, значит надо ее формировать. При передаче её однозначно надо формировать. тут никто не спорит. А вот при приеме она может быть или не быть - оба варианта возможны и закладываться на какой то из них нельзя. Цитата Не нашел даташит Марвелла с описанием внутренних регистров микросхемы 88e1111. У Марвела все даташиты под NDA Цитата Понимаю, что все они стандартные и описаны в спецификации на Etherent. Кроме стандартных там еще есть куча vendor specific регистров. Поищите DS в местных закромах
|
|
|
|
|
Oct 11 2017, 15:19
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682

|
Цитата(XVR @ Oct 11 2017, 18:09)  При передаче её однозначно надо формировать. тут никто не спорит. А вот при приеме она может быть или не быть - оба варианта возможны и закладываться на какой то из них нельзя. У Марвела все даташиты под NDA Кроме стандартных там еще есть куча vendor specific регистров. Поищите DS в местных закромах Спасибо! Но сразу за глупый вопрос прошу прощения, а как до этих закромов добраться?
|
|
|
|
|
Oct 12 2017, 07:29
|
Частый гость
 
Группа: Validating
Сообщений: 77
Регистрация: 27-06-17
Из: Msk
Пользователь №: 97 862

|
Цитата(gin @ Oct 11 2017, 21:58)  Возможно преамбула - это и рудимент, но раз в стандарте про нее написано, значит надо ее формировать. Верно ведь? Тем более в том же 10-и гигабитном Ethernet она тоже есть. Во всяком случае с ней вроде разобрался.
Еще вопросик небольшой есть по поводу управления PHY через MDIO интерфейс. Не нашел даташит Марвелла с описанием внутренних регистров микросхемы 88e1111. Понимаю, что все они стандартные и описаны в спецификации на Etherent. Но все же, может кто то подскажет, какая последовательность записи данных в эти регистры? Кто это уже делал, и кому не жалко поделиться такой информацией. Заранее спасибо! http://www.alldatasheet.com/datasheet-pdf/...ll/88e1111.html вот же даташит
|
|
|
|
|
Oct 12 2017, 07:47
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682

|
Цитата(Mikhail241 @ Oct 12 2017, 10:29)  К сожалению, это всего лишь Product Brief. Но с даташитом мне уже помогли добрые люди
|
|
|
|
|
Oct 13 2017, 11:19
|
Группа: Новичок
Сообщений: 2
Регистрация: 3-10-13
Пользователь №: 78 598

|
Регистры микросхемы 88e1111 - Datasheet стр. 118. В качестве примера проект на vhdl, xc6slx16 + 88e1111, ise 14.4. Два канала передачи (8192;1024 байт) и один приема (1024 байт), UDP протокол плюс небольшая надстройка.
|
|
|
|
|
Oct 13 2017, 22:36
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(gin @ Oct 9 2017, 11:40)  Появилась у меня задача - написать простой MAC для связи FPGA c ПК по Гигабит Ethernet. Реализовано все это будет на Cyclone 4 (плата DE2 115). Вот Вам мой MAC в качестве примера  Можете даже взять его как есть, только при использовании обязательно указание авторства проекта. Также я приложил к сообщению спецификацию RGMII 2.0, там довольно подробно расписано про флаги для определения параметров линка через in-band status.
|
|
|
|
|
Oct 15 2017, 14:04
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682

|
Цитата(esokol @ Oct 13 2017, 14:19)  Регистры микросхемы 88e1111 - Datasheet стр. 118.
В качестве примера проект на vhdl, xc6slx16 + 88e1111, ise 14.4. Два канала передачи (8192;1024 байт) и один приема (1024 байт), UDP протокол плюс небольшая надстройка. Цитата(BSACPLD @ Oct 14 2017, 01:36)  Вот Вам мой MAC в качестве примера  Можете даже взять его как есть, только при использовании обязательно указание авторства проекта. Также я приложил к сообщению спецификацию RGMII 2.0, там довольно подробно расписано про флаги для определения параметров линка через in-band status. Спасибо огромное, уважаемые коллеги! Обязательно посмотрю ваши варианты реализации. Хотя, свой вариант вроде как тоже делаю, надеюсь что осилить его смогу
|
|
|
|
|
Oct 19 2017, 11:44
|
Группа: Новичок
Сообщений: 1
Регистрация: 19-10-17
Пользователь №: 99 827

|
предлагаю пример реализации для Гигабайтного шлейфа (DE2-115) выполнен в файле pdf,
|
|
|
|
|
Mar 21 2018, 17:25
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 17-12-10
Пользователь №: 61 682

|
В общем в прошлый раз все настроил, написал свой MAC (IPv4/UDP) на прием и передачу. Все работало, все было хорошо. Но! Забыл я про народную мудрость - "не трожь аппаратуру, и она в ответ тебя не обидит"  Решил поиграться с регистрами PHY 88e1111 на плате DE2-115. Ну и в итоге все поломал. Ethernet мой теперь не работает. Сейчас пытаюсь починить, но что то не выходит. Записываю в PHY значения регистров в следующей последовательности: Reg22 = 0x0000 - установка 0-й страницы Reg27 = 0x848B - отключаю автовыбор медь/оптика, полярность - active low, режим RGMII to copper Reg20 = 0x0C71 - задержки данных относительно клоков здесь не меняю (оставляю как было по умолчанию), устанавливаю скорость 1000Mb/s, устанавливаю бит transmit enable Reg0 = 0x9140 - Тоже ничего не меняю, беру стандартное значение + бит 15 ставлю в 1, запуская ресет. В итоге ничего не работает (ни прием, ни передача) в регистре статуса Reg1 = 0x7949 (когда все работало там было 796D). Т.е. у PHY не завершен Auto-Negatiation (бит 5 = 0) и нет линка (бит 2 = 0). Уже пару дней бьюсь. Подскажите, что я делаю не так! Кстати, когда в регистр 27 пишу 0x048B (включаю автовыбор медь/оптика), то в регистре 1 статуса, значение становится 0x014D. Т.е линк появляется, правда остальное отваливается))
|
|
|
|
|
Mar 22 2018, 18:18
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 30-11-17
Пользователь №: 100 438

|
у меня marvell чуть другой номер на конце, только rgmi. В регистры даже не лезу, само все запускается. У alterawiki есть топик, какие шаги нужно сделать последовательно, чтобы запустить 88e1111, не читали? Только там через корку их. http://www.alterawiki.com/wiki/Marvell_88E...iguration_StepsОбычный линк совсем не устанавливается с компьютером? Или отправка/прием не работает? Если линк есть, но отправки нет, может в настройках не сдвигаете на 90 градусов tx_clk
Сообщение отредактировал new123 - Mar 22 2018, 18:25
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|