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

 
 
> Сопряжение железа с ПК по Ethernet, Какие служебные протоколы необходимо реализовать
studert
сообщение Oct 9 2008, 07:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121



Необходимо подружить железо (ПЛИС + Ethernet PHY) c ПК. В ПЛИС реализован МАС и генератор UDP пакетов. Какие служебные протоколы необходимо реализовать в железе, чтобы программа на ПК могла отправлять/принимать данные? Знаю только про ARP запросы, которые реализовать не составит труда, если же потребуется что-нибудь более сложное, тогда целесообразнее будет написать программу так чтобы она подключалась напрямую к карте и отправляла принимала пакеты из первых рук. Я в этом вопросе не силен, подскажите каким путем лучше пойти. Пишу программу на основе классов QT.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aprox
сообщение Oct 10 2008, 07:35
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(studert @ Oct 9 2008, 11:06) *
Необходимо подружить железо (ПЛИС + Ethernet PHY) c ПК. В ПЛИС реализован МАС и генератор UDP пакетов. Какие служебные протоколы необходимо реализовать в железе, чтобы программа на ПК могла отправлять/принимать данные? Знаю только про ARP запросы, которые реализовать не составит труда, если же потребуется что-нибудь более сложное, тогда целесообразнее будет написать программу так чтобы она подключалась напрямую к карте и отправляла принимала пакеты из первых рук. Я в этом вопросе не силен, подскажите каким путем лучше пойти. Пишу программу на основе классов QT.

На мой взгляд, минимум в железе- это ARP и UDP. На ПК использовать компонент Билдера- UDP клиент, который и будет "дружить" с вашим железом.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 10 2008, 08:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Aprox @ Oct 10 2008, 09:35) *
На ПК использовать компонент Билдера- UDP клиент, который и будет "дружить" с вашим железом.

Не стоит поминать всякие "Билдеры" и "компоненты", ибо стандартный интерфейс сокетов самодостаточен, не зависит от "билдеров" и не нуждается в мутных никчемных обертках-"компонентах".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Aprox
сообщение Oct 10 2008, 14:11
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(zltigo @ Oct 10 2008, 12:21) *
Не стоит поминать всякие "Билдеры" и "компоненты", ибо стандартный интерфейс сокетов самодостаточен, не зависит от "билдеров" и не нуждается в мутных никчемных обертках-"компонентах".
Они не "мутные" и очень "кчемные". Потому, что экономят кучу времени новичку, производя все операции с сокетами автоматически, в совершенно прозрачном для юзера режиме.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 10 2008, 15:35
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Aprox @ Oct 10 2008, 16:11) *
Потому, что экономят кучу времени новичку...

После чего новичек в лучшем случае остается новичком, а скорее всего становится ламером, который чего-то типа "сделал" хотя и не понял что. Отчего возввышается в своих глазах, но в случае чего сразу начинает валить все на глюки Windows, компиляторов и любимым занятием становится разговоры о "глюках" и поиск "безглючных компонентов".
Дело в том, что именно интерфейс BSD Socket один из немногих sad.gif реально продуманных, ПРОСТЫХ и универсальных интерфейсов.
Надстройками его можно только изуродовать sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Aprox
сообщение Oct 11 2008, 07:00
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(zltigo @ Oct 10 2008, 19:35) *
После чего новичек в лучшем случае остается новичком, а скорее всего становится ламером, который чего-то типа "сделал" хотя и не понял что. Отчего возввышается в своих глазах, но в случае чего сразу начинает валить все на глюки Windows, компиляторов и любимым занятием становится разговоры о "глюках" и поиск "безглючных компонентов".
И тем не менее, факт остается фактом- Indy компоненты в Delphi-7 (они же в билдере) у меня работают четко и предсказуемо. Проблемы есть, - они в быстродействии не знаю уж чего, то ли в виндах, то ли в компонентах. Так например, программы с компонентами UDP-сервер или UDP-клиент не могут на моем лично ПК принимать потоки данных более, чем 54 Mbps. Происходит потеря пакетов, если пытаешься грузить быстрее. Думаю, дело в задержках на графику виндов. Я это выяснил с помощью снифера WireSharck, который точно также пропускает пакеты, если ему не отключить графическую прорисовку в реальном времени. Иными словами, дело не в компонентах и не в сокетах, а в GUI виндов.
Цитата(zltigo @ Oct 10 2008, 19:35) *
Дело в том, что именно интерфейс BSD Socket один из немногих sad.gif реально продуманных, ПРОСТЫХ и универсальных интерфейсов. Надстройками его можно только изуродовать sad.gif.
На счет простоты не соглашусь. Куча вызовов API типа accept, listen...- все это требует тщательнейшего осмысления, а запутаться, когда что вызывать и нужно ли вообще - ничего не стоит. Свежему человеку, который экономит свое время - не советую. Я уж не поминаю GUI виндов, который мгновенно сожрет все преимущества, которые были отжаты у сокетов.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Oct 11 2008, 08:09
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(Aprox @ Oct 11 2008, 11:00) *
Проблемы есть, - они в быстродействии не знаю уж чего, то ли в виндах, то ли в компонентах. Так например, программы с компонентами UDP-сервер или UDP-клиент не могут на моем лично ПК принимать потоки данных более, чем 54 Mbps. Происходит потеря пакетов, если пытаешься грузить быстрее. Думаю, дело в задержках на графику виндов.
Вот только не стоит на зеркало на винду пенять... laughing.gif

По UDP через стандартный сокет Winsock2 и при подключении точка-точка через 100BASE-TX можно передавать поток RTP со скоростью ~100 Mbps. При этом производительности Pentium-4@3.4GHz хватает на декодирование MJPEG и отрисовку графики с помощью DirectX в реал-тайме. По TCP пробовал передавать через HTTP-сервер JPEG-картинки с отображением их в окне IE. Для четырех одновременно открытых сокетов скорость получалась ~94 Mbps, но думаю, это не предел.. С потерей пакетов не сталкивался ни разу:
[attachment=25680:attachment]
wink.gif

Сообщение отредактировал blackfin - Oct 11 2008, 08:13
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:26
Рейтинг@Mail.ru


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