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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Stratix4+Ethernet Help, Необходима реализация обмена ПК-ПЛИС по Ethernet.
billidean
сообщение Jul 31 2013, 05:17
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Решил оживить тему.
После последнего сообщения Езернетом больше не занимался, другие задачи появились.
Сейчас же свободного времени побольше и я хочу добить этот вопрос для себя, т.к. очень много где стал использоваться Езернет для передачи между платой с ПЛИС и ПК.

Теперь вопрос к знатокам: я добился того, что пингование платы происходит успешно. Далее я так понимаю нужно передать в плату с ПК что-то определенное, т.е. например передать число 5 или пакет какой-то. Как я могу сформировать необходимый пакет, с помощью какой программы? Или как-то не так это должно быть.

Я не системный программист, поэтому не смейтесь над моим незнанием данного вопроса.

Можно ссылки на полезную информацию.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 31 2013, 07:20
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



есть программа netcat (они есть и для виндоус и для unix) она формирует TCP и UDP пакеты, устанавливает связь и шлет данные.
Уровнем ниже это писать программку самому через виндовые сокеты через IP TCP UDP, слать данные.

Как спуститься еще ниже, то есть на уровень драйвера сетевой карты компьютера и слать сырые данные, я не знаю. Очевидно в винде надо писать свой драйвер, в люниксе вероятно тоже.

Я так понимаю никакого стека у вас нет, может для тестов прикрутить какой то готовый типа LwIP или подобного?
Go to the top of the page
 
+Quote Post
billidean
сообщение Jul 31 2013, 07:58
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Цитата
Я так понимаю никакого стека у вас нет, может для тестов прикрутить какой то готовый типа LwIP или подобного?

А что это даст?
Вообще-то у меня имеется наработка с использованием Simple Socket Server. Добился такого же результата, т.е. пинга, и забросил это дело.

Я так думаю, что и со стеком на данном этапе нужна какая-то прога, чтобы сформировать правильный пакет и послать его на определенный IP-адрес, хоть по UDP хоть TCP IP.
Просто я не знаю какую прогу использовать для этого, и вообще, думаю многие уже через это прошли, поэтому прошу у них помощи и подсказки для упрощения жизни.
Go to the top of the page
 
+Quote Post
krux
сообщение Jul 31 2013, 17:05
Сообщение #19


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



для написания проги со стороны компа - ключевые слова: BSD socket API.
Оно универсальное для *nix, iNiche TCP/IP, так и весьма похоже в Win32.
При этом на каком языке вы будете писать софт - не так важно, ведь это по сути набор библиотечных функций типа send() и recv().


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 2 2013, 10:36
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 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 пакет и посылается айпишнику, все что он ответил пишется вам на экран. Куда проще то?
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 4 2013, 05:05
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Спасибо за советы, попробую предложенные программы.
Пока что решил написать простенькое приложение на Qt с использованием UDP.

Но на данный момент у меня проблема немного не в этом вопросе:
у меня есть прошивка для кристалла + прога для НИОСа, которые при запросе пинга что-то отвечают, пакеты правильные вроде, если смотреть с помощью wireshark. Недавно начал поднимать этот проект далее. Начал дорабатывать НИОСовый код и заметил такую вещь, если где-нибудь поправить код, даже в той части, которая не участвует в основном процессе работы интерфейса, то пинг перестает проходить полноценно. А если точнее, то пинг начинается с АРП-запроса, а затем уже запрашивает ЭХО, так вот НИОС почемуто не видит этот АРП запрос, как-будто данные попортились и пакет стал битым.
С помощью отладчика не получается этот пакет увидеть так как при подключении платы к ПК в линии довольно много всяких запросов.
В квартусе тайминги нормальные.

Как вариант попробую переписать проект заново.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 5 2013, 09:42
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Может то что я напишу ниже поможет.


у меня было подобное на микроблайзе от ксалинкса. Был проект который работал, но при изменении кода даже в других частях отваливался езернет или начинал глючить, убивало то что можно добавить функцию которую ни разу не вызываю, а код падал. Проблема была в следующем, неправильные клоки внешней памяти (сделать не от отдельного источника клоков синхронного) в результате при работе программы в зависимости от ее вида и размера кешировались разные блоки, иногда они кишировались удачно, иногда с ошибками и так далее... Потому то работало, то нет, то с ошибками.

В начале я добавил регистры на шину - стало легче, через некоторое время увеличилась нагрузка на программу и снова ошибки, добавили радиатор опять стало легче, повышение нагрузки - опять беда... Потом пересобрал всю систему заново и правильно с клоками и так далее и вроде она стала на порядок устойчивее работать...

Проверьте отчеты вашей программы, расчетная частота работы с хорошим запасом превышает рабочую?
Go to the top of the page
 
+Quote Post
krux
сообщение Aug 5 2013, 18:02
Сообщение #23


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Также могут оказаться виноваты свичи, MAC-адреса и ARP. Например после смены MAC в проекте на плисине, на компе надо обязательно вручную сбросить ARP-кэш. иначе придётся несколько минут курить бамбук, пока он про-expire-ится самостоятельно.

Цитата
при подключении платы к ПК в линии довольно много всяких запросов.

win действительно много гадит в линию. Можете попробовать пробросить отдельную сетевуху в виртуалку с *nix и вайршарком

Сообщение отредактировал krux - Aug 5 2013, 18:02


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 6 2013, 02:38
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Цитата
win действительно много гадит в линию.

Если после заливки программы в ПЛИСину винда начинает выдавать очень плотный поток запросов, причем не связанных с моей платой, адреса не её. Но если подождать около минуты, то потом поток запросов почти до ноля падает, и можно уже свои пинги посылать. Это конечно все муторно, но выбирать не из чего.
Цитата
на компе надо обязательно вручную сбросить ARP-кэш. иначе придётся несколько минут курить бамбук, пока он про-expire-ится самостоятельно.

есть такое дело. А как его сбрасывать? Если я для пинга использую cmd, то как очистить кэш обмена?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 6 2013, 08:24
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну в wireshark есть еще фильтры, можно и по МАК и по IP фильтровать...
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 7 2013, 04:15
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Создал проект заново, прочитал доки по SG-DMA, переписал код для НИОСа, и вроде заработала система. Сейчас пинги проходят стабильно, тьфу-тьфу.
Данные вроде тоже нормально принимаются.

Благодарю всех за ответы.
Go to the top of the page
 
+Quote Post
krux
сообщение Aug 7 2013, 12:45
Сообщение #27


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата
Если я для пинга использую cmd, то как очистить кэш обмена?

arp -d


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 23:14
Рейтинг@Mail.ru


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