INTERFEJSY SZEREGOWE
RS-232 – prosty, do wiekowy, standardowy
interfejs szeregowy, służący do komunikacji
pomiędzy
urządzeniem
nadrzędnym,
a
peryferyjnym.
I2C – interfejs będący poprzednikiem innych
współczesnych interfejsów szeregowych w tym
CAN. Pozwala na szybka komunikację (do
100kB/s).
SPI – interfejs o możliwościach i właściwościach
podobnych do I2C, o większej szybkości
transmisji danych sięgającej kilka MB/s.
Stworzony przez Motorolę, obecnie jest dość
często
wykorzystywany
przez
innych
producentów. Interfejs ten zosta standardowo
wbudowany w wiele mikrokontrolerów.
INTERFEJSY SZEREGOWE
D
2
BUS – Interfejs Digital Data Bus opracowany przez
firmę Philips, stworzony z myślą o łączeniu
niewielkiej liczby urządzeń na małym obszarze,
umożliwiający transmisję danych z szybkością
100kbit/s pomiędzy urządzeniami oddalonymi od
siebie o 150m. Pozwala zaadresować 4096 jednostek.
Jako medium transmisyjne najczęściej używa się pary
skręconych przewodów, lub kabla koncentrycznego.
INTERFEJSY SZEREGOWE
Do głównych cech magistrali D
2
BUS, które zresztą
upodobniają ten interfejs do CAN należą:
•Możliwość przejścia i utrzymania kontroli przez
którekolwiek
z urządzeń wyposażonych w taką możliwość,
•Odłączenie
urządzenia,
lub
podłączenie
do
magistrali nowego, nie
wpływa na komunikację pomiędzy pozostałymi
urządzeniami
w sieci,
•Zakłócenia na magistrali nie powodują błędów w
transmisji,
•Transmisja
przez
D
2
C
odbywa
się
przy
wykorzystaniu urządzeń
typu master i slave oraz procedury arbitrażu.
INTERFEJSY SZEREGOWE
INTERFEJSY SZEREGOWE
INTERFEJSY SZEREGOWE
INTERFEJSY SZEREGOWE
I
I
2
2
C bus
C bus
Inter
Inter
Integrated Circuits bus
Integrated Circuits bus
by Philips Semiconductors
by Philips Semiconductors
Wires and Signals
• magistrala dwuprzewodowa
– serial data line (SDA)
– serial clock line (SCL)
• Poziomy napięć
– Wysoki (HIGH)
1
– Niski (LOW) 0
transfer bitów
– SCL = 1 SDA = poprawna dana
– Jeden impuls zegara na bit danych
– Bit danej stabilny podczas stanu linii zegara SCL =1
– Zmiana bitu danej dla SCL = 0
INTERFEJSY SZEREGOWE
Wired-AND connection
•
Magistrala wolna SDA i SCL są w stanie 1
– (poziom ustalany przez rezystor pull-up lub źródło nadajnika)
•
Wy/We są zrównoleglone
INTERFEJSY SZEREGOWE
Frame
• Bit startu (S)
– SDA 10 dla SCL = 1
• Bit stopu (P)
– SDA 01 dla SCL = 1
• powtórzenie startu (Sr)
– start jest generowany zamiast stopu
• Stany magistrali
– busy … po S i przed następnym P
– Wolna … po P i przed następnym S
INTERFEJSY SZEREGOWE
Masters and Slaves
• Urządzenie typu Master
– Kontroluje linię SCL
– Generuje bity startu i stopu
– Kontroluje (generuje) adresy innych urządzeń
• Urządzenie typu Slave
– Urządzenie adresowane (podległe) master
• Nadajnik/ Odbiornik (Transmitter/Receiver)
– master lub slave
– master-nadaje (wysyła) daną do slave-odbiornika
– master-odbiera żądaną daną z urządzenia slave-
nadajnika
INTERFEJSY SZEREGOWE
Data Transfer
• Bity danych wysyłane są po bicie startu (S lu Sr)
• Transmitowany jest pojedynczy bajt
• Bajt = 8 bits + jeden acknowledge bit (ACK)
• Bit MSB (most significant bit) nadawany jako
pierwszy
• slave adres jest traktowany jako dana
– Transmitowany jest pierwszy bajt
– W trakcie transferu:
• master jest nadajnikiem
• Adresowany slave jest odbiornikiem
– Następny bajt: wysyłany jest po ostatnim bicie w
bajcie adresowym
INTERFEJSY SZEREGOWE
Data Transfer - SCL
• master ustawia SCL = 0 i generuje impulsy dla innych bitów
danych
• 8 impulsów dla bitów danych są zakończone przez impuls dla bitu
ack.
• po ack.
– master przygotowuje się do generowania impulsów pod następny bajt
– slave jest w stanie HOLD SCL low master przechodzi do stanu
oczekiwania
INTERFEJSY SZEREGOWE
Data Transfer - SDA
• bity danych są wysyłane przez nadajnik w takt impulsów SCL
• 9 impuls:
– Nadajnik zwalnia SDA
– Odbiornik musi być w stanie hold, SDA jest w stanie niskim, po
ack. Odbiera daną
– slave musi zwolnić SDA po bicie ack. (master może zakończyć
ramkę)
INTERFEJSY SZEREGOWE
Multiple Masters
• Do magistrali może być dołączonych wiele
kontrolerów (urządzeń master)
• Kilka urządzeń masters może wystawiś start
swojej ramki
• synchronizacja poprzez SCL
• arbitraż poprzez SDA
• Połączenia typu wired-AND do linii SCL/SDA
INTERFEJSY SZEREGOWE
Synchronization on SCL
• frame started SCL = 1
• first 10 transition
(*)
– involved masters restart their clocks
– master holds 0 until its low-period is over
• master finished its low-period
– releases SCL
– SCL = 0 switches to wait state, waits for SCL = 1
– SCL = 1 or waiting finished starts counting high-period
• first master finished its high-period
– sets SCL = 0
– equivalent to (*) state
INTERFEJSY SZEREGOWE
Synchronized Clocks
• low-period
– determined by max{low-periods of involved
masters}
• high-period
– determined by min{high-periods of
involved masters}
INTERFEJSY SZEREGOWE
Arbitration on SDA
• frame started, SCL synchronized high periods = valid data
• each master generates its data
• master aborts if there is another level on SDA than it generates
it loses arbitration, releases SDA and tries again when bus is free
INTERFEJSY SZEREGOWE
Notes on Arbitration
• can continue for many bits
• adresses are compared at first stage
• if the same slave is addressed in the same mode (R/W):
– masters are transmitters data-bits are compared
– masters are receivers acknowledge-bits are compared
• if arbitration is not over before stop or repeated start:
– comparation not allowed: stop-data, repeated start-data,
stop-repeated start
– involved masters must generate stops/repeated starts in the
same positions
• loser can generate SCL pulses for synchronization until
the byte is over
• losing master which can be also a slave
– must switch immediately to slave mode
INTERFEJSY SZEREGOWE
Addressing by 7 bits
• the first byte transmitted by master:
– 7 bits:
address
– 1 bit:
direction (R/W)
0 … master writes data (W), becomes transmitter
1 … master reads data (R), becomes receiver
• data transfer terminated by stop condition
• master may generate repeated start and address another device
• each device listens to address
– address matches its own device switches state according to R/W
bit
• address = fixed part + programmable part
– fixed part assigned by I
2
C committee
Frame Formats
master-transmitter
master-receiver (since second byte)
INTERFEJSY SZEREGOWE
Special Addresses
• general call
0000 000 | 0
• start byte
0000 000
| 1
• CBUS address
0000 001 | *
– used for cooperation of I
2
C and CBUS
• High-speed mode master code
0000 1** |
*
• 10-bit slave addressing
1111 0** |
*
INTERFEJSY SZEREGOWE
• device connection to bus:
– fast
• on-chip hardware I
2
C bus interface
• device interrupted by requests from bus
– slow
• no hardware interface
• software bus monitoring (polling)
• longer start procedure needed
• start condition, first byte = 0000 0001, ack., repeated start
condition
• fast device ignores, slow device can use lower sampling rate to
detect frame start
INTERFEJSY SZEREGOWE
• standard mode
– speed limit: 100 kbps, address space limit: 112 addresses
• improvements
– fast mode (up to 400 kbps)
– high-speed mode (up to 3.4 Mbps)
– 10-bit addressing – can be mixed with 7-bit one (special
address)
• Fast mode
– unchanged: frame format, logic levels, max. capacitance
– faster devices must be able to synchronize at 400 kbps
– downward-compatible, can communicate with standard mode
devices
– not compatible with CBUS
– changed timing
INTERFEJSY SZEREGOWE
• downward compatible with Standard mode and Fast mode
• same frame format
• neither synchronization nor arbitration performed during data
transfer
– arbitration always finishes before data bits transfer
– master code arbitrates (special 7-bit address: 0000 1***)
• unique max. 8 masters
• software programmable
– master code signals HS mode data transfer
• HS devices connection to bus differs
• wires: SDAH, SCLH
INTERFEJSY SZEREGOWE
HS-device Connection
INTERFEJSY SZEREGOWE
INTERFEJSY SZEREGOWE
Charakterystyka
magistrali USB
Dwa standardy USB.
Dwa standardy USB.
•
USB 1.1 - jego transfer wynosi, w
USB 1.1 - jego transfer wynosi, w
zależności od typu urządzenia 1.5 lub
zależności od typu urządzenia 1.5 lub
12 Mbit/s.
12 Mbit/s.
•
USB 2.0 - osiąga transfer do 480
USB 2.0 - osiąga transfer do 480
Mbit/s.
Mbit/s.
INTERFEJSY SZEREGOWE
Topologia magistrali
USB
Magistrala USB
tworzy strukturę
warstwową, jednak
zachowuje logiczną
strukturę gwiazdy, a
komunikacja
przebiega tak, jakby
urządzenia były
podłączone
bezpośrednio do
hosta. Gdy hub jest
odłączony, wszystkie
urządzenia
podłączone do huba
zostają usunięte z
logicznej topologii
hosta.
INTERFEJSY SZEREGOWE
Przepływ danych podczas komunikacji USB
INTERFEJSY SZEREGOWE
Przepływ danych w systemie USB
Punkty końcowe posiadają
cechy, które determinują typu
transferów pomiędzy nimi a
oprogramowaniem klienckim.
Endpointy opisywane są przez:
-zalecenia częstotliwości
taktowania
magistrali,
- numer endpointu,
- rozmiar pakietów,
-zachowanie w wypadku błędów
w
transmisji,
- typ transferu,
- kierunek przepływu danych.
INTERFEJSY SZEREGOWE
SOF
SOF
SOF
SOF
Dane
Audio
Dane
Audio
Ostatnie
dane
Audio
VOUTR
VOUTL
D+
D-
1ms
Odłączenie
Dane kontrolne
SOF
VBUS (PIN
3)
Włączenie
20ms
Dźwięk
Dane sterujące
Dane sterujące
Warstwa fizyczna
Sekwencje Start,Stop, Zakończ
1. Sygnał zerowania SE0 (single ended zero) - napięcie pary
przewodów sygnałowych D+ i D- wprowadzone w stan 0
logicznego na 2,5 mikrosekundy.
2. Zawieszenie działania urządzenia ma miejsce w razie
wykrycia stanu spoczynkowego linii sygnałowych przez co
najmniej 3 ms. Zawieszenie trwa nie dłużej niż 10 ms.
3. Wznowienie działalności urządzenia następuje w razie
wykrycia stanu logicznego K linii sygnałowych, czyli 0 dla
trybu FS lub 1 dla LS. Wznowienie działania wymusza
kontroler USB przez ustawienie stanu logicznego K szyny
przez co najmniej 20 ms.
4. Znacznik końca pakietu EOP (End of Packet) składa się z
2-bitowego sygnału zerowania SE0 oraz 1-bitowego
sygnału o stanie logicznym J, tzn. 1 dla FS lub 0 dla LS.
INTERFEJSY SZEREGOWE
Rodzaje sygnałów sterowania w magistrali USB :
INTERFEJSY SZEREGOWE
Format pakietu danych
Zasada kodowania binarnego sygnału
cyfrowego do postaci kodu NRZI
• SYNC(8b) - sygnał synchronizacji pakietów USB (8 bitów);
• PID(8b) - identyfikator rodzaju pakietu;
• ADRESS(7b) - adres urządzenia peryferyjnego dołączonego do magistrali
USB;
• ENDP(4b) - adres bufora (rejestru) cyfrowego w wybranym urządzeniu
USB odpowiedzialnego za wymianę danych z komputerem w magistrali
USB;
• FRAME(11b) - kolejny numer ramki;
• DATA(1024b) - dane cyfrowe przesyłane w magistrali USB;
• EOP(3b) - znacznik końca pakietu;
• CRC(5b) (cykliczny kod nadmiarowy) - służy do detekcji błędów w
transmisji danych. Po każdym pakiecie informacji cyfrowej przesyłany
jest przykładowo 5-bitowy kod CRC obliczony na podstawie wartości
bitowej tego pakietu. Jeżeli odbiorca otrzyma pakiet informacji cyfrowej
z błędem, to obliczony na jego podstawie kod CRC będzie różny od
nadanego i odbiorca może zażądać powtórzenia transmisji pakietu
cyfrowego.
INTERFEJSY SZEREGOWE
Skróty literowe nazw:
• identyfikacja rodzaju transmisji;
• przesyłanie danych pomiędzy kontrolerem
USB komputera a urządzeniem
peryferyjnym, zgodnie z kierunkiem
określonym w fazie identyfikacji rodzaju
transmisji;
• potwierdzenie realizacji lub informacja o
błędach transmisji danych.
INTERFEJSY SZEREGOWE
Obsługa magistrali USB
INTERFEJSY SZEREGOWE
Format pakietu SOF
Pakiet SOF (Start of Frame) wskazuje na początek
ramki transmisyjnej synchronizującej magistralę
USB z okresem 1 mikrosekunda (0,5 ms dla
przepustowości LS i FS, a 125 ns +/- 6,25 ns dla
przepustowości HS), czyli do 480 Mb/s. Pakiet
zawiera 11-bitowe pole numeru bieżącego ramki,
która może być wykorzystana przy synchronizacji
transmisji danych, szczególnie izochronicznych.
INTERFEJSY SZEREGOWE
Format pakietu SETUP
Pakiet SETUP sygnalizuje wysyłanie w kolejnych pakietach
danych, które sterują urządzeniami peryferyjnymi przez
kontroler USB.
Do danych sterujących zaliczamy np. komendy:
SET_ADDRESS (ustawienie adresu dla wybranego urządzenia
peryferyjnego), GET_DEVICE_DESCRIPTOR (żądanie przez
kontroler USB pełnej informacji o konfiguracji wybranego
urządzenia
peryferyjnego
podłączonego
do
magistrali),
SET_CONFIGURATION (ustawienie wymaganej konfiguracji
dla wybranego urządzenia peryferyjnego).
Format pakietu danych
INTERFEJSY SZEREGOWE
Protokoły danych (o maksymalnej długości 1024 bajtów) dla
transmisji LS i FS rozróżniane są za pomocą nagłówka pakietu
PID (Packed Identifier) - Data0/Data1.
Format pakietu potwierdzenia
• ACK (acknowledgement - potwierdzenie
odbioru danych przez urządzenie pełniące
funkcje odbiornika),
• NAK (negative acknowledgement -
urządzenie odbiorcze chwilowo nie może
odebrać ani wysyłać danych (w przypadku
transferu obsługi przerwania NAK informuje
kontroler USB, że nie ma żadnych danych do
wysłania);
• STALL - urządzenie końcowe znajduje się w
stanie wymagającym interwencji kontrolera.
INTERFEJSY SZEREGOWE
Mamy trzy typy pakietów potwierdzenia,
różniące się wartością nagłówka PID:
INTERFEJSY SZEREGOWE
Rodzaje transferu danych
• masowy (asynchroniczny);
• izochroniczny (synchroniczny);
• obsługi przerwania;
• sterująco-kontrolny.
Organizacja
transferu masowego
Organizacja transferu
izochronicznego
Organizacja
transferu
obsługi
przerwania
INTERFEJSY SZEREGOWE
INTERFEJSY SZEREGOWE
Organizacja transferu
sterującego
Transfer
sterująco-kontrolny
przeznaczony jest do konfiguracji
każdego urządzenia peryferyjnego USB
w
procesie
enumeracji
urządzeń
podłączonych do magistrali USB. Po
włączeniu
nowego
urządzenia
kontroler
rozpoznaje
rodzaj
urządzenia
oraz
jego
parametry
obsługi. Transfer sterujący realizowany
jest w trzech etapach: SETUP, DATA,
STATUS.
INTERFEJSY SZEREGOWE
Komunikacja z
Hostem
INTERFEJSY SZEREGOWE
Architektura Huba
INTERFEJSY SZEREGOWE
Przykładowa budowa Kontrolera Huba
Budowa Translatora Transmisji
INTERFEJSY SZEREGOWE
Wartość
hex
Deskryptor
1
1
Audio
2
2
CDC-Control
3
3
HID
5
5
Physical
6
6
Image
7
7
Printer
8
8
Mass-Storage
9
9
HUB
10
A
CDC-Data
11
B
Chip/Smart Card
13
D
Content-Security
14
E
Video
220
DC
Diagnostic Device
224
E0
Wireless Controller
254
FE
Application-Specific
255
FF
Vendor-Specific
Klasy urządzeń USB
INTERFEJSY SZEREGOWE
Program
Klient
Oprogramowan
ie systemowe
Interfejs USB
Sterownik
USB
Urządzenie
logiczne
Funkcja
Komputer
Karta dźwiękowa
Potoki danych audio
Przekaz izochroniczny
Potoki sterujące
Linie sygnałowe
Warstwa funkcjonalna
Warstwa logiczna
Warstwa fizyczna
Struktura magistrali
USB
INTERFEJSY SZEREGOWE
Sposób przekazu HID-
ów
Ep0 Ep1 Ep2 Ep3 Ep4 Ep5
Program Klient
Komputer
Magistrala USB
Karta Dźwiękowa
Bufor
Bufor
Bufor
Bufor
Bufor
Bufor
P
o
t
o
k
INTERFEJSY SZEREGOWE
DZIĘKUJĘ ZA UWAGĘ