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

 
 
 
Reply to this topicStart new topic
> Сколько можно прокачать через High Speed USB?, И через FT2232H.
misyachniy
сообщение Nov 7 2011, 17:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Сегодня запустил Обмен в одну сторону от устройства к ПК.
По примеру настроил, получилось 44МБ/с.

Режим синхронного FIFO, сигнал готовности TXE вернул через Xilinx CoolRunner-II на WR.
Есть ли еще возможнности для увеличения скорости?
Или может на другом каком нибудь мосте, кто-то имеет более скоростные практические результаты?
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение Nov 7 2011, 18:37
Сообщение #2


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

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348




На 2ГБайтах тестовых данных получал 46,4 МБ/с на стационарном и 34,2МБ/с на ноуте при прочих
равных условиях.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Nov 8 2011, 08:05
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(misyachniy @ Nov 7 2011, 19:03) *
Сегодня запустил Обмен в одну сторону от устройства к ПК.
По примеру настроил, получилось 44МБ/с.

Есть ли еще возможнности для увеличения скорости?
Насколько я помню пробежку по описанию USB 2.0, теоретический максимум полезных данных 49 мегабайт в секунду при пакетах в 64 килобайта.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Nov 8 2011, 15:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(ReAl @ Nov 8 2011, 10:05) *
Насколько я помню пробежку по описанию USB 2.0, теоретический максимум полезных данных 49 мегабайт в секунду при пакетах в 64 килобайта.


Попробовал разогнать побыстрее.
Решил использовать OVERLAPPED режим.

Объявил буфер и структуры для такого режима:
Код
char *RxBuffer;   // указатель на буфер обмена
DWORD dwToRead = OneSector;
DWORD dwRead[SectorNum];           // сколько байт реально считано
OVERLAPPED osRead[SectorNum];      // стуктура для фонового(перекрывающегося) обмена
FT_STATUS overlap_ftStatus[SectorNum];// признак успешности запроса на чтение

Проинициализировал структуры.
Почему то присвоение нуля как в примере не получается. Билдер не дает скомпилировать.
Код
  for(int i=0; i< SectorNum;i++)
  {
//   osRead[i] = { 0 };
   osRead[i].hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
  }

Открыл файл в OVERLAPPED режиме.
Код
  ftHandle = FT_W32_CreateFile(Buf,GENERIC_READ|GENERIC_WRITE,0,0,
                               OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL |
                               FILE_FLAG_OVERLAPPED | FT_OPEN_BY_SERIAL_NUMBER, 0);

Затем начал в цикле ставить в очередь задачи на чтение из USB
Код
for(int i=0; i< SectorNum;i++)
{
overlap_ftStatus[i]=FT_W32_ReadFile(ftHandle, &RxBuffer[i*OneSector], dwToRead, &dwRead[i], &osRead[i]);


Но почему то, очередь затыкалась.
При проверке завершения
Код
    ftStatus=FT_W32_GetOverlappedResult(ftHandle, &osRead[i], &dwRead[i], FALSE);


В разных местах. Я было подумал, что слишком много заданий в очереди.
И решил не более 4-х ставить в очередь.
Код
for(int i=0; i< SectorNum;i++)
{
overlap_ftStatus[i]=FT_W32_ReadFile(ftHandle, &RxBuffer[i*OneSector], dwToRead, &dwRead[i], &osRead[i]);

if (i >3)
{
   dwRead[i-4] =0;
   while  (dwRead[i-4]!= dwToRead)
   {
    ftStatus=FT_W32_GetOverlappedResult(ftHandle, &osRead[i-4], &dwRead[i-4], FALSE);
    ftStatus=FT_W32_GetLastError(ftHandle);
   }
}
}


Все равно - максимум 58 успешных постановок заданий в очередь.

Как правильно закачать данные?

Архив проект прикладываю.
Прикрепленные файлы
Прикрепленный файл  _________USB.rar ( 66.57 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 02:25
Рейтинг@Mail.ru


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