Tryby poleceń i danych (modem)

poleceń i danych odnoszą się do dwóch trybów, w których może działać modem komputerowy. Tryby te są zdefiniowane w zestawie poleceń Hayesa , który jest de facto standardem dla wszystkich modemów. Te tryby istnieją, ponieważ istnieje tylko jeden kanał komunikacji między modemem a komputerem, który musi przenosić zarówno polecenia komputera do modemu, jak i dane, które modem ma przesłać do strony zdalnej przez linię telefoniczną.

Gdy modem jest w trybie poleceń , wszelkie znaki wysyłane do niego są interpretowane jako polecenia do wykonania przez modem, zgodnie z zestawem poleceń Hayesa . Komendę poprzedzają litery „AT”, które oznaczają „Uwaga”. Na przykład, jeśli modem odbiera „ATDT5551212” w trybie poleceń, interpretuje to jako polecenie wybrania numerów 5551212 w telefonie za pomocą tonowego . W trybie poleceń modem może wysyłać odpowiedzi z powrotem do komputera, wskazując wynik polecenia. Na przykład modem może odpowiedzieć słowem „BUSY” w odpowiedzi na polecenie ATDT, jeśli usłyszy sygnał zajętości po wybraniu numeru i jest skonfigurowany do nasłuchiwania sygnałów zajętości.

Każda komunikacja w trybie poleceń (w obu kierunkach) jest zakończona powrotem karetki .

Gdy modem jest w trybie danych , wszelkie znaki wysyłane do modemu mają być przesyłane do strony zdalnej. Modem przechodzi w tryb danych natychmiast po nawiązaniu połączenia. Na przykład, jeśli ATDT5551212 spowodowało połączenie telefoniczne, które zostało odebrane przez inny modem komputerowy, modem zgłosiłby słowo „POŁĄCZ”, a następnie przełączyłby się w tryb danych. Wszelkie dalsze znaki odebrane przez łącze szeregowe są uważane za pochodzące od strony zdalnej, a wszelkie wysłane znaki są przesyłane do strony zdalnej.

Gdy modem z obsługą głosu jest w trybie „danych głosowych”, wszelkie dane wysyłane do modemu są interpretowane jako dane audio do odtwarzania przez linię telefoniczną, a nie bajty znaków przesyłane cyfrowo do drugiej strony.

Przełączanie między trybami

Modemy zawsze uruchamiają się w trybie poleceń po włączeniu. Oto sposoby, w jakie modem może przełączyć się w tryb danych:

  • Po udanym połączeniu wychodzącym w odpowiedzi na polecenie wybierania numeru „ATD”, w którym modem łączy się z innym modemem.
  • Po odebraniu telefonu za pomocą polecenia „ATA” odbierz, jeśli po drugiej stronie znajduje się inny modem.
  • Po automatycznym odebraniu telefonu z wcześniej skonfigurowanego powodu (takiego jak automatyczne odbieranie) i podłączeniu do innego modemu. (Prawie wszystkie modemy obsługują automatyczne odpowiadanie na polecenie „ATS0=1”.)
  • Po otrzymaniu polecenia „ATO” (czyli trzy litery AT-Oh, nie AT-zero) po przywróceniu trybu poleceń z sekwencją ucieczki (patrz poniżej).
  • W odpowiedzi na podobne polecenia wybierania numeru lub łączenia w przypadku komunikacji faksowej lub głosowej.

Modemy przełączają się z powrotem do trybu poleceń z trybu danych z następujących powodów:

  • Połączenie zostało zerwane (na przykład druga strona się rozłączyła).
  • Komputer wydał polecenie ucieczki, które zwykle jest 1-sekundową pauzą, następnie trzema znakami „+++”, a następnie kolejną 1-sekundową pauzą. Połączenie pozostaje, ale modem może akceptować polecenia, takie jak „ATH” w celu rozłączenia. Komputer może wydać polecenie „ATO”, aby powrócić do trybu danych.
  • Komputer poinstruował modem, aby zakończył połączenie, ustawiając pin Data Terminal Ready (DTR) w stan „wyłączony”. (Zwykle w ten sposób komputery wywołują obecnie zakończenie połączenia modemowego - sekwencja ucieczki +++ jest rzadko używana i zwykle jest wyłączana, aby uniknąć nieprawidłowego działania w przypadku, gdy znaki te są legalnie częścią strumienia danych).

Praktyczne współczesne zastosowanie

Obecnie większość modemów jest skonfigurowana ze znakami „&C1&D2” w łańcuchu inicjalizacyjnym lub w inny sposób domyślnie zachowuje się w ten sposób. Powoduje to następujące zachowanie:

  • Modem wykorzystuje pin Data Carrier Detect (DCD) do sygnalizowania, czy jest podłączony do hosta. Komputer może zazwyczaj po prostu odczytać pin DCD w dowolnym momencie i zawsze wiedzieć, czy modem jest w trybie poleceń, czy danych. DCD wysoki oznacza tryb danych, a niski oznacza tryb poleceń. DCD to sygnał wysyłany z modemu do komputera. (Zauważ, że DCD również pozostaje wysokie, jeśli jest w trybie poleceń po sekwencji ucieczki +++, ale w praktyce oprogramowanie używa tego tak rzadko, jeśli w ogóle, więc tak naprawdę nie jest to problem.)
  • Modem interpretuje pin Data Terminal Ready (DTR) jako sygnał z komputera, aby wiedzieć, kiedy chce zakończyć połączenie. DTR to sygnał z komputera do modemu. Komputer utrzymuje wysoki DTR przez cały czas, dopóki nie chce zakończyć połączenia, w którym to czasie komputer obniża DTR na sekundę lub dwie. Komputer utrzymuje również niski poziom DTR, gdy nie są uruchomione żadne programy, które chcą korzystać z modemu — dzięki temu modem nie odpowiada na połączenia z powodu automatycznej odpowiedzi lub innych działań nieoczekiwanych lub niepożądanych. Komputer może bezpiecznie założyć, że po obniżeniu DTR na kilka sekund modem będzie w trybie poleceń.

Komunikaty Data Link Escape (DLE).

W przypadku normalnej komunikacji danych wdzwanianych modemy wchodzą w tryb danych tylko raz — zaczynając w momencie nawiązania sesji i kończąc w momencie rozłączenia sesji. Jednak gdy modemy są używane do komunikacji faksowej i głosowej (audio), kilka razy podczas połączenia szybko przełączają się między trybami poleceń i danych. Dzieje się tak dlatego, że rola modemu zmienia się częściej — zamiast zwykłego przekazywania bajtów z punktu A do punktu B, modem negocjuje parametry i strony z faksem lub przełącza między trybami nagrywania, wstrzymywania i odtwarzania dźwięku.

W trybach faksu i danych głosowych czasami zdarzają się zdarzenia, które modem chce zasygnalizować komputerowi, niezależnie od tego, czy jest on w trybie poleceń, czy danych. Przykładem takiego zdarzenia jest naciśnięcie przez dzwoniącego wybierania tonowego w trybie głosowym. Inne często spotykane komunikaty poza pasmem to powiadomienia z modemu, że dane zostały utracone, ponieważ komputer wysyła dane zbyt wolno lub zbyt szybko, lub że modem słyszy nieoczekiwany sygnał wybierania na linii (co oznacza, że ​​dzwoniący prawdopodobnie się rozłączył ) lub że dodatkowa słuchawka została podniesiona lub rozłączona.

Zdarzenie tego typu jest sygnalizowane komunikatem DLE , który jest komunikatem jednoznakowym poprzedzonym kodem Data Link Escape. DLE to znak wysyłany z modemu do komputera, którego definicja nie jest związana ani z trybem poleceń, ani z trybem danych, i który wykorzystuje określony kod ASCII (0x10), który nigdy nie występuje w żadnych poleceniach lub odpowiedziach AT, dzięki czemu można go odizolować od strumień poleceń/odpowiedzi tylko na tej podstawie. W tych trybach, za każdym razem, gdy wysyłany jest kod DLE (0x10), następujący po nim znak ma specjalne znaczenie niezwiązane z poleceniem i danymi. Na przykład DLE, po którym następuje cyfra 2, oznacza, że ​​dzwoniący nacisnął cyfrę 2 na klawiaturze swojego telefonu. Może się to zdarzyć w trybie poleceń lub danych, o ile linia telefoniczna jest używana przez modem, a ktoś jest na drugim końcu linii.

Znak DLE może pojawić się w danych faksu lub audio. Aby uniknąć błędnej interpretacji bajtu danych 0x10 jako DLE, stosuje się „wypychanie bitów”. Wypychanie jest powszechnym schematem kodowania w modemach i służy do zmiany znaczenia znaku w strumieniach. W tym przypadku upychanie oznacza, że ​​dwa znaki DLE z rzędu są interpretowane jako jeden bajt literału o wartości 0x10.

DLE jest również lekko używany w komunikacji między komputerem a modemem. Jedno określone zdarzenie DLE sygnalizuje koniec strony faksu lub koniec pliku audio. To zdarzenie powoduje powrót modemu do trybu poleceń. W przeciwieństwie do standardowego trybu danych dial-up, zrzucenie DTR nie jest odpowiednim sposobem na wznowienie trybu poleceń, ponieważ rozłączenie nie jest pożądane, a kod ucieczki z obowiązkowymi przerwami również nie jest odpowiedni. Z tego powodu literalne 0x10 bajtów w danych jest również podwajane z komputera do modemu.

DLE nigdy nie jest używany w standardowych trybach transmisji danych modem-modem, takich jak ten używany do dostępu do Internetu wdzwanianego, przynajmniej nie przez sam modem. W tych trybach DLE jest przekazywane przez linię, tak jak każdy inny znak. DLE (i komunikaty z kodem Escaped DLE) są używane przez modem do aplikacji faksowych i głosowych tylko wtedy, gdy jest on specjalnie ustawiony w tryb faksu lub głosowy.