1
Podstawy techniki
mikroprocesorowej
ETEW006
Szeregowa transmisja danych
Andrzej Stępień
Katedra Metrologii Elektronicznej i Fotonicznej
Interface (computing)
Interfejs
W dziedzinie informatyki,
interfejs
jest
narz
ę
dziem
i
poj
ę
cia
, które
odnosz
ą
si
ę
do interakcji mi
ę
dzy składnikami systemu oraz ma
zastosowanie zarówno na poziomie sprz
ę
tu i oprogramowania.
Interfejsy sprz
ę
towe
istniej
ą
w systemach informatycznych mi
ę
dzy
elementami takimi jak magistrale, urz
ą
dzenia pami
ę
ci masowej, inne
urz
ą
dzenia we/wy itp.
Interfejs
spolszczenie angielskiego słowa interface, które w j
ę
zyku
polskim jest tłumaczone jako przej
ś
ciówka lub sprz
ę
g.
urz
ą
dzenie elektroniczne lub optyczne pozwalaj
ą
ce na
komunikacj
ę
mi
ę
dzy dwoma innymi urz
ą
dzeniami, których
bezpo
ś
rednio nie da si
ę
ze sob
ą
poł
ą
czy
ć
http://en.wikipedia.org/wiki/Interface_(computing)
http://pl.wikipedia.org/wiki/Interfejs
Pojęcia podstawowe
ANSI
(American National Standard Institution) - Ameryka
ń
ski Narodowy Urz
ą
d
Normalizacyjny
Tranceiver
/
Driver
- nadajnik, urz
ą
dzenie/układ nadaj
ą
cy/wysyłaj
ą
cy dane
Receiver
- odbiornik, urz
ą
dzenie/układ odbieraj
ą
cy dane
Master
- w systemach wieloprocesorowych urz
ą
dzenie/układ nadrz
ę
dny,
inicjalizuj
ą
cy i ko
ń
cz
ą
cy transmisj
ę
Slave
- w systemach wieloprocesorowych urz
ą
dzenie/układ podporz
ą
dkowany,
obsługiwany przez urz
ą
dzenie nadrz
ę
dne
Data Rate
.
Baud Rate
- szybko
ść
transmisji, liczba bitów przesyłanych znaków
w jednostce czasu (bps - baud per second)
Half Duplex
- czasowe rozdzielenie, naprzemienne nadawanie i odbiór;
mo
ż
liwo
ść
ró
ż
nej szybko
ś
ci pracy nadajnika i odbiornika
Full Duplex
- równoczesne niezale
ż
ne nadawanie i odbiór znaków z t
ą
sam
ą
szybko
ś
ci
ą
nadajnika i odbiornika
Kodowanie ze składową stałą
http://en.wikipedia.org/wiki/NRZI#
Non-Return-to-Zero_Inverted_.28NRZI.29
Odwrócony standard bez powrotu do zera (
NRZI
→
→
→
→
Non–Return–to–Zero,
Inverted
) – metoda przekształcania binarnego sygnału na dwupoziomowy
sygnał fizyczny, w którym przeł
ą
czenie poziomu sygnału jest synchronizowane
sygnałem zegarowym:
•
1
– zmiana stanu sygnału,
0
– brak zmiany stanu
•
0
– zmiana stanu sygnału,
1
– brak zmiany stanu (rysunek, np.
USB
).
1
0
1
1
0
0
1
0
NRZ
NRZI
Dane binarne
Standard bez powrotu do zera (
NRZ
→
→
→
→
Non–Return–to–Zero
) –
przekszałcenie liniowego kodu binarnego, w którym
1
-ki s
ą
reprezentowane
zwykle przez napi
ę
cie dodatnie, a
0
-a reprezentowane zazwyczaj jako
potencjał masy (standard unipolarny) lub napi
ę
cie ujemne (standard
bipolarny), bez stanów po
ś
rednich (rysunek, np.
RS232
).
Kodowanie bez składowej stałej
http://en.wikipedia.org/wiki/Manchester_code
http://pl.wikipedia.org/wiki/Kod_Manchester
standard
Manchester
(kodowanie fazowe Phase Encoding lub PE) zakłada
jednoznaczn
ą
zmian
ę
warto
ś
ci bitu w
ś
rodku czasu trwania przesyłanego
bitu, np.
zbocze opadaj
ą
cego dla stanu LOW
i
zbocze narastaj
ą
ce dla
stanu HIGH
(konwencja IEEE802.3 – Ethernet, DALI)
brak składowej stałej – łatwo
ść
separacji galwanicznej linii transmisyjnych
dodatkowe zmiany sygnału przy powielaniu warto
ś
ci bitów
0
1
first published by
G. E. Thomas in 1949
0
0
1
1
1
(IEEE802.3)
Transmisja
asynchroniczna
http://en.wikipedia.org/wiki/Asynchronous_communication
sterowanie transmisj
ą
przez
dodatkowe symbole pocz
ą
tku i ko
ń
ca
transmisji lub transmitowanego znaku
transmisja
danych
bez
dodatkowego, zewn
ę
trznego
generatora
sygnału
taktuj
ą
cego
konieczno
ść
wzajemnej, okresowej
re-synchronizacji generatorów
nadajnika i odbiornika
aplikacje
:
RS232x
, USB, CAN, 1-wire, DALI
1
1
0
0
1
dane
RS232
bit
startu
synchronizacja
n-bitowe dane
≈
≈
≈
bit
stopu
t
1–, 1½–, 2–bity
stopu
2
Transmisja
synchroniczna
1
0
1
1
0
0
1
0
dane
sygnał taktuj
ą
cy
lub
sygnał taktuj
ą
cy
przesył danych w chwilach wyznaczonych przez dodatkowy sygnał
taktuj
ą
cy
(zegarowy)
sygnał taktuj
ą
cy przesyłany razem z transmitowanymi danymi
aplikacje
: SPI/Micowire, I
2
C-Bus/SMBus, FireWire (IEEE-1394)
http://pl.wikipedia.org/wiki/Transmisja_synchroniczna
USB
2.0
CAN
DesignCon 2003 TecForum I2C Bus Overview.
January, 27, 2003
3.4 MHz
400 kHz
100 kHz
I
2
C
USB
3.0
Transmisja asynchroniczna
• Brak linii sygnału taktuj
ą
cego
• UART
(Universal Asynchronous Receiver - Transmitter)
ACE
(Asynchronous Communication Elements)
SCI
(Serial Communication Interface)
uniwersalny układ do 2-przewodowej, asynchronicznej transmisji
szeregowej:
• ramka danych: bit startu, 5-8 bitów danych, 1-2 bity kontrolne,
1-2 bity stopu
• dane kodowane w standardzie NRZ
• oddzielne linie nadajnika i odbiornika
• transmisja full duplex
RS-232 ⇒
⇒
⇒
⇒
TIA/EIA-232-F
• ograniczony do
1ms
czas zmian je
ś
li szybko
ść
transmitowanych danych < 40bps
• 4% limit
czasu zmian dla szybko
ś
ci 40 bps .. 200 kbps
• ograniczenie szybko
ś
ci narostu/opadania sygnału nadajnika do
30 V/
µµµµ
s
• ograniczenie szybko
ś
ci transmitowanych danych do 20 kbps (obecnie do 250 kbps)
1
T
ra
n
si
ti
o
n
T
im
e
[
m
s]
TIA/EIA-232-E and -F,
EIA-232-D, RS-232-C
4% Limit
30 V/
µµµµ
s Limit
20k
250k
J. M. Soltero, J. Zhang, E. Cox: Low-Voltage, Single-Supply
232-Standard Interface Solutions. TI, SLLA083A - SEPTEMBER 2000
TIA/EIA-232
Poziomy napięć
http://en.wikipedia.org/wiki/EIA/TIA-232
znak ASCII "K" (0x4B): 1 bit startu, 8 bitów znaku, 1 bit stopu
zabronione
(forbidden)
LSB
MSB
+5V
–5V
Nadajnik
(Driver)
+3V
–3V
Odbiornik
(Receiver)
Standard C51
Stabilność generatora taktującego
RxD
TxD
Start
LSB
MSB
Stop
T
7
8
9
Bit
K
T
2
T
16
maksymalna zmiana czasu wewn
ę
trznego
testu odebranego bitu:
1 1
2 16
N
δδδδ
T =
dodatkowe zało
ż
enia:
• N = 10 lub 11, liczba przesyłanych bitów znaków
• taka sama tolerancja cz
ę
stotliwo
ś
ci f
OSC
nadajnika i odbiornika
• dodatkowe opó
ź
nienia w wewn
ę
trznej strukturze odbiornika
• stany nieustalone w liniach transmisyjnych
δδδδ
T < 3% dla 8 bitów danych (teoret. < 4,3%)
δδδδ
T < 2,8% dla 9 bitów danych (teoret. < 4,0%)
7-8-9
Stabilno
ść
wewn
ę
trznego generatora mikrokontrolera
δδδδ
T=2,5%
jest wystarczaj
ą
ca dla typowych zastosowa
ń
UARTu.
3
TIA / EIA-422
(RS-422)
TIA / EIA-485
(RS-485)
M. Soltero, J. Zhang, C. Cockril
updated by K. Zhang, C. Kinnaird, T. Kugelstadt:
RS-422 and RS-485 Standards Overview and System Configurations.
Texas Instruments, Application Report, SLLA070D, June 2002–Revised May 2010
RS-422
(nazwa potoczna) –
Charakterystyki elektryczne zrównowa
ż
onego
napi
ę
ciowo interfejsu cyfrowego
(officially standard's title published by the
ANSI Telecommunication Industry Association / Electronic Industries
Association (TIA/EIA): Electrical Characteristics of Balanced Voltage Digital
Interface Circuits)
RS-422
jest prost
ą
, wielopunktow
ą
sieci
ą
z
pojedynczym nadajnikiem
i
maksymalnie 10 odbiornikami
RS-485
(nazwa potoczna) –
Charakterystyki elektryczne generatorów i
odbiorników zrównowa
ż
onego napi
ę
ciowo interfejsu cyfrowego
(officially
standard's title published by the TIA/EIA: Electrical Characteristics of
Generators and Receivers for Use in Balanced Digital Multipoint Systems)
RS-485
kompatybilny z RS-422, zakłada u
ż
ycie w danym momencie
pojedynczego nadajnika
i
do 32 standardowych odbiorników
(U.L. – unit
load, odpowiada rezystancji obci
ąż
enia w warto
ś
ci około 12 k
Ω
)
RS-422
Balanced-Voltage Digital-Interface Circuit
Driver
or Generator
Receiver
Termination
impedance
ró
ż
nicowa, symetryczna magistrala
impedancja terminatora Z
T
= impedancji kabla Z
0
(typowa tolerancja
±20%
)
maksymalnie do 9
dodatkowych
odbiorników
mi
ę
dzy punktami A i B
oraz punktami A' i B'
only Physical Layer
Differential balanced line
over twisted pair
RS-422
Balanced-Voltage Digital-Interface Circuit
Driver
or Generator
Receiver
Termination
impedance
długo
ść
magistrali
determinuj
ą
straty sygnału i rozsynchronizowaniu bitów
danych powy
ż
ej 10% (standardowo długo
ść
magistrali nie przekracza1 km, a
pr
ę
dko
ść
transmisji 100 kbps).
Im dłu
ż
sza magistrala tym mniejsza szybko
ść
transmisji, zwykle zgodnie
z reguł
ą
:
szybko
ść
transmisji (w bps)
∗∗∗∗
długo
ść
magistrali (w metrach)
≤≤≤≤
10
8
(np. dla magistrali o długo
ś
ci 500 m szybko
ść
transmisji nie powinna
przekracza
ć
200 kbps (10
8
/500))
only Physical Layer
Differential balanced line
over twisted pair
M. Soltero, J. Zhang, C. Cockril
updated by K. Zhang, C. Kinnaird, T. Kugelstadt:
RS-422 and RS-485 Standards Overview and System Configurations.
Texas Instruments, Application Report, SLLA070D, June 2002–Revised May 2010
RS-422
Balanced-Voltage Digital-Interface Circuit
Driver
or Generator
Receiver
Termination
impedance
only Physical Layer
Differential balanced line
over twisted pair
U
+
U
–
Mark
Idle
Mark
Idle
1
1
0
0
0
1
1
1
S
to
p
S
ta
rt
transmisja znaku 0xD3 (bit najmniej znacz
ą
cy jako pierwszy) z
asynchroniczn
ą
metod
ą
start-stop
http://en.wikipedia.org/wiki/RS-485
Interfejs dwu-przewodowy
Transmisja half-duplex w standardzie
RS-485 z u
ż
yciem pojedynczej pary
przewodów
.
RS-422 and RS-485. Application Note.
B&B Electronics -- Revised June 2006
Figure 2.2
~1220m
Problem
ró
ż
nic
potencjałów
mas
odległych
nadajników
i
odbiorników
Four Wire Interface
RS-422 systems require a dedicated pair of wires for each signal
, a
transmit pair
, a
receive pair
and an additional pair for each
handshake/control signal used (if required).
RS-422 and RS-485. Application Note.
B&B Electronics -- Revised June 2006
Figure 2.1
~1220m
4
Historia
1985
- Robert Bosch GmbH proponuje interfejs szeregowy w celu
ujednolicenia wymiany danych w przemy
ś
le samochodowym (lotniczym), jako
odpowied
ź
na wymagania stawiane przez dwóch niemieckich producentów
samochodów: Daimler-Benz i BMW (obecnie tak
ż
e: VW, Renault, PSA, Volvo,
Saab i inni)
podstawowe wymagania
:
−
niskie koszty linii transmisyjnych,
−
du
ż
a szybko
ść
przesyłanych danych,
−
du
ż
a niezawodno
ść
i wiarygodno
ść
transmitowanych informacji,
−
odporno
ść
na zakłócenia elektryczne,
−
automatyczna (sprz
ę
towa) detekcja mo
ż
liwie wszystkich bł
ę
dów
wyst
ę
puj
ą
cych w trakcie transmisji danych
protokół szeregowej
wymiany danych mi
ę
dzy w
ę
złami nadawczymi i
odbiorczymi, mi
ę
dzy warstwami
fizycznymi
i
logicznymi
obecnie standard
CAN 2.0A
z
11-bitowym identyfikatorem
w
ę
złów, (praktycznie
2032 w
ę
złów) lub
CAN 2.0B
z
29-bitowym identyfikatorem
w
ę
złów
Cechy
identyfikator w
ę
zła nie jest jego adresem – ten sam w
ę
zeł mo
ż
e mie
ć
wiele ró
ż
nych identyfikatorów
w zale
ż
no
ś
ci od pełnionej funkcji
elastyczno
ść
systemu
- doł
ą
czanie kolejnych w
ę
złów bez konieczno
ś
ci
zmian sprz
ę
towych i programowych
konfiguracja sieci typu
Multi-Master
, zorientowana obiektowo
niezawodno
ść
magistrali
- detekcja i sygnalizacja przez ka
ż
dy w
ę
zeł
bł
ę
dów transmisji:
→
wszystkich bł
ę
dów globalnych,
→
wszystkich bł
ę
dów lokalnych nadajników,
→
do 5 przypadkowych bł
ę
dów w ramce,
→
do 15 bł
ę
dów w ramce powoduj
ą
cych zmian
ę
długo
ś
ci poszczególnych
cz
ęś
ci ramki,
→
dowolnego bł
ę
du nieparzysto
ś
ci w ramce,
→
grupowanie danych w ramki, od 0 do 8 bajtów w ramce,
→
prawdopodobie
ń
stwo niewykrycia bł
ę
du w ramce mniejsze ni
ż
:
stopa_bł
ę
dów
∗
4,7
∗
10
-11
Niezawodność
przykład (np. układ ABS w autobusie):
−
mo
ż
liwo
ść
pojawienia si
ę
pojedynczego bł
ę
du nie cz
ęś
ciej ni
ż
co 0,7 s,
−
szybko
ść
transmisji danych równa 500 kbps,
−
czas pracy systemu:
→
8 godzin dziennie,
→
365 dni w roku
prawdopodobie
ń
stwo pomini
ę
cia pojedynczego bł
ę
du
nie cz
ęś
ciej ni
ż
raz na
1000 lat
CAN2.0B
Ramki (Frames)
S
O
F
ID
entifier
ID10..ID0
11 bits
R
T
R
I
D
E
r
0
D
ata
0 .. 8 Bytes
Standard
Format:
Extended
Format:
S
tart
O
f
H
eader
R
emote
T
ransmit
R
equest
ID
entifier
E
xtension bit
r
eserved
bits
ACK
nowledge
INT
erframe space
S
O
F
ID
entifier
ID28..ID18
11 bits
S
R
R
I
D
E
R
T
R
r
1
r
0
D
ata
0 .. 8 Bytes
ID
entifier
ID17..ID0
18 bits
S
ubstitute
R
emote
R
equest
Data
Length
Code
4 bits
Data
Length
Code
4 bits
A
C
K
INT
> 3
bits
E
nd
O
f
F
rame
7 bits
C
yclic
R
edundancy
C
heck
15 bits
CRC
ACK
EOF
INT
CAN Specification Version 2.0.
Robert Bosch GmbH, 1991
Transmisja ramek
automatyczna detekcja bł
ę
dów
transmisji:
→
grupowanie danych w ramki (
Frame
),
→
kontrola nadawanych danych i stanu magistrali,
→
cykliczna kontrola nadmiarowa (
CRC
),
→
bity separacji i potwierdzenia (
ACK
),
→
dodatkowe bity synchronizacji (
Stuff bits
),
2-przewodowa-ró
ż
nicowa
lub 1-przewodowa magistrala, prowadzona
za po
ś
rednictwem kabla koncentrycznego, skr
ę
tki lub
ś
wiatłowodu,
szybko
ść
transmisji danych od
5 Kbitów/s .. do 1Mbita/s
(40 m),
maksymalna
odległo
ść
w
ę
złów ograniczona do
10 km
(5 Kbitów/s)
Kodowanie
Dostawianie bitów
brak sygnału zegarowego w magistrali, problem synchronizacji układów
peryferyjnych
→
kodowanie bitów metod
ą
dostawiania bitu
(
Bit Stuffing
):
–
po 5 bitach aktywnych (
dominant
) wstawiany 1 bit pasywny (
recessive
)
–
po 5 bitach pasywny (
recessive
) wstawiany 1 bit aktywny (
dominant
)
1 2 3 4 5 6
5
6
1 2 3 4 5 6
1 2 3 4
1 2 3 4 5
6
wejściowy
strumień
danych
strumień
bitów
7 8 9 10
10
7 8 9
1 2 3 4 5 6
2 3 4 5 6
wyjściowy
strumień
danych
7 8 9 10
Stuff
Bit
1
magistrala
CAN
5
Sygnały napięciowe
(tryb szybki)
CAN_H
CAN_L
Napięcie
5V
3,5V
2,5V
1,5V
0V
t
stan pasywny
(recessive)
stan aktywny
(dominant)
stan pasywny
(recessive)
Węzeł 1
Węzeł 30
CAN_H
CAN_L
Magistrala CAN
120
Ω
Ω
Ω
Ω
120
Ω
Ω
Ω
Ω
Standardy
CANaerospace
www.mstock.com (Michael Stock Flight Systems)
CANary
www.atmel.com
CANopen
www. can-cia.de
CAN Kingdom
www.cankingdom.org
DeviceNet
www.odva.org
NMEA2000
communication protocol based upon the J1939
Controller Area Network standard from the National
Marine Electronics Association (NMEA) to
interconnect various electronic units onboard ships
and smaller recreational and commercial vessels.
PeliCAN
www.semiconductors.philips.com
SAE J1939
www.sae.org (The Society of Automotive Engineers)
USB
Terminologia
Pakiet
(packet) – najmniejszy element danych przesyłanych magistral
ą
Pipes
– kanał logiczny pomi
ę
dzy Hostem, a urz
ą
dzeniem ko
ń
cowym
(Device)
Punkt ko
ń
cowy
(Endpoint) – bufor typu FIFO urz
ą
dzenia ko
ń
cowego
b
ę
d
ą
cy zako
ń
czeniem kanału logicznego (pipes)
OUT
– kierunek transmisji od Hosta
IN
– kierunek transmisji do Hosta
Deskryptor
(Descriptor) – tablica identyfikuj
ą
ca sprz
ę
t, stosowane
oprogramowanie, typy interfejsów, opisów itp.
tylko jeden Host
–
warstwa 1
dowolna liczba
koncentratorów
(hub)
maksymalnie
127 urz
ą
dze
ń
ko
ń
cowych
maksymalnie
7 warstw
Topologia magistrali
Topologia gwiazdy
warstwa 2
warstwa 3
warstwa 4
warstwa 5
warstwa 6
warstwa 7
Hub 1
Hub 2
Hub 3
Hub 4
Hub 5
Hub 7
Host
Func
Func
Func
Func
Func
Compound Device
Hub 6
USB
Communication Flow
Typy danych
Typ kontrolny
(Control Transfers)
obsługiwany przez ka
ż
de urz
ą
dzenie, u
ż
ywany do/w trakcie konfiguracji
urz
ą
dzenia; czasami stosowany do przesyłania danych
Typ masowy
(Bulk Data Transfers)
przesył du
ż
ych ilo
ś
ci danych z kontrol
ą
poprawno
ś
ci (powtórne przesyłanie
uszkodzonych pakietów) ale bez gwarancji wymaganego pasma (opó
ź
nie
ń
),
np. drukarki, skanery itp.
Typ izochroniczny
(Isochronous Data Transfers)
przesył du
ż
ych ilo
ś
ci danych bez kontroli poprawno
ś
ci (brak powtórnego
przesyłanie uszkodzonych pakietów) z gwarancj
ą
wymaganego pasma (w
czasie rzeczywistym), np. dane audio, video itp.
Typ przerwaniowy
(Interrupt Data Transfers)
periodyczny przesył niewielkich ilo
ś
ci danych, z gwarancj
ą
pasma (ustalony
czas odpytywania urz
ą
dzenia, okre
ś
lony rozmiar pakietu), np. klawiatura,
myszka, termometr, woltomierz itp.
Universal Serial Bus Specification.
Revision 2.0, April 27, 2000, p.20
6
Szybkość transmisji
Linie danych (D+ D—)
USB 1.1
Low Speed: 1,5 Mbit/s
(0.1875 MB/s)
±1.5% (15,000ppm)
USB 1.1
Full Speed:
12 Mbit/s
(1.5 MB/s)
±0.25% (2,500ppm)
/ host ±0.05% (500ppm)
USB 2.0
High Speed: 480 Mbit/s
(60 MB/s)
±0.05% (500 ppm)
USB 3.0
SuperSpeed
5 Gbit/s
(640MB/s)
Host
or
Hub Port
Transceiver
D+
D+
D–
D–
Z
0
=90
Ω±
15%
R
pd
= 15 k
Ω ±
5%
R
pu
=1.5 k
Ω ±
5%
R
pd
R
pd
or
www.usb.org
3.3 V
Identyfikacja szybkości transmisji
[1#2]
Transceiver
Low-Speed
USB
D+
D+
D–
D–
R
pd
R
pd
Z
0
=90
Ω±
15%
R
pd
= 15 k
Ω ±
5%
R
pu
=1.5 k
Ω ±
5%
Transceiver
Full-Speed
USB
D+
D+
D–
D–
Z
0
=90
Ω±
15%
R
pd
= 15 k
Ω ±
5%
R
pu
=1.5 k
Ω ±
5%
R
pd
R
pd
Host
or
Hub Port
Host
or
Hub Port
Universal Serial Bus Specification.
Revision 2.0, April 27, 2000, p.141
przej
ś
cie do
trybu High–speed rozpoczyna si
ę
trybem Full–speed (linia D+
doł
ą
czona do napi
ę
cia zasilaj
ą
cego V
CC
=3.3 V przez rezystor R
PU
= 1.5 k
Ω
)
stałopr
ą
dowe obci
ąż
enie (DC load) ka
ż
dej z linii (D+ oraz D–) powinno wynosi
ć
nominalnie 45
Ω
±
10% wzgl
ę
dem masy (40.5
Ω ≤
Z
HSDRV
≤
49.5
Ω
, High–speed
Driver Output Resistance
Table 7-8
)
przeł
ą
czenie do trybu High–speed inicjuje urz
ą
dzenie (device), K–J chirp
po rozpocz
ę
ciu inicjalizacji linia D+ zostaje odł
ą
czona od napi
ę
cia V
CC
= 3.3 V
Identyfikacja szybkości transmisji
[2#2]
Transceiver
High-Speed
USB
D+
D+
D–
D–
Z
0
=90
Ω±
15%
2 x R
pd
R
pu
= 1.5 k
Ω ±
5%
Host
or
Hub Port
Universal Serial Bus Specification.
Revision 2.0, April 27, 2000, p.143
2 x R
HSpd
(45
Ω ±
10%)
V
CC
= 3.3 V
2 x R
HSpd
(45
Ω ±
10%)
High—speed
Handshake
SE0
Full-Speed
Device
Chirp K
Device
Chirp K
Host/Hub
Chirp J
High-speed
96 mV
(120 mV max)
3.0 V
800 mV
900 mV
D+
D–
0 mV
Offset
"Tiny J"
SE0
Full-Speed
SE0
Full-Speed
Jerome Tjia: High-Speed Detection Handshake
Considerations. Philips Semiconductors, May9, 2001
Data J state: Low-speed = differential ”0”
Full-speed = differential ”1”
Data K state: Low-speed = differential ”1”
Full-speed = differential ”0”
Single-ended 0 (SE0): D+ and D– < V
OLMAX
Chirp –
ć
wierkanie, bzyczenie, szczebiot,
ś
wiergot
USB
Series "A" Plug
USB 2.0 Specification Engineering Change Notice (ECN) #1:
A connector. Date: 10/20/2000, ecn1.pdf
1
2
3
4
Contact
Typical Wiring
Number
Signal Name
Assignment
1
VBUS
Red
2
D-
White
3
D+
Green
4
GND
Black
Shell
Shield
Drain Wire
0.1 mm
Kodowanie danych
Dostawianie bitów
Bit Stuffed
DATA
Sync Pattern (0x80)
(Synchronization)
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
Packed Data
DATA
6 x HIGH
Stuffed Bit
LOW
NRZI
Idle
LSB First
7
Ramki (Frames)
Mikroramki (Micro-Frames)
1 ms
Frame:
Control (SOF)
Isochronous
Interrupt
Bulk
Low / Full Speed Frame:
High Speed Micro-Frames:
125
µ
s
SOF
packets
in each Frame
&
Micro-Frame
Formaty pakietów (Packet Formats)
PID
Addr
ENDP
CRC5
Idle
Token Packet
PID
Frame#
CRC5
Idle
SOF Packet
PID
Data
CRC16
Idle
Data Packet
Sync
PID
Idle
Handshake Packet
0
0
0
0
0
0
0
1
PID
0
PID
1
PID
2
PID
3
PID
0
PID
1
PID
2
PID
3
PID Packet
Format
EOP
EOP
EOP
EOP
Sync Pattern
8 bits
7 bits
4 bits
5 bits
8 bits
≥
2
∗
T
PERIOD
8 bits
11 bits
5 bits
8 bits
≥
2
∗
T
PERIOD
8 bits
0..1023
bytes
16 bits
8 bits
≥
2
∗
T
PERIOD
Sync
Sync
Sync
PID Packet Formats
PID
0
PID
1
PID
2
PID
3
PID
0
PID
1
PID
2
PID
3
PID
Type
Name
Token
OUT
1
0
0
0
Token
IN
1
0
0
1
SOF
SOF
1
0
1
0
SOF marker, frame number
Token
SETUP
1
0
1
1
Data
Data0
1
1
0
0
Data packet PID even
Data1
1
1
0
1
Data packet PID odd
Handshake
ACK
0
1
0
0
Error-free data packet
NAK
0
1
0
1
Device cannot accept
or send data
STALL
0
1
1
1
Endpoint halted
Special
PRE
0
0
1
1
Enables low-speed
What is USB Enumeration ?
Czym jest proces enumeracji
Enumeracja
jest procesem systemu operacyjnego, po doł
ą
czeniu do hosta
urz
ą
dzenia USB, którego celem jest rozpoznanie cech doł
ą
czonego
urz
ą
dzenia, przydzielenie 7–bitowego adresu (w zakresie 1..127 lub
2..127
Win2000
) oraz aktywacja sterownika systemu operacyjnego obsługuj
ą
cego
urz
ą
dzenie;
8 etapów
Universal Serial Bus Specification. Revision 2.0, April 27, 2000, p.243
12 etapów
Jan Axelson: USB Complete. The Developer's Guide. 4 Edition. Lakeview Research, June 2009, Chapter 4
w czasie
enumeracji
host ustala typ sterownika stosowanego do obsługi
doł
ą
czonego urz
ą
dzenia na podstawie polecenia odczytu podstawowych
deskryptorów, tablic identyfikuj
ą
cych sprz
ę
t i stosowane oprogramowanie
deskryptor urz
ą
dzenia
(Device Descriptor) – identyfikacja sprz
ę
tu (Device
descriptor type), klasa urz
ą
dzenia (Class and Subclass code: Communication
Device Class, Mass Storage Device Class, Virtual COMM, Human Interface
Device, ..), rozmiar transmitowanych pakietów dla zerowego punktu
ko
ń
cowego (
Max packet size for EP0 – EndPoint0) – kolejki FIFO,
liczba
dost
ę
pnych konfiguracji (np. tryby obni
ż
onego poboru mocy), producent
itp.
W. Mielczarek: USB. Uniwersalny interfejs szeregowy.
Helion, Gliwice, 2005
Get Descriptor (Setup)
Host
Sync
0000 0001
SOF
A5
Frame #
52D
CRC5
05
EOP
2,5
Idle
Host
Sync
0000 0001
SetUp
B4
Addr
02
CRC5
15
EOP
2,5
Idle
5
EndP
00
Host
Sync
0000 0001
Data0
C3
Data
80 06
00
01
00 00 40 00
CRC16
B129
EOP
2,5
Idle
6
Host/
/Device
Sync
0000 0001
ACK
4B
EOP
2,5
Idle
11-bit Frame Number
PID: Start Of Frame
Synchronisation Pattern
End OF Packet (
≥
2
∗
T
PERIOD
)
4-bit endpoint
5-bit CRC field
(polynomial: G(X) = X
5
+ X
2
+ 1)
PID: SetUp
7-bit Device address
PID: Data0
16-bit CRC field
(polynomial: G(X) = X
16
+ X
15
+ X
2
+ 1)
PID: Acknowledge
80
Input = Get Descriptor
06
Standard Request = Get Descriptor
01
Descriptor Type = Device
NXP – Cortex-M0
On-chip USB ROM Drivers
The extensible
on-chip USB drivers
include (LPC11U2x):
Human Interface Device (HID)
Mass Storage Device Class (MSC)
Communication Device Class (CDC)
"Driver capability can be further enhanced by
NXP's open-source USB
library
" on
http://www.lpcware.com
http://docs.lpcware.com/usbromlib/v1.0/index.html
8
SPI
Topologies
http://www.byteparadigm.com/kb/article/AA-00255/22/
Introduction-to-SPI-and-IC-protocols.html (Fig.1)
Acronyms and Abbreviations
SPI
Serial Parallel Interface
SS
Slave Select
SCK
Serial Clock
MOSI
Master Output, Slave Input
MISO
Master Input, Slave Output
MOMI
Master Output, Master Input
SISO
Slave Input, Slave Output
SPI Block Guide, V04.01.
Freescale Semiconductor, Inc,
S12SPIV4/D, 14 JUL 2004
SPI master connected to a single slave (point-to-point topology)
SPI master
connected
to a multiple slave
Microwire czy SPI
Microwire
produktem firmy
National Semiconductor
(prekursor standardu
SPI, wył
ą
cznie jeden tryb 0 pracy)
SPI
(Serial Peripheral Interface Bus or SPI bus) produktem firmy
Motorola
(cztery tryby pracy)
Microwire/Plus
produktem firmy
National Semiconductor
(rozszerzenie
trybów pracy dla procesorów rodziny COP800)
synchroniczna
transmisja danych w oparciu o zbocze (narastaj
ą
ce lub
opadaj
ą
ce) sygnału taktuj
ą
cego SK/SCLK (w standardzie
I
2
C
aktywny jest
stan HIGH
sygnału taktuj
ą
cego SCK)
wył
ą
cznie jeden układ "
Master
" generuje sygnał taktuj
ą
cy SK/SCLK dla
wszystkich układów "
Slave
"
jeden sygnał taktuj
ą
cy SK/SCLK niezale
ż
nie od wewn
ę
trznych sygnałów
taktuj
ą
cych wszystkich układów w systemie, pełna synchronizacja
transmitowanych znaków
Microwire / SPI
Microwire
: niezbyt wysoka szybko
ść
transmisji danych (1
1)
.. 3 MHz
2)
)
SPI
: wysoka szybko
ść
transmisji danych (20MHz
3)
, 108 MHz
4)
, 250MHz
5)
)
Microwire/Plus
: niezbyt wysoka szybko
ść
transmisji danych (3 MHz
6)
)
SPI Signals
Microwire or Microwire/Plus Signals
SCLK – Serial Shift Clock
SK – Serial Shift Clock
MOSI – Master Out Slave In
SO – Serial Out (both master & slave)
MISO – Master In Slave Out
SI – Serial In (both master & slave)
/SS – Slave Select
/CS – Chip Select
AT93C86A. Three-wire Serial EEPROM. Atmel, 2007
Atmel AT25320B and AT25640B SPI Serial EEPROM. Atmel, 2012
N25Q00AA. 1Gb, 3V, Multiple I/O Serial NOR Flash Memory. Micron, 1 February 2013
Raspberry Pi (ARM1176)
COP912C 8-Bit Microcontroller. National Semiconductor, SNOS727D, November 19
FM93CS56. (MICROWIRE™ Bus Interface)
2048-Bit Serial EEPROM with Data Protect and Sequential Read. Fairchild, 2000
SPI / Microwire - signals
SPI:
MISO
- Master Input Slave Output
MOSI
- Master Output Slave Input
SCK
- Serial CloCK
/SS
- Slave Select
SCK
SK
SCK
SK
/SS or /CS
Microwire:
SI
– Serial In (both master & slave)
SO
– Serial Out (both master & slave)
SK
– Serial Shift Clock
/CS
– Chip Select
MISO
SI
MISO
SO
MOSI
SO
MOSI
SI
GND
SPI
Tryby
http://www.byteparadigm.com/kb/article/AA-00255/22/
Introduction-to-SPI-and-IC-protocols.html (Fig.3)
Microwire
Toggling edge
Sampling edge
Mode 0
CPOL = 0
CPHA = 0
SCLK idle level
LOW
Toggling edge
Sampling edge
Mode 2
CPOL = 1
CPHA = 0
SCLK idle level
HIGH
Toggling edge
Sampling edge
Mode 1
CPOL = 0
CPHA = 1
SCLK idle level
LOW
Toggling edge
Sampling edge
Mode 3
CPOL = 1
CPHA = 1
SCLK idle level
HIGH
CPOL
(clock polarity) okre
ś
la polaryzacj
ę
stanu
spoczynkowego dla linii taktuj
ą
cej (clock's
idle
state) jako Low (CPOL=0) lub High (CPOL=1)
CPHA
(clock phase) okre
ś
la, podczas którego
zbocza sygnału taktuj
ą
cego s
ą
próbkowane dane:
•
CPHA=0
dane s
ą
próbkowane
pierwszym
zboczem
sygnału SCLK
•
CPHA=1
dane s
ą
próbkowane
drugim
zboczem
sygnału SCLK
Dokumenty
smbus20.pdf
System Management Bus (SMBus) Specification
Version 2.0, August 3, 2000
SBS Implementers Forum:
Duracell, Inc., Energizer Power Systems, Inc., Fujitsu, Ltd.,
Intel Corporation, Linear Technology, Inc., Maxim Integrated Products,
Mitsubishi Electric Semiconductor Company, PowerSmart, Inc.,
Toshiba Battery Co. Ltd., Unitrode Corporation, USAR Systems, Inc.
http://www.smbus.org/specs/spec_content.htm
UM10204. I2C-bus specification and user manual.
NXP Rev. 03 — 19 June 2007
http://www.nxp.com
9
Właściwości
(1/2)
doł
ą
czanie lub odł
ą
czanie układów bez zmiany konfiguracji magistrali
2-przewodowa, 2-kierunkowa magistrala:
→
SDA
(Serial DAta) - linia danych
→
SCL
(Serial CLock) - linia zegara (taktuj
ą
ca)
→
obie linie magistrali typu: Open-Drain lub Open-Collector
ka
ż
dy układ
ma
własny
,
indywidualny adres
:
→
7 bitowy w trybie standardowym (Standard Mode)
→
10 bitowy w trybie szybkim (Fast Mode)
→
brak zewn
ę
trznych układów dekoduj
ą
cych adresy urz
ą
dze
ń
szeregowa
,
8-bitowa
,
2-kierunkowa
wymiana danych
wbudowane protokoły wymiany danych
i testowania stanu magistrali
ograniczenie
szybko
ś
ci
transmisji danych:
→
100 kbit/s (Standard )
→
400 kbit/s (Fast)
→
3,4 Mbit/s (High-Speed,
Hs
)
Właściwości
(2/2)
ka
ż
dy układ mo
ż
e pełni
ć
rol
ę
nadajnika danych (
Transmitter
) lub
odbiornika danych (
Receiver
), wyj
ą
tkiem s
ą
sterowniki wy
ś
wietlaczy,
które mog
ą
by
ć
jedynie odbiornikami
ka
ż
dy układ mo
ż
e by
ć
układem zarz
ą
dzaj
ą
cym (
Master
) lub
podporz
ą
dkowanym (
Slave
)
układem nadrz
ę
dnym (
Master
) jest układ inicjalizuj
ą
cy transmisj
ę
,
pozostałe układy staj
ą
si
ę
automatycznie podporz
ą
dkowanymi (
Slave
)
magistral
ą
mo
ż
e zarz
ą
dza
ć
wiele kontrolerów (
Multi
-
Master
)
wbudowane procedury
arbitra
ż
u
w przypadku dost
ę
pu do magistrali
wi
ę
cej ni
ż
jednego układu zarz
ą
dzaj
ą
cego (poł
ą
czenie typu AND na linii
SCL)
procedury
synchronizacji
sygnału taktuj
ą
cego (SCL) w przypadku
równoczesnego dost
ę
pu do magistrali kilku układów
Układy we/wy
Takt
wy
Takt
we
SCL
SDA
Dane
wy
Dane
we
układ 1
Takt
wy
Takt
we
Dane
wy
Dane
we
układ n
R
PD
V
DD
R
PC
V
DD
Transmisja bitów - dane, Start, Stop
SDA
SCL
dane
stabilne
zmiana
danych
SDA
SCL
S
Start
P
Koniec
Sekwencje:
start
stop
Transmisja bitów
SCL
Start
S
Stop
P
2-7
8
9
1-7
8
9
ACK
R/W
Adres
odbiornika
odbiornika
dane
ACK
odbiornika
do
odbiornika
1
nadajnik
odbiornik
odbiornik
niegotowy
MSB
LSB
SDA
7-bitowy
adres odbiornika
S
start
ACK
R/W#
8-bitowe
dane
ACK
8-bitowe
dane
ACK
8-bitowe
dane
P
stop
No
ACK
arbitra
ż
dla linii SDA
w czasie SCL = HIGH
arbitra
ż
dla kolejnych bitów adresu, bitu kierunku R/W# oraz bitów danych
pozostaje nadajnik, który jako pierwszy wygenerował stan niski (LOW) na
linii SDA, podczas gdy inne utrzymywały stan wysoki (HIGH)
układ przegrywaj
ą
cy arbitra
ż
zwalnia linie SDA i SCL
je
ś
li nadrz
ę
dny nadajnik (master) przegrywa arbitra
ż
, to generuje sygnał
taktuj
ą
cy (linia SCL) do zako
ń
czenia bie
żą
cego bajtu
arbitra
ż
zabroniony w trakcie powtarzanej sekwencji startu i stopu
Arbitraż
dane_1
dane_2
SDA
SCL
Start
przegrany arbitra
ż
przez dane_1
SDA
≠
dane_1
10
7-bitowa transmisja danych - wpis
dane z nadrz
ę
dnego nadajnika (Master)
do podporz
ą
dkowanego odbiornika (Slave)
z podaniem wewn
ę
trznego adresu odbiornika
bez zmiany kierunku transmisji danych (nadawanie)
S
7-bitowy
adres
odbiornika
R/W
0
ACK
8-bitowy adres
wewn
ę
trzny
odbiornika
P
ACK
8-bitowe dane
do Slave
ACK
8-bitowe dane
do Slave
ACK
ACK generuje
Slave
7-bitowa transmisja danych - odczyt
dane z podporz
ą
dkowanego odbiornika (Slave)
do nadrz
ę
dnego nadajnika (Master)
z podaniem wewn
ę
trznego adresu odbiornika
ze zmian
ą
kierunku transmisji danych (odbiór)
7-bitowy
adres
odbiornika
R/W
0
ACK
8-bitowy adres
wewn
ę
trzny
odbiornika
P
ACK
8-bitowe dane
do Master
ACK
NO
ACK
Sr
7-bitowy
adres
odbiornika
R/W
1
S
ACK
8-bitowe dane
do Master
ACK generuje
Slave
ACK generuje
Master
Problemy i pytania
1. Czym jest interfejs ?
2. Jakie s
ą
wady i zalety kodowania metod
ą
NRZ ?
3. Jakie s
ą
wady i zalety kodowania metod
ą
NRZI ?
4. Jakie s
ą
wady i zalety kodowania metod
ą
Manchester ?
5. Czym si
ę
ró
ż
ni synchroniczna od asynchronicznej transmisji danych ?
6. Jakie s
ą
podstawowe cechy standardu RS232x ?
7. Jakie s
ą
podstawowe cechy standardu RS485 ?
8. Jakie s
ą
podstawowe cechy standardu CAN ?
9. Jakie s
ą
podstawowe cechy standardu USB ?
10. Na czym polega dostawianie bitów w standardzie CAN i USB ?
11. Jakie s
ą
podstawowe cechy standardu DALI ?
12. Jakie s
ą
podstawowe cechy standardu SPI ?
13. Jakie s
ą
podstawowe cechy standardu I2C-Bus/SMBus ?
14. Jak w standardzie CAN lub I2C-Bus/SMBus rozwi
ą
zano problem arbitra
ż
u ?
15. Jaka jest kolejno
ść
wysyłanych bitów w bajcie w: I2C-Bus, CAN, SPI oraz USB ?