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

 
 
> Утилита тестирования 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



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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 06:43
Рейтинг@Mail.ru


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