Serial HOWTO pl 12 (2)


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 12
Serial 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 12
Serial 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 12

więcej podobnych podstron