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

Kintex-7

Доброго времени суток!

 

Мне необходимо сделать пассивный сниффер Ethernet'a на плате Kintex-7 (kc705) на приём всех пакетов и отловления определенных широковещательных кадров из потока(VHDL, Xilinx).

Скорость 1Gb\s, протокол tcp подобный (tcp\ip почти что, насколько я понял), GMII.

(На плате имеется PHY, но я честно говоря не понимаю как его подключать)

 

1) Можно обойтись без процессора (Microblaze'a)?

2) Можно ли просто создать ip-core'ку Three-Mode-Ethernet-Mac с выхода которой сразу получать слова-выход эзернет потока? Или я плохо понимаю структуру решения? (новичок в FPGA с опытом студента, но без опыта работы по сути)

3) Есть разница, если отлавливать сразу через Ethernet вход или через SFP с переходником на эзернет? По схематике после SFP данные сразу идут на fpga, а после эзернет входа идёт микросхемa PHY и уже после на плис.

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


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

Есть немного другая постановка вопроса. Можно ли подключить 88e111 к RJ, установить его конфигурацию, например, через входной вектор, и с его выхода получать поток постоянно сменяющихся данных? (не важно как он организован там, главное поток с эзернета?)

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


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

1) Можно обойтись без процессора (Microblaze'a)?

2) Можно ли просто создать ip-core'ку Three-Mode-Ethernet-Mac с выхода которой сразу получать слова-выход эзернет потока? Или я плохо понимаю структуру решения? (новичок в FPGA с опытом студента, но без опыта работы по сути)

3) Есть разница, если отлавливать сразу через Ethernet вход или через SFP с переходником на эзернет? По схематике после SFP данные сразу идут на fpga, а после эзернет входа идёт микросхемa PHY и уже после на плис.

 

1) Можно, но зависит от того, что вы хотите с этими пакетами дальше делать.

2) Можно и IP-ядро, а можно и самому разбирать пакет. Это не сложно.

3) "SFP с переходником на эзернет" называется Copper SFP. Можно и так сделать, если у вас этот Copper SFP имеется, но это чуть посложнее. Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII - это самый быстрый и проверенный способ. Дальше разбирайте пакеты вручную.

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


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

1)Если поток 1Гб/с и нагрузка 100%(что не свойственно обычно сетям, но если все же идеализировать) то microblaze не сможет обработать этот поток

2)Если отловить определенные пакеты с фиксированным заголовком< то проблем нет и мак не нужен - можно ловить с выхода phy, но если вы хотите ловить все пакеты подряд, тут могут возникнуть сложности(это если вы хотите понять что конкретно это за фрейм и как-то на него отреагировать)

ХОТЯ если вам нужно просто отловить фрейм, вы можете задетектировать его при помощи выходов PCS/PMA тут уж совсем ничего сложного

В общем все зависит от того, что нужно делать с пакетами

Изменено пользователем Lutovid

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


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

1) Можно, но зависит от того, что вы хотите с этими пакетами дальше делать.

2) Можно и IP-ядро, а можно и самому разбирать пакет. Это не сложно.

3) "SFP с переходником на эзернет" называется Copper SFP. Можно и так сделать, если у вас этот Copper SFP имеется, но это чуть посложнее. Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII - это самый быстрый и проверенный способ. Дальше разбирайте пакеты вручную.

 

Нужно определенные пакеты вытащить, и сравнить их со своим счетчиком. Если верно, то норм, если нет, то мб светодиодик включить максимум.

Не сложно говорите... Не получается никак.

Да, Copper SFP имеется. Идею понял, но вопрос по реализации: как подключить эту корку 88e1111? Я тоже всё о ней думал.

 

Диплом, что ли?

Нет, не диплом. Но достаточно близко

 

1)Если поток 1Гб/с и нагрузка 100%(что не свойственно обычно сетям, но если все же идеализировать) то microblaze не сможет обработать этот поток

2)Если отловить определенные пакеты с фиксированным заголовком< то проблем нет и мак не нужен - можно ловить с выхода phy, но если вы хотите ловить все пакеты подряд, тут могут возникнуть сложности(это если вы хотите понять что конкретно это за фрейм и как-то на него отреагировать)

ХОТЯ если вам нужно просто отловить фрейм, вы можете задетектировать его при помощи выходов PCS/PMA тут уж совсем ничего сложного

 

Нет, нагрузка далеко не 100%.

Да, с определенным заголовком. Broadcast вроде как.

Вот как раз вопрос в том, как задетектировать его с выхода PCS/PMA) Литература мне слабо помогает. Поэтому обратился за помощью к форуму умных людей:)

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


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

Нет, нагрузка далеко не 100%.

Да, с определенным заголовком. Broadcast вроде как.

Вот как раз вопрос в том, как задетектировать его с выхода PCS/PMA) Литература мне слабо помогает. Поэтому обратился за помощью к форуму умных людей:)

Броадкаст это FFFFFFFFFFFF в поле мак дестинэйшн, он всегда идет после преамбулы - и того - сдвиговый регистр размером 8+6 байт(преамбула и мак) и один if... вот и решение(если я вас правильно понял)

https://en.wikipedia.org/wiki/Ethernet_frame - тут картинка для наглядности

На сайте ксайлинкса есть пример с ethernet, кстати

Изменено пользователем Lutovid

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


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

Броадкаст это FFFFFFFFFFFF в поле мак дестинэйшн, он всегда идет после преамбулы - и того - сдвиговый регистр размером 8+6 байт(преамбула и мак) и один if... вот и решение(если я вас правильно понял)

https://en.wikipedia.org/wiki/Ethernet_frame - тут картинка для наглядности

На сайте ксайлинкса есть пример с ethernet, кстати

 

Угу, я предполагал примерно такой ход решения. Спасибо

А пример с сайта ксайлинкса можно попросить? (А то не знаю, что именно искать и соответственно кучу всего нахожу)

 

Еще вопрос. Выход PCS/PMA это же Marvel 88e1111? Его нужно настраивать по MDIO, предварительно сбросив ресетом также? И куда его подключать надо, а то интуитивно непонятно как подсоединять контакты с выхода и какие клоки подавать (их там аж 4 нужно)?

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


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

1) Можно, но зависит от того, что вы хотите с этими пакетами дальше делать.

2) Можно и IP-ядро, а можно и самому разбирать пакет. Это не сложно.

3) "SFP с переходником на эзернет" называется Copper SFP. Можно и так сделать, если у вас этот Copper SFP имеется, но это чуть посложнее. Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII - это самый быстрый и проверенный способ. Дальше разбирайте пакеты вручную.

 

Нужно ли подключать модуль 1000BASE-X PCS/PMA or SGMII к 7series fpga transciever, чтобы получать данные с эзернета? или достаточно сразу указать с выхода модуля порты микросхемы марвела?

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


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

Нужно ли подключать модуль 1000BASE-X PCS/PMA or SGMII к 7series fpga transciever, чтобы получать данные с эзернета? или достаточно сразу указать с выхода модуля порты микросхемы марвела?

Подключение будет следующим:

Tri-Mode Ethernet MAC --( GMII )--> 1G/2.5G Ethernet PCS/PMA or SGMII --( SGMII )--> 88E1111

 

Для kc705 можно использовать и:

Tri-Mode Ethernet MAC --( GMII )--> 88E1111

Tri-Mode Ethernet MAC --( RGMII )--> 88E1111

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


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

Подключение будет следующим:

Tri-Mode Ethernet MAC --( GMII )--> 1G/2.5G Ethernet PCS/PMA or SGMII --( SGMII )--> 88E1111

 

Для kc705 можно использовать и:

Tri-Mode Ethernet MAC --( GMII )--> 88E1111

Tri-Mode Ethernet MAC --( RGMII )--> 88E1111

 

Спасибо, ваш ответ был очень необходим мне)

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


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

...Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII. Дальше разбирайте пакеты вручную.

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается

 

...Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII. Дальше разбирайте пакеты вручную.

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается

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


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

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается

 

 

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается

 

Открываете Core Generator, находите эту корку, выставляете в настройках на 1-ой странице SGMII. На второй странице снимаете галку с "MDIO MANAGEMENT INTERFACE". Все остальное оставляете без изменений. Генерируете корку кнопкой "Finish". После генерации в IP-каталоге у вас появится вериложный топ-модуль с названием что-то типа sgmii_IP_example_design. Его и используйте в своем проекте, там уже все готово и настроено, осталось только подключить в ваш верхний модуль.

Инициализация у меня сделана так:

sgmii_IP_example_design SGMII_MAC (
    .independent_clock(clk200), 
    .reset(reset_reg), 
    .gt0_qplloutclk_i(), 
    .gt0_qplloutrefclk_i(), 
    .gtrefclk(GTXQ2_left_i), 
    .userclk2(userclk2), 
    .txp0(txp0), 
    .txn0(txn0), 
    .rxp0(rxp0), 
    .rxn0(rxn0), 

    .gmii_txd0(gmii_txd0), 
    .gmii_tx_en0(gmii_tx_en0), 
    .gmii_tx_er0(), 
    .gmii_rxd0(gmii_rxd0), 
    .gmii_rx_dv0(gmii_rx_dv0), 
    .gmii_rx_er0(), 
    .configuration_vector0(5'b10000), 
    .an_interrupt0(), 
    .an_adv_config_vector0(), 
    .an_restart_config0(), 
    .link_timer_value0(9'b000110010), 
    .speed0_is_10_100(1'b0), 
    .speed0_is_100(1'b0), 
    .status_vector0(status_vector0), 
    .signal_detect0(1'b1)
)

 

ВСЁ! Получили человеческий интерфейс GMII (gmii_txd0, gmii_rxd0, gmii_tx_en0, gmii_rx_dv0). С ним и работайте, принимайте/отправляйте пакеты.

Не забудьте только на плате KC705 выставить джамперы, задающие режим работы SGMII для марвела 88E1111.

Фуф...расписался...

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


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

ВСЁ! Получили человеческий интерфейс GMII (gmii_txd0, gmii_rxd0, gmii_tx_en0, gmii_rx_dv0). С ним и работайте, принимайте/отправляйте пакеты.

Не забудьте только на плате KC705 выставить джамперы, задающие режим работы SGMII для марвела 88E1111.

Фуф...расписался...

Спасибо большое)

Многое разъяснили для меня :rolleyes:

 

 

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


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

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

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

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

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

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

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

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

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

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