Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Kintex-7
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
TimeToSleep
Доброго времени суток!

Мне необходимо сделать пассивный сниффер 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 и уже после на плис.
TimeToSleep
Есть немного другая постановка вопроса. Можно ли подключить 88e111 к RJ, установить его конфигурацию, например, через входной вектор, и с его выхода получать поток постоянно сменяющихся данных? (не важно как он организован там, главное поток с эзернета?)
AndreiUS
Цитата(TimeToSleep @ Jun 3 2016, 11:16) *
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 - это самый быстрый и проверенный способ. Дальше разбирайте пакеты вручную.
Koluchiy
Диплом, что ли?
Lutovid
1)Если поток 1Гб/с и нагрузка 100%(что не свойственно обычно сетям, но если все же идеализировать) то microblaze не сможет обработать этот поток
2)Если отловить определенные пакеты с фиксированным заголовком< то проблем нет и мак не нужен - можно ловить с выхода phy, но если вы хотите ловить все пакеты подряд, тут могут возникнуть сложности(это если вы хотите понять что конкретно это за фрейм и как-то на него отреагировать)
ХОТЯ если вам нужно просто отловить фрейм, вы можете задетектировать его при помощи выходов PCS/PMA тут уж совсем ничего сложного
В общем все зависит от того, что нужно делать с пакетами
TimeToSleep
Цитата(AndreiUS @ Jun 3 2016, 16:16) *
1) Можно, но зависит от того, что вы хотите с этими пакетами дальше делать.
2) Можно и IP-ядро, а можно и самому разбирать пакет. Это не сложно.
3) "SFP с переходником на эзернет" называется Copper SFP. Можно и так сделать, если у вас этот Copper SFP имеется, но это чуть посложнее. Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII - это самый быстрый и проверенный способ. Дальше разбирайте пакеты вручную.


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

Цитата(Koluchiy @ Jun 6 2016, 19:04) *
Диплом, что ли?

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

Цитата(Lutovid @ Jun 10 2016, 18:27) *
1)Если поток 1Гб/с и нагрузка 100%(что не свойственно обычно сетям, но если все же идеализировать) то microblaze не сможет обработать этот поток
2)Если отловить определенные пакеты с фиксированным заголовком< то проблем нет и мак не нужен - можно ловить с выхода phy, но если вы хотите ловить все пакеты подряд, тут могут возникнуть сложности(это если вы хотите понять что конкретно это за фрейм и как-то на него отреагировать)
ХОТЯ если вам нужно просто отловить фрейм, вы можете задетектировать его при помощи выходов PCS/PMA тут уж совсем ничего сложного


Нет, нагрузка далеко не 100%.
Да, с определенным заголовком. Broadcast вроде как.
Вот как раз вопрос в том, как задетектировать его с выхода PCS/PMA) Литература мне слабо помогает. Поэтому обратился за помощью к форуму умных людейsm.gif
Lutovid
Цитата(TimeToSleep @ Jun 12 2016, 17:53) *
Нет, нагрузка далеко не 100%.
Да, с определенным заголовком. Broadcast вроде как.
Вот как раз вопрос в том, как задетектировать его с выхода PCS/PMA) Литература мне слабо помогает. Поэтому обратился за помощью к форуму умных людейsm.gif

Броадкаст это FFFFFFFFFFFF в поле мак дестинэйшн, он всегда идет после преамбулы - и того - сдвиговый регистр размером 8+6 байт(преамбула и мак) и один if... вот и решение(если я вас правильно понял)
https://en.wikipedia.org/wiki/Ethernet_frame - тут картинка для наглядности
На сайте ксайлинкса есть пример с ethernet, кстати
TimeToSleep
Цитата(Lutovid @ Jun 13 2016, 14:20) *
Броадкаст это FFFFFFFFFFFF в поле мак дестинэйшн, он всегда идет после преамбулы - и того - сдвиговый регистр размером 8+6 байт(преамбула и мак) и один if... вот и решение(если я вас правильно понял)
https://en.wikipedia.org/wiki/Ethernet_frame - тут картинка для наглядности
На сайте ксайлинкса есть пример с ethernet, кстати


Угу, я предполагал примерно такой ход решения. Спасибо
А пример с сайта ксайлинкса можно попросить? (А то не знаю, что именно искать и соответственно кучу всего нахожу)

Еще вопрос. Выход PCS/PMA это же Marvel 88e1111? Его нужно настраивать по MDIO, предварительно сбросив ресетом также? И куда его подключать надо, а то интуитивно непонятно как подсоединять контакты с выхода и какие клоки подавать (их там аж 4 нужно)?
TimeToSleep
Цитата(AndreiUS @ Jun 3 2016, 16:16) *
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, чтобы получать данные с эзернета? или достаточно сразу указать с выхода модуля порты микросхемы марвела?
doom13
Цитата(TimeToSleep @ Jun 16 2016, 12:36) *
Нужно ли подключать модуль 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
TimeToSleep
Цитата(doom13 @ Jun 16 2016, 13:44) *
Подключение будет следующим:
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


Спасибо, ваш ответ был очень необходим мне)
TimeToSleep
Цитата(AndreiUS @ Jun 3 2016, 16:16) *
...Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII. Дальше разбирайте пакеты вручную.

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

Цитата(AndreiUS @ Jun 3 2016, 16:16) *
...Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII. Дальше разбирайте пакеты вручную.

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается
AndreiUS
Цитата(TimeToSleep @ Jul 7 2016, 09:50) *
А подскажите, пожалуйста, Как включить то эту корку? У меня не получается


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


Открываете 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.
Фуф...расписался...
TimeToSleep
Цитата(AndreiUS @ Jul 7 2016, 14:26) *
ВСЁ! Получили человеческий интерфейс GMII (gmii_txd0, gmii_rxd0, gmii_tx_en0, gmii_rx_dv0). С ним и работайте, принимайте/отправляйте пакеты.
Не забудьте только на плате KC705 выставить джамперы, задающие режим работы SGMII для марвела 88E1111.
Фуф...расписался...

Спасибо большое)
Многое разъяснили для меня rolleyes.gif

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.