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

 
 
> Как быстро передавать данные через Ethernet, Поток данных порядка 100+ мбайт/сек
jur
сообщение Oct 28 2015, 12:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



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

Никогда на практике не сталкивался с передачей данных по сети 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-ком?

Спасибо!


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jur
сообщение Nov 1 2015, 13:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Однако... Все не так радужно, как мне мечталось... Похоже, что эта AX88180 - единственная на Гигабитную скорость с таким удобным интерфейсом. Черт! Наверное придется использовать альтеровскую мегафункцию (или мегафункции).

Варианты:

1. Установить внутри ПЛИС готовую мегафункцию Ethernet MAC. Настораживает величина стоимости такой мегафункции. Подскажите пожалуйста, сколько эта радость стоит?

2. Использовать Cyclone V со встроенной PCIe внутри. Дополнительно установить внешнюю микросхему Ethernet MAC. Таких чипов достаточно много, есть и двухканальные (что мне как раз и нужно). Что плохо: для того, чтобы выкопать ямку для цветочка приходится вместо совочка использовать шагающий экскаватор... (Это касаемо интерфейса ПЛИС<->Ethernet чип.)

В общем, лишний раз подтверждается, что свой хлеб инженеры едят далеко не зря...


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 1 2015, 14:12
Сообщение #3


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

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



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

Цитата(jur @ Nov 1 2015, 15:35) *
1. Установить внутри ПЛИС готовую мегафункцию Ethernet MAC. Настораживает величина стоимости такой мегафункции. Подскажите пожалуйста, сколько эта радость стоит?
2. Использовать Cyclone V со встроенной PCIe внутри. Дополнительно установить внешнюю микросхему Ethernet MAC. Таких чипов достаточно много, есть и двухканальные (что мне как раз и нужно). Что плохо: для того, чтобы выкопать ямку для цветочка приходится вместо совочка использовать шагающий экскаватор... (Это касаемо интерфейса ПЛИС<->Ethernet чип.)

Я понимаю что "нормальные герои всегда идут в обход" но ЗАЧЕМ все пытаться усложнить?!. Так как для PCe нужны такие-же MGT как и для подключения к SFP то надо сразу все в FPGA и делать. - Хотите сэкономить на покупке мегафункции? Тогда надо чуть больше заплатить инженеру чтобы он не только хлебом питался sm.gif Например можно взять MAC корку и на opencores и допилить для своих нужд.

Но вообще мне кажется тут для начала нужен комплексный анализ требований ко ВСЕЙ системе и вариантов ее построения.
Поскольку вариантов построения может быть масса включая и немного экзотические - например использование что то типа TLK1221
С одной стороны простой параллельный интерфейс - а с другой MGT как раз в SFP. И к тому же на халяву сэмплы шлют biggrin.gif
Ну а пакеты инженер сформирует с помощью FSM за банку варенья и ящик печенья rolleyes.gif

Успехов! Rob.
Go to the top of the page
 
+Quote Post
jur
сообщение Nov 1 2015, 15:20
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704




Цитата(RobFPGA @ Nov 1 2015, 16:12) *
Я понимаю что "нормальные герои всегда идут в обход" но ЗАЧЕМ все пытаться усложнить?!. Так как для PCe нужны такие-же MGT как и для подключения к SFP то надо сразу все в FPGA и делать. - Хотите сэкономить на покупке мегафункции?

Так я как раз и пытаюсь упростить работу! :-) Т.е. не делать MAC самому, а поставить готовую микросхему за пару десятков у.е. Что касается мегафункции, то если за мегафункцию Ethernet MAC нужно выложить 30 000$, а блок PCe уже стоит внутри ПЛИС бесплатно, то выбор очевиден...

Цитата(RobFPGA @ Nov 1 2015, 16:12) *
Но вообще мне кажется тут для начала нужен комплексный анализ требований ко ВСЕЙ системе и вариантов ее построения.

Совершенно справедливо. Поэтому в самом первом посте я детально обрисовал требования к системе, и в последующих постах их уточнил. Т.е. система крайне проста: есть устройство, генерирующее поток данных порядка 100 Мбайт в секунду. После съема данных со всех 128 датчиков (это занимает примерно 2 секунды) допустима небольшая пауза (порядка 250-500 мсек). Моя задача состоит в том, чтобы максимально просто организовать передачу этих данных в компьютер по оптоволоконному кабелю (или двум кабелям) с помощью Ethernet. (Ничем иным это, видимо, не сделаешь.) Естественно, что мне совсем не хочется городить в устройстве что-то большое, сложное и дорогое.

Цитата(RobFPGA @ Nov 1 2015, 16:12) *
Поскольку вариантов построения может быть масса включая и немного экзотические - например использование что то типа TLK1221
С одной стороны простой параллельный интерфейс - а с другой MGT как раз в SFP. И к тому же на халяву сэмплы шлют.

Интересная мысль, спасибо! Только я не понял, почему там 10 бит на слово данных? Наисано, что "IEEE 802.3 Gigabit Ethernet Compliant", а что это означает - неясно... Надо будет повнимательнее даташит почитать...

Цитата(RobFPGA @ Nov 1 2015, 16:12) *
Ну а пакеты инженер сформирует с помощью FSM за банку варенья и ящик печенья

Так я и должен буду формировать :-)

Спасибо за помощь!

P.S. На входе эта микросхема ожидает 8b/10b encoded data, т.е. это, типа, выходной "кусок" Ethernet MAC? Интересно... Может входную часть этого MAC'а будет несложно реализовать?...


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 1 2015, 15:49
Сообщение #5


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

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



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

Цитата(jur @ Nov 1 2015, 17:20) *
Интересная мысль, спасибо! Только я не понял, почему там 10 бит на слово данных? Наисано, что "IEEE 802.3 Gigabit Ethernet Compliant", а что это означает - неясно... Надо будет повнимательнее даташит почитать...

P.S. На входе эта микросхема ожидает 8b/10b encoded data, т.е. это, типа, выходной "кусок" Ethernet MAC? Интересно... Может входную часть этого MAC'а будет несложно реализовать?...


Нет это просто внешний MGT - MAC и PCS\PMA надо будет самому делать. Опять же - всего пара FSM sm.gif.
Но это в любом случае будет проще чем рулит внешним Ethernet PCIe чипом через встроенный PCIe root-complex wacko.gif

Успехов! Rob.


Go to the top of the page
 
+Quote Post
jur
сообщение Nov 1 2015, 16:16
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704




Цитата(RobFPGA @ Nov 1 2015, 17:49) *
Нет это просто внешний MGT - MAC и PCS\PMA надо будет самому делать. Опять же - всего пара FSM :).
Но это в любом случае будет проще чем рулит внешним Ethernet PCIe чипом через встроенный PCIe root-complex

Здорово! Пожалуйста, поподробнее! Я ведь только что занялся этими вопросами, все больше с USB 2.0 работал, опыта - ноль. Желания понять - хоть отбавляй! :-)

Я уже понял, что такое Ethernet-фрейм. Несложная штука в общем-то. Что в нем понимается под MAC и PCS\PMA? Я думаю, что без проблем смогу сформировать последовательность байт, составляющих этот самый Ethernet-фрейм. Это и получится канал передачи? Мне бы по-проще все это организовать. Не нужно вообще ничего сложного, просто передавать фреймы вовне и все.



--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 1 2015, 16:44
Сообщение #7


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

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



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

Цитата(jur @ Nov 1 2015, 18:16) *
Здорово! Пожалуйста, поподробнее! Я ведь только что занялся этими вопросами, все больше с USB 2.0 работал, опыта - ноль. Желания понять - хоть отбавляй! :-)

Я уже понял, что такое Ethernet-фрейм. Несложная штука в общем-то. Что в нем понимается под MAC и PCS\PMA? Я думаю, что без проблем смогу сформировать последовательность байт, составляющих этот самый Ethernet-фрейм. Это и получится канал передачи? Мне бы по-проще все это организовать. Не нужно вообще ничего сложного, просто передавать фреймы вовне и все.

Похвальное стремление!

Почитайте про уровни сетевого стека для начала хот-бы в Wiki. Если в двух словах : MAC формирует фрейм Ethernet на выходе имеет стандартный media independed interface *MII (MII, GMII, RGMII SGMII ) -> PCS кодирует фрейм в соответствии с требованиями физического канала PMA осуществляет синхронизацию/доступ к физ. каналу.
Посмотрите что и как делаю другие http://opencores.org/projects тут в принципе можно найти готовые решения.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
jur
сообщение Nov 2 2015, 14:23
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704




Цитата(RobFPGA @ Nov 1 2015, 18:44) *
Посмотрите что и как делаю другие http://opencores.org/projects тут в принципе можно найти готовые решения.

Большое спасибо за помощь! С теорией я уже ознакомился (только пока никак не запомню значение многочисленных сокращений: MGT, MAC, PCS, PMA и т.д.), теперь поизучаю opencores. Надеюсь смогу разобраться.

Спасибо!



--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Nov 2 2015, 22:11
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Извините, у меня немного отвлеченный вопрос: А зачем тут Езернет?
Какое из достоинств Езернета используется в данной задаче "передать поток 100 МБ/с на 300 м в системе точка-точка"?
Если получается стандартными средствами-то тогда понятно зачем. А если все равно что-то уникальное городить нужно- то, может, и не Езернет применить?
Go to the top of the page
 
+Quote Post
prig
сообщение Nov 3 2015, 14:55
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 869
Регистрация: 30-01-08
Из: СПб
Пользователь №: 34 595



Цитата(Ruslan1 @ Nov 3 2015, 01:11) *
... А если все равно что-то уникальное городить нужно- то, может, и не Езернет применить?


И смысл? Нагородить своего можно, но получится дороже и сложнее в реализации и эксплуатации.
А другого готового конкурентного решения(или набора решений) для такой задачи просто нет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jur   Как быстро передавать данные через Ethernet   Oct 28 2015, 12:21
- - zltigo   QUOTE (jur @ Oct 28 2015, 15:21) Никогда ...   Oct 28 2015, 12:34
|- - jur   Цитата(zltigo @ Oct 28 2015, 14:34) Тогда...   Oct 28 2015, 13:23
|- - zltigo   QUOTE (jur @ Oct 28 2015, 16:23) Хм... Не...   Oct 28 2015, 13:30
|- - jur   Цитата(zltigo @ Oct 28 2015, 15:30) Для н...   Oct 28 2015, 13:56
|- - zltigo   QUOTE (jur @ Oct 28 2015, 16:56) PHY каки...   Oct 28 2015, 14:08
|- - jur   Цитата(zltigo @ Oct 28 2015, 16:08) Не по...   Oct 28 2015, 14:13
|- - Lmx2315   ..1 Гигабит Ethernet 100 мбайт в секунду не даст -...   Oct 28 2015, 14:24
|- - blackfin   Цитата(Lmx2315 @ Oct 28 2015, 17:24) ..1 ...   Oct 28 2015, 14:39
||- - Lmx2315   Цитата(blackfin @ Oct 28 2015, 18:39) Да ...   Oct 28 2015, 15:10
||- - blackfin   Цитата(Lmx2315 @ Oct 28 2015, 18:10) ..мо...   Oct 28 2015, 15:23
||- - Aner   QUOTE (blackfin @ Oct 28 2015, 18:23) А т...   Oct 28 2015, 15:52
||- - blackfin   Цитата(Aner @ Oct 28 2015, 19:52) ... еще...   Oct 28 2015, 15:56
||- - zltigo   QUOTE (Aner @ Oct 28 2015, 18:52) ... еще...   Oct 28 2015, 16:21
|- - zltigo   QUOTE (Lmx2315 @ Oct 28 2015, 17:24) ..1 ...   Oct 28 2015, 14:50
- - krux   используйте разбиение по 64 датчика, а не по 128, ...   Oct 28 2015, 17:20
|- - blackfin   Цитата(krux @ Oct 28 2015, 21:20) использ...   Oct 28 2015, 18:10
|- - dxp   QUOTE (blackfin @ Oct 29 2015, 00:10) При...   Oct 29 2015, 06:57
|- - blackfin   Цитата(dxp @ Oct 29 2015, 10:57) Экая ско...   Oct 29 2015, 07:03
|- - zltigo   QUOTE (dxp @ Oct 29 2015, 09:57) Если у Т...   Oct 29 2015, 07:40
- - Alex11   NIOS вполне может справиться с таким потоком, но к...   Oct 29 2015, 01:17
|- - zltigo   QUOTE (Alex11 @ Oct 29 2015, 04:17) Если,...   Oct 29 2015, 05:14
|- - blackfin   Цитата(Alex11 @ Oct 29 2015, 05:17) Дело ...   Oct 29 2015, 06:08
- - RobFPGA   Приветствую! У меня Win7 стек нормально пере...   Oct 29 2015, 08:45
|- - zltigo   QUOTE (RobFPGA @ Oct 29 2015, 11:45) Для ...   Oct 29 2015, 09:09
|- - RobFPGA   Приветствую! Цитата(zltigo @ Oct 29 2015...   Oct 29 2015, 09:29
|- - zltigo   QUOTE (RobFPGA @ Oct 29 2015, 12:29) В ра...   Oct 29 2015, 09:59
- - prig   Цитата(jur @ Oct 28 2015, 15:21) ... 1. Н...   Oct 29 2015, 10:02
- - dxp   QUOTE (zltigo @ Oct 29 2015, 13:40) Так в...   Oct 30 2015, 06:46
- - jur   Большое спасибо, друзья, вы мне здорово помогаете...   Oct 31 2015, 11:30
- - RobFPGA   Приветствую! Какой Cyclone V у Вас ? Если в...   Oct 31 2015, 12:38
|- - jur   Цитата(RobFPGA @ Oct 31 2015, 14:38) Како...   Oct 31 2015, 16:43
|- - jur   Цитата(Ruslan1 @ Nov 3 2015, 00:11) Извин...   Nov 3 2015, 11:38
- - jur   Немножко отошел от аппаратной части и занялся прог...   Nov 5 2015, 17:05
|- - blackfin   Цитата(jur @ Nov 5 2015, 20:05) Подключил...   Nov 5 2015, 17:15
|- - jur   Цитата(blackfin @ Nov 5 2015, 19:15) На м...   Nov 5 2015, 17:26
|- - blackfin   Цитата(jur @ Nov 5 2015, 20:26) Просто по...   Nov 5 2015, 17:44
||- - jur   Цитата(blackfin @ Nov 5 2015, 19:40) Вооб...   Nov 5 2015, 17:45
||- - blackfin   Цитата(jur @ Nov 5 2015, 20:45) А как воо...   Nov 5 2015, 18:02
||- - jur   Цитата(blackfin @ Nov 5 2015, 20:02) Може...   Nov 5 2015, 18:18
|- - RobFPGA   Приветствую! Цитата(jur @ Nov 5 2015, 19...   Nov 5 2015, 19:21
|- - doom13   Цитата(jur @ Nov 5 2015, 20:26) А как нас...   Nov 5 2015, 20:13
- - dxp   QUOTE (jur @ Nov 6 2015, 00:18) Да читал ...   Nov 6 2015, 06:25
- - jur   Продолжаю продираться через препоны к назначенной ...   Nov 9 2015, 16:06
|- - a123-flex   Цитата(jur @ Nov 9 2015, 19:06) Продолжаю...   Sep 20 2016, 20:14
- - krux   гуглите функцию setsockopt и опции сокетов, наприм...   Nov 9 2015, 16:25
- - jur   Цитата(krux @ Nov 9 2015, 18:25) гуглите ...   Nov 10 2015, 08:33


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

 


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


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