Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Утилита тестирования USB интерфеса
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
prottoss
Привет форумчанам.
Делая один проект смастерил утилитку, которая показывала скорость передачи данных по интерфесу 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);
}
}
prottoss
Выложеная выше утилита работает только на компах с установленым Borland Builder. rolleyes.gif Извиняюсь. Не совсем верно скомпилил.
Выложил рабочую версию.


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

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


Может мой подойдет?
http://misyachniy.embedders.org/proj/usb_b..._bulk_sam7.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.