Jump to content

    
Sign in to follow this  
Aleksei_Rostov

MAX 10 Development Kit + Triple Speed Ethernet

Recommended Posts

Здравствуйте.

Может кто подскажет варианты решения след задачи. С 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 ядра?

Share this post


Link to post
Share on other sites

Система будет выглядеть так:

передача - Tx Packet Data Memory -> SgDMA MM2ST -> TSE

приём - TSE -> SgDMA ST2MM -> Rx Packet Data Memory

Ищите по форуму, была тема для Cyclone III. Ещё возможно понадобится железный UDP offloader - на Altera Wiki есть пример реализации и тут где-то был.

 

 

Или там навороченная работа с регистрами TSE ядра?

Нет там никакой навороченной работы с регистрами, максимум вставка MAC адреса, удаление FCS, фильтрация (надо-не надо) и т.д. Основная задача ложится на DMA - бросает данные в/из памяти.

 

Share this post


Link to post
Share on other sites
Система будет выглядеть так:

передача - 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 нужен?

Edited by farbius

Share this post


Link to post
Share on other sites
зачем там SgDMA? Просто чтобы мемори маппед в стрим переделать? CDMA не подойдет именно Sg нужен?

Да, с обычным не работал, если умеет ST2MM/MM2ST то подойдёт.

Share this post


Link to post
Share on other sites
Ищите по форуму, была тема для Cyclone III. Ещё возможно понадобится железный UDP offloader - на Altera Wiki есть пример реализации и тут где-то был.

Нет там никакой навороченной работы с регистрами, максимум вставка MAC адреса, удаление FCS, фильтрация (надо-не надо) и т.д. Основная задача ложится на DMA - бросает данные в/из памяти.

 

Насколько помню для УДП контрольная сумма подсчитывается причем не только FCS по всему пакету но и на других уровнях (имею ввиду с UDP header и еще одна с IP header) их тоже Ниосом считать или tse автоматом рассчитывает все суммы? Такой софтовый UDP как посмотрел по форуму до 100 Мбит\с обеспечивает?

 

Share this post


Link to post
Share on other sites
Насколько помню для УДП контрольная сумма подсчитывается причем не только FCS по всему пакету но и на других уровнях (имею ввиду с UDP header и еще одна с IP header) их тоже Ниосом считать или tse автоматом рассчитывает все суммы? Такой софтовый UDP как посмотрел по форуму до 100 Мбит\с обеспечивает?

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

Share this post


Link to post
Share on other sites
TSE, как и любой MAC считает только FCS Ethernet пакета, может заменять MAC адрес в данных на адрес, который забит в регистрах контроллера. Для приёмника проверяет/удаляет FCS пакета, отбрасывает пакеты с битой FCS, есть возможность настроить фильтрацию MAC адресов. Контрольная сумма UDP не обязательна (по желанию) можно нулями забить. Не помню уже сколько можно выжать из софтового стека, для большого потока использовал железную реализацию UDP (передаёт поток 655.36 Mb/s, можно и выше).

 

спасибо за ответ. Еще есть вопрос: UDP Offload это просто примочка для дополнения пакета служебной информацией? doom13 может есть сишный мэйн для запуска всего этого добра? буду очень признателен

Share this post


Link to post
Share on other sites
спасибо за ответ. Еще есть вопрос: UDP Offload это просто примочка для дополнения пакета служебной информацией? doom13 может есть сишный мэйн для запуска всего этого добра? буду очень признателен

Да, добавляет к данным шапку IP/UDP.

Пример драйвера смотрите тут, с него начинал.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this