Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MII
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
egorman44
Всем здравствуйте ! sm.gif У меня вопрос.
Есть у меня волшебный MAC контроллер от Xilinx (Ip "Tri - Mode Ethernet Mac cntr") использую в режиме 100 Mbps работает исключительно на передачу. Каждые 4 мс моей логикой формируются 8 пакетов примерно по 1024 байт, для этого используется 8 буферов по 2048 байт каждый. Размер буфера выбрал исходя из количества оставшихся блоков RAM. Данные поступают от фреймера E1.
Мне это все дело необходимо передать PHY трансмиттеру. Есть ли какой-либо минимальный интервал между посылкой пакетов по MII, или я вполне могу слать следующий как только закончена пересылка предыдущего ? На сколько я понял PHY мне не может доложить, что пакет ушел в сеть ? А может все это дело разнести по времени, по мере заполнения буферов, чтобы сразу во внешку все не передавалось ?

UPD: я так понял достаточно соблюсти Interpacket gap ?
Jackov
Цитата(egorman44 @ May 14 2015, 17:44) *
UPD: я так понял достаточно соблюсти Interpacket gap ?

Я сейчас делаю Eth под Альтеру тамошняя корка этот самый gap выдерживает сама, мало того его размер можно явно указать, но у меня сейчас стоит по умолчанию, не помню сколько.
Думаю у Хилых должно быть аналогично.
Alex11
Interpacket gap - 96 бит соблюсти обязательно. Будет ли корка его соблюдать сама - по идее, должна.
tvcam
Когда то давным давно делал аппаратный стек UDP на Altere, выжимая максимальную скорость из 100Мбит. И вот что у меня осталось в памяти, но я могу ошибаться. Можно было пихать в PHY следующий пакет на следующий такт. Получал максимально возможную скорость передачи от устройства (видеокамера), ещё народ в этой конференции писал что не может быть такого потока. В исходниках сохранён комментарий "Промежуток между пакетами 960 нс". Я не знаю сколько должно быть, но оставляю это время в текущих проектах. Помнится следующая особенность данного промежутка. PHY установленное в устройстве будет тупо принимать пакеты по MMI и тупо передавать их в сетку, так как в PHY железная логика. Простые PHY не содержат не каких длинных буферов и тому подобного (так было давно). Посмотрите внимательно на структуру вашего PHY, есть там буфера или нет, я думаю нет (простый 100 мегабитные). Также PHY работает и по приёму, без буферов. Но фишка оказалась в том что в компьютере часто стоит такой же PHY, только на PCI и тоже без буферов. А на этой шине PCI повешена куча устройств которые тоже нужно обслуживать, и время на это при приходе пакетов подряд без промежутков нет, а тем более на одновременное выполнения приёма и передачи. Короче всё зависит от PHY приёмника (в компьютере). При уменьшении времени Интеловская плата встроенная в материнку принимала пакеты, похоже она подключена напрямую к чипу на материнке, где есть буфер, а Реалтековская дешевая за 5 баксов на PCI начинала пропускать, там по структуре нет буфера. К тому же начинала падать передача от компьютера, от PHY в Альтеру приходил только кусок пакета, при увеличении промежутка в компьютер, пакет от компьютера тоже увеличивался - приходя в норму.
Опс.. опередили:

Цитата(Alex11 @ May 14 2015, 19:16) *
Interpacket gap - 96 бит соблюсти обязательно.

это на какой частоте, сколько по времени между пакетами?
Alex11
Там всегда 96 бит, а время разное в зависимости от скорости. 9.6 мкс на 10 Мбит, 0.96 на 100 и 0.096 на 1Гб.
Andrew Su
Добрый день.
Выдержка из IEEE 802.3-2005
tvcam
Если быть точным, то при 100 Mbps получается 940нс.
Alex11
Откуда там 940? В стандарте цифра 960 и это правильно. Битовая скорость в линии 125 М, кодировка 4/5, передача исходного бита идет со скоростью 100 М. 96 бит -> 960 нс.
1.4.147 Inter-Packet Gap (IPG): A delay or time gap between CSMA/CD packets intended to provide
interframe recovery time for other CSMA/CD sublayers and for the Physical Medium. (See IEEE 802.3®,
4.2.3.2.1 and 4.2.3.2.2.) For example, for 10BASE-T, the IPG is 9.6 μs (96 bit times); for 100BASE-T, the
IPG is 0.96 μs (96 bit times).
tvcam
Да, не прав, заклинило, передача в PHY из в данном случае из FPGA идёт на частоте 25 МНz (40нс) при 4 битах. (96 бит / 4) х 40 = 960нс
egorman44
Ребяты всем спасибо , завтра буду пробовать выдерживать паузу a14.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.