Jump to content

    
Sign in to follow this  
_pv

чем проще загнать в ПК поток данных 20МГц х 16бит?

Recommended Posts

плюс в обратную сторону надо неспешно дрыгать десятком ног.

 

CY7C68013, вроде самое оно, но когда пару лет назад приходилось сталкиваться с ним, возникали какие-то грабли с родными кипарисовыми драйверами (вероятно просто руки кривые)

 

FT2(2)32H + CPLD. по скорости 40МБ/с и на CY7C68013 впритык, а тут вроде еще меньше получится, зато с драйверами получше.

 

AT32UC3A / SAM3X(A) / какой-нибудь другой cortex-M c HSUSB.

через GPIO и DMA, наверное, сможет параллельный поток 20МГц захватить, но опять же свои драйвера для ПК писать не хотелось бы, хотя это может быть и не так страшно, не знаю.

 

еще езернет как сам интерфейс красивее, даже и fast ethernetом, наверное, можно было бы обойтись поставив небольшой буфер, всего данных за раз не сильно больше мегабайта прилетает а в среднем в 10МБ/с пожалуй влезет, но реализовывать сетевой стэк, пусть даже только до UDP в fpga тоже не радует, то есть быстро самому написать не получится хотя и интересно.

взять готорый lwip/uip с ниосом по скорости не знаю что получится.

 

как быть?

 

Share this post


Link to post
Share on other sites

Что-то Вы тут странное пишете. 20 МГц*16 бит = 320 Мбит/сек. Это близко к теоретическому пределу USB HS и реализуется с трудом, особенно под windows. Из разумного видится GigaEthernet.

Share this post


Link to post
Share on other sites
Что-то Вы тут странное пишете. 20 МГц*16 бит = 320 Мбит/сек. Это близко к теоретическому пределу USB HS и реализуется с трудом, особенно под windows. Из разумного видится GigaEthernet.

ну если вместо 20МГц вдруг окажется возможным только 15-17 не так уж страшно, хотя цифру в 45МБайт/с как реально выжатую из CY7C68013 где-то встречал.

то что GigEthernet разумнее не спорю, но сложность реализации по сравнению с готовым мостом в USB несколько огорчает. если поделитесь ссылками на реализацию чего-нибудь похожего через ethernet буду признателен.

nios + lwip?

Share this post


Link to post
Share on other sites
CY7C68013, вроде самое оно, но когда пару лет назад приходилось сталкиваться с ним, возникали какие-то грабли с родными кипарисовыми драйверами (вероятно просто руки кривые)

По-моему, самое оно. Сколько лет уже "лошадке", а заменить в общем-то и нечем.

Share this post


Link to post
Share on other sites
По-моему, самое оно. Сколько лет уже "лошадке", а заменить в общем-то и нечем.

А как же FX3?

 

то что GigEthernet разумнее не спорю, но сложность реализации по сравнению с готовым мостом в USB несколько огорчает. если поделитесь ссылками на реализацию чего-нибудь похожего через ethernet буду признателен.

nios + lwip?

BeMicro CV + vadimuzzz = самый простой способ загнать поток данных 40 МБайт/сек в ПК через GigEthernet.

 

Есть еще вариант BeMicro CV + BEUSB 3.0. Но он гораздо хуже предыдущего варианта по надежности обмена.

 

В теме "Посоветуйте USB 3.0 контроллер, выбор чипа" enclis_ предложил более дешевый вариант кита с FX3.

Share this post


Link to post
Share on other sites
А как же FX3?

если FX2 хватает по скорости, то выбор между BGA 11х11х0.8мм и TSOP56, вроде как очевиден.

BeMicro CV + vadimuzzz = самый простой способ загнать поток данных 40 МБайт/сек в ПК через GigEthernet.

спасибо, почитаю.

Есть еще вариант BeMicro CV + BEUSB 3.0. Но он гораздо хуже предыдущего варианта по надежности обмена.

у меня есть Bemicro-SDK, он с fast ethernetом и памятью для попробовать пойдёт. но хотелось бы нормальное решение на случай если устройство будет не в единичном экземпляре.

В теме "Посоветуйте USB 3.0 контроллер, выбор чипа" enclis_ предложил более дешевый вариант кита с FX3.

если про leapmotion, то GPIF там на отдельный разъём вывести забыли :)

Share this post


Link to post
Share on other sites
А как же FX3?

У него свои тараканы. Скажем, скоростной поток без внешней буферизации протащить не получится из-за задержек на переключении внутренних буферов.

Если достаточно FX2, то лучше выбрать именно его.

Share this post


Link to post
Share on other sites
Да ладно, а что же тогда они вывели на 44-выводный разъем?

распиновкой не поделитесь? ;)

тем более что на нём висят две камеры с 10ю скорее всего разрядами (вряд ли с 12), я бы на их месте повесил их на 0..9 и 16..25 биты 32хразрядного GPIF интерфейса, а остальное бы не тащил за ненадобностью.

Share this post


Link to post
Share on other sites

А вариант на PCI/PCIe рассматривается?

Требуемая скорость введется без сомнений, да и с буферизацией проблем нет - памяти в ПК много.

Share this post


Link to post
Share on other sites
А вариант на PCI/PCIe рассматривается?

Требуемая скорость введется без сомнений, да и с буферизацией проблем нет - памяти в ПК много.

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

Share this post


Link to post
Share on other sites

У нас достижение 45 Мбайт/сек на FX2LP (CY68013A), это, похоже, близко к реальному пределу. Тут очень сильно зависит от хоста. Причём, "современность" хоста мало влияет на прирост скорости. Например, у меня на старом Атлон64 качает 45 мегабайт в секунду, а на более новом четырёхядерном Феноме скорость порядка 38-39 Мбайт/сек. Плотно не выясняли, почему так, но, вроде, это зависит не от крутизны проца и материнки, а от того, что там за USB Host стоит - не факт, что в более современном компе стоит более быстрый USB Host.

 

В общем, хочу сказать, что 40 мегабайт в секунду - это уже близко к пределу, тут влияние хоста значительно. Если будете идти по этому пути, то имейте это в виду. Если 16-17 Мслов/сек, то есть 32-34 МБайта/сек, то тут думаю, всё значительно легче. Даже мой "медленный" Феном спокойно 32 мегабайта сосёт через дырку в передней панели (а через неё помедленее, чем через расположенные непосредственно на материнке).

 

Да, и следует отметить, что хостовая программа должна быть написана грамотно и аккуратно - никаких ожиданий, процессы запроса данных и их приём получаются полностью асинхронными, всё работает по событиям. Иначе успеха не достичь.

Share this post


Link to post
Share on other sites
драйвера родные от кипариса или свои?

да, драйвер кипарисный. Ещё программист пробовал, вроде, libusb, по скорости, сказал, не уступают (был отдалённый план сделать программу кроссплатформенной - под линухом чтоб тоже жила). Но поскольку время поджимало, не было возможности экспериментировать и ответственность была высока, взяли более обкатанный вариант - от производителя.

Share this post


Link to post
Share on other sites

Тоже выжимали максимум из CY68013A.

Проверяли на разных системах, также лучшие результаты были AMD платформе.

Сейчас протестил на Z77 c i7-2700 WIN7 x64 если через

USB 3.0 host: IN 43MB/s out 46MB/s

USB 2.0 host: IN 41MB/s out 35MB/s

Драйвер свой, у кипариса при передачи в драйвер данных < 1MB сильно просаживается скорость.

Скорость указана в честных MB/s где MB = 1048576 байт.

Если считать в Миллионах байт, то будет

IN 45 OUT 48

IN 43 OUT 36

Edited by VasiaMVR

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this