|
|
  |
Как быстро передавать данные через Ethernet, Поток данных порядка 100+ мбайт/сек |
|
|
|
Oct 31 2015, 12:38
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 31 2015, 16:43
|
Местный
  
Группа: Свой
Сообщений: 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 - в массы!
|
|
|
|
|
Nov 1 2015, 14:12
|
Профессионал
    
Группа: Свой
Сообщений: 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 и делать. - Хотите сэкономить на покупке мегафункции? Тогда надо чуть больше заплатить инженеру чтобы он не только хлебом питался  Например можно взять MAC корку и на opencores и допилить для своих нужд. Но вообще мне кажется тут для начала нужен комплексный анализ требований ко ВСЕЙ системе и вариантов ее построения. Поскольку вариантов построения может быть масса включая и немного экзотические - например использование что то типа TLK1221 С одной стороны простой параллельный интерфейс - а с другой MGT как раз в SFP. И к тому же на халяву сэмплы шлют Ну а пакеты инженер сформирует с помощью FSM за банку варенья и ящик печенья Успехов! Rob.
|
|
|
|
|
Nov 1 2015, 15:20
|
Местный
  
Группа: Свой
Сообщений: 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 - в массы!
|
|
|
|
|
Nov 1 2015, 15:49
|
Профессионал
    
Группа: Свой
Сообщений: 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  . Но это в любом случае будет проще чем рулит внешним Ethernet PCIe чипом через встроенный PCIe root-complex Успехов! Rob.
|
|
|
|
|
Nov 1 2015, 16:16
|
Местный
  
Группа: Свой
Сообщений: 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 - в массы!
|
|
|
|
|
Nov 1 2015, 16:44
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Nov 2 2015, 14:23
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(RobFPGA @ Nov 1 2015, 18:44)  Посмотрите что и как делаю другие http://opencores.org/projects тут в принципе можно найти готовые решения. Большое спасибо за помощь! С теорией я уже ознакомился (только пока никак не запомню значение многочисленных сокращений: MGT, MAC, PCS, PMA и т.д.), теперь поизучаю opencores. Надеюсь смогу разобраться. Спасибо!
--------------------
MPEG-4 - в массы!
|
|
|
|
|
Nov 3 2015, 11:38
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(Ruslan1 @ Nov 3 2015, 00:11)  Извините, у меня немного отвлеченный вопрос: А зачем тут Езернет? Какое из достоинств Езернета используется в данной задаче "передать поток 100 МБ/с на 300 м в системе точка-точка"? Если получается стандартными средствами - то тогда понятно зачем. А если все равно что-то уникальное городить нужно - то, может, и не Езернет применить? Исходя из скорости потока и расстояния передачи на PC с Виндой, я подумал, что Ethernet - это единственно возможный вариант. Я просто не знаю, какие еще неэкзотические решения тут применимы...
--------------------
MPEG-4 - в массы!
|
|
|
|
|
Nov 3 2015, 14:55
|
Знающий
   
Группа: Свой
Сообщений: 869
Регистрация: 30-01-08
Из: СПб
Пользователь №: 34 595

|
Цитата(Ruslan1 @ Nov 3 2015, 01:11)  ... А если все равно что-то уникальное городить нужно- то, может, и не Езернет применить? И смысл? Нагородить своего можно, но получится дороже и сложнее в реализации и эксплуатации. А другого готового конкурентного решения(или набора решений) для такой задачи просто нет.
|
|
|
|
|
Nov 5 2015, 17:05
|
Местный
  
Группа: Свой
Сообщений: 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 - в массы!
|
|
|
|
|
Nov 5 2015, 17:26
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(blackfin @ Nov 5 2015, 19:15)  На мой взгляд, в вашем случае лучше соединить комьютеры напрямую через "кроссовер" и без всяких коммутаторов. Да, я именно об этом и подумал. В общем-то мне именно это и нужно. Просто под рукой кросс-кабеля не нашлось :-) Но я его или найду, или сделаю сам. А как насчет ARP-пакетов? Они ведь останутся? Ведь, насколько я понял, клиенту MAC-адрес вынь да положь? Спускаться на уровень Ethernet-фреймов или как-то иначе?
--------------------
MPEG-4 - в массы!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|