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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Еще раз о связке ПК-USB-FTDI-ПЛИС
toretto
сообщение Mar 14 2011, 07:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590



Здрствуйте. У меня вопрос к людям, которые сталкивались с реализацией интерфейса USB, в частности при помощи преобразователей фирмы FTDI USB-FIFO.

Возникла потребность связать ПЛИС и ПК через USB (только передать файл размером ~500 Мб, желательна скорость от 1 Мб/с). Порыскав по просторам форума и интернета несколько раз натыкался на продукты фирмы FTDI. Микросхемы предлагают превратить поток данных из USB в FIFO или UART по выбору. На аппаратном уровне вроде бы все просто: фифо получает данные из вне, а мы все это счастье забираем плисиной и дальше по нуждам... Вопрос вот в чем: от меня на програмном уровне требуется только слать пакеты Token, затем пакеты Data и принимать Handshake'и. Все необходимые прошивки предоставляет FTDI. Например, мне не требуется описывать процесс подключения устройства к хосту (это задача драйвера). Прав ли я или я не учел еще какие-то нюансы в проектировании и программировании? Приму к сведению все советы, сам только осваиваю USB
Go to the top of the page
 
+Quote Post
nmurzin
сообщение Mar 14 2011, 11:38
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141



5 лет назад я реализовывал связь FTDI с ПЛИС.

ПЛИС ни чего не должна знать о USB.
Она тупо общается с интерфейсом FTDI как с буфером FIFO.

От программиста ПК тоже особых знаний про USB не требуется.
Достаточно вызывать функции предоставляемые dll библиотекой,
которая поставляется с драйвером.


Если требуется производительность, лучше использовать контроллер фирмы Cypress.
Go to the top of the page
 
+Quote Post
yes
сообщение Mar 14 2011, 11:50
Сообщение #3


Гуру
******

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



Цитата(nmurzin @ Mar 14 2011, 14:38) *
Если требуется производительность, лучше использовать контроллер фирмы Cypress.


спорный вопрос, с Cypress много лишней возни, и с EzUSB предельные скорости не получишь, нужно что-то ковырять в виндовых потрохах

в новых FTDI есть
USB to synchronous 245 parallel FIFO mode for transfers up to 40 Mbytes/Sec
http://www.ftdichip.com/Products/ICs/FT232H.htm

да и не самые новые
http://www.ftdichip.com/Products/ICs/FT2232H.htm

только непонятно, как в софте это поддерживается?
кто-нибудь пользовал synchronous 245 parallel FIFO mode?
Go to the top of the page
 
+Quote Post
alexPec
сообщение Mar 14 2011, 12:49
Сообщение #4


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



1 Mб/с вряд ли получите с usb1.1 - там всего 12 мбит минус служебные биты, crc, итого меньше 10 мбит всяко. Да и беда какая-то была помню с самой виндой XP, в частности с общением через ком-порт, при большой скорости проц грузился под завязку, а скорости даже в 300 кб/сек не выходило. Советовали ставить какие-то патчи, с этим связанные, но я не пробовал, вобщем был получен порог около 250-270 кбайт/сек.
Go to the top of the page
 
+Quote Post
EvgenyV
сообщение Mar 14 2011, 13:06
Сообщение #5


Участник
*

Группа: Validating
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 528



FTDI ооооочень простая в использовании микросхема. С одной стороны у нее USB с другой UART/FIFO.
Выше правильно написали, что FPGA о USB ничего не знает. Общается с ней как UARTом либо как с FIFO.

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

Код
fopen(COM4,...)
fread( ...)
fwrite( ...)


Можно просто в обычном терминале открыть этот порт и читать/писать в него.

Скорость у FTDI не шибко высокая, сколько знаю. До 1Мбс вроде. Могу ошибаться.
Cypress намного быстрее, но с ним действительно гораздо больше возни, по-сравнению с FTDI.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 14 2011, 13:12
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(yes @ Mar 14 2011, 14:50) *
только непонятно, как в софте это поддерживается?
кто-нибудь пользовал synchronous 245 parallel FIFO mode?


В софте очень просто - FTDI переводится в соответсвующий режим работы, после чего работа с ним происходит точно так же, как и раньше - почитать-записать. В тесте удавалось добиться пиковой скорости порядка 35-40 мбит/с.
Go to the top of the page
 
+Quote Post
toretto
сообщение Mar 14 2011, 13:59
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590



Я так понимаю режим UART и FIFO это разные режимы. С какой скоростью гоняются данные в режиме COM-порта?
Go to the top of the page
 
+Quote Post
Anatol'
сообщение Mar 15 2011, 04:48
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 28-01-10
Из: Новосибирск
Пользователь №: 55 106



Цитата(toretto @ Mar 14 2011, 19:59) *
Я так понимаю режим UART и FIFO это разные режимы. С какой скоростью гоняются данные в режиме COM-порта?

В датащите написано, максимум 3 Мбита. У меня 1 мегабит гоняло без проблем, больше не проверял.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 15 2011, 11:30
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(alexadmin @ Mar 14 2011, 16:12) *
В тесте удавалось добиться пиковой скорости порядка 35-40 мбит/с.


35-40 Мбайт/с, конечно же.
Go to the top of the page
 
+Quote Post
backa
сообщение Mar 15 2011, 12:31
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 15-06-05
Из: Минск
Пользователь №: 6 028



Цитата(yes @ Mar 14 2011, 15:50) *
спорный вопрос, с Cypress много лишней возни, и с EzUSB предельные скорости не получишь


у меня кристаллы реально работают без затыков на скорости 24МБАЙТА - гонят поток в комп .... без заморочек
Go to the top of the page
 
+Quote Post
yes
сообщение Mar 15 2011, 13:24
Сообщение #11


Гуру
******

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



Цитата(alexadmin @ Mar 14 2011, 16:12) *
В софте очень просто - FTDI переводится в соответсвующий режим работы, после чего работа с ним происходит точно так же, как и раньше - почитать-записать. В тесте удавалось добиться пиковой скорости порядка 35-40 мбит/с.


ну то есть через D2XX, больше никаких хитростей не надо?
просто про Cypress FX2 слышал, что больше 25Мбайт/с получить нельзя - типа проблемы хоста и это как бы практический потолок под виндой

пользуюсь FTDI в режимах отличных от UART и с драйверами не сериальными, но как-то никак руки не доходят проверить FIFO
у меня как раз нужно 26-30Мбайт/с, но программист соскочил и придется самому писать - вот хочу понять, чего ожидать

Go to the top of the page
 
+Quote Post
des00
сообщение Mar 15 2011, 13:31
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(yes @ Mar 15 2011, 07:24) *
просто про Cypress FX2 слышал, что больше 25Мбайт/с получить нельзя - типа проблемы хоста и это как бы практический потолок под виндой

хммм, SM рапортовал что получил под 50 мегабайт на FX2 в режиме sync fifo на 48МГц


--------------------
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 16 2011, 08:42
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(yes @ Mar 15 2011, 16:24) *
ну то есть через D2XX, больше никаких хитростей не надо?
просто про Cypress FX2 слышал, что больше 25Мбайт/с получить нельзя - типа проблемы хоста и это как бы практический потолок под виндой


Да, в софте устанавливаете синхронный режим, не забываете включить RTS/CTS (в какой-то AN написано иначе данные бьются), и дальше работаете обычными функциями чтения/записи. Около 40 мбайт/с получалось в простом тесте типа прочитать данные, проверить на отсутствие ошибок, скинуть на диск.
Go to the top of the page
 
+Quote Post
Nepston
сообщение Oct 27 2011, 17:59
Сообщение #14





Группа: Новичок
Сообщений: 7
Регистрация: 24-10-11
Пользователь №: 67 921



а как в квартусе описать связку PC<=>USB<=>FPGA? может кто-нить это обьяснить или скинуть какой нибудь пример?

Сообщение отредактировал Nepston - Oct 27 2011, 17:59
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 28 2011, 06:14
Сообщение #15


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Nepston @ Oct 27 2011, 20:59) *
а как в квартусе описать связку PC<=>USB<=>FPGA? может кто-нить это обьяснить или скинуть какой нибудь пример?

ft2232hcore


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post

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

 


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


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