Jak mogę przełączyć USB komputera w tryb urządzenia? [duplikować]

0

Możliwa duplikat:
Czy istnieje sposób, aby komputer wyglądał jak dysk USB na urządzeniu, które odczytuje zawartość z dysku USB?
Czy można używać komputera jako napędu zewnętrznego przez USB?

Jak mogę przełączyć USB komputera w tryb urządzenia i służyć jako dysk na kluczu do szybkiego przesyłania plików między komputerami bez specjalnego kabla? Próbowałem Ethernet, ale maksymalne, jakie otrzymuję, to 8 MB / s.

Wiem, że jest to możliwe, ponieważ mam wbudowane urządzenie Linux, które może łatwo przełączać się z trybu hosta na tryb hosta iz powrotem, ale jest to ARM i wierzę, że jego program do przełączania nie będzie działał na architekturze x86.

Mam Mac OS X 10.7 / Ubuntu Natty / Windows 7 dostępny na PC, nie obchodzi mnie, na której platformie to będzie.

Dani
źródło
Użyj Gigabit Ethernet. Jeśli nalegasz na użycie wolniejszego USB3, będziesz potrzebować jednego z tych specjalnych kabli (dlatego je robią).
psusi
@psusi: Używam sieci Ethernet 100 MBps, przynajmniej tak mówią obie strony, ale dostaję tylko 8 MBps.
Dani,
umm ... tak .. dlatego powiedziałem, że powinieneś przejść na Gigabit Ethernet. Zwróć także uwagę na różnicę między Mbps (megabajty na sekundę) a MB / s (megabajty na sekundę).
psusi
@psusi, Gigabit Ethernet: 1 Gbit / s, USB 3.0: 5 Gbit / s. USB 3 zdecydowanie nie jest wolniejszy niż GB Ethernet. Jednak USB 2 lub 1.
Ethan Reesor,

Odpowiedzi:

1

Jest to możliwe, gdy obsługuje go Twój sprzęt . Kontrolery hosta PC nie. Czynią to układy USB używane w typowych wbudowanych urządzeniach ARM / Linux. To natychmiast wyjaśnia, dlaczego program przełączający nie może działać: wysyła określone polecenie do określonego sprzętu. Nawet jeśli możesz zhakować oprogramowanie, aby wysłać polecenie do kontrolera USB komputera, nadal go nie zrozumie. (Och, i jest część tego, że jest kompilowana dla ARM, a nie x86)

Napisałem kod bootloadera dla wbudowanego urządzenia ARM z takim układem USB. Te układy USB są dość niezależne; jak myślisz, jak robią 480 Mb / s na procesorze 200 MHz?

MSalters
źródło
Czy jest jakaś szansa, że ​​mój kontroler to obsługuje? jak mogę to sprawdzić?
Dani
o cpu / usb, to nie jest problem. procesor jest zwykle 32-bitowy, nawet na wbudowanym, więc 32-bitowy * 200 MHz = 6,4 Gb / s, co pozostawia dużo czasu bezczynności, jeśli dane wyjściowe są przesyłane z prędkością 480 Mb / s.
Dani
@Dani: To część inteligentnych urządzeń USB. Procesor może mieć 32 bity, ale USB jest szeregowy (S w USB). Oznacza to, że wysyła jeden bit na raz, 480 milionów razy na sekundę. Procesor nie może przełączać linii danych USB 480 milionów razy na sekundę. Zamiast tego procesor wysyła kilka tysięcy bitów na raz do kontrolera USB, który następnie przesyła je krok po kroku.
MSalters
@Dani nie ma żadnej szansy, że kontroler USB na PC będzie go obsługiwał. Wymaga również innego gniazda, ponieważ host i urządzenie używają różnych gniazd.
psusi
@psusi: Mam czytnik dysku twardego, który używa złącza typu A i działa w trybie urządzenia.
Dani,
1

Możesz dostać jeden z nich. Musisz jednak napisać własne sterowniki.

LawrenceC
źródło