[usb] jak to nazwać?

chodzi mi o programową realizację obsługi USB w mikroprocesorach, jak to się fachowo nazywa jednym wyrazem?

Reply to
identifikator: 20040501
Loading thread data ...

identifikator: 20040501 pisze:

Jednym wyrazem - pomyślmy... Może: prousb. Pewnie będą inne propozycje bo temat ciekawy :-)

Podejrzewam, że jednak nie chodzi Ci o nazwę, ale chcesz coś takiego zrobić i potrzebujesz materiałów. Jeśli tak to określ czy chcesz być hostem, któremu się wkłada, czy dzievicem wkładającym, na jaki procek, jaki język, jakie usługi (włóż wyjmij są podstawowymi, ale później jest całą prezentacja - nie wiesz kim ja jestem? a ja mogę to, a nawet tamto, daj mi mocy... itd.) Rozwiązaniem może być sprytna biblioteczka w C, która załatwi robotę - ale okreśł swoje potrzeby.

Reply to
bratsiostry

potrzeba mi nazwać jakimś krótkim sloganem progrmową realizację obsługi USB,

a biblioteczki zarówno hosta jak i devica to chętnie, chętnie.

Reply to
identifikator: 20040501

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Chyba nie ma takiego sloganu. Jak już to software-based albo software-only.

formatting link

Reply to
Grzegorz Niemirowski

dzięki, a jak to ugryźć od strony PC?

Reply to
identifikator: 20040501

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Chcesz na PC robić software'owe USB??? Czy pytasz ogólnie o obsługę USB np. pod Windows?

Reply to
Grzegorz Niemirowski

tak, ale na wbudowanych sterownikach np. hid i (kosmos) mass storage...

Reply to
identifikator: 20040501

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Nie rozumiem. Skoro masz wbudowany sterownik to po prostu działa. Np. Twoje urządzenie identyfikuje się jako klawiatura, wtedy w systemie widać je jako klawiatura. Masz na myśli wysyłanie jakichś niestandardowych komend do urządzenia HID? Tego nie testowałem. Jeśli (pod Windows) masz własny sterownik albo WinUSB, to z Twoim urządzeniem skojarzony jest interfejs o konkretnym GUID. Możesz sobie wyenumerować interfejsy o tym GUIDzie i w ten sposób dostać listę podłączonych Twoich urządzeń. Używa się do tego funkcji SetupDiEnumDeviceInterfaces i SetupDiGetDeviceInterfaceDetail. Dostajesz ścieżkę do urządzenia. Jak ją masz, to otwierasz je jak zwykły plik funkcją CreateFile. I teraz możesz już gadać z urządzeniem. Transfery kontrolne możesz wykonywać za pomocą funkcji DeviceIoControl. Z kolei bulk zazwyczaj (zależnie od sterownika) przez po prostu WriteFile i ReadFile. Zapewne do urządzenia HID też można wysłać pakiet kontrolny za pomocą DeviceIoControl.

Reply to
Grzegorz Niemirowski

no jestem zielony w tej kwestii, kupiłem tą pomarańczową książkę o USB, ale z niej też się nic nie dowiedziałem... a ten WinUSB całkiem ciekawy, widzę, że nawet jakiś opis jest na wiki... możesz napisac parę słów komentarza?

Reply to
identifikator: 20040501

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Pewnie Andrzeja Daniuka? Mam, ale nie czytałem :) Widziałem jakiś komentarz, że ta książka do tłumaczenie MSDN. Coś w tym jest.

WinUSB to bardzo fajna sprawa, bo do wielu urządzeń nie musisz pisać sterownika tylko masz gotowy. Nie obsługuje on transferów isonochrous i czegoś tam jeszcze mało ważnego więc nadaje się do większości urządzeń. Wystarczy, że zrobisz plik inf i już możesz gadać z urządzeniem. A jak urządzenie samo w sobie wspiera WinUSB, czyli ma kilka odpowiednich deskryptorów, to nawet inf nie jest potrzebny, podłączasz i działa. No chyba, że ktoś ma zabytek zwany XP, tam WinUSB nie ma, ale jak ściągniesz z netu to też śmiga.

Ostatnio testowałem konfigurację: urządzonko z ATmega32U4 + sofcik dla niego oparty o bibliotekę LUFA + WinUSB + programik na PC napisany w C++. Działało poprawnie i było proste do zrobienia. Taki zestaw chyba jest najlepszy do rozpoczęcia przygody z USB.

Reply to
Grzegorz Niemirowski

a jaką dokumentację radziłbyś zgłębić? chodzi o początki, ta książka Daniluka może i dobra, ale koleś zupełnie pominął początki i nie wiadomo jak ugryźć to USB...

może Ktoś widział jakiś programik edukacyjny pokazujący obsługę jakiejś myszki czy klawiatury HID?

Reply to
identifikator: 20040501

a coś na temat pisania plików inf istnieje w internecie?

Reply to
identifikator: 20040501

ale czy windows nie burzył się że wymagany jest sterownik po podłączeniu tego ustrojstwa do PC?

Reply to
identifikator: 20040501

lameriada totalna, ale jeszcze jedno, ja nie piszę w windows, ale co się da to piszę w borland c 5.5 tym darmowym, czy w tym pakiecie są zaimplementowane funkcje które dostarczane są z winusb? czy trzeba najnowszy visual studio? a może wystarczy ten darmowy express edition?

Reply to
identifikator: 20040501

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Bo USB jest skomplikowane i drogie (bo 1. jest skomplikowane więc projektowanie urządzenia pochłania dużo czasu, od strony PC też; 2. mikrokontrolery z USB są droższe niż bez). Zauważ, że dużo urządzeń na USB to tak naprawdę wirtualne porty szeregowe na FT232. Po prostu łatwiej jest wsadzić scalaczka od FTDI i traktować urządzenie jak stary dobry port szeregowy niż wchodzić w temat USB.

Ale na jaką platformę? Do STM32 ST daje bibliotekę USB i tam są przykłady. Na AVR jest LUFA i też sporo przykładów. Tak samo V-USB ma też przykłady.

Reply to
Grzegorz Niemirowski

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Oczywiście, Google nie działa? Co do WinUSB to na stronach Microsoftu jest opisany plik dla tego sterownika. Co do pisania inf dla własnego sterownika to temat jest poruszony tutaj:

formatting link

Reply to
Grzegorz Niemirowski

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Czytaj ze zrozumieniem, bo wyciąłeś fragment, który odpowiada na to pytanie. No chyba, że zrobiłem za duży skrót myślowy i było to niejasno napisane... Jeśli w kodzie mikrokontrolera odpowiedzialnym za enumerację urządzenia umieścisz deskryptory WinUSB, to Windows sam sobie znajdzie sterownik i nie będzie o nic pytać. Jak nie umieścisz, to wtedy tak, będzie się burzyć i musisz mu wskazać plik inf. Ten plik jest na stronach Microsoftu i wystarczy go skopiować, oczywiście podmieniając VID i PID. No i jak to jest XP to jeszcze sam plik sterownika musisz podrzucić. Vista i 7 już mają WinUSB.

Reply to
Grzegorz Niemirowski

identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):

Zanim zapytasz, zobacz dokumentację. Przykładowo:

formatting link
te funkcje Microsoftu mają na dole swojej dokumentacji akapit Requirements i tam masz podany plik nagłówkowy (tutaj Setupapi.h) dla kompilatora oraz bibliotekę dla linkera (tutaj Setupapi.lib). Zobacz, czy masz takie pliki na dysku. Natomiast jak je Microsoft dystrybuuje to Ci nie powiem. Podejrzewam, że jeśli Borland ich nie ma, to na 99,99% będą w Windows SDK, które sobie można ściągnąć ze stron MS i podpiąć do Borlanda. Tak, że nie ma znaczenia jaki masz kompilator i nie musisz koniecznie instalować Visual Studio. A co do Express to tak, wystarczy. Natomiast jeśli chodzi o inne systemy to niestety nie pomogę, na Linuksie miałem do czynienia tylko z portem szeregowym.

Reply to
Grzegorz Niemirowski

dzięki wielgachne, sporo mi wyjaśniłeś.

zagłębię się teraz w opisy, nie wyglądają źle, sporo dokumentacji... jak przetrawię to jeszcze popytam, dzięki

Reply to
identifikator: 20040501

about WinUSB...

co to jest ten co-installers?

Reply to
identifikator: 20040501

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.