![]() |
Spis treści |
Wprowadzenie |
Interfejs RS-232C jest jednym z interfejsów
szeregowych. Występuje standardowo we wszystkich komputerach zgodnych
z IBM PC i nowszych. W interfejs ten wyposażonych jest wiele urządzeń pomiarowych,
w tym jednak przypadku nie zawsze interfejsy te są w pełni zgodne ze specyfikacją
standardu (szczególnie jeśli chodzi o topografię połączeń).
Sygnały przekazywane łączem RS232C można podzielić na trzy grupy:
|
Obsługa |
Każdemu łączu szeregowemu przyporządkowana jest grupa adresów odpowiadająca
poszczególnym rejestrom (tabela 3) w jednym z czterech
obszarów adresowych standardowo zarezerwownych dla tego typu urządzeń (tabela
2).
Przez odpowiednie ustawienie wartości w rejestrach sterowników łącza można prowadzić tylko nadawanie, tylko odbieranie, naprzemienne lub równoczesne nadawanie z odbieraniem. Wszystkie operacje nadawania-odbioru należy poprzedzić inicjalizacją rejestrów: aktywacji przerwań, sterowania transmisji, sterowania modemu, bajtów podzielnika. Warto zauważyć, że nie istnieje możliwość zablokowania transmisji szeregowej za pomocą poleceń wpisywanych do rejestrów sterowania, ale można to osiągną poprzez wstawienie wartości 0 do rejestru podzielnika. Wszystkie sygnały protokołu współpracy z modemem wymagają programowej obsługi - wprowadzenia właściwej wartości do rejestru sterowania modemu i odczytania odpowiedzi z rejestru stanu. Program obsługi łącza powinien wykonać następujące kroki:
|
| A2 | A1 | A0 | Nazwa rejestru | Uwagi |
|
|
|
|
bufor nadajnika | tylko zapis przy LCR7=0 |
|
|
|
|
bufor odbiornika | tylko odczyt przy LCR7=0 |
|
|
|
|
mniej znaczący bajt podzielnika | LCR7=1 |
|
|
|
|
rejestr aktywacji przerwań | LCR7=0 |
|
|
|
|
bardziej znaczący bajt podzielnika | LCR7=1 |
|
|
|
|
rejestr identyfikacji przerwań | tylko do odczytu |
|
|
|
|
rejestr parametrów transmisji LCR | |
|
|
|
|
rejestr sterowania modemu MCR | |
|
|
|
|
rejestr stanu transmisji LSR | |
|
|
|
|
rejestr stanu modemu MSR |
|
Ustalenie prędkości transmisji polega na ustawieniu programowalnego dzielnika częstotliwości bazowej (115200 Hz), co daje możliwość uzyskania maksymalnie transmisji 115200 bodów (dla dzielnika 1). Rejestr podzielnika jest 16 bitowy i dostępny wówczas, gdy ustawiony jest bit LCR7. Typowe prędkości transmisji to 1200 (dzielnik 96), 2400 (dzielnik 48), 4800 (dzielnik 24), 9600 (dzielnik 12), 19200 bodów (dzielnik 6). |
|
|
|
|
|
|
|
Długość słowa |
01 10 11 |
6 bitów/słowo 7 bitów/słowo 8 bitów/słowo |
|
|
Bity stopu |
1 |
1,5 bitu, gdy słowo 5 bitowe 2 bity w innym przypadku |
|
|
Parzystość |
01 11 |
bit nieparzystości bit parzystości |
|
|
Odwrócenie parzystości |
1 |
zanegowana parzystość |
|
|
Sygnał przerwania transmisji (break) |
1 |
wymuszenie stanu 0 na wyjściu szeregowym |
|
|
Rozszerzenie adresu |
|
|
Przed przystąpieniem do pracy z portami w trybie bezpośrednim należy ustalić ile jest portów COM i pod jakimi portami się znajdują. Informacja o ilości dostępnych portów zawarta jest w komórce 0x00400011, zaś w celu znalezienia adresów należy się odwołać do obszaru BIOS-u o następujących adresach: 0x00400002 (0002:0400H) - COM2 0x00400004 (0004:0400H) - COM3 0x00400006 (0006:0400H) - COM4 |
Funkcje BIOS'u
|
Funkcja 0 - inicjalizacja łącza
Funkcja 1 - wysłanie jednego znaku
Funkcja 2 - odebranie jednego znaku
Funkcja 3 - status łącza
|
odwiedzin od 30 czerwca 2000 r.
(c) T.W. Wojtatowicz Ostatnia modyfikacja 1.12.1999 r.