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

 
 
 
Reply to this topicStart new topic
> Утилита тестирования USB интерфеса, Получилась почти случайно :)
prottoss
сообщение Sep 6 2011, 19:12
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Привет форумчанам.
Делая один проект смастерил утилитку, которая показывала скорость передачи данных по интерфесу USB. Допилил немного ее и получилась программулина, которую и выкладываю на свет. Мож кому и пригодится.

Интерфес простой. Нужно ввести в соответсвующие поля VID и PID, таймауты приема и передачи и сколько байт необходимо передавать в одной транзакции.

Принцип работы простой.
1. Ищем устройство.
2. Находим.
3. Открываем PIPE00.
4. Пытаемся открыть PIPE01. Если не открывается, то используем PIPE00 и для чтения и для записи. Если открылся, то считаем PIPE00 - канал чтения из устройства, канал PIPE01 - запись в устройство.
5. По команде оператора создаем поток с бесконечным циклом записи-чтения оговоренного количества байт.
6. В каждом прогоне счетчик принятых байт увеличивается. Ну и с интервалом 500 мс происходит вычисление средней скорости передачи данных по каналу.

Таким образом можно работать с практически любым USB устройством имеющим две конечные точки для передачи данных.

Сам тестировал только на AT91SAM7S64 с Windows драйвером usbser.sys

При установлении пакета данных в 10000 байт скорость получилась около 475.000 CPS (char per second)

В тестируемом МК соответственно должна быть написана программа, которая принимает-отправляет данные.
У меня она выглядит так:
CODE
/* Transmit/Receive buffers */
#define BUF_SIZE 1024
static volatile UINT8 g_Buf[BUF_SIZE];

/*
main procedure
*/
int main(void)
{
INT i, cnt = 0;

BOARD_Init(); /* Init device */

DBG_OUT("main: init OK!\r\n");

/* Main loop */
while(1)
{
if(cnt > 0)
{
i = USB_Write(g_Buf, cnt);
cnt -= i;
}
else
cnt = USB_Read(g_Buf, BUF_SIZE);
}
}

Прикрепленные файлы
Прикрепленный файл  USBSpeedTest.rar ( 214.78 килобайт ) Кол-во скачиваний: 43
 


--------------------
Go to the top of the page
 
+Quote Post
prottoss
сообщение Sep 8 2011, 03:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Выложеная выше утилита работает только на компах с установленым Borland Builder. rolleyes.gif Извиняюсь. Не совсем верно скомпилил.
Выложил рабочую версию.



Прикрепленные файлы
Прикрепленный файл  USBSpeedTest.rar ( 238.8 килобайт ) Кол-во скачиваний: 77
 


--------------------
Go to the top of the page
 
+Quote Post
dimsa
сообщение Oct 6 2011, 15:42
Сообщение #3


Участник
*

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



Спасибо. Предложу коллеге - он как раз тестирут скорость.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 6 2011, 15:48
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(prottoss @ Sep 8 2011, 07:02) *
Выложеная выше утилита работает только на компах с установленым Borland Builder.

А исходничком не поделитесь?
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Nov 7 2011, 16:43
Сообщение #5


Знающий
****

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



Цитата(Xenia @ Oct 6 2011, 17:48) *
А исходничком не поделитесь?


Может мой подойдет?
http://misyachniy.embedders.org/proj/usb_b..._bulk_sam7.html
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 04:10
Рейтинг@Mail.ru


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