Перейти к содержанию
    

Уважаемые форумчане если не сложно помогите разобраться с формированием посылок протоколов tcp/ip и udp/ip. Есть плата Altera + marwell 88e1111 в режиме RGMII 1G/s. В прилагаемой альтеровской документации описано только формирование udp посылки (Преамбула, Адрес назначения, Адрес Источника, Тип, Данные, Контрольная сумма), но на сколько я понял для связи с компьютером этого недостаточно, так как необходимо добавить в эту посылку канала, шлюза или может изменяются последовательность данных. Если кто занимался помогите пожалуйста с описанием или конкретным примером посылок tcp/ip, udp/ip реализованном на железе.

Изменено пользователем RamZoom

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что там у Альтеры - не читал. То, что Вы описали - это еще не UDP, это произвольный Ethernet кадр, в него вкладывается хоть UDP, хоть что еще. Для общения с компьютером UDP достаточно, но в случае, если устройство в одном сегменте Ethernet с компьютером. В общем случае Вам придется еще поднимать ARP, для того, чтобы устройство было найдено по IP-адресу. Если Вам нужен TCP/IP, то там все еще сильно сложнее и лучше это делать с примменением процессора, а не на голой FPGA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сколько я понял протоколы ARP и RARP используются для прямого и обратного преобразований адресов, т.е. получения mac адреса после отправки широковещательной посылки и далее отправлять данные по полученному mac, а далее обмен посылками производится по IP. Вот вы сказали на счет произвольного кадра Ethernet , что в него вкладывать UDP..., а вкладывать нужно в поле ДАННЫЕ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот вы сказали на счет произвольного кадра Ethernet , что в него вкладывать UDP..., а вкладывать нужно в поле ДАННЫЕ???

В данные пакета Ethernet вкладывать пакет IP, в данные пакета IP вкладывать пакет UDP, в данные пакета UDP вкладывать собственно полезную информацию. Почитайте про них хотя бы в википедии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прочитал немало инфы в инете, документации произодителей altera, xilinx, несколько книг, но общей картины структуры до вашего ответа не было. спасибо. попробую сформировать пакет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть такая программка Capsa от Colasoft. Она умееет, помимо всего прочего, формировать Ethernet-пакет со всем нужным содержимым для стандартных протоколов, в т.ч. UDP. И показывает все с разбивкой по полям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые форумчане если не сложно помогите разобраться с формированием посылок протоколов tcp/ip и udp/ip. Есть плата Altera + marwell 88e1111 в режиме RGMII 1G/s.

Вы почему-то начали с другого конца.

Дело не в самом " tcp/ip и udp/ip", а в том, кто эти пакеты формирует. Обычно этим занимается микроконтроллер. А если точнее - то ОС под управлением которой он работает. И для большинства ОС задача давно решена.

Тогда встает вопрос: "Почему ПЛИС?"... Вам придется в ПЛИС сделать командоаппарат или микроконтроллер с ОС и его отлаживать.

А что касается самих протоколов, то они все расписаны подробно в книгах. Только к Альтере это никакого отношения не имеет... Мало того, МАС в ПЛИС получается дорогой и урезанный...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле проблема заключается в том, что в моем циклоне 4 конечно нет встроенного контроллера. Ставить микроконтроллер смысла нет, только ARM и то который поддержит 125 Мгц. Область под приемо-передатчик заняла достаточно мало места в альтере. Осталась единственная проблема marwell пакеты передает, а комп ничего не видит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле проблема заключается в том, что в моем циклоне 4 конечно нет встроенного контроллера. Ставить микроконтроллер смысла нет, только ARM и то который поддержит 125 Мгц. Область под приемо-передатчик заняла достаточно мало места в альтере. Осталась единственная проблема marwell пакеты передает, а комп ничего не видит.

NIOS II можно встроить в любую FPGA. Почитайте эту тему.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет на счет NIOS II, но для успешной реализации собственных проектов необходимо полное понимание всех процессов. Я поэтому и задаю те вопросы здесь на форуме на которые сам не могу найти ответы или что-то понять. Можно взять NIOS II, ethernet мегафункцию, SDRAM мегафункцию и т.д... и ничего не понимая запустить проект. Может я в чем-то и не прав, но если нет понятия как и что собирается, формируется и передается любая даже незначительная ошибка приведет в тупик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет на счет NIOS II, но для успешной реализации собственных проектов необходимо полное понимание всех процессов. Я поэтому и задаю те вопросы здесь на форуме на которые сам не могу найти ответы или что-то понять. Можно взять NIOS II, ethernet мегафункцию, SDRAM мегафункцию и т.д... и ничего не понимая запустить проект. Может я в чем-то и не прав, но если нет понятия как и что собирается, формируется и передается любая даже незначительная ошибка приведет в тупик.

А никто и не говорил, что Вы не понимая должны собрать всё в кучу, что всё сразу заработает. Использование Nios II c ядром TSE MAC просто облегчает работу с PHY уровнем и даёт больше возможностей. Если выбираете этот путь, то и почитать придётся немало, и с работой ядра разобраться, и Nios II изучить.

 

Поднять отправку пакетов по UDP в железе у Вас конечно же получится, но вот ARP, ICMP, IGMP, TCP (для того, чтобы Ваш девайс был полноценным сетевым устройством) без Niosa точно не потяните.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала позвольте уточнить:

1. Комп вообще не видит пакеты или не видит конкретно UDP пакетов?

 

Немного личного опыта (реализация мака на циклоне 3 с Фи от Микрел 10/100):

Комп не видел АРП ответы (не видел наглухо буд-то девайс и не отправлял ничего вообще тишина в WireShark)

оказалось что CRC был не верным, а такие пакеты дропаются и сниффер ничего не показывает.

 

Т.е. если у вас вся структура (Преамбула, Адрес назначения, Адрес Источника, Тип, Данные, Контрольная сумма) цела и корректна сниффер её поймает, что бы там не было в данных, хоть все нули.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще подсказка. Лампочка на Ethernet разъеме компа мигает от физики, а не MAC, поэтому, если пакет хотя бы начал передаваться, то увидите, если соедините Вашу плату напрямую к компу и больше там никого не будет. Мигать еще может на передачу от компа, но заметите, есть мигания в такт посылаемым пакетам или нет. Если мигает, а в компе нет ничего совсем (даже в Shark'е) - то лечите контрольную сумму. Замкните две Ваших платы друг на друга и смотрите на приемной через SignalTap, что пришло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Связка альтера - марвелл на отладочной плате со светодиодами post-81150-1400854694_thumb.jpg и соответственно я по ним и сужу о получении и отправке пакетов. Сами пакеты формирую согласно диаграмме post-81150-1400855050_thumb.jpg. Подозрение на то, что сигнал не соответствует диаграмме post-81150-1400855294_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы сигналы на Marvell фрмируете AltDDIO или просто так? Если просто так - точно не заработает, фазу не подгоните правильную. Там даже с AltDDIO есть проблемы с фазой. Я когда запускал RGMII делал три клока с PLL - два в противофазе для разных AltDDIO (один для данных, другой для TxCtl) и отдельно внешний клок на физику. Его фазу пришлось устанавливать ручками в оптимальное положение. Проверьте осциллографом для начала, как идут сигналы на Marvell. Преамбула там вполне хорошо видна и фазы можно посмотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...