-
1. Data: 2009-06-25 13:48:06
Temat: SAM7 - szybkość transmisji USB
Od: "Michał Lankosz" <m...@t...pl>
Użyłem kitu Olimex z SAM7X256. Lekko przerobiłem przykład
usb-device-cdc-serial-project-at91sam7x-ek pobrany ze strony Atmela.
Wywaliłem obsługę UARTa i wysyłam w kółko usartBuffers[0]. Pomiar po stronie
PC wykazał prędkość transmisji na poziomie 450kB/s danych użytecznych.
Czy to jest typowe osiągnięcie? Spodziewałem się minimum 600kB/s.
Michał
-
2. Data: 2009-06-25 14:46:32
Temat: Re: SAM7 - szybkość transmisji USB
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Michał Lankosz" <m...@t...pl> napisał w wiadomości
news:h1vufq$q51$1@srv.cyf-kr.edu.pl...
> Użyłem kitu Olimex z SAM7X256. Lekko przerobiłem przykład
> usb-device-cdc-serial-project-at91sam7x-ek pobrany ze strony
> Atmela.
> Wywaliłem obsługę UARTa i wysyłam w kółko usartBuffers[0]. Pomiar
> po stronie
> PC wykazał prędkość transmisji na poziomie 450kB/s danych
> użytecznych.
>
> Czy to jest typowe osiągnięcie? Spodziewałem się minimum 600kB/s.
A jaka dlugosc bufora ?
USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
J.
-
3. Data: 2009-06-25 20:13:06
Temat: Re: SAM7 - szybkość transmisji USB
Od: "AK" <1...@p...onet.pl>
> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
Dlaczego co 1ms??
M.
-
4. Data: 2009-06-25 20:23:28
Temat: Re: SAM7 - szybkość transmisji USB
Od: "Piotr Pitlab Laskowski" <p...@p...wp.pl>
>> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
> Dlaczego co 1ms??
Kolejne ramki protokołu USB są wysyłane co 1ms. Jeżeli wysyła się dane
małymi paczkami to dane nie wypełniają calego czasu łacza międzyz kolejnymi
ramkami, do teog dochodzą jeszcze jakies sprawy protokolarne i w efekcie nie
całe pasmo jest zajete. Żeby wyciągnać dużą przepustowość trzeba wpychać
duze ilości danych na raz. Wtedy automat podzieli to na x pełnych ramek i
wtedy wydajność będzie największa z możliwych ale i tak nie zbliżysz się do
teoretycznej przepustowości.
--
Piotrek.
http://www.pitlab.pl
-
5. Data: 2009-06-25 21:13:11
Temat: Re: SAM7 - szybkość transmisji USB
Od: Adam Dybkowski <a...@4...pl>
AK pisze:
>> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
>
> Dlaczego co 1ms??
Taki jest okres najczęstszego odpytywania urządzeń. Jeżeli chcesz
częściej, pomoże przejście na HiSpeed. Ale to już nie z tym ARMem.
Obejrzyj nową atmelową serię AT91SAM3U.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
6. Data: 2009-06-25 21:24:26
Temat: Re: SAM7 - szybkość transmisji USB
Od: Adam Dybkowski <a...@4...pl>
Piotr Pitlab Laskowski pisze:
>>> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
>> Dlaczego co 1ms??
> Kolejne ramki protokołu USB są wysyłane co 1ms. Jeżeli wysyła się dane
> małymi paczkami to dane nie wypełniają calego czasu łacza międzyz kolejnymi
> ramkami, do teog dochodzą jeszcze jakies sprawy protokolarne i w efekcie nie
> całe pasmo jest zajete. Żeby wyciągnać dużą przepustowość trzeba wpychać
> duze ilości danych na raz. Wtedy automat podzieli to na x pełnych ramek i
> wtedy wydajność będzie największa z możliwych ale i tak nie zbliżysz się do
> teoretycznej przepustowości.
Eee, jaki "automat"? Pisałeś w ogóle coś kiedyś związanego z USB dla
AT91SAM7?
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
7. Data: 2009-06-25 21:31:16
Temat: Re: SAM7 - szybkość transmisji USB
Od: "Michał Lankosz" <m...@t...pl>
Użytkownik "J.F." <j...@p...onet.pl> napisał w wiadomości
news:h202k5$379$1@news.onet.pl...
> A jaka dlugosc bufora ?
> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
Z pewnych zawiłości programu odczytuję, że chyba 64 bajty. 1ms dotyczy też
urządzeń CDC, czy HID? Jeszcze nie wgryzałem się w USB więc mogę pisać
jakieś głupoty.
Michał
-
8. Data: 2009-06-26 16:05:32
Temat: Re: SAM7 - szybkość transmisji USB
Od: MKi <e...@t...op.pl>
>> A jaka dlugosc bufora ?
>> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
>
> Z pewnych zawiłości programu odczytuję, że chyba 64 bajty. 1ms dotyczy też
> urządzeń CDC, czy HID?
Wszystkich (Low i Full Speed). Skoro bufor ma 64 bajty,
osiągniesz 64000 bajtów na sekundę i ani bita więcej.
Pozdrowienia,
MKi
-
9. Data: 2009-06-26 19:41:32
Temat: Re: SAM7 - szybkość transmisji USB
Od: "AK" <1...@p...onet.pl>
> Wszystkich (Low i Full Speed). Skoro bufor ma 64 bajty,
> osiągniesz 64000 bajtów na sekundę i ani bita więcej.
Oj cos kolego pokreciłes, w trybie interruptowym owszem, ale w trybie
bulkowym to maksymalnie prawie 1MB/s (oczywiście w FS).
A CDC chodzi przeciez w bulk-ach.
M
-
10. Data: 2009-06-26 20:34:32
Temat: Re: SAM7 - szybkość transmisji USB
Od: Adam Dybkowski <a...@4...pl>
MKi pisze:
>>> A jaka dlugosc bufora ?
>>> USB leci co 1ms, wiec trzeba pare KB jak sie chce szybko ..
>>
>> Z pewnych zawiłości programu odczytuję, że chyba 64 bajty. 1ms dotyczy
>> też urządzeń CDC, czy HID?
>
> Wszystkich (Low i Full Speed). Skoro bufor ma 64 bajty,
> osiągniesz 64000 bajtów na sekundę i ani bita więcej.
A nie. W transferach "bulk" można sklejać wiele 64-bajtowych pakietów i
wyciągnąć oczywiście więcej niż 64000B/s.
BTW: Wszystkie urządzenia USB zgłaszają do hosta żądany okres
odpytywania. 1ms to najkrótszy okres dla urządzeń FullSpeed (max.
255ms). W przypadku LowSpeed najkrótszy czas to 10ms (max. również
255ms). Urządzenia HighSpeed mogą zarządać odpytywania co 125us * 2^n,
co daje minimalny okres 125us. Przy czym host ma możliwość (jeżeli tak
mu pasuje) odpytywania z krótszym okresem, niż zażądano. Mówi o tym
rozdział 5.7.4 specyfikacji USB 2.0:
http://dybkowski.net/download/usb_20.pdf
W USB 3.0 dopiero robi się poezja z tymi czasami. Tak że jeżeli komuś
się spieszy z transferem ;-) to polecam od razu rzeźbienie w 3.0.
Kontroler NEC'a już można kupić (na PCI Express).
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.