|
|
  |
MII, Минимальный временной интервал между передачей пакетов от MAC к PHY |
|
|
|
May 14 2015, 14:44
|
Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507

|
Всем здравствуйте !  У меня вопрос. Есть у меня волшебный MAC контроллер от Xilinx (Ip "Tri - Mode Ethernet Mac cntr") использую в режиме 100 Mbps работает исключительно на передачу. Каждые 4 мс моей логикой формируются 8 пакетов примерно по 1024 байт, для этого используется 8 буферов по 2048 байт каждый. Размер буфера выбрал исходя из количества оставшихся блоков RAM. Данные поступают от фреймера E1. Мне это все дело необходимо передать PHY трансмиттеру. Есть ли какой-либо минимальный интервал между посылкой пакетов по MII, или я вполне могу слать следующий как только закончена пересылка предыдущего ? На сколько я понял PHY мне не может доложить, что пакет ушел в сеть ? А может все это дело разнести по времени, по мере заполнения буферов, чтобы сразу во внешку все не передавалось ? UPD: я так понял достаточно соблюсти Interpacket gap ?
|
|
|
|
|
May 14 2015, 15:30
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(egorman44 @ May 14 2015, 17:44)  UPD: я так понял достаточно соблюсти Interpacket gap ? Я сейчас делаю Eth под Альтеру тамошняя корка этот самый gap выдерживает сама, мало того его размер можно явно указать, но у меня сейчас стоит по умолчанию, не помню сколько. Думаю у Хилых должно быть аналогично.
|
|
|
|
|
May 14 2015, 17:06
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435

|
Когда то давным давно делал аппаратный стек 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 бит соблюсти обязательно. это на какой частоте, сколько по времени между пакетами?
|
|
|
|
|
May 14 2015, 17:45
|
Местный
  
Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647

|
Добрый день. Выдержка из IEEE 802.3-2005
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|