Diferenciální pár: proč to jde na kilometr
Všechny sběrnice z předchozích kapitol měří napětí proti zemi. To funguje, dokud je země na obou koncích stejná — a v průmyslové hale není. Mezi dvěma rozvaděči je klidně několik voltů rozdílu, a ten se přičte k signálu.
Řešení: neměřit proti zemi, ale mezi dvěma vodiči
Vysílač pošle po dvou vodičích opačné průběhy a příjemce se ptá jen na jejich rozdíl. Rušení, které naletí do kabelu, naletí do obou vodičů skoro stejně — a v rozdílu se odečte.
Proto se ty dva vodiče kroutí. Zkroucený pár má obě žíly střídavě blíž a dál od zdroje rušení, takže se indukované napětí v každém závitu obrátí a přes délku kabelu se vyruší. Není to kosmetika — je to celý princip.
| proti zemi (UART, TTL) | diferenciálně (RS-485) | |
|---|---|---|
| rušení | přičte se | odečte se |
| rozdíl zemí | přičte se | snese ±7 V |
| délka | metry | 1200 m při 100 kbit/s |
| vodičů | 1 na směr | 2 na směr |
Kompromis mezi délkou a rychlostí
Delší kabel znamená větší zpoždění a víc útlumu, takže se musí zpomalit. Empirické pravidlo, které se pro RS-485 uvádí:
Tedy 1200 m při 100 kbit/s, nebo 12 m při 10 Mbit/s. Ta samá linka, jen jinak provozovaná.
RS-485 je jen fyzická vrstva
To je věc, která mate: RS-485 neříká nic o tom, co se posílá. Neurčuje rámec, adresy ani kontrolu — jen napěťové úrovně a to, že na jedné dvojici vodičů může být víc vysílačů, kteří se střídají. Co po ní jede, určuje protokol nad ní: Modbus RTU, Profibus, DMX512 v divadle. Modbus RTU si s sebou nese CRC-16, a to je ta kontrola, kterou samotné RS-485 nemá.
Praktická past: na půlduplexní lince (dva vodiče, střídavě oběma směry) musí vysílač včas pustit linku, aby mohl odpovědět druhý. Přepnutí se dělá signálem, který ovládá budič, a když se přepne o kousek pozdě, uřízne se konec vlastní zprávy — nebo se ukousne začátek odpovědi. Je to nejčastější příčina „občas to vypadne“ na Modbusu.