Interfejs USB OTG. Połączenie peer-to-peer za pomocą USB
Wtorek, 01 Wrzesień 2009
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
Zobacz więcej w kategorii Notatnik konstruktora