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

 
 
> Простая обработка UDP на Xilinx (6,7), Как сделать просто и эффективно.
count_enable
сообщение May 19 2015, 06:30
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Пока вопрос сугубо теоретический. Имеется GbE и ПЛИС 6 семейства. По UDP приходят пакеты, которые бывают 2х типов: командные и пакеты с данными. Один пакет содержит до 256 измерений, каждое измерение может иметь от 32 до 256 бит данных, но все поля одинакового размера который описан флагом в заголовке пакета. Соответсвенно надо пакеты с данными складывать в заданную область памяти, а пакеты с коммандами отдавать обработчику. Сейчас работает на Microblaze + lwIP, не жалуюсь. Но насколько оптимально данное решение? Что сделать если надо будет принимать 2 потока? С реализацией UDP/IP в железе без процессора никогда дела не имел, как и настройкой GbE "врукопашную". Сама обработка очень проста: смотрим в заголовок (4 первых байта payload, не UDP заголовок ) и ищем определённые битовые флаги. После чего записываем остальное в память через ПДП.
Так же неплохо иметь плюшки типа DHCP, jumbo frames и программной смены порта. С lwIP жизнь легка и беззаботна, но какую пропускную способность будет иметь такая система с Microblaze на 125 МГц? Верхнее ограничение это 2 интерфейса GbE, больше не надо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RobFPGA
сообщение May 19 2015, 11:17
Сообщение #2


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Сначала надо определится с критерием оптимальности! Если soft человеку писать легче чем hard ну и требования системы не вылазят за "физические" ограничения текущей структуры - ну пусть так и работает. Сколько у Вас поток таких данных ? Неужели по 100MByte/s с каждого GbE ?

Сложность написания парсера входных/генератора выходных пакетов в железе зависит от требований полноты поддержки сетевых стандартов - и в простейшем случае при заданных ограничениях реализуется за неделю/другую. Врезается такой парсер на вход/выход GbE - фильтрует пакеты по заданным параметрам (Eth addr, IP addr, Port, protocol, etc...) и делает с ними то что нужно (пересылка по заданным буферам, потоковая обработка, ...). Параметры для фильтрации/обработки задаются со стороны софта - хотя может быть и более экзотический вариант - как например ловля входных пакетов специальной структуры.
Причем тянуть все протоколы в железо не нужно - достаточно только реализовать критическую по скорости обработку данных, а все управляющие протоколы оставить в soft реализации.

У меня по такому принципу несколько систем работают как на 1Gb так и на 10Gb

Успехов! Rob.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:27
Рейтинг@Mail.ru


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