URZĄDZENIA
SZEREGOWE
Większość portów szeregowych jest zgodna z jednym z wariantów standardu znanego jako RS - 232
Standard ten określa charakterystyki elektryczne sygnałów znaczenie każdego przewodu wraz z rozmieszczeniem końcówek w tradycyjnym łączu 25 - stykowym, tzw. DB - 25
Dla wielu zastosowań pełny protokół RS - 232 okazuje się zbyt obszerny
Definiuje on sygnały zupełnie zbędne w prostej komunikacji
Łącze DB-25 również jest nieprzyjemnie duże szczególnie w takich zastosowaniach jak krosownica ( tablica połączeń) czy laptop
Dlatego stosuje się wiele innych odmian łączy szeregowych
Łącze DB - 25 występuje w odmianie męskiej (DB25P) oraz żeńskiej (DB25s)
Sprzęt komputerowy wyposaż się w łącza żeńskie, a kable są wyposażone w męskie wtyczki

Rysunek przedstawia męski wtyk DB - 25 ; widać, że wykorzystano tylko 7 końcówek - często tak właśnie jest
Odmiana łącza szeregowego DIN-8 jest powszechnie używana w komputerach Macintosh, niektórych komputerach i stacjach roboczych - łącze korzysta z 7 końcówek.

Nazwy sygnałów protokołu RS - 232 oraz przypisane im końcówki łącza DB - 25
KOŃCÓWKA NAZWA FUNKCJA
| 1 | FG | UZIEMIENIE | frame ground |
| 2 | TD | DANE NADAWANE | transmitted data |
| 3 | RD | DANE ODBIERANE | received data |
| 4 | RTS | ŻĄDANIE TRANSMISJI | request to send |
| 5 | CTS | GOTOWOŚĆ NADAWCZA | clear to send |
| 6 | DSR | STAN GOTOWOŚCI MODEMU | data set read |
| 7 | SG | ZEROWANIE | signal ground |
| 8 | DCD | WYKRYCIE NOŚNIKA DANYCH | data carrier detect |
| 9 | - | NAPIĘCIE DODATNIE | positive voltage |
| 10 | - | NAPIĘCIE UJEMNE | negative voltage |
| 11 | - | NIE UŻYWANE | not assigned |
| 12 | SDCD | WTÓRNY SYGNAŁ DCD | secondary DCD |
| 13 | SCTS | WTÓRNY SYGNAŁ CTS | secondary CTS |
| 14 | STD | WTÓRNY SYGNAŁ TD | secondary TD |
| 15 | TC | ZEGAR NADAWANIA | transmit clock |
| 16 | SRD | WTÓRNY SYGNAŁ RD | secondary RD |
| 17 | RC | ZEGAR ODBIORU | receive clock |
| 18 | - | NIE UŻYWANE | not assigned |
| 19 | SRTS | WTÓRNY SYGNAŁ RTS | secondary RTS |
| 20 | DTR | GOTOWOŚĆ DO TRANSMISJI | data terminal ready |
| 21 | SQ | JAKOŚĆ ODBIORU | signal qualitydetector |
| 22 | RI | DZWONEK | ring indicator |
| 23 | DRS | WYBÓR SZYBKOŚCI TRANSMISJI | data rate selector |
| 24 | SCTE | ZEWNĘTRZNY ZEGAR NADAWANIA | clock transmit external |
| 25 | BUSY | SYGNAŁ ZAJĘTOŚCI | busy |
istnieją dwa rodzaje konfiguracji połączeń t transmisji szeregowej, w zależności od rodzaju urządzenia; urządzenie może być dołączone jako
urządzenie końcowe transmisji danych (DTE - Data Terminal Equipment) - zazwyczaj komputery, terminale, drukarki
urządzenie komunikacyjne transmisji danych danych (DCE - Data Communications Equipment), np modemy

WARIANTY ŁĄCZY SZEREGOWYCH
wariant din - 8 (patrz wyżej)
wariant db - 9; bardzo powszechne w komputerach PC 9 - stykowe łącze

wygląda jak młodszy brat DB - 25
umożliwia przesyłanie 9 najpowszechniej używanych sygnałów transmisji szeregowej
wariant RJ - 45 - 8 stykowe stykowe łącze telefoniczne
# istnieją kable przejściowe od DB - 25 do DIN 8, od DB 9 do DB 25, istnieją standardy łączenia DB - 25 z końcówkami RJ - 45 (najlepszy to tzw. standard Yosta)
interfejs równoległy służy do przesyłania kilku bitów jednocześnie, przy użyciu oddzielnej linii danych dla każdego bitu

interfejs szeregowy służy do przesyłania bitów danych po jednym w danej chwili przez pojedyńczą linię danyc

ponieważ komputery i urządzenia zewnętrzne przetwarzają dane równolegle, więc szeregowy interfejs wejścia - wyjścia musi umożliwiać konwersję danych równoległych na szeregowe przy wysyłaniu i z szeregowych na równoległe przy odbieraniu
po równoległym załadowaniu wysyłającego rejestru przesuwającego, bity są przesuwane jeden za drugim na linię danych przez zegar nadajnika; po stronie odbiornika bity są próbkowane i przesuwane w rejestrze po każdym cyklu zegara odbierającego.

przy asynchronicznej transmisji szeregowej dane są przesyłane jako serie znaków, z których każdy umieszczony jest w ramce (frame)
ramka znaku zaczyna się bitem startu i kończy się jednym lub kilkoma bitami stopu, każdy znak zajmuje od pięciu do ośmiu bitów
ramka zawiera także opcjonalny bit parzystości (parity bit) - do wykrywania błędów

ponieważ zegar odbiornika pracuje niezależnie od nadajnika, to możliwy jest dryft - sygnał nie będzie próbkowany (↑) na środku.

Adres ≡ adres portu (max. 4)
A2A1A0 ≡ adresy rejestrów
szyna I/O ≡ mówi o kierunku transmisji (umożliwia rozróżnienie buforu odbiornika/nadajnika )
Przyporządkowanie portom szeregowym dresów w przestrzeni WE/WY IBM PC
| COM1 | 03F8 - 03FF |
| COM2 | 02F8 -02FF |
| COM3 | 03E8 - 03EF |
| COM4 | 02E8 - 02EF |
Zestawienie rejestrów obsługujących łącza RS232C i ich adresy
| A2 | A1 | A0 | Nazwa rejestru | Uwagi |
| 0 | 0 | 0 | bufor nadajnika | tylko zapis LCR7 =0 |
| 0 | 0 | 0 | bufor odbiornika | tylko odczyt LCR7 =0 |
| 0 | 0 | 0 | młodszy bajt dzielnika | LCR7 = 1 |
| 0 | 0 | 1 | rejestr aktywacji przerwań | LCR = 0 |
| 0 | 0 | 1 | starszy bajt dzielnika | LCR = 1 |
| 0 | 1 | 0 | rejestr identyfikacji przerwań | tylko do odczytu |
| 0 | 1 | 1 | rejestr parametrów transmisji | (LCR) |
| 1 | 0 | 0 | rejestr sterowania modemu | (MCR) |
| 1 | 0 | 1 | rejestr stanu transmisji | (LSR) |
| 1 | 1 | 0 | rejestr stanu modemu | (MSR) |

przykłady przesyłania do rejestrów portu
outportb (port +3, 128) /* lcr7 = 1 */
outportb (port+1, 0x01) /*st bajt dzielnika*/
outportb (port, x) /*???*/
przykłady wysłania z rejestrów portu
y= inportb (port +5)
x= inportb (port)
REJESTR PARAMETRÓW TRANSMISJI
| Nr bitu | Funkcja | Wartość | Znaczenie |
| 1,0 | długość | 00 | 5 bitów/słowo |
| słowa | 01 | 6 bitów/słowo | |
| 10 | 7 bitów/słowo | ||
| 11 | 8 bitów/słowo | ||
| 2 | bity stopu | 0 | 1 bit stopu |
| 1 | 1,5 bitu, gdy słowo 5-bit | ||
| 2 bity w innym przypadku | |||
| 4,3 | parzystość | X0 | bez parzystości |
| 01 | bit nieparzystości | ||
| 11 | bit parzystości | ||
| 5 | odwrócenie | 0 | normalna parzystość |
| parzystości | 1 | zanegowana parzystośc | |
| 6 | sygnał | 1 | wymuszenie stanu 0 na |
| przerwania | wyjściu szeregowym | ||
| transmisji ( break ) | |||
| 7 | rozszerzenie adresu | zob. LCR7 |
jakie parametry transmisji zostaną ustawione jeżeli wykonane zostanie polecenie:
outportb (port +3, 0x1F)
REJESTR STANU TRANSMISJI
| Nr bitu | Znaczenie dla "1" |
| 0 | skompletowana dana w buforze odbiornika |
| 1 | błąd nieodebrania danej |
| 2 | błąd parzystości |
| 3 | błąd ramki |
| 4 | sygnał przerwania odebrany na wejściu szeregowym |
| 5 | bufor nadajnika pusty |
| 6 | rejestr szeregujący opróżniony |
| 7 | zawsze wartość "0" |
oznaczają następujące linie kodu:
if (inportb (port +5 ) & 1 ){
x=inportb (port)
}
lub
if (inportb (port +5 ) & 32 ){
x=getche();
}
poszczególne kroki w programie realizującym transmisję:
zadeklarować zmienne oraz ustalić adresy portów
ustalić szybkość transmisji, ten młodszy i starszy bajt dzielnika*
ustalić parametry transmisji: rejestr LCR
realizować transmisję (programowo) korzystając w szczególności z rejestru LSR
*patrz, tablica Ustawienia Szybkości Transmisji
(USTAWIENIA SZYBKOŚCI TRANSMISJI)
| Szybkość transmisji (w bodach) | Wartość dzielnika (dziesiętnie) | Starszy bajt dzielnika (szesnastkowo) | Młodszy bajt dzielnika (szesnastkowo) | Błąd względny w % |
| 50 | 2304 | 09 | 00 | 0 |
| 110 | 1047 | 04 | 17 | 0,026 |
| 150 | 768 | 03 | 00 | 0 |
| 300 | 384 | 01 | 80 | 0 |
| 600 | 192 | 00 | C0 | 0 |
| 1200 | 96 | 00 | 60 | 0 |
| 2000 | 58 | 00 | 3A | 0,69 |
| 2400 | 48 | 00 | 30 | 0 |
| 3600 | 32 | 00 | 20 | 0 |
| 4800 | 24 | 00 | 18 | 0 |
| 7200 | 16 | 00 | 10 | 0 |
| 9600 | 12 | 00 | 0C | 0 |
| 19200 | 6 | 00 | 06 | 0 |
| 38400 | 3 | 00 | 03 | 0 |
| 56000 | 2 | 00 | 02 | 2,86 |
| 115000 | 1 | 00 | 01 | 0,17 |
| 38400 | 3 | 00 | 03 | 0 |
| 56000 | 2 | 00 | 02 | 2,86 |
| 15000 | 1 | 00 | 01 | 0,17 |
TOPOGRAFIA WPROWADZEŃ SYGNAŁÓW DLA RS - 232C
| Nr styku | Nazwa sygnału | **w nawiasach wartości dla gniazda 9 - cio pinowego ** |
| 1 | Masa ochronna | |
| 2(3) | TxD Transmit Data | |
| 3(2) | RxD Receive Data | |
| 4(7) | RTS Request To Send | |
| 5(8) | CTS Clear To Send | |
| 6(6) | DSR Data Set Ready | |
| 7(5) | SG Signal Ground | |
| 8(1) | RLSD Rec. Line Sig. Select | |
| 20(4) | DTR Data Termiminal Ready | |
| 22(9) | RI Ring Indicator |
REJESTR AKTYWACJI PRZERWAŃ
| Nr bitu | Funkcja | ** wpisanie wartości zero do odpowiedniego bitu blokuje związane z nim przerwanie lub grupę przerwań, 1-aktyw.** |
| 0 | dana skompletowana w buforze odbiornika | |
| 1 | bufor nadajnika pusty | |
| 2 | błędy: parzystości, ramki, nałożenia, kolejnych danych sygnał przerwania transmisji | |
| 3 | zmiany stnów sygnałów CTS, DSR, RI, RLSD | |
| 4,5,6,7 | nie używane |
REJESTR IDENTYFIKACJI PRZERWAŃ
| Nr bitu | Wartość | Znaczenie |
| 0 | 0 | istnieje aktywne przerwanie |
| 1 | nie istnieje przerwanie wymagające obsługi | |
| 2,1 | 00 | jedno z czterech przerwań rejestru stanu modemu (najniższy priorytet) |
| 01 | pusty bufor nadajnika | |
| 10 | skompletowana dana w buforze odbiornika | |
| 11 | jedno z czterech przerwań w rejestrze stanu transmisji (najwyższy priorytet) | |
REJESTR STEROWANIA MODEMU (MCR)
| Nr bitu | Funkcja |
| 0 | pozycja logiczna na wyjściu DTR (negacja) |
| 1 | pozycja logiczna na wyjściu RTS (negacja) |
| 2 | wyjście OUT1 (negacja) |
| 3 | wyjście OUT (negacja) |
| 4 | 0 - normalne działanie |
| 1 - zamknięcie pętli wewnętrznego sprzężenia (w celu samotestowania) | |
| 5,6,7 | ustawione na zero |
REJESTR STANU MODEMU (MSR)
| Nr bitu | Znaczenie |
| 0 | 1 - gdy linia CTS zmienia stan logiczny |
| 1 | 1 - gdy linia DSR zmienia stan logiczny |
| 2 | 1 - gdy stan linii RI zmienia sie z 1 na 0 |
| 3 | 1 - gey linia RLSD zmienia stan logiczny |
| 4 | stan linii CTS (negacja) |
| 5 | stan linii DSR (negacja) |
| 6 | stan linii RI (negacja) |
| 7 | stan linii RLSD (negacja) |
INTERFEJSY SZEREGOWE
Wymagania stawiane obwodom transmisyjnym
| Parametr | RS - 232C | RS - 423A | RS - 422A | RS - 485 |
| Rodzaj transmisji | Niesymetryczna | Niesymetryczna | Różnicowa | Różnicowa |
| Dozwolona ilość nadajników i odbiorników | 1/1 | 1/10 | 1/10 | 32/32 |
| Maksymalna długość kabla [bps] | 15 | 1200 | 1200 | 1200 |
| Maksymalne napięcie wspólne | 20k. | 100k. | 10M | 10m. |
| Wyjście nadajnika | ą25V | ą6V | ą6V -0,25V |
+12V -7V |
| Obciążenie nadajnika | ą5V min ą15V max |
ą3,6V ą6,0V |
ą2V min | ą1,5 V min |
| Ograniczenie prądu zwarciowego nadajnika | 3kΩ do 7kΩ | 450Ω min | 100Ω min | 60Ω min |
| Rezystancja wejściowa odbiornika | 500mA przy zwarciu do Vcc lub GND | 150mA przy zwarciu do GND | 150mA przy zwarciu do GND | 150mA przy zwarciu do GND. 250mA do-8V lub 12V |
| Czułość odbiornika | ą3V | ą200mV | ą200mV | ą200mV |



