реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Ethernet на ПЛИС, PHY+MAC+UDP/IP
NSergeevich
сообщение Jun 23 2015, 07:39
Сообщение #46


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 23 2015, 08:17
Сообщение #47


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(NSergeevich @ Jun 23 2015, 10:39) *
Интерфейс у меня RGMII. В настройке phy на 100% я НЕ уверен, т.к. на 100% не понимаю какой регистр кофигурировать и как правильно это делать.

Вот тут большая вероятность того, что нужно "подвинуть" клок (TXC) относительно данных (TXD). Это можно делать через соответствующий регистр PHY по MDIO или можете попробовать подвигать его PLL. Ещё, прописаны ли временные ограничения?

Еще, может быть проблема со сбросом, при подаче питания PHY какое-то время (см. доку) надо подержать в ресете.
Go to the top of the page
 
+Quote Post
NSergeevich
сообщение Jun 23 2015, 08:48
Сообщение #48


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716



Цитата(doom13 @ Jun 23 2015, 11:17) *
Вот тут большая вероятность того, что нужно "подвинуть" клок (TXC) относительно данных (TXD). Это можно делать через соответствующий регистр PHY по MDIO или можете попробовать подвигать его PLL. Ещё, прописаны ли временные ограничения?

Еще, может быть проблема со сбросом, при подаче питания PHY какое-то время (см. доку) надо подержать в ресете.


Что за временные ограничения ?
Клок пробовал двигать относительно данных конфигурируя регистр - без результатно.
А phy у меня в ресете при включении некоторое время.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 23 2015, 09:19
Сообщение #49


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(NSergeevich @ Jun 23 2015, 11:48) *
Что за временные ограничения ?

UCF или XDC файл с описанием клоков. Если xdc, то
Код
create_clock -name sys_clk -period 10 [get_ports sys_clk_p]
,
где перечисляются все клоки используемые в проекте. Но у меня в начале работало и без них, а вот сдвиг клока помогал.

Цитата(NSergeevich @ Jun 23 2015, 11:48) *
А phy у меня в ресете при включении некоторое время.

Согласно Вашей доке reset должен быть минимум 1 мс + время на запуск клока. Если сделано с запасом, то проблем в этом нет.

Попробуйте ещй включить режим Remote PHY Loopback и побросать на плату пакеты с ПК.
Go to the top of the page
 
+Quote Post
NSergeevich
сообщение Jun 30 2015, 10:52
Сообщение #50


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716



Может кто-нибудь сталкивался со следующей проблемой?:
Если я подтягиваю выводы данных, на ножки phy при помощи команды PULLUP в ucf файле, то у MAC на выходе нету данных которые я на вход пускаю.
А если просто "биндю" на ножки (без PULLUP) то MAC выдает данные и дальше они на phy идут.

Вот только phy, видимо, без PULLUP не работает.
Go to the top of the page
 
+Quote Post
NSergeevich
сообщение Jul 10 2015, 13:30
Сообщение #51


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716



В случае MII на 100mb интерфейса TXD[3... 0]: Transmit Data — выдается синхронно относительно TX_CLK.
А сам TX_CLK: Transmit Clock. Вырабатывается в трансивере и передается в МАС.

А как происходит в случае интерфейса RGMII ? Там наоборот? Сам MAC подает синхронно клок GTX с данными TXD[3... 0] ?
Go to the top of the page
 
+Quote Post
HFSE
сообщение Jul 13 2015, 07:53
Сообщение #52





Группа: Участник
Сообщений: 13
Регистрация: 16-06-15
Пользователь №: 87 174



Цитата(NSergeevich @ Jul 10 2015, 14:30) *
В случае MII на 100mb интерфейса TXD[3... 0]: Transmit Data — выдается синхронно относительно TX_CLK.
А сам TX_CLK: Transmit Clock. Вырабатывается в трансивере и передается в МАС.

А как происходит в случае интерфейса RGMII ? Там наоборот? Сам MAC подает синхронно клок GTX с данными TXD[3... 0] ?


http://www.hp.com/rnd/pdfs/RGMIIv2_0_final_hp.pdf
Я делал как нарисовано на Fig.3.
Фаза у CLK сдвинута на 90° по отношению к данным.
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01317 секунд с 7
ELECTRONIX ©2004-2016