RS232

Z MAM wiki

Přejít na: navigace, hledání

Zapojení sériového portu RS232 vypadá takto (na konektoru jsou většinou čísla napsaná):

         .--..
 CD      |1   \
         |    6|     DSR
 RD      |2    |
         |    7| -10 RTS
 TD  -10 |3    |
         |    8|     CTS
 DTR -10 |4    |
         |    9|     RI
 SG      |5   /
         `--''

V klidu nejspíš naměříte na některých pinech asi -10V, jak je v obrázku naznačeno. Spustíte-li na PC terminál (třeba minicom v Linuxu), nejspíš pak bude na RTS a DTR +10V.

Typický časový průběh datového signálu je nakreslen tady. V klidu je na vodiči od TD vysílače k RD přijímače záporné napětí (cca -10V, měřeno proti SG), které reprezentuje logickou jedničku, také se této úrovni říká "Space". Vysílání začne změnou úrovně na kladné napětí (cca. +10V, logická nula, "Mark") na dobu jednoho bitu (to je tzv. startbit), pak následují vlastní datové bity od LSB k MSB a na konci je stopbit (ten má opačnou úroveň než startbit a zajistí tedy klidovou úroveň na lince alespoň na dobu jednoho bitu, pokud by hned následoval další startbit - tím pádem startbit vždy začíná hranou signálu). Logické úrovně tedy celkově vypadají takto:

111111111111111  0  b0  b1  b2  b3  b4  b5  b6  b7  1  111111111111111

a při vysílání dvou bytů těsně za sebou takto:

111111  0  b0  b1  b2  b3  b4  b5  b6  b7  1  0  b0  b1  b2  b3  b4  b5  b6  b7  1  11111


Podobný formát dat používá MIDI.


[editovat] Ovládání sériové linky z Linuxu

Rychlost přenosu lze nastavit příkazem stty, například:

stty -F /dev/ttyUSB0 9600

Data lze poslat příkazem:

echo ahoj >/dev/ttyUSB0

Možné rychlosti jsou 50, 75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800 a 921600. Nízké rychlosti umožňují snadno na připojené LED sledovat, že port vysílá. Jméno zařízení /dev/ttyUSB0 odpovídá sériové lince realizované konvertorem USB/RS232.

Nastavení lze zjistit třeba trochu zvláštním příkazem (ano, je tam opravdu menšítko):

stty </dev/ttyUSB0


Osobní nástroje