9
1 Nartovanje digitalnih el. sistemov Komunikacijski vmesniki in vodila http://lniv.fe.uni-lj.si/ndes.html Andrej Trost Fakulteta za elektrotehniko Univerza v Ljubljani Laboratorij za nartovanje 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 doloa 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, veji izkoristek vodila

rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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

Page 2: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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)

Page 3: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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)

Page 4: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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

Page 5: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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

Page 6: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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

Page 7: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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)

Page 8: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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

Page 9: rtovanje digitalnih el. sistemov - lniv.fe.uni-lj.si · – CRC polinomi Vodilo USB • krmilnik (hub) izvaja povpraševanje (polling) • serijski prenos po paketih – NRZI kodiranje

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;