Пока вопрос сугубо теоретический. Имеется GbE и ПЛИС 6 семейства. По UDP приходят пакеты, которые бывают 2х типов: командные и пакеты с данными. Один пакет содержит до 256 измерений, каждое измерение может иметь от 32 до 256 бит данных, но все поля одинакового размера который описан флагом в заголовке пакета. Соответсвенно надо пакеты с данными складывать в заданную область памяти, а пакеты с коммандами отдавать обработчику. Сейчас работает на Microblaze + lwIP, не жалуюсь. Но насколько оптимально данное решение? Что сделать если надо будет принимать 2 потока? С реализацией UDP/IP в железе без процессора никогда дела не имел, как и настройкой GbE "врукопашную". Сама обработка очень проста: смотрим в заголовок (4 первых байта payload, не UDP заголовок ) и ищем определённые битовые флаги. После чего записываем остальное в память через ПДП. Так же неплохо иметь плюшки типа DHCP, jumbo frames и программной смены порта. С lwIP жизнь легка и беззаботна, но какую пропускную способность будет иметь такая система с Microblaze на 125 МГц? Верхнее ограничение это 2 интерфейса GbE, больше не надо.
|