2009-02-17 12 views
7

Próbuję połączyć się z jednym urządzeniem USB za pomocą portu hosta USB w procesorze Atmel. Mam wbudowany system z ograniczoną pamięcią i bez systemu operacyjnego. Chcę zaimplementować prosty dedykowany host do połączenia z jednym urządzeniem USB slave.Prosty host hosta USB

Czy każdy może prowadzić mnie do prostej implementacji hosta USB?

Procesor to Atmel AT91SAM9261S.

Odpowiedz

1

Po pierwsze, jeśli dobrze pamiętam, AT91SAM9261S ma na pokładzie OHCI usb controller i musisz zaimplementować co najmniej prosty sterownik kontrolera hosta (możesz zajrzeć do implementacji Linuksa). W zależności od rodzaju transferu, z którego będzie korzystać urządzenie, może nie być zbyt trudne - bardzo trudne :) Nie ma trywialnego sposobu na zaimplementowanie stosu USB. Po zainstalowaniu sterownika kontrolera należy zachować ostrożność w sekcji wyliczeniowej urządzenia USB. Zapoznaj się z rozdziałem 9 z USB spec. I dopiero potem możesz rozpocząć wdrażanie logiki urządzenia.

Dla uproszczonego użycia istnieje wiele kodów, które można pominąć, ale bez dobrego tła USB trudno jest zdecydować, co jest istotne, a co nie.

W każdym przypadku, gdy szukasz komercyjnego rozwiązania, możesz je podać pod adresem my company.

0

To byłoby o wiele łatwiejsze, gdyby urządzenie nie musiało być hostem: -P, ponieważ Atmel udostępnia przykładowy kod źródłowy dla urządzeń USB. Gdybym był tobą, zaglądałbym do jednego z RTOS-ów, które kocha USB na stronie Atmel's AT91SAM third party, co może pociągać za sobą stos USB z jungo, jak sugeruje Ilya.

Jeśli napiszesz własny sterownik OHCI, libusb może być pomocny jako implementacja wyższych warstw stosu USB.

1

Użyłem stosu RTUSB-32 od On-Time. Jest to niewielki drukowany stos, który można łatwo zintegrować z naszym środowiskiem, a dokumentacja jest dobra. Ładnie wymieniają potrzebne wsparcie, tak aby był całkowicie neutralny dla platformy i systemu operacyjnego i ma stosunkowo niewielką liczbę haczyków, które trzeba mu zapewnić - tj.: Jest dobrze obudowany.

Ponieważ dostaniesz całe źródło, przekonasz się, że kod nie jest najlepiej skonstruowanym kodem na świecie, z pewnością, ale można go odszyfrować bez dużej ilości pracy, jeśli zajdzie taka potrzeba. W każdym razie zasadniczo "po prostu działa" bez problemu. Od kilku lat uruchamiamy go w niektórych produktach i mamy do czynienia tylko z jednym problemem ze zgodnością ze stosem, w którym nie całkiem dobrze się dzieje, gdy auto-odkrycie jest w porządku z pewnym typem koncentratora USB 2.0. Wysłaliśmy im próbkę koncentratora i mieli łatkę na to w ciągu kilku dni. Trudno to pokonać. Ogólnie rzecz biorąc, uważam, że jest to dobra wartość i na pewno bije siedzenie, aby napisać rzecz od zera.

Powiązane problemy