|
Stratix4+Ethernet Help, Необходима реализация обмена ПК-ПЛИС по Ethernet. |
|
|
|
Jul 31 2013, 07:58
|
Местный
  
Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925

|
Цитата Я так понимаю никакого стека у вас нет, может для тестов прикрутить какой то готовый типа LwIP или подобного? А что это даст? Вообще-то у меня имеется наработка с использованием Simple Socket Server. Добился такого же результата, т.е. пинга, и забросил это дело. Я так думаю, что и со стеком на данном этапе нужна какая-то прога, чтобы сформировать правильный пакет и послать его на определенный IP-адрес, хоть по UDP хоть TCP IP. Просто я не знаю какую прогу использовать для этого, и вообще, думаю многие уже через это прошли, поэтому прошу у них помощи и подсказки для упрощения жизни.
|
|
|
|
|
Aug 2 2013, 10:36
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата(billidean @ Jul 31 2013, 11:58)  А что это даст? Вообще-то у меня имеется наработка с использованием Simple Socket Server. Добился такого же результата, т.е. пинга, и забросил это дело.
Я так думаю, что и со стеком на данном этапе нужна какая-то прога, чтобы сформировать правильный пакет и послать его на определенный IP-адрес, хоть по UDP хоть TCP IP. Просто я не знаю какую прогу использовать для этого, и вообще, думаю многие уже через это прошли, поэтому прошу у них помощи и подсказки для упрощения жизни. Если ваша плата умеет принимать и обрабатывать ТСР пакеты, и формировать ответные, поддерживать IP адрес и все служебные обмены обычной компьютерной сети, - что делает например ЛвИП стэк и прочие стэки, то вам он конечно не нужен. Если такого функционала нет, то для подключения к обычному компьютеру это надо будет делать, а это как раз и будет опять этим стэком. Если вам нужна прога со стороны компьютера то я уже написал netcat, netcat 192.168.0.1 7 она устанавливает соединение с этим айпи по этому порту дальше все что вы напишите упаковывается в IP пакет и посылается айпишнику, все что он ответил пишется вам на экран. Куда проще то?
|
|
|
|
|
Aug 4 2013, 05:05
|
Местный
  
Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925

|
Спасибо за советы, попробую предложенные программы. Пока что решил написать простенькое приложение на Qt с использованием UDP.
Но на данный момент у меня проблема немного не в этом вопросе: у меня есть прошивка для кристалла + прога для НИОСа, которые при запросе пинга что-то отвечают, пакеты правильные вроде, если смотреть с помощью wireshark. Недавно начал поднимать этот проект далее. Начал дорабатывать НИОСовый код и заметил такую вещь, если где-нибудь поправить код, даже в той части, которая не участвует в основном процессе работы интерфейса, то пинг перестает проходить полноценно. А если точнее, то пинг начинается с АРП-запроса, а затем уже запрашивает ЭХО, так вот НИОС почемуто не видит этот АРП запрос, как-будто данные попортились и пакет стал битым. С помощью отладчика не получается этот пакет увидеть так как при подключении платы к ПК в линии довольно много всяких запросов. В квартусе тайминги нормальные.
Как вариант попробую переписать проект заново.
|
|
|
|
|
Aug 5 2013, 09:42
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Может то что я напишу ниже поможет.
у меня было подобное на микроблайзе от ксалинкса. Был проект который работал, но при изменении кода даже в других частях отваливался езернет или начинал глючить, убивало то что можно добавить функцию которую ни разу не вызываю, а код падал. Проблема была в следующем, неправильные клоки внешней памяти (сделать не от отдельного источника клоков синхронного) в результате при работе программы в зависимости от ее вида и размера кешировались разные блоки, иногда они кишировались удачно, иногда с ошибками и так далее... Потому то работало, то нет, то с ошибками.
В начале я добавил регистры на шину - стало легче, через некоторое время увеличилась нагрузка на программу и снова ошибки, добавили радиатор опять стало легче, повышение нагрузки - опять беда... Потом пересобрал всю систему заново и правильно с клоками и так далее и вроде она стала на порядок устойчивее работать...
Проверьте отчеты вашей программы, расчетная частота работы с хорошим запасом превышает рабочую?
|
|
|
|
|
Aug 5 2013, 18:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
Также могут оказаться виноваты свичи, MAC-адреса и ARP. Например после смены MAC в проекте на плисине, на компе надо обязательно вручную сбросить ARP-кэш. иначе придётся несколько минут курить бамбук, пока он про-expire-ится самостоятельно. Цитата при подключении платы к ПК в линии довольно много всяких запросов. win действительно много гадит в линию. Можете попробовать пробросить отдельную сетевуху в виртуалку с *nix и вайршарком
Сообщение отредактировал krux - Aug 5 2013, 18:02
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Aug 6 2013, 02:38
|
Местный
  
Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925

|
Цитата win действительно много гадит в линию. Если после заливки программы в ПЛИСину винда начинает выдавать очень плотный поток запросов, причем не связанных с моей платой, адреса не её. Но если подождать около минуты, то потом поток запросов почти до ноля падает, и можно уже свои пинги посылать. Это конечно все муторно, но выбирать не из чего. Цитата на компе надо обязательно вручную сбросить ARP-кэш. иначе придётся несколько минут курить бамбук, пока он про-expire-ится самостоятельно. есть такое дело. А как его сбрасывать? Если я для пинга использую cmd, то как очистить кэш обмена?
|
|
|
|
|
Aug 7 2013, 12:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
Цитата Если я для пинга использую cmd, то как очистить кэш обмена? arp -d
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|