Páteční průmyslový protokol: RS-232
Zdroj: Wikipedia
RS-232 není protokol, ale elektrická vrstva: definuje, jaké napětí znamená nulu a jaké jedničku, ne co se po lince posílá. Proto po něm může jít Modbus, ASCII příkazy i vlastní binárka — a proto každá druhá „nekomunikující“ linka končí u kabelu nebo špatné přenosové rychlosti. A také u zemnění, které se snadno zvrtne.
Co to je a odkud pochází
Standard vznikl v roce 1962 pro připojení terminálu k modemu, dnešní podoba je TIA-232-F z roku 1997. Řeší jedinou věc: napěťové úrovně a pinové zapojení pro sériový přenos mezi dvěma zařízeními. Všechno ostatní — přenosová rychlost, počet datových bitů, parita, protokol — je věc nadstavby.
Jak funguje
Přenos je asynchronní a single-ended: logická úroveň se pozná podle napětí vůči společné zemi. Kladné napětí 3 až 15 V znamená logickou 0 (space), záporné −3 až −15 V logickou 1 (mark). Pásmo mezi −3 a +3 V je nedefinované, proto je RS-232 odolná proti šumu jen do určité míry.
Každý znak má vlastní rámec: start bit, 5 až 8 datových bitů (obvykle 8), volitelný paritní bit a 1 nebo 2 stop bity. Nejběžnější nastavení je 8N1 — osm datových bitů, bez parity, jeden stop bit.
Zapojení a piny
Konektor DB9 v roli DTE: pin 2 = RXD, pin 3 = TXD, pin 5 = GND, pin 7 = RTS, pin 8 = CTS. Křížení je povinné — TX jednoho zařízení na RX druhého, a proto se používají překřížené kabely (null modem), ne rovné.
Hardwarové řízení toku RTS/CTS je lepší než softwarové XON/XOFF, protože XON/XOFF se plete s přenášenými daty. Pokud zařízení RTS/CTS nemá, musí se tok řídit softwarově nebo vůbec — a při plném bufferu přicházejí ztráty.
Rychlosti a vzdálenost
Praktické maximum je 115200 bit/s na několik metrů. Standard sám uvádí limit kapacity linky 2500 pF, což v praxi znamená asi 15 m při 19200 bit/s s běžným kabelem. Delší vedení funguje, ale je to mimo specifikaci — a v hlučném prostředí se to projeví jako náhodné chyby rámců.
Kdy to použít
Na servisní porty, váhy, čtečky čárových kódů, starší měřicí přístroje a všude, kde výrobce dodal DB9. Pro novou instalaci do haly je to špatná volba — jediný vodič proti zemi znamená společnou zem, zemní smyčky a náchylnost k rušení od frekvenčních měničů.
Testování a kód
V Pythonu pyserial:
import serial
s = serial.Serial("/dev/ttyUSB0", 19200, bytesize=8, parity="N",
stopbits=1, timeout=0.5)
s.write(b"\x01\x03\x00\x00\x00\x02\xc4\x0b") # pozadavek Modbus RTU
print(s.read(64).hex())
s.close()
Než začnete psát kód, propojte si TX s RX na jednom konektoru (loopback) — tím vyloučíte kabel i převodník.
Licence
Standard TIA-232-F je placený dokument, ale elektrické parametry jsou veřejně známé a implementace jsou zdarma. Nikdo nevlastní RS-232 jako značku; název je označení standardu.
Pro údržbu: první tři věci u nefunkční sériové linky jsou vždy stejné — překřížené TX/RX, špatná přenosová rychlost a chybějící zem. Až čtvrtá je převodník USB, který se po přehřátí odhlásí z systému.
Seriál Páteční průmyslový protokol vychází každý pátek. Další díl najdete v přehledu série.
Zdroje
- RS-232 — Wikipedia
- TIA-232-F — Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment — TIA
Odkazy vedou na primární zdroje. Text článku je redakční shrnutí, ne převzatá zpráva.