Приветствую!
Никогда на практике не сталкивался с передачей данных по сети Ethernet. И вот...
Задача довольно простая. Имеется устройство (нашей разработки), которое с помощью
ПЛИС снимает данные со 128 датчиков. Затем эти данные нужно передать в компьютер
для последующей обработки.
Имеется два основных требования, которые ставят меня в тупик:
1. Скорость поступающих данных 100+ мбайт/сек. (не мбит!).
2. Расстояние от устройства до компьютера 100-300 метров.
3. Соединение типа точка-точка.
Исходя из этих требований я подумал, что на такое расстояние при такой скорости
входных данных нужно использовать канал передачи Ethernet. Причем, с оптическим
кабелем.
Далее. Примерно прикинул, что канала на 1 Гигабит должно хватить. Данные передавать
по протоколу UDP (я прочитал, что он обеспечивает максимальную скорость передачи).
В нашем устройстве не хотелось бы использовать какую-то серьезную аппаратную часть
(типа PC-материнки). Было бы желательно обойтись просто чем-то вроде RTL80xx или
подобным, с минимальной дополнительной обвязкой. Может быть поставить простой
микроконтроллер для конфигурирования всего этого хозяйства.
На компьютерной стороне у заказчика стоит PC с Виндой. Мне нужно будет написать
простую DLL-ку, которая примет поток данных и положит их куда прикажут (в файл на диск,
запихнет в Memory Mapped File и т.п.).
Исходя из вышеизложенного имеются следующие вопросы:
1. На какую аппаратную базу в устройстве следует закладываться? Видимо примененная
микросхема продиктует требуемый протокол передачи? Наверное устройства вроде W5300
фирмы WIZnet не подойдут по скорости, а другие не имеют аппаратной реализации TCP, UDP?
2. Как под Виндой получать переданные данные? Понятно, что TCP, UDP можно получать
с помощью Winsock, а если протокол более низкого уровня, тогда чем? Тем же Winsock-ком?
Спасибо!