(Wykład 4)URZĄDZENIA SZEREGOWE
Porty szeregowe oferują najwygodniejszy chyba sposób komunikacji systemu UNIX/WINDOWS/DOS z urządzeniami wejścia - wyjścia Nie są one bardzo szybkie, ale za to są elastyczne można je znaleźć we wszystkich komputerach Mogą być one używane do komunikacji c całą gamą urządzeń, włączając w to drukarki, terminale i inne komputery Urządzenie może być podłączone do systemu bezpośrednio (kablem) lub za pośrednictwem linii telefonicznej z modemami na obu końcach do modulowania i demodulowania sygnału.
STANDARDY DLA SYGNAŁÓW I ŁĄCZY
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 komputerachMacintosh, 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
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, drukarkiurzą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 - 25umoż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)
WEJŚCIE - WYJŚCIE SZEREGOWE
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 odbieraniupo 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.
ASYNCHRONICZNA TRANSMISJA SZEREGOWA
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.
INTERFEJS SZEREGOWY RS - 232C
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
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
REJESTR STANU TRANSMISJI
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)
TOPOGRAFIA WPROWADZEŃ SYGNAŁÓW DLA RS - 232C
REJESTR AKTYWACJI PRZERWAŃ
REJESTR IDENTYFIKACJI PRZERWAŃ
REJESTR STEROWANIA MODEMU (MCR)
REJESTR STANU MODEMU (MSR)
INTERFEJSY SZEREGOWE
Wymagania stawiane obwodom transmisyjnym