Linux, a porty szeregowe.: Krok dalej.
Następna strona
Poprzednia strona
Spis treści
12. Krok dalej.
Nie musisz czytać tego rozdziału, jego
celem jest wprowadzenie czytelnika w świat telekomunikacji i
wnętrze UNIXa.
12.1 Co to są pliki blokady (lockfiles)?
Plik blokady to zwykły plik, którego istnienie po prostu
oznacza, że dane urządzenie jest w użyciu. Przechowywane są w
katalogu /usr/spool/uucp lub
/var/lock. Pliki blokady pod Linux-em noszą nazwę
LCK..name. name oznacza nazwę urządzenia lub
nazwą komputera w formie UUCP. Pewne procesy tworzą pliki
blokady aby mieć wyłączny dostęp do urządzeń. Np. jeśli
będziesz dwonił swoim modemem pojawi się plik blokady mówiący
innym procesom, że ktoś już używa tego urządzenia. Pliki
blokady zwierają zwykle PID procesu zajmującego
zasób. Większość programów odczytuje pliki blokady i sprawdza
czy proces o podanym w tym pliku identyfikatorze PID nadal
istnieje. Jeśli sprawdzenie wykaże, że taki proces istnieje,
czyli plik blokady jest ważny, to proces który sprawdzał plik
blokady powinien zakończyć działanie.
Jeśli taki proces już nie istnieje, niektóre programy usuwają
przeterminowany plik blokady i korzystają z urządzenia zakładając
nowy własny plik blokady. Inne programy po prostu kończą
działanie informując Cię, że urządzenie jest w użyciu.
12.2 ``baud'' vs. ``bps''.
``baud'' i ``bps'' są prawdopodobnie najczęściej niepoprawnie
używanymi terminami w branży
komputerowo/telekomunikacyjnej. Wiele osób używa tych terminów
zamiennie, podczas gdy każdy z nich oznacza coś innego!
baudPrędkość modulacji (baud rate) jest miarą ile razy na sekundę
zmienia się sygnał wysyłany przez modem
(modulator-demodulator). Spotykane zwykle prędkości
wynoszą 50, 75, 110, 300, 600, 1200 i 2400. Większość szybkich
modemów działa z prędkością 2400. Ze względu na ograniczenia
linii telefonicznych ciężko jest uzyskać prędkości większe niż
2400 i działają tylko w specyfcznych warunkach. Nazwa ``baud''
pochodzi od nazwiska Emila Baudot, wynalazcy asynchronicznego
telegrafu.
bpsPrędkość bps jest miarą przesyłane jinformacji w jednostce
czasu (bity na sekunde). Standardowe prędkości bps wynoszą 50,
75, 110, 300, 1200, 2400, 9600, ... 115200. Modemy z kompresją
V42bis (kompresja 4:1) posiadają teoretyczną prędkość do
115200 bps. O tym zwykle myslą ludzie, kiedy używają mylnie
pojęcia ``baud''.
Skoro szybkie modemy dzialają z prędkościs 2400 bodów, w jaki
sposów przesyłają informacje z prędkościa 14400 bps? Modemy
uzyskują zależność bps > bod-y dzięki kodowaniu w jednym
bodzie kilku bitów. Jeśli 2 lub więcej bitów jest
zakodowanych w jednym bodzie, prędkość bps przekracza liczbę
bodów na sekunde. Jeśli twój modem łączy się z prędkością
14400 to znaczy, że przesyła 6 bitów w jednym bodzie.
Jak powstało całe to zamieszanie? Dawniej, kiedy dzisiejsze
przestarzałe modemy były jednymi z najszybszych, prędkośc bps
była zwykle równa ilości bodów na sekunde. Jeden bod zawieral
jeden bit. Ludzie używali tych nazw wymiennie, oba pojęcia
miały te ame wartości. Np. modem o prędkości 300 bps wysyłał
300 bodów na sekunde. Wszystko się zmieniło, kiedy pokazały
się szybsze modemy i prędkość przesyłanych bitów przekroczyła
prędkość wysylanych bodów.
12.3 Co to jest UART? Jaki ma wpływ na osiągi portu szeregowego?
UART ((Universal Asyncronous Receiver
Transmitter) są układami znajdującymi się na karcie portów
szeregowych. Ich zadaniem jest zamiana danych na bity,
przesyłanie bitów przez linię szeregową i odbudowa danych na
podstawie otrzymanych bitów. Układy UART operują na informacji
podzielonej na bajty, który może być również reprezentacją
znaku ASCII.
Powiedzmy, ze posiadasz terminal przyłączony do twojego
PC. Kiedy wprowadzasz znak, terminal przekazuje go do
nadajnika (również pewnego rodzaju układu UART). Nadajnik
przesyła ten bajt przez linię szeregową, bit po bicie z
określoną prędkościa. Po stronie PC, odbierający układ UART
pobiera kolejne bity i buduje z nich bajty, które wstawia
kolejno do bufora.
Istnieją dwa różne rodzaje układów UART. Powszechnie znane
głupe 8250 i 16450, oraz zawierające kolejkę FIFO,
sprytniejsze 16550A. Aby zrozumieć róznicę przestudiujmy co
się dzieje, kiedy układ UART wysyła lyb otrzymuje bajt informacji.
Układ UART sam z siebie nie potrafi nic zrobić. Tylko wysyła i
odbiera bity. Za akżdym razem, kiedy jeden bajt został wysłany
lub odebrany CPU otrzymuje sygnał przerwania od urządzenia
szeregowego. Wtedy procesor przenosi otrzymany bajt z bufora
układu UART gdzieś do pamięci, lub przekazuje układowi UART do
wysłania kolejny bajt. Układy 8250 i 16450 posiadają bufor o
rozmiarze jednego bajtu. To oznacza, że za każdym razem, kiedy
jeden bajt jest wysłany lub odebrany procesor otrzymuje
sysgnał przerwania. Przy małych prędkościach wszystko jest w
porządku. Lecz przy wyższych prędkościach, procesor jest tak
zajęty obsługą układu UART, że nie ma czasu na inne zadania. W
niektórych przypadkach procesor nie nadąża z samą obsługą
układu UART i bajt zawarty w buforze ukladu UART jest
nadpisywany (niszczony) ponieważ został tam umieszczony
następny bajt, zanim poprzedni został przeniesiony w bezpieczne
miejsce.
To jest sytuacja, w której przydaje się układ 16550A. Ten
układ posiada bufor FIFO o rozmiarze 16 bajtów. To znaczy, że
może wysłać lub odebrać 16 bajtów, zanim jest zmuszony wysłać
do procesora sygnał przerwania. Poza tym prócz tego ,ze sam
układ może poczekać, to jeszcze procesor może przenieść za
jednym razem wszystkie 16 bajtów. Choć poziom generowania
przerwań rzadko jest równy 16, jest to nadal ogromna przewaga
nad innymi układami UART, posiadajacymi 1-no bajtowy
bufor. Procesor otrzymuje mnej przerwań i ma czas na obsługę
innych zadań. Dane nie są gubione i wszyscy są
szczęśliwi. (Istnieją jeszcze układy 16550, lecz są traktowane
tak, jak 16450 ze względu na blędy jakie zawierają).
Zasadniczo układy 8250 i 16450 powinny się sprawować poprawnie
do prędkości 38400 bps. Przy wyższych prędkościach możesz mieć
okazję zobserwować utratę danych i zmiejszenie czasu
odpowiedzi przy pracy zdalnej. Inne systemy operacyjne (nie
sprzeczajmy się co to jest sytem operacyjny), jak DOS nie są
wielozadaniowe więc mogą sobie lepiej radzić z układami 8250
lub 16450. Dlatego niektórzy nie widzą utraty danych, zanim
nie przesiądą się na Linux-a.
Inteligentne karty wieloportowe nie posiadają układów UART,
lecz układy DSP, które wykonują dodatkowe buforowanie i
sterowanie jescze bardziej odciążając procesor. Np Cyclades
Cyclom i Stallion EasyIO korzystają z układu Cirrus Logic
CD-1400 RISC.
Pamiętaj, że głupie układy UART nie są złe. Nie są
wystarczająco dobre do dużych prędkości. Nie powinieneś mieć
żadnych kłopotów podłączająć mysz lub terminal do portu
pracującego na takim układzie. Lecz w przypadku modemów o
wysokiej prędkości 16550A jest koniecznością.
Karty z układami 16550 możesz kupić niewiele drożej, zapytaj
się swego sprzedawcy jakiego rodzaju układy znajdują się na
karcie. Lub jeśli chcesz unowocześnić swoją kartę wystarczy
nabyć układy 16550A i włożyć w miejsce starych 16450. Mają
zgodny rozkład nóżek. Część kart ma montowane układy 16450 na
specjalnych podstawkach, jeśli nie możesz sprzedać starą
kartę i kupić nową. Prawdopodobnie zaoszczędzisz sobie w ten
sposów bielu kłopotów. Ich cena nie powinna przekroczyć
US$ 50.
12.4 Jaka jest naprawdę różnica między urządzeniami /dev/cuaN itt>/dev/ttySN devices?
Różnica polega na sposobie otwierania tych
urządzeń. Urządzenia wejściowe /dev/ttySN są
otwierane w trybie blokowania aż do sygnału CD (ktoś się
właśnie połączył). Więc jeśli ktoś chce korzystać z urządzenia
/dev/cuaN nie ma konfliktu z programem
nasłuchującym urządzenie /dev/ttySN.
To rozróżnienie jest potrzebne aby umożliwić przez ten sam
modem połączenia przychodzace (ttySN) i wychodzące (cuaN).
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
Kernel HOWTO pl 12 (2)printing howto pl 12Serial HOWTO pl 6 (2)Serial HOWTO pl 1 (2)Serial HOWTO pl (2)Serial HOWTO pl 2 (2)SMB HOWTO pl 12 (2)Serial HOWTO pl 8 (2)Serial HOWTO pl (3)DOSEMU HOWTO pl 12 (2)Serial HOWTO pl 14 (2)Serial HOWTO pl 7 (2)ppp howto pl 12Serial HOWTO pl 15 (2)Serial HOWTO pl 9 (2)Serial HOWTO pl 11 (2)Serial HOWTO pl 4 (2)Serial HOWTO pl 5 (2)net 3 howto pl 12więcej podobnych podstron