chodzi mi o programową realizację obsługi USB w mikroprocesorach, jak to się fachowo nazywa jednym wyrazem?
- posted
12 years ago
chodzi mi o programową realizację obsługi USB w mikroprocesorach, jak to się fachowo nazywa jednym wyrazem?
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.
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.
identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):
Chyba nie ma takiego sloganu. Jak już to software-based albo software-only.
dzięki, a jak to ugryźć od strony PC?
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?
tak, ale na wbudowanych sterownikach np. hid i (kosmos) mass storage...
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.
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?
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.
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?
a coś na temat pisania plików inf istnieje w internecie?
ale czy windows nie burzył się że wymagany jest sterownik po podłączeniu tego ustrojstwa do PC?
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?
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.
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:
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.
identifikator: 20040501 snipped-for-privacy@go2.pl napisał(a):
Zanim zapytasz, zobacz dokumentację. Przykładowo:
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
about WinUSB...
co to jest ten co-installers?
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.