|
Ethernet на ПЛИС, PHY+MAC+UDP/IP |
|
|
|
Sep 4 2014, 07:56
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 6-03-14
Из: Зеленоград
Пользователь №: 80 823

|
Собрал проект, реализующий Ethernet (PHY+MAC+UDP/IP). Я формирую на ПЛИС'ке данные, которые хочу подать, на UDP. При отвправке самого первого пакета при выставлении сигнала sof, UDP/IP stack формирует arp запрос получателю, далее приходит отправителю ответ и после UDP/IP выствляет сигнал dst_rdy, который говорит о том что блок UDP/IP готов к приему данных для отправки. При передаче остальных пакетов сигнал dst_rdy выставляется почти сразу же после выставления sof (промежуток времени между их выставлением равен длине формируемого заголовка). Проблема заключается в следующем. При отправке самого первого пакета сигнал dst_rdy выставляется не сразу, может выставиться аж через 3-5 мин, может меньше может больше, а может и не выставиться. Но после того как это произошло (установилось видимо связь) дальнейшая передача пакетов происходит исправно. Кстати проблема возникает не всегда, например когда проверяю работу на 100 Мбит, зачастую передача работает и редко такое возникает, а когда проверяю на 1gb то наоборот зачастую не работает и только редко начинает работать сразу. Помогите разобраться с этим, буду очень признателен).
Могу выложить описание автомата формир отправку и диаграммы
|
|
|
|
|
 |
Ответов
|
Jun 22 2015, 19:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(NSergeevich @ Jun 22 2015, 19:00)  подкиньте ресурс, где можно былобы почитать о всех этих хеадерах и чексуммах На Википедии можно почитать: Ethernet, IP и UDP. Вообще, при отправке пакета Ethernet, чтобы Wireshark его видел, достаточно подать на MAC пакет состоящий из DST MAC, SRC MAC, тип пакета (08 00) и произвольные данные (минимум 46 байт, если меньше MAC добивает нулями недостающие). Далее MAC дополнияет всё это преамбулой, SFD и CFS и выдаёт на PHY. Т.е. если эти условия выполнены, то никакие арпы и т.д. не нужны, Вы увидите свой пакет в Wireshark. Если нет - ищите проблему где-то в проекте/железе: 1) Включен ли передатчик MAC-контроллера? 2) Выдаёт ли MAC данные на PHY? 3) Какой интерфейс MAC-PHY используется в системе? 4) Правильно ли настроен PHY? 5) и т.д. Да, какую FPGA используете? Есть стандартные генераторы Ethernet трафика, можно попробовать загрузить сеть данными генератора. Чтобы проверить соединение PC-PHY, можно включить PHY в режим Line Loopback и побросать пакеты с компа на плату.
|
|
|
|
|
Jun 23 2015, 07:39
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(doom13 @ Jun 22 2015, 22:03)  Вообще, при отправке пакета Ethernet, чтобы Wireshark его видел, достаточно подать на MAC пакет состоящий из DST MAC, SRC MAC, тип пакета (08 00) и произвольные данные (минимум 46 байт, если меньше MAC добивает нулями недостающие). Далее MAC дополнияет всё это преамбулой, SFD и CFS и выдаёт на PHY. Т.е. если эти условия выполнены, то никакие арпы и т.д. не нужны, Вы увидите свой пакет в Wireshark. Если нет - ищите проблему где-то в проекте/железе: 1) Включен ли передатчик MAC-контроллера? 2) Выдаёт ли MAC данные на PHY? 3) Какой интерфейс MAC-PHY используется в системе? 4) Правильно ли настроен PHY? 5) и т.д.
Да, какую FPGA используете? Есть стандартные генераторы Ethernet трафика, можно попробовать загрузить сеть данными генератора.
Чтобы проверить соединение PC-PHY, можно включить PHY в режим Line Loopback и побросать пакеты с компа на плату. У меня все так и сделано и MAC все добавляет. Я уже об этом писал. При подключении диоды мигают, а на wireshark следующее:
Интерфейс у меня RGMII. В настройке phy на 100% я НЕ уверен, т.к. на 100% не понимаю какой регистр кофигурировать и как правильно это делать. Пробовал и не конфигурируя phy(т.к. где-то вычитал, что конфигурировать не обязательно) и конфигурируя 0-ой регистр control (там я указал скорость передачи и full дуплексный мод). У меня AR8035
AR8035.pdf ( 567.24 килобайт )
Кол-во скачиваний: 206Я работаю со Spartan-ом 6-ым XC6SLX100
|
|
|
|
|
Jun 23 2015, 08:48
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(doom13 @ Jun 23 2015, 11:17)  Вот тут большая вероятность того, что нужно "подвинуть" клок (TXC) относительно данных (TXD). Это можно делать через соответствующий регистр PHY по MDIO или можете попробовать подвигать его PLL. Ещё, прописаны ли временные ограничения?
Еще, может быть проблема со сбросом, при подаче питания PHY какое-то время (см. доку) надо подержать в ресете. Что за временные ограничения ? Клок пробовал двигать относительно данных конфигурируя регистр - без результатно. А phy у меня в ресете при включении некоторое время.
|
|
|
|
Сообщений в этой теме
Alexey_pashinov Ethernet на ПЛИС Sep 4 2014, 07:56 billidean При отправке самого первого пакета Ваш стек отправ... Sep 4 2014, 09:07 Alexey_pashinov Это я и пояснил во вступлении чтобы было понятно о... Sep 4 2014, 09:29 billidean Имея картину от сниффера (сохраненный файл), можно... Sep 4 2014, 09:37 Socrates FPGA Triple speed ethernet MAC + Micrel KSZ9021/KS... Sep 4 2014, 13:21 Alexey_pashinov Привожу скрин wireshark, в обоих случаях arp запро... Sep 4 2014, 13:50 billidean Эта картинка, как я понимаю, когда у Вас все хорош... Sep 4 2014, 14:30 Alexey_pashinov Проблема решилась. Оказывается неправильно подавал... Sep 8 2014, 08:36 HFSE Всем Привет.
Я сейчас занимаюсь тем же самым что ... Jun 16 2015, 19:46 mobidev Цитата(HFSE @ Jun 16 2015, 23:46) P.C. На... Jun 18 2015, 06:30 doom13 Если плата отправляет пакет, то wireshark должен е... Jun 16 2015, 20:03 HFSE Да, спасибо доом13, я это уже пробовал к сожалению... Jun 17 2015, 19:42 Bad0512 Цитата(HFSE @ Jun 18 2015, 01:42) Кодlibr... Jun 18 2015, 02:16  HFSE Цитата(Bad0512 @ Jun 18 2015, 02:16) Жест... Jun 18 2015, 05:01   vadimuzzz Цитата(HFSE @ Jun 18 2015, 11:01) Но я пр... Jun 18 2015, 05:03    HFSE Цитата(vadimuzzz @ Jun 18 2015, 05:03) на... Jun 18 2015, 06:22     HFSE Цитата(HFSE @ Jun 18 2015, 06:22) Я это у... Jun 18 2015, 06:41      doom13 Цитата(HFSE @ Jun 18 2015, 09:41) Если я ... Jun 18 2015, 07:34      mobidev Цитата(HFSE @ Jun 18 2015, 10:41) Если я ... Jun 18 2015, 08:15 HFSE Всем сапсибо за советы.
Но до сих пор я не вижу па... Jun 19 2015, 06:56 Sergey_Bekrenyov А зачем Вы TX_CLK_OUT в ноль опускаете? PHY не смо... Jun 19 2015, 14:30  HFSE Цитата(Sergey_Bekrenyov @ Jun 19 2015, 15... Jun 22 2015, 07:19   Sergey_Bekrenyov Цитата(HFSE @ Jun 22 2015, 10:19) Добрый ... Jun 22 2015, 09:26 doom13 Пробуйте проверять соединение в разных сечениях (l... Jun 19 2015, 07:12 NSergeevich Всем привет! Мой проект (MAC + Phy) настроен т... Jun 22 2015, 10:18 mobidev Цитата(NSergeevich @ Jun 22 2015, 14:18) ... Jun 22 2015, 11:31  NSergeevich Цитата(mobidev @ Jun 22 2015, 14:31) QM q... Jun 22 2015, 11:41   mobidev Цитата(NSergeevich @ Jun 22 2015, 15:41) ... Jun 22 2015, 12:03   doom13 Цитата(NSergeevich @ Jun 22 2015, 14:41) ... Jun 22 2015, 12:27    NSergeevich Цитата(doom13 @ Jun 22 2015, 15:27) Рукам... Jun 22 2015, 12:41 gosu-art А promiscuous mode у вас включен? У меня, например... Jun 22 2015, 10:30 NSergeevich Цитата(gosu-art @ Jun 22 2015, 13:30... Jun 22 2015, 10:35 gosu-art RE: Ethernet на ПЛИС Jun 22 2015, 10:41 NSergeevich C этим модом тоже самое Jun 22 2015, 10:50 HFSE Цитата(NSergeevich @ Jun 22 2015, 11:50) ... Jun 22 2015, 12:53  mobidev Цитата(HFSE @ Jun 22 2015, 16:53) правиль... Jun 22 2015, 13:26  NSergeevich Цитата(HFSE @ Jun 22 2015, 15:53) Sergeev... Jun 22 2015, 15:02   Corvus Цитата(NSergeevich @ Jun 22 2015, 18:02) ... Jun 22 2015, 15:06 gosu-art Код/// size 14 bytes
logic [7:0] e... Jun 22 2015, 12:54 krux для формирования пакетов есть ещё такая интересная... Jun 22 2015, 13:40  gosu-art Цитата(doom13 @ Jun 22 2015, 22:03) Вообщ... Jun 22 2015, 19:23   doom13 Цитата(gosu-art @ Jun 22 2015, 22:23... Jun 22 2015, 20:02     doom13 Цитата(NSergeevich @ Jun 23 2015, 11:48) ... Jun 23 2015, 09:19 gosu-art Основные параметры
Код localparam SIZE_ETHER_HDR ... Jun 22 2015, 18:39 NSergeevich Может кто-нибудь сталкивался со следующей проблемо... Jun 30 2015, 10:52 NSergeevich В случае MII на 100mb интерфейса TXD[3... 0]: Tran... Jul 10 2015, 13:30 HFSE Цитата(NSergeevich @ Jul 10 2015, 14:30) ... Jul 13 2015, 07:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|