Uniwersalna magistrala szeregowa USB



Podobne dokumenty
Magistrala USB 1. WPROWADZENIE

Katedra Metrologii i Systemów Elektronicznych. Interfejs USB

Magistrale systemowe: Magistrala PCI

Magistrala LIN

USB. Universal Serial Bus OPRACOWAŁ: TOMASZ KARLA

USB - Universal Serial Bus

Architektura komputerów

Standard transmisji równoległej LPT Centronics

Układy transmisji przewodowej. na przykładzie USB

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

Przesyłania danych przez protokół TCP/IP

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Systemy wbudowane - wykład 7

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

Mikroprocesor Operacje wejścia / wyjścia

!!" % & $ ( # # ( ( # ( ( TalentowiSKO talenty dodajemy, mnoīymy, potċgujemy. TalentowiSKO@bankbps.pl tel TalentowiSKO.

Zastosowania mikrokontrolerów w przemyśle

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

KONWERTER INTERFEJSÓW USB/RS-232. Typu PD12. Instrukcja obs³ugi

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

interfejs szeregowy wyświetlaczy do systemów PLC

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Organizacja typowego mikroprocesora

KONWERTER INTERFEJSÓW USB/RS-485. Typu PD10. Instrukcja obs³ugi

Współpraca procesora z urządzeniami peryferyjnymi

Protokół CAN-bus PKP.

Architektura komputerów. Układy wejścia-wyjścia komputera

Interfejsy szeregowe. Dariusz Chaberski

1. Warstwa fizyczna. 2. Organizacja transmisji.

Współpraca procesora z urządzeniami peryferyjnymi

USB. Uniwersalny interfejs szeregowy

KONCENTRATOR DANYCH Z PROTOKO EM MODBUS. Typu PD x 94 x 58 mm INSTRUKCJA OBS UGI

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

GRM-10 - APLIKACJA PC

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Architektura komputerów

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Protokół CAN-bus PKP.

Sieci komputerowe Warstwa transportowa

Instrukcja obsługi czytnika MM-R32

Sieci komputerowe - warstwa fizyczna

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Wykład 4. Interfejsy USB, FireWire

Pomoc dla użytkowników systemu asix 6. Strategia buforowa

KONWERTER RS-485/CAN. Typu PD7 INSTRUKCJA OBS UGI

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

1 Moduł Neuronu Cyfrowego SM

Klient-Serwer Komunikacja przy pomocy gniazd

Działanie komputera i sieci komputerowej.

Technika Mikroprocesorowa

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

asix5 Podręcznik użytkownika Strategia buforowa

Komunikacja w mikrokontrolerach Laboratorium

TECHNOLOGIE SIECI LAN

Rejestratory Sił, Naprężeń.

INSTRUKCJA UŻYTKOWNIKA MPCC

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Koncentrator USB-4xRS (HUB USB-4xRS)

MAGISTRALA MODBUS W SIŁOWNIKU XSM Opis sterowania

Wstęp Architektura... 13

! ' #0! 1 2 3# #"!#""#

Problematyka sieci miejscowej LIN

Architektura komputerów

_PL_ PA16000D INSTRUKCJA OBSŁUGI

Paweł MOROZ Politechnika Śląska, Instytut Informatyki

MAGISTRALA CAN STRUKTURA RAMKI CAN

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Sterownik przekaźników S4P-01

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Układy wejścia/wyjścia

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Warstwy i funkcje modelu ISO/OSI

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

SYSTEM E G S MODUŁ ML/A-1m wersja V32.1

Hardware mikrokontrolera X51

organizacja procesora 8086

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Adres rejestru. szesnastkowo. Typ zmiennej. Numer funkcji Modbus. Opis zmiennej. (dziesiętnie)

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Obsługa kart pamięci Flash za pomocą mikrokontrolerów, część 1

Interfejsy systemów pomiarowych

SmartDRIVE protokół transmisji szeregowej RS-485

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Konfiguracja parametrów pozycjonowania GPS /5

Wbudowane układy komunikacyjne cz. 1 Wykład 10

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

STEROWNIK ŚWIATEŁ i SZLABANÓW SWS-4/485K/UK

PROTOKÓŁ MQTT (uzupełnienie do instrukcji obsługi miernika ND30)

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Transkrypt:

Systemy komputerowe Uniwersalna magistrala szeregowa USB jako propozycja standardowego portu szeregowego w systemach komputerowych. Magistrala um!" #$ $ % & $'!! - do 1,5 () * *! + * *!*+$*!*,$*%-! * '!+ $* $*! #.!* &/ () $*$*!'* #.!* * we- * +' *! ' '! $ 0*! #!" $*% ' 1!" rozbudowy podsta '$ ' # ' ## ' #1$! komputerów osobistych. 2! '! '. * '$& standardowego dla komputerów osobistych, interfejsu przeznaczonego *! $* ' *! '.! 1!!" - 1#! '! '*!* & ' # $*% ' 1!"& *!.! # $*! *.!-.! 31 & '#!"& ' '!'* * 4 '$*! $ * * Universal Serial Bus Specification - Revision 1.156.7& firmowa!!" '$! $*% #'$!" telekomunikacyjnych: Compaq, Intel, Microsoft i NEC. W dokumencie ' 1! $ $# '*!!" ' $ $*% -wy oraz opis konstrukcji i oprogramowan# 0'!" #.!* () ' # $*%' 1!"4 $#$ ' # #'$!" $*% per 1!"& $ *!* ** ' #.! transmisji danych, a na jej tle zaznaczono obszar (do 12 Mbit/s) % 8# + % $. #.!!" 9 ' #.!" #.! # '$*'*!!"! & $* ' 1 $*!"!*!" 1

TRANSMISJA WOLNA 10-100 kbit/s % sieci telekomunikacyjne, &'("$ skompresowane wideo. ZASTOSOWANIE Klawiatura, mysz,!"#$ manipulatory, rejestry konfiguracji monitora. )$ centrale PBX, &)*+"$ " 500 kbit/s - 10 Mbit/s BARDZO SZYBKA &'! # *& '! # 25-500 Mbit/s Rysunek 19 ' % 4 '! $ #* '!*!: magistrali i przebiegu transmisji danych,!"$*% $& # -! * '!& # # **! * & $ #'$! '$ * *! $*niami. Komputer kontroluje ' $*% - $* $ #$ ' magistrali tylko w wyniku uzyskania zezwolenia od komputera macierzystego. Ponadto komputer macierzysty sprawuje nadzór nad!*#1$!* W specyfi#! $ & '* #'$! $* ' 1 * '!" '$ *$*! $!! ' ;<! "!" - 1! przedstawiono ws' $# '*!!"&!! '' $!" ' ' $*! 1$#! sposób w jaki programy wykonywane na komputerze macierzystym $*1$#!'!"'$* #! 2

,-./% 01%20% 0 2 '. #!" #. % #&!" ' *!!"! $.!: Bajt synchronizacji (SYNC Field) - zakodowana NRZI sekwencja $ #%! #*& ''*! # '#!" ' * 2!"! =4> # $#.!!" *!!" informacj Cykliczna kontrola nadmiarowa (CRC = Cyclic Redundancy Check) - &!*$ '!" ' $! '#$& # $! #%!$ '#$ *$*! '! ' $ $ # $* # ''.!1!! Funkcja (Function) 1$#! ' ' ' *! $* 3!4# &"# (Host Controller) - kontroler magistrali USB; $*! ' #'$! $# 1*' Identyfikator pakietu (PID = Packet ID) -. ' '!*#$'#$!"*!# ''#$ Klient (Client) - $*! #'$! ' $ # &# ' # '' #! ' $!" ' $* wykonawczym a komputerem macierzystym. W systemie USB program typu klient jest, po stronie komputera macierzystego, ostatecznym!* $!*!" '!" * 2 klient *$ *!.+ '$# #%! $*$! &"$*!#$ $ $' adresowej. Kod odwrotny bez powrotu do zera (NRZI = non-return-to-zero inverted) - # ' *! $#*+& '! & ' '$!" #!"$*! -#4?3; #' ' # '$ ' '$ 0 ' **#*4?3; Komunikat (Message) - '+ 1! ' '#$!" 0& # # '* & * + ' $#$#!"!"+!" +$*! W tym trybie pierwsza w sekwencji jest operacja ustawiania, za '.! # '$# #%! $'!"# #$#$ '!" #! #%! #$# '$#$ #%! #!" operacji. Kontrola sekwencji pakietów danych (Data Toggles) - mechanizm # $*! '.+ '!" '!" '# danych. Polega '$.! 1# 2;0 0@9@A 0@9@!" '*!# $!" nadajniku i odbiorniku.!4# #&(' (PRE = Preamble) - ' #'$ '! '#& # '' * $*% 3

*!!" ' 2 #! '+ # '$ $*! # '! informacja. '! #!" $*% * +# $*%!"( + B'#% ##!'+ # '"#5 # (NAK = Negative Acknowledgment) - pakiet ' $* wykonawcze (nigdy przez komputer!!*! ##!'!!"!" $#.! Operacja (Transaction) - inicjowany przez komputer macierzysty cykl '1!9 ''! # USB ' $'&$ $$'#$!" $ $ $ ' #$#$ '! '' $!" Pakiet (Packet) - blok danych przygotowany do transmisji. Typowy '# #!" : 1! $*! ' danych), pola roboczego oraz bitów kontrolnych. 6() 7+""# (Buffer) - '+ $ *! #'!'!!"' $* " 6 (SOF = Start of Frame) - pakiet wysy ' komputer macierzysty co 1,00 ms ±0,05%; zawiera jedenastobitowy numer ramki. Potok (Pipe) - #! #& '.! # program - wykonywany na komputerze macierzystym - realizuje ''!" ' '$# #%! $*$ #! $1'!#'$ Potwierdzenie (ACK = Acknowledgment) - '# *! ' $!" ( + ' #'$! ' '! ;4 $ ' $*dpowiedzi na OUT. " 6 "7&! 6 &* (USBD = Universal Serial Bus Driver) -!.+ ' #'$! $$*! ' '$ klient # $*! '! $ # #$ $*% #!!" ' $ $b kilku sterowników magistrali USB. " 6 "7&! sterownika magistrali (HCD = Host Controller Driver) -!.+ ' #'$! # '.! '$ '#!!" '+ * B lub odwrotnie - wydzielenie danych roboczych z pakietów odebranych z magistrali USB. Przekaz izochroniczny (Isochronous Transfer) -!*!"! & $*! '!" *!!"!"!"'*%1$#!!u. Przekaz masowy (Bulk Transfer) - stosowany do asynchronicznego ' $!" '#!" * #.!* *#$ '' Przekaz przerwaniowy - (Interrupt Transfer) jeden ze sposobów '!" * C ' $*& # '$*&!$!$!!" #!" $ ' + #'$! # '!!" ' ' $ 4

& (Control Transfer) - asynchroniczna, inicjowana ' ' #'$! & *!.+ '$ 'B-'B ' # '!!" ' konfiguracji, komend i komunikatów stanu. "8"# (Endpoint) - wydzielona, jednoznacznie rozpoznawalna!.+ $*C!! $ B!" '!" * "8"# 7*""# (STALL = Endpoint Stalled) - pakiet z 1!* $* # '$#$ #%! *!! #'$!. Ramka (Frame) - '!$ #! '! & $*! '!&! '!*#$ <D - '!! # '!*#$ ' '! <D E'$! '# '!*#$ # <D wnych '!"!$- nominalnie co 1,00 ms ±0,05%. 68 (Stream) - #$# ''!" #!" ' #!* 9 (Device) - $* $ #! '*!#*.1$#!*' *!nymi do magistrali *$* #!#! 9 (Active Device) - $* *! &#' Wstawianie bitu (Bit Stuffing) - & '!*! '' ' 2FF #& ' *! 1#!!*$ ' ' #* wykrytej sekwencji 6 jedynek jednego zera. Wstawianie bitów jest przeprowadzane przed kodowaniem NRZI. /'"#5 (Token Packet) - '# *! 1! # op! + ' # ;4& <9! SETUP). Zerowanie (Reset) - sygnalizowane jest przez sprowadzenie, na co najmniej A&'!$!"!"0-0G' '$ A&7 H * ' $ *!zone do magistrali ale nie ma jeszcze przydzielonego adresu i ustalonej konfiguracji. / "8 ' (EOP = End of Packet) - sprowadzenie na #$'!$!"!"0-0G' poziomu 0,8 V, po czym na okres co najmniej jednego bitu magistrala '!" / '" ' (SOP = Start of Packet) - '.! $ '! & #! '!"!'#$ 3. ZARYS ORGANIZACJI SYSTEMU USB W syst '$ # # $ *! *!!" $*% 2! $ $*! ' #'$ $# '*!#'.*' 5

-. $*% $ * $* #! #! 2 '! #! $ + + '*!% I #!!.!* sterownika magistrali USB. :)'"!8 2' *! # #! $ #$! *! ' *! $*% #!!"&. '!" #! - ' + '*!% $ $ + *! $#$ * E #! '*!% $ *! '. $*: #! $ #! $* #! 4 $#$ '!" '*!% ' # '$#$ $* $'oziomy). Koncentrator Rysunek 2. Drzewiasta struktura magistrali USB. E!# & *!*! '. $* & #& # # * ' zasilania (VBu I40 danych (D+ i D- 8. $ +!" ' '.- #.!*()- $! # # ' # '! ## 0!" #.! '!" - do 1,5 Mbit/s -'$! $! #!"# #!" ( *! $*% '. *!!" 2 # $* + # B 6

M a k s y m a ln ie 5 m e tró w Rysunek 3. Kabel magistrali USB. V B u s D + D - G N D E & #!" $*!" #!" # & # $& #!&! $ #%!$ #%! # *! '$ @ 0!" $*% * ' $##& # & # ' ' '.!*! '$ 3.2 Kodowanie danych 0 * '# # * 4?3; non-return-to-zero inverted - odwrotny kod bez '$2#4?3;#!"$*! ' + '$!" - ' metodzie kodowania jedynka jest reprezentowana przez brak zmiany poziomu a zero prz'$##'# $#$ ' #;"# stan 0 1 1 0 1 0 1 0 0 0 kodowane NRZI stan Rysunek 4E*4?3;!" # * #.!!*!!"!*!!" >* & jeszcze przed zakodowaniem NRZI, jest modyfikowany przez wstawianie zera po # # #!J #(!"+$# ' 2FF w odbiorniku przed zablokowaniem. W odbiorniku, po rozkodowaniu!"&*$$ 8!!.&'' # 4?3;& '!*#$ # pakietu danych, zostaje doklejony bajt synchronizacji SYNC #!,#%! #* 4 $#$ / $ $ - ' ##!J # *' '!*#$'#$!" < $!"! '* #* tej sekwencji. 7

po doklejeniu bajtu synchronizacji 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 po wstawieniu bitu bajt synchronizacji 6 jedynek po zakodowaniu NRZI Rysunek 5>*'$#$4?3; 4 #%!$ # '#$ *!!# #%!'#$K<2 $#, 3.3 Elektryczna reprezentacja bitów Pr *!"'*'!: normalna polaryzacja J! #-'!!0G- (D-) > 200 mv, odwrócona polaryzacja K!-'!! (D+) - (D-) < -200 mv. 4'! a jednej z tych linii, w ustalonym stanie logicznym! $ #&$+' '$ 0,8 V. 2!*#'#$<2 $ $! '! K (normalna polaryzacja oznaczana jest symbolem J). Jest to pierwszy bit bajtu synchronizacji. D+ D- K J K J K J K J K V SS Rysunek 62!*#!" E! # '#$ # $ '*!& #es $ & '! $!"!" 0-0G ' '$ A&7 H!# #%! '#$ - EOP). Po tym na okres co najmniej jednego bitu nadajnik przechodzi w stan wysokiej '! 8

V SS Rysunek 7. Koniec transmisji na liniach magistrali USB. <3=21=0 99> 4 # $! #: $* - $* *! #'$! '.!#la USB; program klient - ' **! *!" ' * ' # #'$ macierzystym; oprogramowanie systemowe USB -'*! '! ' 0 ' $ rali) i HCD '$#C sterownik magistrali USB -$*!'#'$ $# 1*' 2 $#$ ' '* ' # $ Komputer (klient) Realizowana funkcja Oprogramowanie systemowe logiczne Sterownik USB Interfejs USB Rysunek 8I# $ 2*#$*' # $ *'!"!"4*'!"!" 9

(warstwa fizyczna) zajmuje interfejs magistrali, który odbiera i nadaje pakiety danych. D! + '*!% ' $* $ #'$! $#$ * Rysunek 9D!#1$!$*% $ 8. # # 1$#!!" $*% #!!" ' klawiatura i manipulator kulowy) - zostanie umieszczonych w jednej obudowie, to fizyczn* +$* 8# * $ #!" *! #! ' *! * * 2 #'$! # $* widziane tak sa # #! *! # # $* #! Rysunek 10. Logiczna konfiguracja systemu USB. 10

-.#!! '' $!" ' $*! *! ' ' $ - USBD (ang. Universal Serial Bus Driver). 2!.! 1!! '*!% ' $* #'$ macierzysty - w warstwie logicznej - *! #!"# # *! '. '$ -wy. Dotyczy $*% #!!"##! 8# #'$!!#! "+ 1! #1$! $ ($ + ' $.+ *! #! - # przypadku oprogramowanie $ *! + # $*! *! '.!*!#! klient klient klient funkcja funkcja funkcja Rysunek 11. Funkcjonalna konfiguracja systemu USB. - 1$#! * #! ' 1$#!* $* #! $*! programem klient. O ile zarówno w warstwie fizycznej jak i! $ + $ $#$ & 1$#! '$#$! + ' # '$ '$ klient '*$ 1$#!*$'%$* #! @!$ +$* #!&*!' przestrzeni adresowej, program klient$# +'.! USBD -!"*! # ' '$ $?%/=00@ ' $ *!.! ' #'$! $* < ''!" decyduje program klient $*! funkcji ' ' $* #!?' ''!" ' $1 '! #'$! '$# #%!!"$*$?"8"# 2$# #%! *&! ' *!.!* $* E $* *! 11

+ ' #!" '$##%!!"2#'$! #$#$ $* '.!!"'$##%!!" E '$# #%! *!"# #& #* ' +$*!.!' ' klient: '!*' C wymagania co do pasma transmisji danych; num'$#$#%!c '! # '#! # + $ +C rodzaj transmisji; #$#'!" 2$# #%! * #1$ 0!$ '* #. * 'ne dla komputera macierzystego. 3 * # $*$ *! $ + '$# #%! $ -. '.!!" '$#! '! $*% logicznych i ustalana ich konfiguracja. P$# #%! $ * #1$ '. ' *!$ $* *!$ * #!&. '! '!" ' 1$#!& * + # '$# #%! * *! #.! ' danych - do 1,5 Mbit/s) poza wymaganym obligatoryjnie punktem #%! $ * + # # '$# #%! 4 $*!" # $*!!" ' ' transmisji da!"! '$# #%!!" ' '##$#! 5.2 Potok @#! #& '.! # ' - wykonywany na komputerze macierzystym - $ ''!" ' $1 '! #'$ '$# #%! $*$ *! & '# 0 '' *! '# * $& # $!*!!"&$#$: $%-!*' #$#$C komunikat -'* C#* +' w obu kierunkach. - #! '#$&! $%! #$#& * '# # '. * * *.!!" poto#$ 3.+!" '* ' klient $* wykonawcze. 3'.!#$#* : '#$ $*! - wykorzystywanego przy ustalaniu 12

#1$! ' $ # $*% USB; n#$# $' *: przekazach izochronicznych - $*!!" '!" *!!"!" '*% 1$#!!$ '! 1 '#B#$C przekazach przerwaniowych - $ *!!" $* & 1#'$! '$C lub przekazach masowych -!" ' $!" '#!" * #.!* * #$ '' @ + $ '#& $*!!. $ + #1$ - # $*$! '$# #%! $ #1$ $! '. ' *!$ *!$ 9 ' '*! '# 2# & *! '#. & # ' '! '!"!" 1#! $ #1$! $* '# $*! 2 '# + # ' ' $*! '!* $*E$# ' *'#?:68 - ' '#$ $!" '$!* '# #.!# '$%!" '#$ ' kierunku a system ma prawo ' '$!+& * klienta * #! ' + '$# #%! # #$#$'' $$!" 5.4 Komunikat ;! '$# #%! ' '#& # 'rowadzona #$# 4' #'$! ' 'B& ' $ #$#$ ' * #!&'!" &'$#$#%!! 1! ''.! # '! 4$! ' system USB '*#: 'B& '! '!"& 'B - musi +!" &. # $*% ' 1!" '! * + '' ' # 0 * + ' $#$#!"!"+!" +$*! Oprogramowanie systemu USB sprawdza czy do tego samego punktu #%! # # # %!. -!" '$# #%! $ # 4 '$#$ #%! #+ # #$#$ '# $ '' #%! 8# ' '#$ *' #'$!.+!.#%!*! 13

??/''!#6A System USB ' $ #!"!!"!"!!" $*% ' 1!"! & ' ' '!"&$!"!"'2 #'$!!"!!" "!" #$*''!": program klient - *!.! #$#$ '' $ B $!!*!" - $ '!$ $$!"*!'$ C ' $ 0 -!" ugi ;?2 ' $*! '!$ '$$# C ' $ # L>0 - za jego '.! '$ '#!!"!" '+ *''!!" * (lub odwrotnie -&. ' *'!*& sterownik magistrali - $$!"!" * #$*! $* #!& ' transmisji, pakiety danych. klient USBD HCD lista operacji sterownik USB Rysunek 12E ' '# ''' *! ' '$ # # * > '! # '*! ' # E'$!erzysty wyznacza granice # *!!" '!"!$! &AA ±0,05%) pakiety otwarcia ramki SOF. 0& '#$*! ' ' klient * & ' * # '#! '!! $ * *$*! 1$ * ' # #<!#$*! # '! ' *.! ' ' # ''$ ##! ' # '$ $ # L>04!.!'.!#!"# 14

B%0>0%/0=0@ - *! '!": '# $*!C przekazy izochroniczne; przekazy przerwaniowe; przekazy masowe. B& 2# $*! * '+ & ' #'$ $* #! & '!% 1! #1$! $ $*4 '$'##'!& #!" # * ' # #$ '# 1!$*! Pierwszym z pakietów jest, # $* #!& 'B '! # + #. Po nim '$ # '# #$'#!"' #$#$<'! # #%! & '#&'# ''!!" 2# $*! & # ' #1$!& $ 1!$*!!"$*&'#* '$# #%! 2$# #%! #. # rozmiar porc!"&#' *+ $ + 3 *& $*% '*!!" '* #.!*& '!!" $*!!" + zadeklarowany maksymalny rozmiar 8, 16, 32 lub 64 bajtów. * *! *& '#!!" $*!!"& ' +! 7 - ' +!"'#* ' '# $*!!"!" 3 *!.+ # #& #! '$ o magistrali, '# $*!!" 3! ' ''$*!!"$: 8. ' '' '.!! # #*& '# # $* AM #& '! + # wprowadzenie przekazów masowych. 2# $*! & # ' + ' & + ' $. - w '! 8. '#$*!!"!&.!+ zarezerwowanym czasie, a w ramce jest czas nie wykorzystany przez przekazy izochroniczne lub przerwaniowe, to komputer! # + ' #!" '#$*!!" 4. '#$*!!" jest w toku -! wolnego czasu w ramce -!"!.! # '# 15

8. '# $*!*# $'$##%!!"& '' '$& *'#!" '$#.!!"! sterownika magistrali USB. 2# $*!& # *! '& ' + $'#.!* - # *! #$ '# $*! $* sam, dla nich rezerwowany, czas. 0 '+#$''#$$*! #. '$#$ #%! > ' $ '!".! $*% #$ *!!" #!* '# $*! F!&!*!!" #& '# $*!!" - ' 7!& ' ' #.! transmisji danych, do 28 i do 3 dla wolnej transmisji. Wynika to z ' ' 1$ # 8# # '#!! $ #'$! $ '+ *!! #! '# $*!!" # 2# $*! & ' #'$! do $* & '! $ '$*! # $ #'$!"! $ #+ ' 4'!# #$'!'!"$*!!" 4 #! '! ' $ $ 'zekazanie 1!''.!#%!'#$ E '#$*! $'!" $ $& '$# #%! + #'$& - # $! #'$! ' '! 'B41$'$##%! $ + '!!"' +!"'' $ 8. '$# #%! '! $ #%!!. '! '# $*! & $* powi $$*+ *! '# '*+ $ '#$ $*! 4 '! + ' ' #%! '' '#$ $*! 8#. #. '# ' #'$! $$ ' '$ *' & '$#$ '$#$ #%!& # + '1 &' '# jako przedwczesny. W systemie USB stosowane jest, dla ratowania danych w przypadku *' & ' '' '!" 1!"? '#!" * + ' ' # # $!!" 1# 9! ' '# '' # '+ ' 1! ' '#!'2# $*!*. *' * 8#!" ' '#$.!'.'' 1#! '#! smitowany. 16

6.2 Przekazy izochroniczne 9 '! + ' $* $*! *!" 2#!"! '# '*! $%!" # # jednokierunkowy. - sprecyzowany sposób kontroli przebiegu!" '!"!"! *& # $*! '#!"! & $ jedynie: ''B%'! & *!.+'' $!"'ku, '& ' #!$ $& '!" ' '#!'#$!" 2$# #%!!"#! '& * '! #1$! '#$!"!& 1! maksymal #.!'!!"'!"'# '#!" 0# '!" '#!+ A6 bajtów. 8. ' $&!.+ miejsca na ulokowanie potoku izochronicznego o zadanej maksymalnej #.! '!"&!" #1$! 2 #$*! #1$!.!& # ' '#$ '# $*!!"& ' #.! '!" '#! - #.+ '!" + '! '! '#!*! # #.! maksymalnej. 4 # '#$!"! ' ' '# # - '#$ *' # +&! # '#$!" '!" przekazu!"! * -. *! '# <D '!*# # - #+ '.. '# <D!# '#$!" ;1!!" + '# '$ klient w trybie przekazu $*! 3 ' '! '' $!" #&!.!+# /A!" '# '!!"!!" 8! teoretycznie maksymalna liczba potok!"!!" # * +$ 6.3 Przekazy przerwaniowe 2# ' ' * $*!$!$&!!" #!" $& ' + # '! danych. Potok przerwaniowy zapewnia: n'#!#!$$& ' ' '!". & #$# ' '#$&*! '#' 17

0' *#$# $%!" ' *! #'$! tego. 2!!" '!"!" ' $* $*!'* #.!*&# ## & +!J 0 $*%*!!"' ono ograniczone do 8 bajtów. Nie jest wymagane by #.+ '!" # # *.+ - # '!" $* + $$'# $8.!#$! $ # '#$ ' #.! ' danych, nie dochodzi do jego konfiguracji. W tym potoku nie ma.!' *! #.!'!" 8. '# ' *+ #* # '!!" ' + ' '# #.!# ## a. Jedynie ostatni '#*! #%!#!" +# 2$# #%!!"#! # '! #1$! '#$ ' ' 1! # '$ * # $*! ' ' * +.! '$ // & *!A// 2#'' $!"'!*! '# '!"&!!" $! ramce, do 1A, '#!" ' ' #.! 0 $*% *!!" '! ograniczona do 13 pakietów jednobajtowych. 6.4 Przekazy masowe 2# '. * $*!"& # ' * $ '!!" '$!* $*.+!$ ' potokom masowym: ' #!"#$ ''& ' ' '!". & #$# przypadkowe$&*! '#'&!!!" $ '$! 'B 2 '# $%!" #. normie formatu. Pole robocze dla danych w pakietach przekazów!" + # # 7& J& 6 $ J - #.+ '!" $ # *+ #.! - # '!" $* + $$'# $ 3 $ '!" * # + $* '!$*! '* #.!*!" 2'$.+ $! $ #!,.!"'#'#!" 18

C%12=1 910.0 2##$#! specyfikuje''!" #. 1!"*$*!'!!" # * #.!!*!!"!*!!"E '#'''1# '!!*$!"! =4> #%!!# #%! pakietu. SYNC -'"&)#;"# 0 0 0 0 0 0 0 1 i zakodowana NRZI SOP Rysunek 13. C*!"!=4> Bajt synchronizacji jest to zakodowana NRZI sekwencja siedmiu zer #%! #* 2!"! =4> '.! $ '!!# '!*#$ pakietu SOP). Bajt synchronizacji jest wykorzystywany do $#.!!" *!!" 1! <!"! * $ #!.! '#$ -!.! '!*#$ umieszczone jest pole identyfikatora PID. <!# #%!$'#$K<2 -!##%! '#$ 4# $ #! # '#$ '*! # $ '! $!"!" 0- i D+ ' '$ A&7 H '! #! $ przechodzi w stan wysokiej impedancji (stan j 7.1 Pakiety 0 * * '# 9 ' '# # 1#& '! #!"-' $! '#$* +$! $ 1!$*!&$'$#$#%! 2 1# 2;0 # '#! '! '. '!"! =4> 8 ' ' $ #!.! '#$ #! #$ #. *! '#$ $!!" m czterech bitów kontrolnych. LSb MSb PID 0 PID 1 PID 2 PID 3 PID 0 PID 1 PID 2 Rysunek 14. Pole identyfikatora PID. PID 3 3 #'$! # # $* * *'#$ 1#8. 19

# $!! # 1# * '! '# $ $# 2 '$# #%! ' +& # & '# #!" $t przystosowany. 2! '##* *' Tabela 1. Rodzaje pakietów. PID[3:0] Typ Nazwa Opis 0101 3'B SOF 2!*##C numer ramki. 0001 OUT 3'Btransmisji danych w kierunku komputer $*C' $! '#$$$ '$#$#%! 1001 IN 3'B!"#$#$ $* komputer; w polu roboczym '#$$$ '$#$#%!wego. 1101 SETUP 3'B'&#$#$ komputer $*&1! $*!C' $! '#$ $$'$#$ #%! 0011 Dane DATA0 Parzysty pakiet danych. 1011 DATA1 Nieparzysty pakiet danych. 0010 Od'B ACK 2$ pakietu danych. 1010 NAK Brak akceptacji odebranych danych lub #.! 1110 STALL 2$##%! # 1100 Specjalny PRE 4#' - ' komputer pakiet, którym poprzedza on '! $*% *!!"' - ' #.! ' # 4?3; Sklasyfikowano 10 rodzajów pakietów w czterech grupach: zapowiedzi, dane, odpowiedzi i pakiet specjalny. Kod grupy zapisany jest na!"!"!" 2;0N:AO 2# 1# #+# 9 ' '! # ' '$ kolejno: i. zapowiedzi (w kierunku komputer $*& ii.pakietu danych (w zadanym kierunku), iii.'#$#$'! '' $!" 20

2# ' * ' #'$!! $ '# '$#$ #%! 1! # '$ '!'!";4&<9! K92 #nana.! '#$ ' &!" '!"!$& '!*# # 2! #!" $*%!"$ '! - ' $! '#$ '!*#$ # $! jest $ 4$ * # ' '#!$ #.!,DD - # # $ * '!*#$ - '!" '#!" ' '# '$#$ #%! # $ $*enia USB 7!"! $$ '$#$ #%! $* + # J '$# #%!!" '. ' $ ' #$ *! # $* * $ -.! ) * '! ' *$ 2! pakietu danych liczy 0-A6 F! $ +!# 8 bitów 11 bitów 5 bitów PID numer ramki CRC5 '"6 8 bitów 7 bitów 4 bity 5 bitów PID adres p.k. CRC5 Pakiet zapowiedzi. 8 bitów 0-1023 bajtów 16 bitów PID DANE CRC16 Pakiet danych. 8 bitów PID Pakiet odpowiedzi. Rysunek 15D '# *'$*!' robocze). 7.2 Kontrola sekwencji pakietów danych E & ' * & * ' # # pakietów - '! '# ' ' ' * ' 0 # #! '#!" # *!" 1# 2;0 0@9@A 0@9@ '*!#& # # <# '*!# ' ' $ '#$!.! 1# 4# '*! #B# ' $ ' @>E < '*!# $* + ' $ <!" kontrolny nie obejmuje przekazów izochronicznych. 21

7.3 Cykliczna kontrola nadmiarowa 0.!!*$ ' # 4?3;& '!" ' $! '#$& any jest kod cyklicznej kontroli nadmiarowej CRC (ang. Cyclic Redundancy Check). #$ >?> $! * #%!$ '#$ ' $ $ # <'! ' #$ 4.!.+>?>#$&!"' $# ' + ' #! '# E >?>!#! #$! ' '#$'#%'!$#'!" - #! #$ ko wielomian ze '! # A $ 2 k-bitowa informacja jest # # '! # $ k! zakresu od x k 1 do x 0. 0! >?> ' # do ich ' #$ $ Ix). Ogólna zasada #& # 1! $! '$ $ # * #*!.+ ' wielomian generacyjny G(x). Odbiornik po odebraniu informacji z $* # *& '$ ' + * ' Ix 8. #$ ' &! *' * transmisji. @! #$ >?> ' $ #!" 0 + '!* $ '$ 4 '!*#$ '$ & $.!! #!"& ' # 0 *$*!! $ # # *'$*!'!: i. Pi &'!"!"&$ modulo 2 (funkcja EXOR) z bitem na najstarszej pozycji rejestru przesuwnego. ii.4' '$ * '! *'!' iii.8. # '! KP<? #$.+ rejestru sumowana jest modulo 2 z wielomianem generacyjnym. 2 #!' # $!"# #%!.!!*$ 2 '$ *! ' $ $ # '! *!'!!*! 9# *! $# #!*!" *!* $* # * 0!*$ & ' '.!$ $ >?>& rejestrze przesuwnym ##. #! - $# >?>: i. '!* $ # * >?>/ '!*!* '! pakietów zapowiedzi, 22

ii.*>?>j '#!" Wielomian$*! >?>/'+: G(x) = x 5 + x 2 + 1. <'*! $ / #! AAA 2 $ ''+AAA Suma kontrolna dla pakietów danych CRC16 jest generowana za '.! $: G(x) = x 16 + x 15 + x 2 + 1. - '#$ J '# 1000000000000101 a poprawna reszta to 1000000000001101. 7.4 Pakiety odpowiedzi 2# '*''!;1! ' '#$ ;1! + $ *. '# #%! #%! '#$ K<2 8# 'B+'!"'#w: Potwierdzenie ACK -'#*! ' $!" ( + ' #'$! ' '! ;4 $ ' $* ' na OUT. <'B 4@E - '# ' $*zenie #! ' #'$! 4@E + #! 1 ' '! <9 oznacza brak akceptacji odebranych danych lub podczas wykonywania operacji IN zamiast danych (w fazie transmisji danych) jako syg#$.! Punkt zablokowany STALL -'#1!*$* # '$#$ #%! *!! #'$! E'$! + tego typu pakietów. <'*#'$! & *#!'!;4& + '# ' @>E 8. #'$ uszkodzone dane - $! ' # '!+!" *.+ odebrania danych (np. z powodu braku miejsca w buforze). Tabela 2 /&!" pakiet danych 1"6'6"D ')A '"#5"6' TAK bez znaczenia $!& a potwierdzenia NIE TAK $!& potwierdzenia 23

NIE NIE ' $& @>E 4 'B '! ;4 $* '+ *! $*!"'4@E $9@FF Tabela 3 Odebrany pakiet zapowiedzi jest &!" Nadajnik punktu "8"# "& zablokowany 9 6"D#&!) danych '"#5 TAK bez znaczenia bez znaczenia NIE TAK bez znaczenia 9@FF NIE NIE TAK 4@E NIE NIE NIE 4 '#!" '! <9 $* #! '+' *!'& '# 4@E $ 9@FF $ + ' # 'i!& '#!" $# Tabela 4 /&!" pakiet danych Odbiornik zablokowany '#!"# "*";) pakietów 6"D ') danych Odpowied5 TAK bez zn. bez znaczenia bez zn. NIE TAK bez znaczenia bez zn. 9@FF NIE NIE TAK bez zn. @>E NIE NIE NIE TAK 4@E NIE NIE NIE NIE @>E 4# $* '*! #! ' '#ty!" ' * ' ' 8. $* '* #.+ '# $! potwierdza ich odbiór. <'! K92 '! * *! '$# $*!!" ; '$# #%! ' + tego typu operacje i nie $ + ' 2$# $*! ' $ '! K92 $ ' *+ '+!" $. * #! $!+ '!'+ ' 2'!" '! K92 + ' *'*9@FF $4@E 24

7.5 Sekwencje operacji E.+'! $'!" 7.5.1 & 2# $*! '! ' 1 '! $ (SETUP) prz#$*! '.! '#$!" 1! # $ #'$!"! $ #+ '2#!"'! 1#0@9@A stan ja zapowied SETUP dane DATA0 odpowied ACK wysy stan ja wysy Rysunek 16. Operacja $K92'$#$#%! stan ja zapowied IN dane DATA0/1 NAK STALL odpowied ACK stan ja Rysunek 17<'!! $;4'$#$#%! stan ja zapowied OUT dane DATA0/1 odpowied ACK NAK STALL stan ja Rysunek 18<'!'$<9'$#$#%! 25

Na'#!'!'#$$*!! '!! $ ;4 $ '$ <9!" 8. '# $*! '$* '!& # $* '# + w tym samym kierunku (same IN lub same OUT). 8. tadium potrzebna do przekazania porcja danych '#!& ' $ '$#$ #%!& #!'!"'#!& +* # #'#- 1'#$ $*!#%! '# '* ' ' #%!#*!" 2 '# ' + # # # '$#$#%! <* #! '#$ $*! '! ' '#$ 1!* ''.! #%!o przekazu (faza statusu). "! OUT (DATA1) OUT (DATA0) OUT (DATA0/1) #$ (DATA1) #$ (DATA1) #$ (DATA0) #$ (DATA0/1) OUT (DATA1)! #$ (DATA1) Rysunek 19#!'!'#$$*! D $$ & ''*! * 1 '!"& * #$#$ 9#! ' #! operacji OUT jest to pojedyncza operacja IN, a po operacjach IN pojedyncza operacja OUT. W tej operacji pakiet danych zawsze ma identyfikator DATA1. E '#$*! $'!" $ $& '$# #%! + #'$& (NAK, STALL). W takiej sytuacji komputer macierzysty powtarza '! 4 1 $ '$# #%! $ + '!!"' +!"'' $ E$#$ *!" $!: ##!'!#%! $#!&!. #$ '. #%! #! operacji. $*!* # '! ;1!* * *& # #'$ macier &' **!''!" - ' '#$ '# $*!!" '$ ' #'$! $ #$# $& $ 1!"& 26

#!#'!<98. #!'!#%! '. & 'B '! ;4 1 $$ $* '#!"$.! @ + #$# $& ' #%!$ #!! $*!!"& #'$! 1 $$ '#!" $.! 2# '!#* 1! Tabela 5! /'&& & Stan wykonania * '#!"$.! 1!" 9@FF 1!" 4@E w fazie statusu @>E w fazie statusu 9@FF w fazie statusu 4@E zadanie wykonane *'* $* 7.5.2 Przekaz izochroniczny - '#!"! '$ # 1 $ transmi 1 '!" 4 1 ' #$#$ $ - # ' '#!" * 1# 0@9@A <# # $ 1# pakietów z danymi. 2# '#!"!!" #! ' # '#!" $*& #. * ' '#$ '!*#$ # <D&'.*#!*.!'#$!"! stan ja zapowied IN dane DATA0 stan ja Rysunek 20. Izochroniczna operacja odczytu (IN). 27

stan ja zapowied OUT dane DATA0 stan ja Rysunek 21. Izochroniczna operacja zapisu (OUT). 7.5.3 Przekaz przerwaniowy 2# ' #* *! '!! $ ;4 4 'B '! ;4 $* + '#!"& + * 'B 4@E $ + # 9@FF 8. '$# #%! '# 1! ' ' #$ $ $* fazie transmisji danych odpowiada '# 4@E 3 # '$# #%! ' ' $ ' '# 9@FF 8. $* $ ' * 1!' '#!!" '! $ '#$ 'owiedzi IN. Poprawny odbiór pakietu danych komputer macierzysty potwierdza pakietem ACK. W ' '#$ *'!" potwierdzana. stan ja zapowied IN dane DATA0/1 NAK STALL odpowied ACK stan ja Rysunek 22!"''!przerwaniowej. 7.5.4 Przekaz masowy 2# # $* ' - *! '# zapowiedzi, danych i potwierdzenia - operacje IN i OUT takie jak te pokazane na rysunkach 17. i 18. 8. #'$!!"!& '#$ owego, + - 'B '! ;4 2$# #%! $*$ #! ' ' *! '#!" &. & $ '# 4@E $ 28

9@FF 4@E!!" #.! '#iet 9@FF $ * # *!*! #'$! E'$ ' $ '#$!" ' @>E 4. '! $!" # *- pozostawia je bez odpowiedzi. W p '#$!"& #'$ '! '! '#$'<9. * '#!"*+*!"':@>E& 4@E $ 9@FF 8. '#!!" # * >?> lub '.+ $ - $* ' dane bez odpowiedzi. - '#!" #!" *$ #! '! '# $#$'E.+ 1#2;0 (DATA0 i DATA1) ze stanem jednobitowych p*!##$ #$!" 2*!# * ' '.! '$#$$*! " OUT (DATA0) OUT (DATA1) OUT (DATA0/1) " #$ (DATA0) #$ (DATA1) #$ (DATA0/1) Rysunek 23. Sekwencje operacji przekazu masowego. 7.6 W#7!(4# P * '# 1! $*! '#!" * # $ # * ''.! 2#': i.! $ $ # sekwencja 6 jedynek musi#%! +& ii.bity kontrolne identyfikatorów PID, iii.sumy kontrolne CRC. 3 # ' '#$ #! $ # ' '# 2 ' '#$ #$.! # '*+ #& # '# ' '+ ' 'isane jej '! 9.! ' transmisja danych prowadzona w trybie przekazu izochronicznego. > +&#'!"& # #$# $ i zareaguje # # '# '! $ (!"& # ' # + & '!!" kontrola sekwencji pakietów danych. Mechanizm ten bazuje na '$.! 1#2;00@9@A0@9@!" '*!# $!" #$ odbiorniku. 29

E@%1%0019%/F/G9> E *+ # #$. Siedem!"'!"* Do Koncentrator wyzerowany Koncentrator skonfigurowany Zasilane U Przerwa zasilania Reset Reset Adresowane umownie Przypisanie adresu U Z nadanym adresem U Ustalenie konfiguracji Skonfigurowane U Rysunek 24!"'.+ $*?' $* #. * ' '$*!!"!!": i. *czone - * ' ' jego cechy; ii.*! C iii.zasilane - $* * + *& * # + $ ' C 30

+ *! eszcze przed *! C! '.! #! '!*#! AA @!$ $* #1$C ' $ + odczytania z cha# #$*C iv.adresowane umownie - $* *! &!" $?KK9& $ # '! C ' * '#+$!C v. ma przypisany adres - ' $*$ #'$ macierzysty; vi.skonfigurowane -$*$#1$. $ #1$! '.+C vii.$.' - # $* ' + $ mechanizm przechodzenia w stan zmniejszonego poboru mocy po $' 6 #$ #.! C $* *!"+ *.+ wszystkich rejestrów stanu. E #. $* *! #! '*'$*!: 1) Koncentrator informuje komputer macierzysty o zmianie stanu ' * *! ' 2) E'$! ' $ #! # $ +!"# 3) 9 *! '& # *! $*& #'$ #'$ '!Reset. 4) E! ' $ Reset ('! $!"!" 0-0G ' '$ A&7 H przez 10 ms. Potem, # & #! '.! ' $* AA @ * $ & # * 5) 0'# $* $& ' # '.! '#$ E'$! uje z punktu zerowego!"# # $ + # '! '#!& # + $ + 6) E'$' $*$ 7) Komputer odczytuje wszystkie rejestry konfiguracyjne $* >.+ '!**+! # # ramek. 8) Na podstawie odczytanej informacji komputer macierzysty ' $*$ #1$! * '! '$# #%! * + charakterystykami. 2 # ' *!$ $ *!$ #'$! #$ ' *$ $#$ '$ topografii. 31

8.2 Wspólne operacje - #$* $*'' '!:!' *!*!& przydzielanie adresu, ustalanie konfiguracji, transmisja danych, * & ograniczanie zasilania, zdalne budzenie. * #!" * + *! $ *! E! * #$#+ #'$ macierzystemu wszelkie zmiany w stanie jego portów. Komputer #$ ' #!& # *! $* 4& ' $ *!& ' # $* 0*! $* $ '! 1! adres. Jest on nadawany przez komputer macierzysty w trybie '#$$*! 4 $*! '+ 1$#! $ + $ #1$! 3 # #'$! * $* 1! #. *!!" '!.! 4 #!!" '! #'$ $ #1$! $* 8. $*! maksymalny '! '#!" '!" '$# #%! ' # #'$! stym. 0 * + *!!" 4# '$# #%! * '!.! $ kilku typów przekazu danych. Jednak w skonfigurowanym punkcie #%! *$ #!" 3* '.! koncentratorów. Koncentrator dostarcza zasilania zgodnie z $* '! 1#!* E! & '! ' *$ & #$#$*.! # -$# poprawnej dystrybucji zasilania jest skuteczne zapobieganie *!$ $*!" *!!" magistrali. 3! '.! 8. ' $*! podczas ustalania konfiguracji '#!.! & #'$! $ #1$! $* '. ' *!$ $* *!'+! AA @ 2 #1$$ $* *!#+ '#!*! /AA @ @!" * + ' - # $* $* +.+ '!" $.'& # ' '*$ '#!+/AAA. 32

3 $ $ $*$ * *!.! komputerem m! & # $ $.' E *!.!.!$*+#'$ ' $ $ $ aktywny i ' $ $* $ $ + '! A $ / ' #!! #'$! 3.+ $ $ + $ w charakt! $* $ +.+ blokowania i odblokowywania. 8.3 -+"6" - # $*& * #'$! & $ * 1!!" '!!".!!" Q* odpowiedzi pr * '# '# $*!!" zapowied SETUP dane DATA0 8 bajtów odpowied ACK Rysunek 25. Sekwencja pakietów operacji ustawiania. Q*!" ' # * $* '.! '! K92 E pakiet danych operacji SETUP liczy 8 bajtów i jest podzielony na 5 pól: bmrequesttype!"# $*:4 #. - #$#'' $!"$1'#$ $*!0 #. *! * standar*! #!"$*%!! **'*# *$*% $1''$!-!.! ' '#!.!$*# *-!$*&1ejsu czy #. '$#$#%! brequest -.+ ' $'! 1#$##* *!!.#$' wvalue -.!*$ przekazywania dodatkowych parametrów. windex - zmienia s.!*$ przekazywania dodatkowych parametrów. wlenght - ' $'$.+!"!" '!"$1'#$3.+ oznacza brak drugiej fazy. 33

Tabela 6. Znaczenie informacji zakodowanej w poszczególnych polach pakietu danych operacji SETUP. Pole Liczba bajtów ";) Opis bmrequesttype 1!"# #* D7 kierunek transmisji 0=komputer$* 1=$*komputer D6..5 typ 0=standardowe R # $*% 2=producenta 3=zarezerwowane D4..0 adresat AR$* 1=interfejs R'$##%! 3=inne 4..31=zarezerwowane brequest 1.+ '! 1#$* '$ wvalue 2.+ 1!#*!.!* windex 2 indeks lub pozycja ''$#$#%! wlenght 2 wyliczenie liczba bajtów danych W polu brequest $! # *& # ' '#$ *%!"!: 0 = GET_STATUS - oczekiwana w odpowiedzi 16.bitowa 1!!"# +!: $*& 1 $ '$# #%! * ' 1!! #$! *! + budzenie. Interfejs odpowiada info!* * #'! * ' # 2$# #%! informuje czy jest zablokowany. 1 = CLEAR_FEATURE - * # $ #!".!.! 2 =? - zarezerwowane do wykorzystania w '.! 3 = SET_FEATURE -$ $.!.!# polu wvalue. 4 =? - zarezerwowane do wykorzystania w '.! 5 = SET_ADDRESS - w polu wvalue ' $*$'#'$! 34

6 = GET_DESCRIPTOR - *' # ' # polu wvalue. Dotyczy to trzech typów deskryptorów: DEVICE, CONFIGURATION i STRING. 7 = SET_DESCRIPTOR - * '! - $*!"& # $$* *& $ #$ *!!" # 'ów i dodawanie nowych. 8 = GET_CONFIGURATION -!# 'B $* + 1!! #$ #1$! 9 = SET_CONFIGURATION - ' ' $ wvalue informacja zawiera *#1$! 10 = GET_INTERFACE - #!" $*!" #+ $ $ '! $# '*!!" 8 * ' 1! '!"!" $ $# interfejsu. 11 = SET_INTERFACE - $ $ $ '! $# interfejsu USB. 12 = SYNCH_FRAME -.! # $*% $*!!" '.* # '#!"!!" 2 $+ $ #& # $ '!*# #.!*$ bitów. 8.4 Deskryptory * 1$*!".!.!!" $ *! deskry'2 **IK9S0K>?;29<? E # '! $ 1$*!!#! # ' 8!! '!" # $ 8. liczba ##* 4' ' # ' - standardowe deskryptory: DEVICE, CONFIGURATION i STRING. STRING # '# *! ## z The Unicode Standard, Worldwide Character Encoding (UNICODE). Deskryptor DEVICE opisuje ogólnie, wspólne dla wszystkich #1$!&.!.! $* 0 $*!"# + ##yptor tego typu. 4 * ' # ' #1$! ' #* # '* +# ## '#1$! 0# ' ;49K?D@>K '$ 1 * * #1$!* - #1$! + $!" lub kilka interfejsów we-wy. E 1* '$##%! E '$# #%! & # $ 1$ -wy, ma # ' 35

E<"&#"#6A6""*''!#A * 1$#!$ # '$# #%!!"& #!" # $+ '$'#: $*! & izochroniczny, przerwaniowy, lub masowy. Rysunek 26D!#! '*$* systemem USB. Podstawow!" # ''$##%! : ustalony tryb pracy potoku,!"!!#'!*#$#<d& potwierdzanie odbioru danych, kontrola sekwencji pakietów danych. 9. KOMPUTER MACIERZYSTY Procedury $$*! USB '$*!" szczeblach systemow "!" '! *! # magistrali a na programie klient#%!*!na system oprogramowania USB #* trzy podstawowe elementy: '$# & '$ & dodatkowe oprogramowanie systemowe. 36

Komputer macierzysty Programy (klient) potoki niezerowe magistrali USB sterownika USB potok zerowy interfejs USB linie magistrali USB Rysunek 27T*!.+#'$! * 9.1 MA6!"&8% Program klient * '!" *! '# IRP (ang. I/O Request Packet!#' *B '. #%!$ *B #%!u na #$# *' 8. '#$& ' '# ;?2 1! # $* #! $ # *' * & ;?2 $$ #!#$*!!1 4' * przyjmowane dopóki program klient ' #%! odpowiedniej procedury naprawczej. 2$##%! ' '$# +'' 1! ' *!! '#$!" * 'B 4@E Poprzez pakiet NAK, pun# #%! $ #'$! $ #.! 4! $! ;?2 2! $ '# 4@E + ' # <'B 4@E! *'$ >"!*! '+ * #* '!!" 'klient &!" '#$ ;?2& *+ # #$# '$ '#$ - # ' '#$ * podzielone na pakiety o maksymalnych dopuszczalnych rozmiarach a jedynie osta& *! #%!#!"& + #. '$ przekazu jest to dopuszczalne. 9.2 Rola komputera macierzystego w nadzorze magistrali USB Komputer macierzysty w ramach swoich funkcji nadzorczych musi: # +' *!*!$*%& 37

*+''!"1!$*!!"& # +''!"& +1!#.!$*%& +! '.! ;1! $*! ' $* #'$! * + ' '.!! $ - 'erwszym przypadku informacje $*! ' * '#! 0! # '# * $* 1! $*! '.! '#$ & # ' ' # * '$ $ ; '# ' * ' $ # $ #$#+ # '$# #%! $*$ Komputer macierzysty, z natury rzeczy, uczestniczy we wszystkich '#!"!"$*!!"!' $+1! #.! $*% ;1! ' # ' $ '# * ''$**! 9.3 Sterownik magistrali USB Sterownik magi &!& * '+ ' '!" 1$#! *!" *!!" $*% 3 $ $$ + #'$! 0%# : Przekazywanie zmian stanu sterownika - zmiany stanu sterownika magistrali ' + ' # * $ *.!. '* #!& # $ '+ # & któr *! # $*$ 2 $ sterownika magistrali nadzoruje te stany '!" ''! koncentratora. &!+"6 - w sterowniku magistrali, podobnie jak w z postaci szeregowej na $*!" & 1! ' 4#"*!"#" '#! '! * Przy odbiorze wykonywana jest operacja odwrotna. 3&!4#6 - '!*# # #! przez pojawienie s '#$ ' <D 2# <D * $! ' # (* ' ' 38

&!A - ze standardowego formatu USB na format %*'"""! - nadaje i odbiera dane zgodnie z komunikacyjnego '#$ 7&! 7!(4#&6& -#' # +'$*! : przeterminowanie operacji, ' $ '#&.+'# 9.4 Oprogramowanie systemu USB 4 # ' $*'!$ $ 0 # L>0 2 *!# $!"!*!*+*!.+$* *! + ' 1# $*!" ' *B # $1!"&#* + 9.49&*"+ 8 -!"!" '!!" ' $ #1$! $*%!" 8# 'e podstawowe $* + ' #! $ Wyspecjalizowanym w tej dziedzinie klientem # '$ $ '&# '!$*% *!!"*!!"#! E #. $* *! #!& '$#!#1$! #*'@ $*'!*+'! $ + *#1$!: 1. E1$! $* Obejmuje to ustawienie wszystkich ' $* ' $ #'$ macierzystym. 2. E1$! 0 '$ $ magistrali USBD potoku gotowego do wykorzystania przez program klient. 3. E1$! $# #!!" $* -* ustawianiem dodatkowych parametrów wymaganych dla danej klasy $*% $ '! 1! producenta. <'$*!#1$! $'! $ # '$*'*'$ #!"'!" konfiguracji. Na tej podstawie dokonuje wyboru konfiguracji $* ' '# $* +! przez odpowiedni program klient&# $ $#''! : maksymalny!$& #.+$1!"'!#'$ 39

9.4.2 Program "7&! 6 &*9> <!"''+'$*!: Sterowanie zasilaniem / 6 &* 6 USB "&('" charakterystyk 8 Ustalanie konfiguracji Program "7&! magistrali USB Interpreter Rozkazów Programy $$ Program "7&! sterownika USB Przekaz przerwaniowy "&('" potoków <$ Potoków Programy wykonywane na komputerze macierzysty*$ #+' '.! '!$ '$ $ 0 Klienci 0 * $*% '! #$* $ * #. '# 0#!" 0 $* ' +!'. 9.4.3 Program "7&! &"#9> 2' '$ &# jedynym klientem&#$#+ $* #*!! *% #$#!!" ka 8 *'+! *! # #!*! : *%'!"& '!" *& #!'!#'$& #! 10. KONCENTRATOR E! '. $$& '! $ ##& #' #!" 1$#! $ 0 '!"% : 40

$ '*!% kontrola zasilania # *!' *!$*%& wykrywanie$$#% & $ #!" $!"$*% E! # '#B# # 2#B# ' $ '*! $ *! ' pakietu danych. Natomiast kontroler zapewnia sterowanie i zezwala '#'$! #! % & ' ( Rysunek 28. Schemat blokowy koncentratora. @# '#B#!" $ieci. W stanie biernym wszystkie jego porty nastawione *!#* '!*#$ ' '#$!" '' $!" #!" ' '# '# ' $#$ port 0 port 0 port 0 port zablokowany w dó port zablokowany w gór port zablokowany stan bierny Rysunek 292'!"'#! 10.1 Stany portu koncentratora 2 #! +!!" $ '!$.!'$!": 1. 3 *! - dotyczy to tylko portów, które * 41

*! 2 '!" ' $ ' #! * '$ $ ' #$ ' ' $ 2*!! ' #!& '. ' *!$ #!& '* *! 2 $*! $ #'!#! 2. <*! - '*!!' *! ' * '.!$ $ U *! zasilaniem. Ma to miejsce po odebraniu przez koncentrator * *! '$ 8..! *!- *! '$& '!*# * '. ' *!$ koncentratora lub ' $ $ - ''# +!" sieci. 3. Zablokowany - ' '.+ $ $ 5*! 5 ' #!$& *' *! $* 2 '# +! # * *'$ 4. Odblokowany - ' # ' $ * # $ * '$ 2 + '#!" ' ' $* *! '* #.!* 0& $*% *!!" ' & * + #! #. '' * # ' 2?K - * # 5..' - koncentrator selektywnie wprowadza w stan zmniejszonego pobor$! # $*! ' $ ' * 2 '.+ $.'#! # '! H,"8"#oncentratora 0 # $*% ' & ' & dodatkowy pun# #%! E! '.! # '$#$ #%! ' #'$! $ - '#$ * '$# #%! wykorzystywany jest przekaz przerwaniowy - w ustalonych okresach $#'$!ysty odczytuje informacje o zmianie stanu. )* " "+, )* " -+ ' ( Rysunek 30. 2$# #%!#oncentratora. E! 1$& #!.! *' 42

Znaczenie bitów w polu roboczym danych przerwaniowych przedstawiono $#$ 8. #! $ $!"'' 'B * $ ( ' "$ "$.' "( "' " Rysunek 31. Mapa bitowa pola roboczego informacji o zmianie stanu koncentratora. - '#'$! '#'@>E$ 1!#!# ponownie odczytane. 10.3!"!8 E! ' *! $* ' & porcie '! ' # $ #!"!" 0- i D+ na okres co najmniej 2,5 & ' ' poziomu 0,8 V czyli do stanu asymetrycznego zera SE0. Stan ten jest $ ' *!Rpd terminatora. 6 5 2 5. 2 "+1". 2 23'1 23'41 /0. Rysunek 32'*!$*%*!!"'* #.!* 6 5 2 5. 2 "+8". 2 23'1 23'41 7& Rysunek 33'*!$*%*!!"'. 43

E '$*!$*.! '$ * *! '* #.!* ' * '! 0G& $* * ' *! Rpu na linii D-. E! $ + # $* ' sprawdzenie, na której linii D+ czy D- ' '! ' $+!!" #$#$ # '! #!"$*%* + # $*%!"( +B'#% ##!'+ # Koncentrato&. ' $* *! '$ # *!' & $ *! # *!!"!!",/-300ns). 2'$! ' *! #. '' * # ' 2?K 3 * '* 2?K #%!!"!##%!'#$K<2 0'' # 2?K'' * '' *! $* *! ' # *! '* #.!* 4 '!%& # '#'! - *! * $ + #! '' 1# '#$ '* #.!* magistrali. D ' $* *! ' $* + '' ' # * '#!! # *!!"!!" - AE!$''+ ## #%!'#$K<2 - ##! &#!"**!*!' $*& $* #! + ' $*! #.+!" $*% 2 $*% *!!" ' dociera tylko wolnozmien!.+ ' *!!" * & '!" '!.$.' 10.4'6&"" Normalnie koncentrator zmienia swój stan w takt odbieranych '!*#$ <2 #%! K<2 '#$: koncentrator po $<2!#K<2'K<2!#$'<2 E '# '! '.! $ stanu K #%! '!$!"!" ''$A&7H&#$ D+ D- K J K... J Rysunek 34. Zmiany stanu koncentratora podczas transmisji pakietu danych. 44

2 #! # '!" '.+ '!#<2K<2#' #$ 0 % #! ' & # #! #& # $* '$*! ' 8. #. $* # #%! #& ' koncentrator blokuje port, do którego jest d*! Koncentrator, który uczestniczy w transmisji danych w kierunku #'$! * '!+ '!. '.! # $'!*#$# 2 '!! $ $# * ' ' *!!" % koncentratora. E! '$ '!! '# #!"! ' & ' #$ #%! #& *!!" #$ '#! 3!"!'#'$! 10.4&+"8"#6 E #! $ $#& #! ' #!!$#&'$*!''$# : 1. EOF1 -!#!' #%! +!"!C*!#$'*!# #$#$ #'$! #%! # EOP. 2. EOF2 - od tej chwili nadajniki wszystkich portów koncentratora $*+ #'!C' # * * #,%9 Rysunek 353!##%!# Tabela 7. Zachowanie komputera pod koniec ramki. Opis Liczba bitów przed SOF EOF1 32 Uwagi EOF2 10 E'$ $ '! '# '* #.!* 47 4'B! #'$ '!*+ '* s #.!* 45

E'$ $ '! '# powoli. E'$ $. odbierany pakiet. 184 4'B! #'$ '!*+ nadawanie danych do $* *! powoli. 41 Komputer uznaje za # '#& którego odbiór trwa w tym momencie. #!!*!!# #%! # K<D K<D taktowany jest zegarem zainstalowanym w koncentratorze i jest!" ' #'$! '# SOF. O'B K<D K<D ' *#$ #$*!!" #!!"! #'$! 2 K<D K<D$.!+ K<2&# #!!ze!'+! 3 *!!" *'+ '$+ '! $# #$*!!" #! #'$! #*.!'!##%!#K<DK<D punktami w czasie istotnymi dla komputera. 10.4.2 Zachowanie koncentratora pod koniec ramki 2 $ $?KK9 $ '. ' *!$ #! $!# '!*#$'#$<2- # #' *!" # * # '! 2 $ ' #. ' $ <2 #!$'*!'!"!#K<2 8.!#*! <2 #! #%! mki K<D'!"!#'!*##<D2.!!& #!# #! *! + $*% #'$! '# '!'# Stan oczekiwania na K<D '! $ '! % '!!" - #! B+ # &. K<D!$ #%!!"!!#K<2( # + #$# *' #!% $ $ #.! 2 $ K<2 #! '!"!#'!*##<D 8. #!!# $ K<2& $ oczekiwania na SOF przechodzi dopiero po sygnale EOF2. 8.!! #. $* $ # & ' # *! zostanie zablokowany. 2.! ' '! #! zachowanie koncentratora pod koniec ramki przedstawiono na rysunkach: 46

& & Rysunek 362.!' #!ntratora.!"!!"#! $ Rysunek 37. 3!"&' $#%!#&#!!#*!K<2 3!"#!' $#%!#'$+ '$*!: 1. Koncentrator podejmuje dzi '! # $ '##!"! 8. $ *!.+!& #! ' $ * ' $ $ #%!#K<D 2. -!" K<D#! w kierunku komputera 47

! #%! '#$ K<2 # # ' #!+ $ + $K<2&#'# toku. 3. E!'K<D'$!!"'*!%#!"! 4. Koncentrator, który w!" K<D!# #%! '#$ ' # $+ K<D ' '.!$ stanu oczekiwania na EOF2. 5. 8. '!$ ' '$# K<D K<D #!!# K<2&'!"$ oczekiwan '# <D- # ' ' + 6. W punkcie EOF2 sprawdzany jest stan wszystkich portów. Te, #!".! * # 3 $ oczekiwania na EOF2 koncentrator przechodzi do stanu oczekiwania na pakiet SOF. 48