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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Как быстро передавать данные через Ethernet, Поток данных порядка 100+ мбайт/сек
RobFPGA
сообщение Oct 31 2015, 12:38
Сообщение #31


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

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



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

Какой Cyclone V у Вас ?
Если в нем есть MGT то можно сразу делать MAC и PHY внутри и цеплять все сразу напрямую к SFP
Если MGT нет - то МАС делаете в FPGA а снаружи нужен тогда просто внешний PHY типа Marvell 88E1111 или аналог
Cтавить AX88180. я смысла не вижу к нему все равно нужен тот же PHY

В любом варианте генерировать UDP внутри FPGA несложно - простая FSM. Так же как и парсить приходящие пакеты на предмет конфигурации/управления или минимальной поддержки сети (ARP, ICMP) Для этого даже внешний MCU не нужен.

Успехов! Rob.

P.S. вот тут как раз обсуждали PHY
Go to the top of the page
 
+Quote Post
jur
сообщение Oct 31 2015, 16:43
Сообщение #32


Местный
***

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




Цитата(RobFPGA @ Oct 31 2015, 14:38) *
Какой Cyclone V у Вас ?

Взглянул на живую плату - сейчас 4-й, EP4CE, ошибся я, думал уже 5-й. Но, полагаю, без проблем поставим и 5-й. Посмотрел по документации - нужно GX. Еще Мегафункцию покупать. С учетом используемых целлов (более 3 тысяч) вполне может получиться, что отдельная микросхема MAC-контроллера с PHY дешевле выйдет.

Цитата(RobFPGA @ Oct 31 2015, 14:38) *
Cтавить AX88180. я смысла не вижу к нему все равно нужен тот же PHY

Тут меня привлекло то, что ее интерфейс больно удобен: просто еще одна память с параллельным 32-битовым интерфейсом. Все знакомо, прозрачно и не нужно заморачиваться с каким-нибудь PCIe.

Цитата(RobFPGA @ Oct 31 2015, 14:38) *
В любом варианте генерировать UDP внутри FPGA несложно - простая FSM. Так же как и парсить приходящие пакеты на предмет конфигурации/управления или минимальной поддержки сети (ARP, ICMP) Для этого даже внешний MCU не нужен.

Мне тоже показалось, что такой вариант для начинающего - самое то.

Цитата(RobFPGA @ Oct 31 2015, 14:38) *
Успехов! Rob.

Большое спасибо!



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


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #34


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

Группа: Свой
Сообщений: 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
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #36


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

Группа: Свой
Сообщений: 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
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #38


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

Группа: Свой
Сообщений: 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
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #40


Гуру
******

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



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


Местный
***

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




Цитата(Ruslan1 @ Nov 3 2015, 00:11) *
Извините, у меня немного отвлеченный вопрос: А зачем тут Езернет?
Какое из достоинств Езернета используется в данной задаче "передать поток 100 МБ/с на 300 м в системе точка-точка"?
Если получается стандартными средствами - то тогда понятно зачем. А если все равно что-то уникальное городить нужно - то, может, и не Езернет применить?

Исходя из скорости потока и расстояния передачи на PC с Виндой, я подумал, что Ethernet - это единственно возможный вариант. Я просто не знаю, какие еще неэкзотические решения тут применимы...


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


Знающий
****

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



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


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


Местный
***

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




Немножко отошел от аппаратной части и занялся программной. Для начала установил Wireshark. Затем установил в компьютер отдельную сетевую плату. Это для того, чтобы промоделировать реальную систему. Скорость на данном этапе мне не важна, поэтому удовольствовался 100 MB. Подключил мой компьютер к другому компьютеру через коммутатор. Оба имеют свои IP, видят друг друга, все OK.

Потом написал простой UDP Echo Server, а к нему соответствующий клиент. Пример взял отсюда: Самоучитель игры на WINSOCK. Запустил. Все красиво, все работает. Решил посмотреть, что там внутри творится. А там - полный кавардак! Постоянно валят какие-то TCP передачи, ARP пакеты и много всякого другого.

Начал размышлять. Понятно, Винда желает быть ко всякой бочке затычкой, все ей неймется, всюду лезет. В общем, нормальная сетевая жизнь. Тогда я подумал: отсоединю-ка я проверочный сегмент от основной сети. Прописал фиксированные IP (как и будет в законченной системе), но не понял, что делать с Default Gateway. Оставил это поле пустым. Для начала посмотрел Wireshark'ом. Вроде все тихо. Запускаю сервер, запускаю клиент - нет передачи! Точнее есть, но с паузой в 7 секунд (видать некий таймаут). Получился какой-то затык... Wireshark показывает какие-то левые запросы (типа: Who is 192.168.1.51 (а это сервер, видать клиент не знает его MAC-адреса) и еще что-то).

Посему вопросы:

1. Как же все-таки правильно сконфигурировать сегмент сети, чтобы он нормально работал?
2. Как сделать так, чтобы каналу передачи было ясно, куда и что посылать? Наверное нужно как-то указать физический MAC-адрес, чтобы почтальон не сомневался?
3. Может быть оставить все как есть? Но ведь тогда сеть будет отвлекаться на что-то лишнее, что "отгрызет" у меня немножко дорогого траффика...

Разъясните, пожалуйста, начинающему, как мне правильно поступить?

Спасибо!

P.S. Гугл обычно рассматривает стандартную Сеть. TCP послал туда, IP по дороге разобрался/собрался, компьютер назначения получил вожделенную информацию. А вот чтобы детально рассмотреть вопрос - этого не видать...



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


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(jur @ Nov 5 2015, 20:05) *
Подключил мой компьютер к другому компьютеру через коммутатор.

На мой взгляд, в вашем случае лучше соединить компьютеры напрямую через "кроссовер" и без всяких коммутаторов.
Go to the top of the page
 
+Quote Post
jur
сообщение Nov 5 2015, 17:26
Сообщение #45


Местный
***

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




Цитата(blackfin @ Nov 5 2015, 19:15) *
На мой взгляд, в вашем случае лучше соединить комьютеры напрямую через "кроссовер" и без всяких коммутаторов.

Да, я именно об этом и подумал. В общем-то мне именно это и нужно. Просто под рукой кросс-кабеля не нашлось :-) Но я его или найду, или сделаю сам.

А как насчет ARP-пакетов? Они ведь останутся? Ведь, насколько я понял, клиенту MAC-адрес вынь да положь? Спускаться на уровень Ethernet-фреймов или как-то иначе?



--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post

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

 


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


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