Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MAX 10 Development Kit + Triple Speed Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Alexey_Rostov
Здравствуйте.
Может кто подскажет варианты решения след задачи. С MAX 10 Development Kit послать UDP пакеты через ethernet.
Есть Simple Socket Server и для этой платы. Раньше на stratix II подобную задачу решил расковыряв Simple Socket Server пример, при этом остался на Micro Os.
Хотелось бы максимально упростить систему для UDP пакетов. При этом соединение плата -- ПК типа точка точка. Никаких ARp запросов ненужно.
Кто нибудь собирал систему с Nios + TSE + buffer для UDP пакетов + например ДМА? В системе просто осуществляется настройка PHY и далее работа с драйверами TSE?
Или там навороченная работа с регистрами TSE ядра?
doom13
Система будет выглядеть так:
передача - Tx Packet Data Memory -> SgDMA MM2ST -> TSE
приём - TSE -> SgDMA ST2MM -> Rx Packet Data Memory
Ищите по форуму, была тема для Cyclone III. Ещё возможно понадобится железный UDP offloader - на Altera Wiki есть пример реализации и тут где-то был.


Цитата(farbius @ Mar 26 2016, 22:07) *
Или там навороченная работа с регистрами TSE ядра?

Нет там никакой навороченной работы с регистрами, максимум вставка MAC адреса, удаление FCS, фильтрация (надо-не надо) и т.д. Основная задача ложится на DMA - бросает данные в/из памяти.
Alexey_Rostov
Цитата(doom13 @ Mar 26 2016, 22:53) *
Система будет выглядеть так:
передача - Tx Packet Data Memory -> SgDMA MM2ST -> TSE
приём - TSE -> SgDMA ST2MM -> Rx Packet Data Memory
Ищите по форуму, была тема для Cyclone III. Ещё возможно понадобится железный UDP offloader - на Altera Wiki есть пример реализации и тут где-то был.
Нет там никакой навороченной работы с регистрами, максимум вставка MAC адреса, удаление FCS, фильтрация (надо-не надо) и т.д. Основная задача ложится на DMA - бросает данные в/из памяти.


зачем там SgDMA? Просто чтобы мемори маппед в стрим переделать? CDMA не подойдет именно Sg нужен?
doom13
Цитата(farbius @ Mar 26 2016, 23:08) *
зачем там SgDMA? Просто чтобы мемори маппед в стрим переделать? CDMA не подойдет именно Sg нужен?

Да, с обычным не работал, если умеет ST2MM/MM2ST то подойдёт.
Alexey_Rostov
Цитата(doom13 @ Mar 26 2016, 22:53) *
Ищите по форуму, была тема для Cyclone III. Ещё возможно понадобится железный UDP offloader - на Altera Wiki есть пример реализации и тут где-то был.
Нет там никакой навороченной работы с регистрами, максимум вставка MAC адреса, удаление FCS, фильтрация (надо-не надо) и т.д. Основная задача ложится на DMA - бросает данные в/из памяти.


Насколько помню для УДП контрольная сумма подсчитывается причем не только FCS по всему пакету но и на других уровнях (имею ввиду с UDP header и еще одна с IP header) их тоже Ниосом считать или tse автоматом рассчитывает все суммы? Такой софтовый UDP как посмотрел по форуму до 100 Мбит\с обеспечивает?
doom13
Цитата(farbius @ Mar 26 2016, 23:42) *
Насколько помню для УДП контрольная сумма подсчитывается причем не только FCS по всему пакету но и на других уровнях (имею ввиду с UDP header и еще одна с IP header) их тоже Ниосом считать или tse автоматом рассчитывает все суммы? Такой софтовый UDP как посмотрел по форуму до 100 Мбит\с обеспечивает?

TSE, как и любой MAC считает только FCS Ethernet пакета, может заменять MAC адрес в данных на адрес, который забит в регистрах контроллера. Для приёмника проверяет/удаляет FCS пакета, отбрасывает пакеты с битой FCS, есть возможность настроить фильтрацию MAC адресов. Контрольная сумма UDP не обязательна (по желанию) можно нулями забить. Не помню уже сколько можно выжать из софтового стека, для большого потока использовал железную реализацию UDP (передаёт поток 655.36 Mb/s, можно и выше).
Alexey_Rostov
Цитата(doom13 @ Mar 26 2016, 23:57) *
TSE, как и любой MAC считает только FCS Ethernet пакета, может заменять MAC адрес в данных на адрес, который забит в регистрах контроллера. Для приёмника проверяет/удаляет FCS пакета, отбрасывает пакеты с битой FCS, есть возможность настроить фильтрацию MAC адресов. Контрольная сумма UDP не обязательна (по желанию) можно нулями забить. Не помню уже сколько можно выжать из софтового стека, для большого потока использовал железную реализацию UDP (передаёт поток 655.36 Mb/s, можно и выше).


спасибо за ответ. Еще есть вопрос: UDP Offload это просто примочка для дополнения пакета служебной информацией? doom13 может есть сишный мэйн для запуска всего этого добра? буду очень признателен
doom13
Цитата(farbius @ Mar 27 2016, 00:21) *
спасибо за ответ. Еще есть вопрос: UDP Offload это просто примочка для дополнения пакета служебной информацией? doom13 может есть сишный мэйн для запуска всего этого добра? буду очень признателен

Да, добавляет к данным шапку IP/UDP.
Пример драйвера смотрите тут, с него начинал.
Alexey_Rostov
Цитата(doom13 @ Mar 27 2016, 18:48) *
Да, добавляет к данным шапку IP/UDP.
Пример драйвера смотрите тут, с него начинал.


большое спасибо.
Alexey_Rostov
Товарищи подскажите пжл как быть с triple speed Ethernet ядром чтобы time limited обойти?
Stewart Little
Цитата(farbius @ Apr 4 2016, 09:45) *
Товарищи подскажите пжл как быть с triple speed Ethernet ядром чтобы time limited обойти?

Пишите в личку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.