Jak działa USB?? :P
Masz problem? Zapytaj na forum elektroda.pl
From: "Konop" <konop13_at_nospam_gazeta.pl>
Subject: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 14:51:45 +0200
Witam!!
Takie jedno pytanie, dosyć ogólne... . Ściągam właśnie specyfikację USB,
ale obawiam się, że ciężko mi będzie przez to przebrnąć :/... . Może ktoś w
skrócie mi napisać, co się dzieje w momencie podpięcia urządzenia USB do
kompa, kiedy np. Windows wykrywa urządzenie?? Chodzi o to, że mam uszkodzony
skaner, Windows wykrywa go jako "nieznane urządzenie" :P... . I tak mnie
zastanawia - jak on to robi, że w ogóle wykrywa podpięcie urządzenia -
jakieś sygnały muszą tam iść :D... . Tylko co jest skopane, że skaner nie
działa?? :>... .
Z góry dzięki za wszelką pomoc :D... .
Pozdrawiam
Konop
From: "Sebastor" <brakadresu_at_nospam_onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 15:07:37 +0200
Takie jedno pytanie, dosyć ogólne... . Ściągam właśnie specyfikację
USB, ale obawiam się, że ciężko mi będzie przez to przebrnąć :/... . Może
ktoś w skrócie mi napisać, co się dzieje w momencie podpięcia urządzenia
USB do kompa, kiedy np. Windows wykrywa urządzenie??
Niezle niezle :))))
Chodzi o to, że mam uszkodzony skaner, Windows wykrywa go jako "nieznane
urządzenie" :P... . I tak mnie zastanawia - jak on to robi, że w ogóle
wykrywa podpięcie urządzenia - jakieś sygnały muszą tam iść :D... . Tylko
co jest skopane, że skaner nie działa?? :>... .
Moze najpierw zainstaluj sterowniki. (?)
Sebastor
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 15:16:23 +0200
Sebastor wrote:
Niezle niezle :))))
Oj tak... :-)))
Moze najpierw zainstaluj sterowniki. (?)
Nie pomogą, urządzenie powinno się przedstawić bez sterowników
-- w takiej sytuacji w managerze USB masz okienko z napisem
"Wykryto nowe urządzenie XYZ, czy zainstalować sterowniki?",
ale nazwa XYZ jest przesyłana do hosta w fazie enumeracji, która
jest standardowa i sterowników nie wymaga. Pytający napisał
o nieznanym urządzeniu, a zakładając, że nie buduje tego skanera
sam, tj. kiedyś enumeracja działała poprawnie, a teraz nie, to
wypada przyjąć, że skaner padł na amen.
Pozdrawiam
Piotr Wyderski
From: "Konop" <konop13_at_nospam_gazeta.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 15:21:08 +0200
Moze najpierw zainstaluj sterowniki. (?)
Tak to jest, jak się chce komuś oszczędzić roboty :/... . Pytanie było
skrótowe!! Otóż.. sterowniki zainstalowałem, ale po włączeniu oprogramowania
dowiaduję się, że skanera nie znaleziono. Tak, jakby w ogóle nie był
podpięty... . Można mieć wrażenie, że elektronika jest cała zjarana i tyle
P... Ale nie... jak podpina się skaner, to system wykrywa "nieznane
urządzenie".... . Czyli coś tam jednak działa... . I chciałem po prostu
zapytać, czym się różni komunikacja między kompem a skanerem w momencie
wykrywania urządzenia od komunikacji w czasie dalszej pracy?? I czym może
być spowodowane to, że skaner nie jest wykrywany jako skaner tylko nieznane
urządzenie.
Czy teraz pytanie wydaje się być bardziej logiczne?? :P...
Z resztą... mały dodatek :D.. Kumepl kupił skaner na Allegro, bo potrzebuje
pilnie i nie ma kasy... . Uznał, że zaryzykuje, jeśli uda mi się to
naprawić, to kiedyś mi coś odpali... . Tyle tylko, że nie dowiedział się, co
jest nie tak :P... . Znalazłem jedną usterkę - szkodzone były tranzystory
zasilające silnik krokowy. Wymieniłem wszystko, powinno już działać, ale
teraz system nie wykrywa skanera!! I jestem po prostu ciekawy, gdzie mogę
szukać przyczyny problemu?? Może po prostu najprawdopodobniej wina leży po
stronie sterowników i błędnej konfiguracji systemu?? :>... .
Pozdrawiam
Konop
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 15:25:48 +0200
Konop wrote:
Ale nie... jak podpina się skaner, to system wykrywa "nieznane
urządzenie".... . Czyli coś tam jednak działa...
Owszem. Wspomniany opornik, kabel USB i gniazdko. :-D
I chciałem po prostu zapytać, czym się różni komunikacja między
kompem a skanerem w momencie wykrywania urządzenia od
komunikacji w czasie dalszej pracy??
Numerami endpointów i trybem transmisji, ale w Twoim przypadku
to nie ma znaczenia, bo do tej fazy nie dochodzisz.
Pozdrawiam
Piotr Wyderski
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 15:10:10 +0200
Konop wrote:
Takie jedno pytanie, dosyć ogólne... . Ściągam właśnie specyfikację
USB, ale obawiam się, że ciężko mi będzie przez to przebrnąć :/...
Obawa dobrze uzasadniona. :-)
I tak mnie zastanawia - jak on to robi, że w ogóle wykrywa podpięcie
urządzenia - jakieś sygnały muszą tam iść :D...
Do linii D+ albo D- (zależnie od prędkości urządzenia) w urządzeniu jest
podpięty opornik 1k5 do Vdd i to pozwala hostowi na wykrycie podłączenia
urządzenia. Reszta już idzie programowo: SIE urządzenia jest resetowane
i otrzymuje adres 0, a host przesyła sekwencję 0x80 0x06 0x00 0x01,
oznaczającą polecenie GET_DEVIVE_DESCRIPTOR, nakazującą urządzeniu
bardzo skrótowe przedstawienie się. Następnie idzie sekwencja 0x00 0x05
addr, czyli nakazanie urządzeniu przyjęcia adresu addr, a później na ten
adres są wysyłane sekwencje 0x80 0x06 0x00 N, gdzie N to identyfkator
deskryptora, na co urządzenie odpowiada swoim opisem w postaci m.in.
napisu w 16-bitowym Unicode, który następnie widać w managerze urządzeń,
opisuje architekturę logiczną endpointów, informuje o swoich możliwych
konfiguracjach (a może być ich dużo) i enumeracja się kończy, a
zaczyna faza normalnej parcy urządzenia.
Pozdrawiam
Piotr Wyderski
From: "Konop" <konop13_at_nospam_gazeta.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 16:04:59 +0200
Do linii D+ albo D- (zależnie od prędkości urządzenia) w urządzeniu jest
podpięty opornik 1k5 do Vdd i to pozwala hostowi na wykrycie podłączenia
urządzenia. Reszta już idzie programowo: SIE urządzenia jest resetowane
i otrzymuje adres 0, a host przesyła sekwencję 0x80 0x06 0x00 0x01,
oznaczającą polecenie GET_DEVIVE_DESCRIPTOR, nakazującą urządzeniu
bardzo skrótowe przedstawienie się. Następnie idzie sekwencja 0x00 0x05
addr, czyli nakazanie urządzeniu przyjęcia adresu addr, a później na ten
adres są wysyłane sekwencje 0x80 0x06 0x00 N, gdzie N to identyfkator
deskryptora, na co urządzenie odpowiada swoim opisem w postaci m.in.
napisu w 16-bitowym Unicode, który następnie widać w managerze urządzeń,
opisuje architekturę logiczną endpointów, informuje o swoich możliwych
konfiguracjach (a może być ich dużo) i enumeracja się kończy, a
zaczyna faza normalnej parcy urządzenia.
Dzięki, takiej właśnie odpowiedzi potrzebowałem!! :D... . Po prostu
myślałem, że USB wykorzystuje nieco "mądrzejszy" sposób wykrywania
urządzenia niż opornik i wtedy znaczyłoby to, że coś działa :D... A tak -
jasne jest, że pewnie padł scalak za to odpowiedzialny :D... . No nic,
dzięki wielkie za pomoc!! :D...
Pozdrawiam
Konop
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 16:40:56 +0200
Do linii D+ albo D- (zależnie od prędkości urządzenia) w urządzeniu jest
podpięty opornik 1k5 do Vdd i to pozwala hostowi na wykrycie podłączenia
Dla LS lub FS. Dla Hs jest specjalny protokół (Chirp J K i takie tam).
urządzenia. Reszta już idzie programowo: SIE urządzenia jest resetowane
i otrzymuje adres 0, a host przesyła sekwencję 0x80 0x06 0x00 0x01,
brakuje kilku bajtów do ośmiu. Requesty zawsze są ośmio bajtowe.
oznaczającą polecenie GET_DEVIVE_DESCRIPTOR, nakazującą urządzeniu
bardzo skrótowe przedstawienie się.
Następnie idzie sekwencja 0x00 0x05
Potem GET_CONFIGURATION -"krótka" konfiguracja
Potem GET_CONFIGURATION -"długa" konfiguracja
Potem zapytanie "stringi"
Stringi nie są obowiązkowe.
Różne Systemy Operacyjnie w różnej kolejności to pobierają, nie ma reguły.
Jak host już wszystko wie o urządzeniu to wysyła SetConfiguration i od tego
momentu urządzenie działa wg ustawionej konfiguracji.
Najczęściej wg jakieś klasy: np Mass Storage, Audio , HID czy innej.
Mister
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 16:58:33 +0200
Mister wrote:
brakuje kilku bajtów do ośmiu.
Owszem, długość i takie tam "nieistotne" rzeczy.
Różne Systemy Operacyjnie w różnej kolejności to pobierają, nie ma
reguły.
To prawda, wg specyfikacji kolejność nie jest obowiązkowa.
To Windows XP wysyła w takiej, jak napisałem.
Jak host już wszystko wie o urządzeniu to wysyła SetConfiguration i od
tego
momentu urządzenie działa wg ustawionej konfiguracji.
Tylko wychodzi na to, że my się niepotrzebnie rozpisujemy
na temat protokołu, bo odpowiedź poprawna brzmi "opornik". :-)
Pozdrawiam
Piotr Wyderski
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 17:53:56 +0200
To prawda, wg specyfikacji kolejność nie jest obowiązkowa.
To Windows XP wysyła w takiej, jak napisałem.
A pod linuxem to dopiero ciekawie to wygląda;-)
Tylko wychodzi na to, że my się niepotrzebnie rozpisujemy
na temat protokołu, bo odpowiedź poprawna brzmi "opornik". :-)
ok EOT.
M
From: "gr" <mc_at_nospam_brak.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 19:33:00 +0200
To prawda, wg specyfikacji kolejność nie jest obowiązkowa.
To Windows XP wysyła w takiej, jak napisałem.
A pod linuxem to dopiero ciekawie to wygląda;-)
Czy moglbys troche szerzej? Wlasnie probuje zrobic softowego klienta usb i
ciekawi mnie jak proces enumeracji wyglada w linuxie.
gr
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Wed, 22 Jun 2005 19:43:02 +0200
ciekawi mnie jak proces enumeracji wyglada w linuxie.
a wyglądą podobnie jak w windowsach tylko inna kolejność i bardzo dziwne
ilości danych są przesyłane podczas enumeracji, można się naciąć.
Mister
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Tue, 21 Jun 2005 22:32:34 +0200
Mister wrote:
ok EOT.
Oj, chyba nie. :-( Właśnie próbuję zaprogramować AT89C51SND1C
w roli USB mass storage device i urządzenie nie chce mi przejść
procesu enumeracji. Odbiór danych z EP0 działa, zakładam, że
wysyłanie też, bo jeśli procedura wysyłająca jest aktywna, to
dostaje więcej parametrów od hosta. Parametry w poniższych
liniach są zgodne z ich miejscem w pakietach wysłanych przez
hosta. Oto cała komunikacja widziana przez urządzenie:
request ID = 80 command id = 6 (0 1) (requested_len = 64, to_send = 18)
// GET_DESCRIPTOR, DEVICE_DESCRIPTOR, max. 64 bajty do wysłania,
// 18 bajtów rzeczywistych danych do wysłania
request ID = 0 command id = 5 new_address = 2
// SET_ADDRESS
request ID = 80 command id = 6 (0 1) (requested_len = 18, to_send = 18)
// GET_DESCRIPTOR, DEVICE_DESCRIPTOR
request ID = 80 command id = 6 (0 2) (requested_len = 9, to_send = 9)
// GET_DESCRIPTOR, CONFIGURATION_DESCRIPTOR
request ID = 80 command id = 6 (0 3) (requested_len = 255, to_send = 4)
// GET_DESCRIPTOR, STRING_DESCRIPTOR, LANG_ID
request ID = 80 command id = 6 (3 3) (requested_len = 255, to_send = 22)
// GET_DESCRIPTOR, STRING_DESCRIPTOR, SN_INDEX
I tu się zaczyna coś dziwnego dziać, bo polecenia się powtarzają:
request ID = 80 command id = 6 (0 2) (requested_len = 255, to_send = 9)
// GET_DESCRIPTOR, CONFIGURATION_DESCRIPTOR
request ID = 80 command id = 6 (0 1) (requested_len = 64, to_send = 18)
request ID = 0 command id = 5 new_address = 2
request ID = 80 command id = 6 (0 1) (requested_len = 18, to_send = 18)
itd., jak wyżej, po czym komunikacja się zatrzymuje. Co może być powodem
takiego zachowania się układu? Na pewno nie przychodzi żadna nieobsłużona
komenda, bo mam w odpowiednim miejscu wstawione printf, które takie rzeczy
wyłapie.
Czy istnieje jakiś program pod Windows, który umożliwia pooglądanie
transmisji
na szynie od strony hosta poczynając od samego początku, tj. enumeracji?
Taki,
który pozwala pooglądać transmisję rozpoznanego urządzenia znalazłem, ale do
tego etapu jeszcze nie doszedłem. ;-(
Pozdrawiam
Piotr Wyderski
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: Jak =?ISO-8859-2?Q?dzia=B3a_USB=3F=3F_=3AP?=
Date: Tue, 21 Jun 2005 23:54:22 +0200
Piotr Wyderski wrote:
Czy istnieje jakiś program pod Windows, który umożliwia pooglądanie
transmisji
na szynie od strony hosta poczynając od samego początku, tj. enumeracji?
Taki,
który pozwala pooglądać transmisję rozpoznanego urządzenia znalazłem,
ale do
tego etapu jeszcze nie doszedłem. ;-(
Polecam BusHound. Wersja darmowa ma ograniczenie chyba do 14 dni. Może
podglądać praktycznie wszystko, co widać w Menadżerze Urządzeń - czyli
podglądasz np. hub'a, do którego podłączasz urządzenie oraz komunikację
z samym urządzeniem.
BTW: Wersja darmowa ma też kilka innych upierdliwych ograniczeń, m.in.
podglądanie tylko pierwszych 8 bajtów danych (ale wystarczy do
debugowania enumeracji na USB) i ograniczenie liczby logowanych ramek.
Natomiast wersja niedarmowa kosztuje dużo za dużo. :-(
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Wed, 22 Jun 2005 00:58:39 +0200
Adam Dybkowski wrote:
Już hula aż miło popatrzeć -- miałem 2 błędy w obsłudze
GET_DESCRIPTOR, a konkretnie w fazie CONFIGURATION
posyłałem tylko tyle bajtów, ile miał pierwszy deskryptor
w konfiguracji, a nie tyle, ile ma cała konfiguracja. Drugi
błąd to żądanie obsługi magistrali USB 10.1 zamiast 1.1. :->
Teraz urządzenie zatrzymuje się z błędem na nieznanej
mu jeszcze komendzie SET_CONFIGURATION, ale w
Managerze Urządzeń widać już Mass Storage Device, a nie
Nieznane Urządzenie. :-) Tylko ciekawe dlaczego host
robił nawrót w pobieraniu niepoprawnej konfiguracji po
pobraniu kilku innych komend, a nie od razu resetował SIE...
Polecam BusHound.
Dziękuję, zaraz sobie poszukam. :-) Ja znalazłem HHD Software
USB Monitor i działa bardzo dobrze (dla testu podsłuchiwałem
modem ISDN :->), ale enumeracji nie udało mi się w nim podglądać.
Pozdrawiam
Piotr Wyderski
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Wed, 22 Jun 2005 19:20:48 +0200
Już hula aż miło popatrzeć -- miałem 2 błędy w obsłudze
GET_DESCRIPTOR, a konkretnie w fazie CONFIGURATION
posyłałem tylko tyle bajtów, ile miał pierwszy deskryptor
w konfiguracji, a nie tyle, ile ma cała konfiguracja. Drugi
błąd to żądanie obsługi magistrali USB 10.1 zamiast 1.1. :->
Dlatego wspomniałem wczoraj o krótkiej konfiguracji i o długiej.
Teraz urządzenie zatrzymuje się z błędem na nieznanej
mu jeszcze komendzie SET_CONFIGURATION, ale w
zasadniczo nic nie trzeba robić jak masz jedną konfigurację, oczywiście
trzeba go formalnie obsłużyć.
Managerze Urządzeń widać już Mass Storage Device, a nie
Nieznane Urządzenie. :-) Tylko ciekawe dlaczego host
robił nawrót w pobieraniu niepoprawnej konfiguracji po
pobraniu kilku innych komend, a nie od razu resetował SIE...
Tak już to windows robi, dlatego łatwiej oprogramować hosta aniżeli
device;)
Mister
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Thu, 23 Jun 2005 00:17:45 +0200
Mister wrote:
zasadniczo nic nie trzeba robić jak masz jedną konfigurację, oczywiście
trzeba go formalnie obsłużyć.
Właśnie chodzi o to, że wczoraj jeszcze tej obsługi nie było. ;-)
Dziś już jest i host próbuje mi posyłać jakieś komendy SCSI,
ale nie zrobiłem jeszcze odpowiedniej procedury, więc po kilku
próbach Windows się poddaje. Enumeracja chyba jednak się
udała, bo nic oprócz komend z endpointu 2 nie przychodzi, a
w managerze jestem Manufacturerem. ;o)
Tak już to windows robi, dlatego łatwiej oprogramować hosta aniżeli
device;)
Niestety przez takie zachowanie szukałem błędu tam, gdzie go
nie było, bo "wykonane" polecenie uznałem za obsłużone poprawnie.
Pozdrawiam
Piotr Wyderski
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Thu, 23 Jun 2005 09:56:42 +0200
Dziś już jest i host próbuje mi posyłać jakieś komendy SCSI,
ale nie zrobiłem jeszcze odpowiedniej procedury, więc po kilku
próbach Windows się poddaje. Enumeracja chyba jednak się
Pierwszą komendą jest INQUIRY na którą trzeba odesłać 44 bajty danych.
M
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Thu, 23 Jun 2005 17:43:00 +0200
Mister wrote:
Moje urządzenie USB jest już obsługiwane całkowicie poprawnie,
przechodzi fazę enumeracji i wyświetla wszystkie podane przeze
mnie stringi. :-)
Pierwszą komendą jest INQUIRY na którą trzeba odesłać 44 bajty danych.
Zgadza się, 0x12. Mam jeszcze dwa pytania, bo jeszcze nigdy
nie oprogramowywałem Mass Storage Device:
1. W jaki sposób powinienem obsłużyć komendę FORMAT, zakładając,
że nośnikiem jest karta CF?
2. Uprzedzając fakty: niedługo powinienem zabrać się za software
radio, a tam USB też trzeba będzie oprogramować. Tylko pytanie,
jaką klasę powinienem dla niego wybrać, zakładając, że są dwa
strumienie danych: wejściowy i wyjściowy. USB Communication
Device, czy coś innego?
Pozdrawiam
Piotr Wyderski
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Thu, 23 Jun 2005 18:30:32 +0200
1. W jaki sposób powinienem obsłużyć komendę FORMAT, zakładając,
że nośnikiem jest karta CF?
Zgadza się, 0x12. Mam jeszcze dwa pytania, bo jeszcze nigdy
nie oprogramowywałem Mass Storage Device:
;-)
Tzn ? FORMAT_UNIT? czy np READ_FORMAT_CAPACITIES czy coś innego ??
W każdym razie nie jest to trywialne, jeszcze kilka inny komend trzeba
obsłużyć.
2. Uprzedzając fakty: niedługo powinienem zabrać się za software
radio, a tam USB też trzeba będzie oprogramować. Tylko pytanie,
jaką klasę powinienem dla niego wybrać, zakładając, że są dwa
A co to za dane? może AUDIO?
Mister
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Thu, 23 Jun 2005 18:58:14 +0200
Mister wrote:
Tzn ? FORMAT_UNIT?
Tak. Czy wystarczy po prostu przekazać to CF jako polecenie
FORMAT_TRACK z odpowiednimi parametrami?
I jeszcze jedno: kiedy wysyłać dane do hosta (np. wynik INQUIRY,
odczytu sektora itd.) -- przed, czy po CWS?
A co to za dane? może AUDIO?
Dane z przetwornika ADC/do przetwornika DAC przetworzone przez FPGA,
ale zdecydowanie nie audio, strumień będzie miał od kilkuset KiB/s do
~50MiB/s
-- to są bardzo szybkie przetworniki, działają wprost na częstotliwości
pośredniej. :-)
Pecet będzie przetwarzał te dane w sytuacjach, gdy możliwości FPGA okażą
się niewystarczające, albo po prostu wówczas, gdy będę miał taką ochotę
(testowanie algorytmów DSP przed ich zaszyciem w FPGA itd.).
Pozdrawiam
Piotr Wyderski
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: Jak działa USB?? :P
Date: Thu, 23 Jun 2005 20:16:40 +0200
Tak. Czy wystarczy po prostu przekazać to CF jako polecenie
FORMAT_TRACK z odpowiednimi parametrami?
nie używałem takiej komendy. Muszę "poczytać".
I jeszcze jedno: kiedy wysyłać dane do hosta (np. wynik INQUIRY,
odczytu sektora itd.) -- przed, czy po CWS?
Tzn Host wysyła CBW (31 Bytes) z np komendą SCSI np INQUIRY
Potem spodziewa się danych lub wysyła dane.
A na koncu odbiera od device CSW (13BYtes).
Dokładnie opisuje to klasa Mass Storage Class, Bulk Only Transport.
A co to za dane? może AUDIO?
Dane z przetwornika ADC/do przetwornika DAC przetworzone przez FPGA,
ale zdecydowanie nie audio, strumień będzie miał od kilkuset KiB/s do
~50MiB/s
Jeżeli testowanie to raczej jakaś klasa która zapewnia 100% poprawność
przesyłania danych, np wspomniana MSC.
Mister
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Jak działa USB?? :P
Date: Fri, 24 Jun 2005 00:09:05 +0200
Mister wrote:
Tzn Host wysyła CBW (31 Bytes) z np komendą SCSI np INQUIRY
Potem spodziewa się danych lub wysyła dane.
A na koncu odbiera od device CSW (13BYtes).
OK, dziękuję.
Jeżeli testowanie to raczej jakaś klasa która zapewnia 100% poprawność
przesyłania danych, np wspomniana MSC.
Hm, Mass Storage do obsługi strumieni? To będzie
działało raczej jak bardzo szybki modem, a nie dysk.
Pozdrawiam
Piotr Wyderski
From: "Mister" <wojpieUsunTo_at_nospam_pocztaUsunTo.onetUsunTo.pl>
Subject: Re: Jak działa USB?? :P
Date: Fri, 24 Jun 2005 10:28:08 +0200
Hm, Mass Storage do obsługi strumieni? To będzie
działało raczej jak bardzo szybki modem, a nie dysk.
Mass Storage to klasa zapewniająca przesyłanie danych ze 100% pewnością i
tyle. Nie ma w niej mowy o dyskach, etc.
Mister
Date: Fri, 24 Jun 2005 19:29:41 +0200
From: badworm <nospam_at_nospam_post.pl>
Subject: Re: Jak =?ISO-8859-2?Q?dzia=B3a_USB=3F=3F_=3AP?=
Mister napisał(a):
Mass Storage to klasa zapewniająca przesyłanie danych ze 100% pewnością i
tyle. Nie ma w niej mowy o dyskach, etc.
Z tą 10% pewnością to bym się nie zgodził - czytnik USB-CF(taki
najtańszy z Allegro) potrafił od czasu do czasu przekłamać dane a gdy do
karty dobierał się Yampp-link ze swoimi sterownikami(karta sformatowana
do YADL) to praktycznie przy każdej transmisji były błędy w
empetrójkach. Uprzedzając pytania - problem występował zarówno na
Win98SE(sterowniki do czytnika od producenta) jak i na Win2000Pro a
czytnik zawsze był programowo odłączany przed wyjęciem z portu USB. No i
nie była to też wina kart(y) - ta sama karta przy transmisji przez USB
do Yamppa działa idealnie. Co ciekawe błędy pojawiały się dopiero po
odłączeniu i ponownym dołączeniu czytnika.
--
Pozdrawiam Bad Worm badworm{"a" w kolku}post[punkt]pl
GG# 2400455 ICQ# 320399066
http://dobreprogramy.pl/index.php?dz=8&a=24
http://browsehappy.pl/
From: "Sobol" <sobol_at_nospam_TO_WYTNIJmisstcp.net>
Subject: Re: Jak działa USB?? :P
Date: Wed, 22 Jun 2005 18:06:00 +0200
Do linii D+ albo D- (zależnie od prędkości urządzenia) w urządzeniu jest
podpięty opornik 1k5 do Vdd i to pozwala hostowi na wykrycie podłączenia
urządzenia.
hehe to dlatego ostatni kolega opowiadal ja to siedzi przed kompem i mu
nagle wyskakuje "nieznane urzadzenie", a to jego corka gryzie wtyczke od usb
)
pozdr
sobol