1 / 46

Sériová rozhraní

Sériová rozhraní. Úvodní problém. Představme si, že jsme zaměstnanci autosalonu ve městě A a potřebujeme přepravit n aut do města B. Jakým způsobem je možno tuto operaci uskutečnit?. Paralelní přenos dat. Nejoptimálnější by bylo poslat přímo auta čase t po n silnicích do města B.

keith
Download Presentation

Sériová rozhraní

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sériová rozhraní

  2. Úvodní problém Představme si, že jsme zaměstnanci autosalonu ve městě A a potřebujeme přepravit n aut do města B. Jakým způsobem je možno tuto operaci uskutečnit?

  3. Paralelní přenos dat Nejoptimálnější by bylo poslat přímo auta čase t po n silnicích do města B. Problém je však, že si těžko můžeme dovolit n silnic na delší vzdálenosti (cena).

  4. Sériový přenos Předpokládejme, že máme jednu silnici. Po této silnici pošleme v řadě n aut do města B v časech 0, t, 2t, 3t … • výhoda: stačí jedna silnice • nevýhoda: převoz aut z místa A do místa B bude časově náročnější než předchozí možnost

  5. Jak rozdělit data? • „Serializace“: vezmeme např. bajt 10101010, zvolme nejvyšší/nejnižší bit a pošleme jej po datové lince, danou operaci zopakujme pro zbylé nižší/vyšší bity • „Deserializace“: z příchozích bitů sestavíme znovu bajt. • Je nějak nutné rozlišit správné pořadí jednotlivých bitů, začátky a konce bajtů a jejich správnost.

  6. Parita • nejjednodušší způsob jak bez nároků na výpočetní výkon zabezpečit přenos dat • vysílač sečte počet jedničkových bitů a doplní doplní paritním bitem dle předem dohodnuté podmínky • SUDÁ PARITA – Počet jedničkových bitů + paritní bit = SUDÉ ČÍSLO • LICHÁ PARITA – Počet jedničkových bitů + paritní bit = LICHÉ ČÍSLO • SPACE PARITY – Tzv. nulová parita – paritní bit je vždy v log. 0 • MARK PARITY - Paritní bit je vždy log. 1

  7. Start/stop bit(y) • start/stop bit se používá k rozlišení začátku a konce rámce • logická hodnota start a stop bitu bývá rozdílná

  8. Přenosová rychlost • přenosová rychlost se vyjadřuje počtem bitů přenesených za jednotku času • její jednotkou je bit/s • při dvoustavovém přenosu tato jednotka splývá s jednotkou tzv. modulační rychlosti Bd (baud) • do počtu bitů patří i start, stop a paritní bity

  9. Typy sériového přenosu • Synchronní • Asynchronní

  10. Synchronní přenos (1) • K datové lince se ještě přidá jedna linka s „synchronizačním“ signálem, který nám určuje, kdy je na datové lince platný bit.

  11. Synchronní přenos (2)(blokové schéma)

  12. Synchronní přenos (3)(časový průběh) • v ukázce se přenáší po sériové lince bajt 01110010B

  13. Synchronní přenos (4)výhody, nevýhody • Výhodné pro velké objemy dat, přenášené po více vodičích • Nutno jednoznačně určit, kdo vysílá synchronizační impulsy • Možno použít spojitě proměnnou rychlost přenosu, například podle poměru chybovosti • Nutnost synchronizačního vodiče „navíc“ – v podstatě „nepřenáší žádnou informaci“ • Na straně zařízení nepotřebuje nijak složitou elektroniku

  14. Asynchronní přenos (1) • pro přenos máme k dispozici 1 datovou linku • přijímač a vysílač má vlastní zdroj synchronizačního signálu • přenos začíná start bitem, následuje n datových bitů, a končí stop bitem (u něj je definovaná minimální délka) • přijímač se musí umět synchronizovat na start bit • start bit a stop bit mají rozdílnou logickou úroveň

  15. Asynchronní přenos (2)(blokové schéma)

  16. Asynchronní přenos (3)(časový průběh) • v ukázce se přenáší po sériové lince bajt 01110010B

  17. Asynchronní přenos (4)(řešení sériového přenosu) • obvody UART (Universal Asynchronous Receiver Transmitter ): 8251 (Intel, AMD, NEC), 6851 (Motorola), 9902 (Texas Instruments) … • přímo na čipu (8051, PIC, AVR …) • absence, softwarová emulace

  18. Asynchronní přenos (5)(emulace sériového rozhraní) • spočítáme délku datového bitu dle přenosové rychlosti (doba trváni bitu (s)=1/přenosová rychlost (Bd) • každý bajt začíná start bitem, následují datové bity, (parita), a končí stop bit(y) • uspořádání bitů za sebou • první MSB (nejvýznamnější bit) • První LSB (nejméně významný bit) • [startbit][databit1]...[databitn][paritnibit][stopbit(y)] (nazýváme rámcem) • stav linky na přijímači: v klidu 1, rozpojeno 0

  19. Asynchronní přenos (6)(příjem bajtu) • Dokud je na vstupu 1 čekej • Čekej t/2 (start bit ?) • Pokud není na vstupu 0 jdi na 1 • i:=počet bitů bez start bitu, j:=počet datových, příchozí:=0 • Čekej t • if (j>0) { příchozí:=příchozí posun do leva + vstup (v případě na začátku MSB) příchozí:=příchozí + vstup posun do leva o j (v případě na začátku LSB) --j; --i; goto 5}if (i==1+poces stop bitu) {test parity; --i; goto5}if (i!=0) if (příchozí==1) --i; goto 5; else goto error; 7. v příchozí se nachází přijatý bajt

  20. Asynchronní přenos (7)(odeslání bajtu) • Nastav linku na 0, počkej t (start bit) • Natav linku na hodnotu 1. bitu, počkej t • Opakuj 2 pro zbylých n-1 bitů • Jako v 2 pošli paritní bit • Jako v 2 pošli stop bit(y) (stop bit=1)

  21. Asynchronní přenos (8)výhody, nevýhody • Nevýhodné pro velké objemy dat • Levné vedení • Lze použít pro komunikaci mezi mnoha zařízeními • Nutno definovat jednoznačně přenosové rychlosti, změnu rychlosti je třeba ošetřit softwarovou sekvencí • Celkem složitá a drahá elektronika, nutno použít krystalové oscilátory • Až o 20% menší přenosová rychlost užitečných dat při stejné rychlosti komunikace, vzhledem k nutnosti startovacích a paritních bitů

  22. RozhraníRS-232, RS-422,RS-423,RS-485

  23. RS The Electronics Industry Association (EIA) RS = recommended standard

  24. Parametry

  25. Proudová smyčka • vysoce odolná proti rušení • logické logické úrovně: teče, nebo neteče proud 20 mA • odpor vedení až 200 W • možné galvanické oddělení (MIDI optoelektronické)

  26. RS 232C (1)

  27. RS232C (2)převod RS232/TLL

  28. RS-423

  29. RS422

  30. RS485

  31. Sériové rozhraní počítače

  32. Základní údaje • sériový port PC je standardu RS 232 • přenosové rychlosti: 110Bd, 150Bd, 300Bd, 600Bd, 1200Bd, 2400Bd, 4800Bd, 9600Bd, 19200Bd, 115200Bd • délka slabiky: 5, 6, 7, 8 bitů • parita: sudá, lichá, mark, space • stop bity: 1, 1.5, 2 • napěťové úrovně: • max I=10 mA • vysílá se od LSB po MSB Úroveň Vysílač Přijímač Logická 0 +5 až +15V +3 až +15V Logická 1 -5 až-15V -3 až -15V Nedefinováno - -3 až +3V

  33. Sériový konektor • DCD (‹) - Data Carrier Detect • RLSD - Receive Line Signal Detect • RxD (‹) - Receive Data • TxD (›) - Transmit Data • DTR (›) - Data Term. Ready • GND - Ground • DSR (‹) - Data Set Ready • RTS (›) - Req. To Send • CTS (‹) - Clear To Send • RI (‹) - Ring Indicator

  34. Popis signálů • DCD - Data Carrier Detect Detekce nosné (někdy jen "CD). Modem oznamuje terminálu, že na telefonní lince detekoval nosný kmitočet. • RXD - Receive Data Tok dat z modemu (DCE) do terminálu (DTE). • TXD - Transmit DataTok dat z terminálu (DTE) do modemu (DCE). • DTR - Data Terminal Ready Terminál tímto signálem oznamuje modemu, že je připraven komunikovat *). • SGND - Signal Ground Signálová zem • DSR - Data Set Ready Modem tímto signálem oznamuje terminálu, že je připraven komunikovat *). • RTS - Request to Send Terminál tímto signálem oznamuje modemu, že komunikační cesta je volná *). • CTS - Clear to Send Modem tímto signálem oznamuje terminálu, že komunikační cesta je volná *). • RI - Ring Indicator Indikátor zvonění. Modem oznamuje terminálu, že na telefonní lince detekoval signál zvonění.

  35. Rozdělení linek • datové: TxD (out), RxD (in) • Pomocné (řídicí): • vstupní: CTS, RI, DSR, DCD • výstupní: DTR, RTS

  36. Sériové rozhraní - porty • Bázová adresa (0x3f8,0x2f8,0x3e8,0x2e8)POST - nalezené porty do 0:0400-0:0406 • base I/O (RW), DLo (W) • base+1 maska přerušení (W), DHi (W) • base+2 id. přerušení (R), řízení FIFO (W) • base+3 řízení linek (RW) • base+4 řízení modemu (W) • base+5 stav linek (R) • base+6 stav modemu (R)

  37. Porty podrobný popis • base • Zápis • DLAB = 1dolní byte dělitele (baud = 115 200/div) • jinakvysílací registr - znak k odvysílání • Čtení • přijímací registr - přijatý znak

  38. Podrobný popis • base + 1 • Zápis • DLAB = 1horní byte dělitele • jinakregistr povolení přerušení • bit 0: od přijatého znaku • bit 1: po odvysílání znaku • bit 2: od stavu linky (error, break) • bit 3: od stavu modemu (CTS, DSR, RI, CD)

  39. Podrobný popis • base + 2 • Zápis • řídící registr fronty • bit 0: povolení FIFO • bit 1: reset přijímací fronty • bit 2: reset vysílací fronty • bity 6,7: velikost fronty (1B, 4B, 8B, 14B) • Čtení • identifikace přerušení • bit 0: 1 - není přerušení, 0 - viz. bity 1,2 • bity 1,2: příčina (změna stavu modemu, vysílání, příjem, změna stavu linky)

  40. Podrobný popis • base + 3 • Zápis • řízení modemu • bit 0: aktivace DTR • bit 1: aktivace RTS • bit 2: aktivace OUT1 • bit 3: aktivace OUT2 (nutné pro fci přerušení v PC)

  41. Podrobný popis • base + 4 • Čtení • registr stavu linky • bit 0: data ready (příjetí znaku) • bit 1: overrun error (ztráta znaku) • bit 2: parity error • bit 3: framing error (špatný stop-bit) • bit 4: break indicated (0 na vstupu) • bit 5: output buffer empty • bit 6: transmit data finished

  42. Podrobný popis • base + 5 • Čtení • registr stavu modemu • bit 0: DCTS - změna stavu CTS • bit 1: DDSR - změna stavu DSR • bit 2: TERI - vzestupná hrana RI • bit 3: DDCD - změna stavu DCD (RLSD) • bit 4: CTS - stav CTS • bit 5: DSR - stav DSR • bit 6: RI - stav RI • bit 7: DCD - stav DCD (RLSD)

  43. Sériové rozhraní - přerušení • COM1 (IRQ4, int 0x0c), COM2 (IRQ3, int 0x0b) • Nastavení • obsluha - vektor přerušení (0x0c resp. 0x0b) • povolit IRQ3,4 na řadiči přerušení • in al, 21h; and al,f7h; out 21h, al • registr povolení přerušení (0x3f9) - požadovaný typ • registr řízení modemu (0x3fc) - OUT2 • Obsluha • odhlásit přerušení řadiči přerušení • mov al, 20h; out 20h, al • zjištění příčiny přerušení (0x3fa)

  44. Řízení toku dat(HANDSHAKING) • potvrzení příjmu dat či připravenost k přenosu a jeho zahájení na úrovni hardwarového nebo softwarového rozhraní • softwarové: na úrovni komunikačního protokolu, specielní znaky v ASCI (XON/XOF) • hardwarové: realizováno pomocnými linkami (DTR/DSR nebo RTS/CTS)

  45. Použitá literatura • Využití rozhraní PC, Kainka B., HEL 1998 • Počítačová rozhraní, Vlach J., BEN 200 • Projektování mikropočítačových systémů, Janeček J., ČVUT 1999 • Sysman • www.hw.cz

More Related