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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> STM32f103 USB speed
Golikov A.
сообщение Jan 23 2014, 19:17
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(Taradov Alexander @ Jan 23 2014, 22:57) *
Для максимальной производительности на Iso нужен полный буффер на 1023 байта. Комментарий был про это ограничение.


не соглашусь с вами.
полный буфер 1023 байта, позволяет передавать только 1 микрофрайм согласно стандарту USB 2.0, в то время как
256 позволяет передать 5, 128 - 10, 64 - 20 микрофраймов. Отсюда скорость максимальной будет как раз на буферах 64-182-256.
Даже буфер 512 позволяет передавать только 2 микрофрайма, больше 1023, но меньше 1280 что получается с меньшими буферами.

Это согласно стандарта, про конкретную реализацию в процессоре не говорю
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 23 2014, 19:21
Сообщение #17


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (Golikov A. @ Jan 23 2014, 12:17) *
в то время как 256 позволяет передать 5, 128 - 10, 64 - 20 микрофраймов.
Это только для bulk. Для Iso положение в кадре выделяется заранее и планироваться может только одна Iso транзакция за кадр. Так что тут чем больше размер точки, тем больше суммарная скорость.

И для 64 байт bulk максимум 19 транзаций, а не 20.

Сообщение отредактировал Taradov Alexander - Jan 23 2014, 19:22
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 23 2014, 22:12
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитирую официальный документ
стандарт USB 2.0

The USB limits the maximum data payload size to 1,023 bytes for each full-speed isochronous endpoint.
High-speed endpoints are allowed up to 1024-byte data payloads. A high speed, high bandwidth endpoint
specifies whether it requires two or three transactions per microframe. Table 5-4 lists information about
different-sized full-speed isochronous transactions and the maximum number of transactions possible in a
frame. The table is shaded to indicate that a full-speed isochronous endpoint (with a non-zero wMaxpacket
size) must not be part of a default interface setting. The table does not include the overhead associated with
bit stuffing.

Table 5-4. Full-speed Isochronous Transaction Limits
Protocol Overhead (9 bytes) (2 SYNC bytes, 2 PID bytes, 2 Endpoint + CRC bytes,
2 CRC bytes, and a 1-byte interpacket delay)
Data Payload | Max Bandwidth(bytes/second)| Frame Bandwidth per Transfer | Max Transfers | Bytes Remaining| Bytes/Frame Useful Data
1 150000 1% 150 0 150
2 272000 1% 136 4 272
4 460000 1% 115 5 460
8 704000 1% 88 4 704
16 960000 2% 60 0 960
32 1152000 3% 36 24 1152
64 1280000 5% 20 40 1280
128 1280000 9% 10 130 1280
256 1280000 18% 5 175 1280
512 1024000 35% 2 458 1024
1023 1023000 69% 1 468 1023
Max 1500000 1500

извиняюсь за вид таблицы.

Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 23 2014, 22:29
Сообщение #19


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (Golikov A. @ Jan 23 2014, 15:12) *
Цитирую официальный документ стандарт USB 2.0


И? Для FS только одна iso транзакция, для HS можно попросить еще 2 дополнительных.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 23 2014, 23:38
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



таблица приведенная для FS, для HS идет таблица далее...


High-speed - через черточку тип устройства
A high speed, high bandwidth endpoint - без черточки просто высокоскоростные

Table 5-4. Full-speed Isochronous Transaction Limits - это таблица для фулспида.
обмен буферами меньше 1023, позволяет слать несколько микрофраймов...

я как то не так трактую формат?
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 23 2014, 23:48
Сообщение #21


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (Golikov A. @ Jan 23 2014, 16:38) *
несколько микрофраймов...

Само понятие "микрофрейм" определенно только для HS.

Черточку они попеременно используют, люди-же пишут.

Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 24 2014, 05:29
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



USB establishes a 1 millisecond time base called a frame on a full-/low-speed bus and a 125 μs time base
called a microframe on a high-speed bus. A (micro)frame can contain several transactions. Each transfer
type defines what transactions are allowed within a (micro)frame for an endpoint. Isochronous and interrupt
endpoints are given opportunities to the bus every N (micro)frames. The values of N and other details about
isochronous and interrupt transfers are described in Sections 5.6 and 5.7.

микро у них в скобочках имеется ввиду фрейм-микрофрейм?, и опять ссылка на ту же таблицу, в которой для фулспида 1280 байт в секунду обещают...

может имеется ввиду что можно несколько конечных точек замутить на передачу? фиг его знает вообщем, я чет уже запутался.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 24 2014, 07:47
Сообщение #23


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



"(micro)frame" - это microframe в HS и frame в FS.

FS может держать 1 изохронную транзакцию за кадр. Максимальный размер - 1023 байт. Таким образом 1000*1023 = 1023000 байт/ сек - это максимальная пропускная способность в режиме FS.

HS сам по себе содержит 8 микрокадров в кадре. При этом можно дополнительно попросить хост планировать до 3-х тразнакций за кадр. Таким образом имеем 1000*8*1024*3 = 24576000 байт/ сек - это максимальная пропускная способность в режиме HS.

Это расчеты верны только для изохронных транзакций, они или гарантировано вместятся или устройство не сможет выставить эту конфигурацию (на 0 конфигурации иметь изохронные точки нельзя, чтобы просто воткнутое устройство шину не занимало).

Ну и несколько точек тоже можно сделать, но тогда сложнее будет их синхронизировать при приеме.

Сообщение отредактировал Taradov Alexander - Jan 24 2014, 07:49
Go to the top of the page
 
+Quote Post
Rikoesev
сообщение Jan 24 2014, 11:16
Сообщение #24





Группа: Новичок
Сообщений: 2
Регистрация: 23-01-14
Пользователь №: 80 174



Фигня какая то получается. Тогда у STM32 нету реальной поддержки FS USB из за ограничений буфера. Зачем народ обманывать??? sad.gif
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jan 24 2014, 11:44
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Цитата
HS сам по себе содержит 8 микрокадров в кадре. При этом можно дополнительно попросить хост планировать до 3-х тразнакций за кадр. Таким образом имеем 1000*8*1024*3 = 24576000 байт/ сек - это максимальная пропускная способность в режиме HS.

Это по спецификации USB. В windows поддерживается только передача в одном микрофрейме за фрейм, так что скорость в 8 раз ниже.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 24 2014, 13:04
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Alex11 @ Jan 24 2014, 15:44) *
В windows поддерживается только передача в одном микрофрейме за фрейм, так что скорость в 8 раз ниже.

На FX2 совершенно спокойно получаю ISO-поток 160Мбит/с на драйверах от производителя (мог бы и полные 196Мбит/с, да нет нужды), что я делаю не так?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 24 2014, 13:39
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(Taradov Alexander @ Jan 24 2014, 11:47) *
"(micro)frame" - это microframe в HS и frame в FS.

я тоже так понял

Цитата(Taradov Alexander @ Jan 24 2014, 11:47) *
FS может держать 1 изохронную транзакцию за кадр. Максимальный размер - 1023 байт. Таким образом 1000*1023 = 1023000 байт/ сек - это максимальная пропускная способность в режиме FS.


а вот стандарт говорит что для буфера 512 может быть 2 передачи за фрейм для FS.
а для буфера 256 может быть 5, и тогда получается тот самый 12 МБит, что требуется для спецификации...


Что винда не поддерживает, допускаю, и что конкретный проц может не поддерживать тоже. Но по спецификации так...

Как иначе FS устройства могут дать 12 МБит, если 1000*1023 = всего то 10?

а вот 256*5 = 12.8....


ну в целом ТС эти теоретически рассуждения не помогут...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 24 2014, 16:40
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Golikov A. @ Jan 24 2014, 17:39) *
а вот стандарт говорит что для буфера 512 может быть 2 передачи за фрейм для FS.
а для буфера 256 может быть 5, и тогда получается тот самый 12 МБит, что требуется для спецификации...

Не может:
Цитата
5.6.4 Isochronous Transfer Bus Access Constraints
...
A host must not issue more than 1 transaction in a (micro)frame for an isochronous endpoint unless the endpoint is high-speed, high-bandwidth

Примеры загрузки шины приведены для передач через разные конечные точки.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 24 2014, 16:43
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



тогда я ничего не понимаю окончательно
что такое
high-bandwidth?

может в FS устройстве она может быть high-bandwidth?

потому что в стандарте реально есть таблица для FS с числом передач отличной от 1, и число байт считается в сообщении...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 24 2014, 16:56
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Golikov A. @ Jan 24 2014, 20:43) *
тогда я ничего не понимаю окончательно
что такое
high-bandwidth?

Точка, передающая до трех пакетов за микрофрейм.

Цитата(Golikov A. @ Jan 24 2014, 20:43) *
может в FS устройстве она может быть high-bandwidth?

Нет, только в HS.

Цитата(Golikov A. @ Jan 24 2014, 20:43) *
потому что в стандарте реально есть таблица для FS с числом передач отличной от 1, и число байт считается в сообщении...

Есть, но нигде не говорится, что эти передачи идут через одну точку.
Go to the top of the page
 
+Quote Post

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

 


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


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