:-) 0 19 ноября, 2009 Опубликовано 19 ноября, 2009 · Жалоба Хотелось бы продолжить данную тему. Есть желание реализовать гарантированную доставку данных на базе fast Ethernet от внешнего устройства на базе FPGA на компьютер с максимально возможной скоростью. В распоряжении имеется демо-плата (Spartan 3e starter kit). На ней соответственно имеется: FPGA Spartan 3e500, Ethernet phy LAN83C185, память DDR (32M x 16). После ознакомления с данной темой возник ряд вопросов: 1) Реализовывать протокол UDP + IP, по-видимому смысла нет. 2) Соответственно стоит использовать пакеты Ethernet. На этом месте возникает первый вопрос: какой тип пакета использовать (Ethernet II, IEEE 802.3 или IEEE 802.2)? В голове сейчас некоторая каша, поэтому сильно не пинайте за, возможно, глупые вопросы. 3) На каком уровне обеспечивать гарантию доставки данных? Т.е. Например, я решил передавать голые кадры Ethernet II. Тогда, на сколько я понимаю, потребуется придумать некоторый свой заголовок, который будет, например, нести информацию о номере посланного пакета. На компьютере программа-сервер будет принимать пакеты и при обнаружении пропуска будет запрашивать внешнее устройство повторно передать потерянный пакет. Т.е. гарантия доставки выполняется приложением, принимающим данные? Либо есть какие-либо встроенные в операционную систему средства (продолжение вопроса в п.4)? 4) Как на компьютере принимать голые пакеты (под Windows и под Linux)? Использовать библиотеку pcap (winpcap/libpcap)? Или достаточно встроенных в операционную систему средств? 5) Стандарт IEEE 802.2 описывает LLC. После беглого пролистывания стандарта решил, что LLC type 3 как раз то, что я бы хотел реализовать: гарантированная доставка данных без установления соединения. Вопрос вот в чём: есть ли какая-то поддержка данного механизма в операционных системах (windows, Linux)? Т.е. есть ли встроенные в операционную систему средства, которые облегчили бы создание соединения, гарантирующего доставку данных? 6) На сколько я понимаю, реализация в лоб схемы ARQ (automatic repeat request: отправили пакет, дождались подтверждения, отправили следующий, либо если не дождались - повторно отправили текущий) приведет к получению мизерной скорости передачи данных. Как с этим бороться? Отправлять непрерывно пакеты, храня их буфере до получения подтверждения? Есть ли примеры реализации, доступные для просмотра в интернете? Есть ли другие алгоритмы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
o_khavin 0 22 ноября, 2009 Опубликовано 22 ноября, 2009 · Жалоба Хотелось бы продолжить данную тему. Есть желание реализовать гарантированную доставку данных на базе fast Ethernet от внешнего устройства на базе FPGA на компьютер с максимально возможной скоростью. Для начала имеет смысл озвучить количественный эквивалент выражения "максимально возможная скорость". :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
:-) 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба Для начала имеет смысл озвучить количественный эквивалент выражения "максимально возможная скорость". :-) Не менее 80 мбит/с Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
o_khavin 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба Не менее 80 мбит/с А... так речь всё-же о пропускной способности. А то первый пост был м... неоднозначным. :) А чем так нравится ethtrnet? Или подразумевается большая (больше 3-х метров) удалённость девайса от компьютера? Я это к тому, что есть много микросхем USB интерфейса, где всё уже готово. Я сам достигал где-то 160-200 мбит/с с применением ez-usb от cypress-а. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
:-) 0 24 ноября, 2009 Опубликовано 24 ноября, 2009 · Жалоба Ethernet нравится тем, что, во-первых, имеются некоторые знания о нём, в отличие от USB, во-вторых, коллеги планируют его использовать. В-третьих, расстояние в перспективе, действительно, может составить более 3 м. И, в-четвертых, под Ethernet имеется указанная выше демо-плата. Уточню исходный вопрос. На данный момент планирую использовать голые Ethernet фреймы (формат кадра - Ethernet II). Главная сложность продумать реализацию алгоритма гарантированной доставки данных. Сам алгоритм описан в данном посте. При освобождении Eth Gigabit MAC, данные из ОЗУ заталкиваются в MAC, и в служебном массивчике метятся как переданные (но пока еще без подтверждения о получении), после получения такого подтверждения для конкретного пакета, место, занимаемое в ОЗУ этим пакетом, считается свободным. Ну и в таком духе дальше принимать/передавать данные. На сколько я понимаю, надо в дополнение продумать некоторый свой заголовок к каждому фрейму, чтобы обеспечить учёт переданных и подтвержденных данных. Может быть, где-то есть примеры реализации похожих механизмов передачи данных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 24 ноября, 2009 Опубликовано 24 ноября, 2009 · Жалоба Главная сложность продумать реализацию алгоритма гарантированной доставки данных.'Гарантированная доставка данных' - это TCP или нечто аналогичное по сложности. Можно взять соотвествующий RFC (по TCP) и выкинуть из него все ненужное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 27 ноября, 2009 Опубликовано 27 ноября, 2009 · Жалоба Уточню исходный вопрос. На данный момент планирую использовать голые Ethernet фреймы (формат кадра - Ethernet II). Главная сложность продумать реализацию алгоритма гарантированной доставки данных. Если используете BASE 100-TX "точка в точку", без свитчей, в пределах 100м, то заморачиваться на предмет гарантированной доставки данных не следует вообще. Что же касается RAW-пакетов, то возникнут приличные софтовые проблемы на стороне PC. В то время как для UDP существуют готовые и многократно проверенные компоненты в С-Builder и Delfi. Советую UDP пакеты, которые отличаются от RAW только размером хидера,- это для FPGA не проблема. Зато на стороне PC получите громадный выигрыш от стандартного решения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 11 октября, 2011 Опубликовано 11 октября, 2011 · Жалоба В данной ветке проскакивало упоминание о "Video Over IP Reference Design". Не могли бы добрые люди скинуть в закрома данный проект. Кит для него куплен. По опыту - тут получить проект быстрее, чем от Альтеры. -------------------------------------------- Проект найден. Вопрос снят. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться