rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik...
Transcript of rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik...
1
Načrtovanje digitalnih el. sistemovKomunikacijski vmesniki in vodila
http://lniv.fe.uni-lj.si/ndes.html
Andrej Trost
Fakulteta za elektrotehnikoUniverza v Ljubljani
Laboratorij za načrtovanje integriranih vezij
RAM
CPU
vmesniki
IP
Kaj prenašamo po vodilu
• Podatke– prenašajo se po besedah (byte)
• Ukaze oz. kontrole– izberi napravo / beri / piši– naslov
• Signale, ki jih določa protokol prenosa– zahteve (request), prekinitve (interrupt)– potrditve (acknowledge)– časovno usklajevanje (sinhrono / asinhrono)
Kako prenašamo podatke
• po besedah (paralelno) ali bitih (serijsko)• po smeri
– enosmerno– dvosmerno (dvojno ali 3-stanjsko vodilo)– hkrati v obe smeri
• po protokolu– enostaven cikel– blokovni prenos (burst)
• manj usklajevanja, večji izkoristek vodila
2
Sinhronizacija prenosa podatkov
• Sistemska sinhronizacija
izvor ponor
oscilator
podatkitcq
tcbuf tcbuf
tc1 tc2
td
• Upoštevati moramo vse zakasnitve!– pri nizkih hitrostih prenosa nimamo težav
Sinhronizacija pri izvoru podatkov
• Izvor pošilja podatke in uro– source synchronous / clock forwarded (SDRAM)
izvor ponor
oscilator
podatki
uratcq td
– dolžina linij za podatke in uro se mora ujemati– v ponoru naredimo ponovno sinhronizacijo na
sistemsko uro
tc td
Lastna sinhronizacija podatkov
• Podatkovni tok vsebuje podatke in uro– serijski prenos podatkov
izvor ponorpodatki in ura
– izvor dela paralelno/serijsko pretvorbo in kodiranje podatkov in ure
– ponor dela serijsko/paralelno pretvorbo in rekonstrukcijo ure s fazno sklenjeno zanko (PLL)
3
Razvoj digitalnih komunikacij
• Komunikacija je temeljila na TTL/CMOSnapetosnih nivojih– paralelni prenos podatkov na tiskanem vezju
• Serijski prenos z diferencialnimi nivoji za daljše razdalje (RS232)
• Razvoj je omogočil hitra paralelna vodila (PCI)• Sočasno se razvija serijski prenos podatkov
(Ethernet, USB)
Vodila v osebnem računalniku
• sistemsko vodilo– odvisno od procesorja
• DDR SDRAM– 64 bitov, 133 MHz, SSTL
• PCI– 32 bitov, 33 MHz, PCI
• ISA– 16 bitov, 8 MHz, TTL
• vmesniki za zunanja vodila– paralelni, serijski– USB, Ethernet, PS/2
Prenosne linije
• Pri visokih frekvencah obravnavamo povezave kot prenosne linije (npr. mikrotrakasta linija)
• Tehnologija zahteva nižje napetosti in zaključitve linij na tiskanem vezju– DDR SDRAM (SSTL 2.5V ali 1.8V)– QDR SDRAM (HSTL 1.5V)
4
Hitra paralelna vodila
• problem časovne usklajenosti– čim manjša razlika v dolžinah linij
• problem hkratnega preklapljanja signalov (SSO)– tokovna obremenitev
• problem elektromagnetnih motenj• rešitve: vodilo PCI uporablja odbiti val
– oddajnik odda signal s ½ amlitudo– na koncu linije se signal odbije in prispe do sprejemnikov s
polno amplitudo
Hitra serijska vodila
• problem organizacije podatkov– paketi in okvirji, markerji označujejo začetek
podatkov oz. kontrolnih informacij• problem sinhronizacije
– s kodiranjem (npr. 8b/10b) odpravimo dolga zaporedja ničel ali enic
– FIFO medpomnilniki v sprejemniku in oddajniku• problem napak pri sprejetih bitih
– CRC polinomi
Vodilo USB
• krmilnik (hub) izvaja povpraševanje (polling)• serijski prenos po paketih
– NRZI kodiranje (‘0’ – sprememba nivoja, ‘1’ – brez spremembe) in dodajanje ‘0’ po zaporedju 6 enic
– paketi se začnejo s SYNC kombinacijo in PID, na koncu paketa je CRC
• protokol določa vrste paketov in odziv naprav– standard USB definira protokolni sklad
5
Vodilo CAN
• razpršeno oddajanje (broadcast)• princip dominantnih bitov (wired and)• NRZ kodiranje paketov z dodajanjem bitov• različni tipi okvirjev in možnost detekcije ter
korekcije napak– podatkovni okvir vsebuje ID, 0-8 besed in potrditev
Vodilo Ethernet
• CSMA/CD (Carrier Sense, Multiple Access, Collision Detect)
• Protokolni sklad (MAC, MII)• Različni fizični vmesniki (10Base-T...1000Base-T)
Prednosti serijskih vodil
• Večja pasovna širina (gigabitni prenos)• Manj priključkov na integriranem vezju
– povezave točka s točko– ni potrebna delitev vodila med več uporabniki
• Enostavna razširitev za različne protokole– PCI Express– Serial ATA– 1-10Gb Ethernet– FiberChannel
6
Serijski pretvorniki
• serijski kodirnik in dekodirnik– npr. 1bit/1.5GHz na 20bitov/75MHz
oddajniFIFO
linijskikodirnik
paralelnoserijski
pretvornik
serijskoparalelni
pretvornik
upraviteljure
sprejemnielastični
FIFO
linijskidekodirnik
korekcijaure
• serijski signali se prenašajo diferencialno• pretvornik dela z več fazami ure
Linijski kodirnik
• odpravi dolga zaporedja ničel in enic• uravnoteži povprečno število ničel in enic• določa konrolne kombinacije
– sinhronizacijska ločila, poravnava kanalov...• Npr. 8b/10b kodiranje
00000000 1001110100 01100010118b 10b RD- 10b RD+
• dekodirnik išče ločila v zaporedju bitov in opravi inverzno kodiranje
Vodila v integriranem vezju
• Vodilo je odvisno od procesorja oz. komponent– npr. sistem ARM AMBA sestavljata vodili AHB
(Advanced High-speed Bus) in APB (Peripheral Bus)
• AHB: zmogljivo vodilo, cevljenje, blokovni prenos, večgospodarjev
• APB: enostaven vmesnik, ločeni poti za branje in pisanje
• povezuje ju most
7
Vodilo Wishbone
• odprt standard za vodilo v integriranem vezju• enostaven protokol
– bralni, pisalni, blokovni prenos in RMW prenos– prenos podatka v enem urinem ciklu
• različne povezovalne arhitekture– točka s točko, deljeno vodilo, stikalo– sistem gospodar/podrejena enota (master/slave)
• različne možnosti razširitev– osnovni prenos, registrski prenos– lastni signali (address, data ali cycle tag)
Povezovanje dveh enot
• Osnovna povezava master/slave
Serijski vmesniki
• Serijski vmesniki so najprimernejši za komunikacijo na daljše razdalje
• Enostavni serijski vmesniki– I2C, SPI (ločeno pošiljanje ure in podatka)– RS232, LIN (asinhroni podatkovni paketi,
sprejemna ura se sinhronizira za vsak paket)
8
Protokol vodila Centronics
• 8-bitni asinhroni prenos podatkov za zunanje naprave• Preprost usklajevalni protokol
– PC z impulzom (strobe) označi nov podatek– naprava signalizira zasedenost (busy)
data
strobe
busy
0.5µs 0.5µs
• Dodatni signali– prekinitev ob zaključku– status naprave (out of paper, error...)
Izvedba vmesnika za Centronics
• Podatke in kontr. signale vzorčimo z lokalno uro– strobe vzorčimo dvakrat za detekcijo fonte!
data1
stb1
stb2
clk p: process (clk)beginif rising_edge(clk) then
if stb1=‘0’ and stb2=‘1’ thenbusy <= ‘1’;
end if;
if stb1=‘1’ and stb2=‘0’ then d <= data1;
...busy
Protokol vodila Wishbone
• Sinhrono vodilo za povezovanje komponent znotraj integriranega vezja– kontrolne signale gledamo ob fronti ure
DAT_OADR_O
WE_O
STB_OCYC_O
CLK_I
ACK_I ACK se postavlja asinhrono!
pisalni cikel bralni cikel (DAT_I dobi podatke)MASTER
9
Primer enote slave
• Npr. register na vodilu Wishbonep: process (clk_i, rst_i)beginif rst_i=‘1’ then
q <= “00000000”;elsif rising_edge(clk_i) then
if stb_i=‘1’ and we_i=‘1’ thenq <= dat_i;
end if;end if;end process;
ack_o <= stb_i;
Čakalni cikli sinhronega vodila
• Kadar druga naprava ni pripravljena, se cikel podaljša (za 1, 2, 3... urine cikle)
ADR_I
WE_I
STB_ICYC_I
CLK_I
ACK_O
DAT_O
bralni cikelSLAVE
Sinhroni pomnilnik
• Sinhroni pomnilnik potrebuje 1. čakalni cikelp: process (clk_i)beginif rising_edge(clk_i) then
if stb_i=‘1’ thenactive <= ‘1’;if we_i=‘1’ then
ram(conv_integer(adr_i)) <= dat_i; else
dat_o <= ram(conv_integer(adr_i))end if;
elseactive <= ‘0’;
end if;end if;
ack_o <= stb_i and active;