RS-232 Přenos dat
RS-232 Přenos dat
Asynchronní přenos
RS-232 používá asynchronní přenos – není sdílený hodinový signál mezi vysílačem a přijímačem. Synchronizace probíhá pomocí startovacího bitu (sestupná hrana).
Formát rámce (datový rámec)
┌─────────┬──────────┬─────────┬──────────┬─────────┐
│ Start │ Data │ Parita │ Stop │ Idle │
│ bit (0) │ (5–9 bitů)│ (volitelné) │ bit/y (1) │ (Mark) │
└─────────┴──────────┴─────────┴──────────┴─────────┘
1 bit 5–9 bitů 0/1 bit 1–2 bity nekonečno
- Start bit – vždy log. 0 (Space, kladné napětí), synchronizuje přijímač.
- Datové bity – 5, 6, 7, 8 nebo 9 bitů (nejčastěji 8 bitů, LSB first).
- Parita – volitelná kontrola integrity:
- Even (sudá) – počet jedniček je sudý
- Odd (lichá) – počet jedniček je lichý
- Mark – vždy 1
- Space – vždy 0
- None – bez parity (nejčastější dnes)
- Stop bit/y – 1, 1.5 nebo 2 bity log. 1 (Mark, záporné napětí), signalizuje konec rámce.
- Idle (Mark) – linka držena v log. 1 mezi rámeci.
Typické nastavení (8N1)
- 8 datových bitů
- N = No parity (bez parity)
- 1 stop bit
- Celkem 10 bitů na 1 bajt → efektivita 80 %
Přenosová rychlost (Baud rate)
| Standardní rychlosti (baud) |
|---|
| 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 |
Obě strany musí mít stejnou rychlost (tolerance typicky ±2–3 %).
Řízení toku dat (Handshaking)
Hardwarové (RTS/CTS, DTR/DSR)
- RTS/CTS – řízení na úrovni komunikačního kanálu (připravenost přijmout/vyslat).
- DTR/DSR – řízení na úrovni zařízení (připravenost terminálu/modemu).
- V nastavení programů: "Hardware (RTS/CTS)", "Hardware (DTR/DSR)".
Softwarové (XON/XOFF)
- XON (DC1, 0x11) – pokyn k pokračování v příjmu.
- XOFF (DC3, 0x13) – pokyn k dočasnému zastavení příjmu.
- Nevýhoda: data 0x11/0x13 nemohou být v užitečné zprávě (nutné escaping).
Žádné (None)
- Riziko přetečení bufferu při vysoké zátěži.
Synchronní vs. Asynchronní
| Vlastnost | Asynchronní (RS-232 standard) | Synchronní (rozšíření) |
|---|---|---|
| Hodinový signál | Ne (start/stop bity) | Ano (piny 15, 17, 24) |
| Účinnost | ~70–80 % (overhead start/stop/parita) | >95 % (jen data + framing) |
| Složitost | Jednoduchá (UART) | Vyšší (USART, clock recovery) |
| Použití | Terminály, PC, embedded | Modemy, ISDN, specializované linky |
RS-232 standard definuje i synchronní režim (piny 15, 17, 24), ale v praxi se používá almost výhradně asynchronní.
UART (Universal Asynchronous Receiver/Transmitter)
Hlavní obvody:
- 8250 / 16450 / 16550 / 16550A / 16650 / 16750 / 16850 / 16950 – historie PC sériových portů.
- 16550A – první s FIFO buffery (16 B), klíčový pro rychlosti > 9600 baud.
- Adresy v PC (ISA/EISA):
- COM1: 3F8h–3FFh, IRQ 4
- COM2: 2F8h–2FFh, IRQ 3
- COM3: 3E8h–3EFh, IRQ 4
- COM4: 2E8h–2EFh, IRQ 3
Registry 16550 (offset od bazové adresy)
| Offset | Registr (Read) | Registr (Write) |
|---|---|---|
| 0 | RBR (Receive Buffer) | THR (Transmit Holding) |
| 1 | IER (Interrupt Enable) | IER |
| 2 | IIR (Interrupt ID) | FCR (FIFO Control) |
| 3 | LCR (Line Control) | LCR |
| 4 | MCR (Modem Control) | MCR |
| 5 | LSR (Line Status) | — |
| 6 | MSR (Modem Status) | — |
| 7 | SCR (Scratch) | SCR |
Související poznámky
- RS-232 Signály a jejich funkce – RTS, CTS, DTR, DSR
- RS-232 Elektrické parametry – úrovny start/stop bitů
- RS-232 Převodníky a úrovně – TTL/CMOS úrovně
- MOC – mapa RS-232
- Zdroj:
rs-232.htm(kapitoly "Parametry datového přenosu", "Hardware/UART"),Sériová komunikace.doc