Interfejs USB OTG. Połączenie peer-to-peer za pomocą USB

Interfejs USB OTG. Połączenie peer-to-peer za pomocą USB
Pobierz PDF Download icon
Do interfejsu USB wszyscy użytkownicy komputerów PC (i nie tylko) zdążyli się przyzwyczaić. Magistrala USB jest z punktu widzenia użytkownika bardzo wygodna, bo pozwala na łatwe dołączenie urządzeń do komputera na zasadzie plug and play. System operacyjny Windows zawiera sterowniki najbardziej popularnych peryferii USB, a proces wykrywania i instalacji niezbędnego oprogramowania przebiega automatycznie.
66 ELEKTRONIKA PRAKTYCZNA 9/2009 notatnik konstruktora 8 bitowe. Są one teraz często wyposażane w sprzętowe układy interfejsowe wspomaga- jące wymianę informacji z hostem. Błyskawiczny rozwój wydajności mikro- kontrolerów połączony ze spadkiem cen spo- wodował, że konstruktorzy zaczęli rozważać użycie magistrali USB w systemach wbudo- wanych (embedded), ale bez udziału kompu- tera. Konieczne stało się wyposażenie takich systemów w funkcje hosta, czyli takie, które w klasycznym układzie wykonywał kompu- ter. Do urządzenia z  zaimplementowanymi funkcjami hosta można by było podłączać Połączenie peer-to-peer za pomocą USB Interfejs USB OTG Do interfejsu USB wszyscy użytkownicy komputerów PC (i  nie tylko) zdążyli się przyzwyczaić. Magistrala USB jest z  punktu widzenia użytkownika bardzo wygodna, bo pozwala na łatwe dołączenie urządzeń do komputera na zasadzie plug and play. System operacyjny Windows zawiera sterowniki najbardziej popularnych peryferii USB, a  proces wykrywania i  instalacji niezbędnego oprogramowania przebiega automatycznie. Magistrala USB pracuje w  konfiguracji master ?slave. Masterem (hostem) jest naj- częściej komputer, a  dołączane urządzenia peryferyjne są układami slave. Komputer ma olbrzymie zasoby (pamięć, wydajny proce- sor) i  implementacja funkcji hosta nie jest problemem. Z punktu widzenia elektronika, który ma dołączyć peryferyjne urządzenie mikroprocesorowe do komputera przez USB, taka sytuacja jest dość wygodna. Obsługa protokołu komunikacyjnego USB przez ukła- dy peryferyjne nie wymaga dużych zasobów i może być wykonywana nawet przez układy urządzenia peryferyjne na przykład drukar- ki, klawiatury, czy pamięci zewnętrzne (np. pendrive). Możliwe byłoby też wykonanie połączenia pomiędzy dwoma systemami mi- kroprocesorowymi za pomocą złącza USB. Klasyczne mechanizmy, którymi dysponuje host umożliwiają podłączenie i obsługę jed- noczesnej wymiany informacji z  wieloma urządzeniami. Początkowo systemy wbudo- wane z interfejsem USB, pełniące rolę hosta, wyposażane były we wszystkie funkcje, któ- re spełnia komputer. Z czasem, dla systemów zbudowanych w oparciu o mikrokontrolery, które z natury maja ograniczoną ilość pamię- ci i możliwości sprzętowe, ale też i inne wy- magania, zaprojektowano odmienny sposób wymiany informacji z  użyciem USB, który nazwano USB OTG (On The Go). Pozwala on komunikować się urządzeniom w  standar- dzie USB bez udziału komputera pełniącego funkcję hosta. Za pomocą złącza USB OTG można połączyć ze sobą tylko dwa urządze- 67ELEKTRONIKA PRAKTYCZNA 9/2009 Połączenie peer-to-peer za pomocą USB ści 256 B. Bufor może być zapisywany i od- czytywany przez moduł USB bez konieczno- ści użycia rdzenia mikrokontrolera ? dostęp do niego może mieć z jednej strony moduł USB, a drugiej strony mikrokontroler. Taki i podobne rozwiązania są stosowa- ne po to, aby stosunkowo wolne 8-bitowe mikrokontrolery mogły przesyłać dane po magistrali USB w trybie full speed. Interfejs USB OTG musi być uzupełniony o układy pozwalające pracować mu zarówno jako host, jak i  układ peryferyjny. Pierwszą rzeczą o którą trzeba zadbać jest układ zasila- nia. Układ peryferyjny jest odbiornikiem zasi- lanym napięciem VBUS, a  host jest źródłem napięcia VBUS. Wewnętrzne układy interfejsu OTG muszą przełączać linię VBUS zależnie od realizowanej funkcji. Ponieważ przełączanie napięcia zasilającego musi się odbywać tak szybko, jak to tylko możliwe, to stosowane są układy przeładowywania pojemności podłą- czonych do linii zasilającej VBUS. W  układzie peryferyjnym do linii da- nych D+ lub D- podłączane są rezystory podciągające. W  hoście obie linie danych podłącza się przez rezystory 15 kV do masy. I znowu interfejs OTG musi mieć mechani- zmy przełączania rezystorów linii danych tak, aby interfejs mógł być zarówno hostem jak i układem peryferyjnym. Na rys. 3 poka- zano ogólną ideę interfejsu USB OTG z me- chanizmami przełączania napięcia zasilania i rezystorów podłączanych do linii danych. Zależnie od wykonywanej funkcji układ ste- rujący załącza lub rozłącza klucze sterujące zasilaniem i rezystorami dołączanymi do li- nii danych. Rys. 1. Układ peryferyjny USB Rys. 2. Moduł peryferyjny USB na przykładzie mikrokontrolera PIC18F4550 sygnalizowania hostowi prędkości transmisji możliwej do osiągnięcia przez układ peryfe- ryjny. Jeżeli rezystor jest podłączony do linii D+, to układ pracuje prędkością full speed, a jeżeli do linii D?, to z prędkością low speed. Zabezpieczenie ESD chroni interfejs przed uszkodzeniami w  trakcie włączania i  wyłą- czania urządzeń będących pod napięciem. Jako przykład praktycznej realiza- cji interfejsu USB jest na rys.  2 pokazano moduł USB 8-bitowego mikrokontrolera PIC18F4550. Może on mieć opcjonalne pod- ciąganie linii danych do plusa (sygnalizacja prędkości transferu danych) i  chociaż ma wbudowany transceiver, to istnieje tez moż- liwość dołączenia zewnętrznego transce- ivera, aby można było w razie konieczności zastosować na przykład izolację galwaniczną interfejsu. Mikrokontroler ma rozbudowany układ generowania zegara taktującego moduł USB, oraz specjalny bufor RAM o pojemno- nia (peer to peer), a  protokoły obsługujące funkcję hosta są inne, niż w  klasycznym USB. Bardzo ważną cechą USB OTG jest to, że urządzenie w nie wyposażone może speł- niać funkcję hosta, ale też można go przełą- czyć w tryb pracy urządzenia peryferyjnego USB. Możliwości tak zaprojektowanego in- terfejsu są o wiele bardziej dostosowane do potrzeb systemów wbudowanych. Podwójna rola hosta i urządzenia peryfe- ryjnego nakłada na warstwę sprzętową inter- fejsu szczególne wymagania. Na rys. 1 poka- zano układy interfejsu USB pracującego jako peryferyjny. Mikrokontroler zasilany jest napięciem +3,3 V z wbudowanego stabiliza- tora zasilanego napięciem +5 V z magistrali (VBUS). Różnicowy sygnał danych D+ i D? przez rezystory 27 V podawany jest na wej- ście/wyjście dwukierunkowego transcivera USB. Rezystor 1,5 kV musi być podłączony do jednej z linii danych. Jest to sposób za- 68 ELEKTRONIKA PRAKTYCZNA 9/2009 notatnik konstruktora Na rys.  4 pokazano schemat blokowy in- terfejsu USB OTG wbudowanego w 32-bitowe mikrokontrolery PIC32 firmy Microchip. Tran- zystory sterowane sygnałami SRP Charge i SRP Discharge ładują lub rozładowują pojemności na linii zasilającej VBUS. Sygnały Full Speed Pull-up i  Low Speed Pull-up sterują podciąga- niem linii danych, kiedy interfejs pracuje jako układ peryferyjny USB. Analogicznie sygnał Host Pull-down powoduje dołączenie rezysto- rów 15 kV do masy. Zobaczymy teraz jak interfejs pracuje jako host OTG . Wiemy że, na doprowadzeniu VBUS musi się pojawić napięcie zasilania, a pomię- dzy linią danych i masą podłączone rezystory 15 kV. Oprócz tej koniecznej konfiguracji sprzę- towej host jako master musi wykonać sekwen- cję inicjalizacji, bo to on decyduje o tym, jak pakiety danych przesyłane są po magistrali. Urządzenia zewnętrzne mające w  magistrali status slave nie może samo nic wysłać na ma- gistralę. Urządzenie zewnętrzne odpowiada pa- kietem danych tylko na polecenie lub zapytanie przesłane przez hosta. W klasycznym USB inicjalizacja jest prowa- dzona według prostych zasad: host jest zawsze hostem, peryferie peryferiami. Żeby to rozróżnie- nie było jeszcze bardziej wyraźne mają one inne złącza. Host ma złącze płaskie typu A, a układy peryferyjne złącze typu B. Podwójna rola (host/ peryferia) jaką może speł- niać USB OTG wymaga stosowania mechanizmów negocjacji, w które wyposa- żono protokoły HNP i SRP. Wprowadzono też inny typ złączaminiUSB,z dodatko- wym piątym stykiem iden- tyfikacyjnym ID, nazywane miniAB. Orientacja kabla połączeniowego wymusza role urządzeń w  trakcie inicjalizacji ? rys. 5. Złącze, w którym przewód identyfi- kacji jest połączone z masą jest złączem domyślnego hosta. W  złączu od strony domyślnego urządzenia pe- ryferyjnego przewód iden- tyfikacji jest niepodłączony. Protokół HNP (Host Negotiation Protocol) wy- konuje sekwencję negocja- cji niezbędnej dla określe- nia, jakie funkcje hosta są niezbędne przy połącze- niu. Po zakończeniu nego- cjacji określane są też role urządzeń, to znaczy które jest hostem, a  które urzą- dzeniem peryferyjnym. Przypomnijmy, że sprzę- towa identyfikacja pokaza- na na rys.  5 określa tylko domyślne role zaraz po Rys. 3. Sprzętowy interfejs USB OTG Rys. 4. Moduł USB OTG mikrokontrolera PIC32 69ELEKTRONIKA PRAKTYCZNA 9/2009 Połączenie peer-to-peer za pomocą USB Rys. 6. Połączenie 2 telefonów złączem USB OTG Rys. 5. Sprzętowa konfiguracja host/peryferia USB OTG funkcje ograniczania pobieranej energii, co jest bardzo istotne dla urządzeń zasilanych bate- ryjnie. Jeżeli urządzenie A chce ograniczyć po- bór energii, to wyłącza zasilanie na linii VBUS i przechodzi w stan ograniczenia pobory mocy (uśpienia). Urządzenie B wykrywa to i również przechodzi w stan uśpienia. Jednocześnie koń- czona jest sesja wymiany informacji. Na rys. 6 pokazano połączenie dwóch te- lefonów komórkowych za pomocą USB OTG. Telefon A z racji sprzętowej konfiguracji złą- cza, dostarcza napięcia zasilającego magistralę. Jeżeli oba telefony nie maja potrzeby wymia- ny informacji, to napięcie na VBUS jest wyłą- czone. Ale w momencie, kiedy telefon B chce wymienić informację z  telefonem A, to SRP wymusza pulsowanie napięcia na linii danych D+, a potem na VBUS. Powoduje to, że telefon A jest wybudzany ze stanu uśpienia, dołącza swoje źródło zasilania do linii VBUS i rozpo- czyna sesję wymiany informacji. SRP spełnia też inne funkcje, niż te opisa- ne w prostym przykładzie z rys. 6. Na przykład przed włączeniem pulsowania na VBUS układ związany z SRP telefonu B musi zmierzyć na- pięcie na tej linii żeby się upewnić czy nie jest aktywne przesyłanie danych. Poza tym SRP wy- krywa czy układ jest dołączony do innego ukła- du USB OTG, czy do klasycznego komputera. Tomasz Jabłoński, EP tomasz.jablonski@ep.com.pl cjalizacji trzeba by urządzenie B (domyślne peryferia) pozwoliło urządzeniu A (domyślny host) na wystawienie napięcia na VBUS. Co ciekawe, nawet kiedy A zostanie przełączone na funkcje peryferii przez HNP, to nadal może dostarczć napięcia VBUS podczas wymiany informacji przez urządzenia. SRP wpiera też połączeniu urządzeń. Jeżeli jest to konieczne, to HNP może je zamienić. Jest to bardzo istotna cecha USB OTG. Drugi protokół to SRP (Session Request Protocol). SRP zarządza napięciem zasilają- cym na linii VBUS. Ponieważ oba urządzenia USB OTG mogą być hostami, to w trakcie ini- R E K L A M A
Artykuł ukazał się w
Wrzesień 2009
DO POBRANIA
Pobierz PDF Download icon
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio wrzesień 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje wrzesień 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich sierpień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów