Перейти к содержанию
    

MII vs. GMII: как правильно детектировать скорость?

не очень понимаю, как работает магия с переключением интерфейса между PHY и MAC.

 

Допустим, пишу я себе MAC для GMII (для гигабитного соединения), то есть даю PHY на вход 125 МГц (как phy_gtx_clk), а phy_txd (7 downto 0) тактирую по тому же клоку. Вроде такое должно даже работать, если линк установился на гигабите. А что будет, если на другой стороне стоит обычный Fast Ethernet? Как на это дело должен отреагировать PHY? Если он переключается в MII, то как он об этом сообщает MAC'у?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу сказать, как это выглядит в RGMII - там при RX_CTL=[0,0] - inter-frame - передаются нибблы формата DSSU - D=half/full duplex, SS - скорость, U - UP/DOWN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу сказать, как это выглядит в RGMII - там при RX_CTL=[0,0] - inter-frame - передаются нибблы формата DSSU - D=half/full duplex, SS - скорость, U - UP/DOWN

 

RX_CTL, как я понимаю, -- это выход PHY. Когда именно PHY решает, что пора передать служебную информацию?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RX_CTL, как я понимаю, -- это выход PHY. Когда именно PHY решает, что пора передать служебную информацию?

Всегда, между фреймами. А вот в GMII, похоже, ничего подобного нету - остается, видимо, читать регистры через SMI (постоянно поллить, что там в статусах).

 

UPD

Или, тупо, завести в ПЛИС сигналы со светодиодов. По ним сразу все ясно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всегда, между фреймами. А вот в GMII, похоже, ничего подобного нету - остается, видимо, читать регистры через SMI (постоянно поллить, что там в статусах).

 

UPD

Или, тупо, завести в ПЛИС сигналы со светодиодов. По ним сразу все ясно :)

 

понял, спасибо. Скорее всего, задача решается уже на софтовом уровне опросом регистров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего, задача решается уже на софтовом уровне опросом регистров.

Можно и на хардовом, особенно, если корке MAC надо управление 1G / 10-100 с мультиплексированием клока. Хотя поставить PHY с RGMII выглядит интереснее, мультиплексор клоков ликвидируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... Если он переключается в MII, то как он об этом сообщает MAC'у?

802.3 Clause 22 - наше всё. А MDIO/MDC - вооплощение его. Если речь о 10/100/1000 ессно.

И да, MAC просто тупо опрашивает PHY и переключает режимы по результату опроса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы HalfDuplex поддерживаете? тоже из опроса регистров эту информацию берете?

Столкнулся с странным "флудом" на петле при halfduplex, не знаю даже куда копать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...