Zbiór poleceń modemu w standardzie HayesNiniejszy tekst zawiera opis poleceń modemowych w standardzie Hayes. Większość dostępnych na rynku modemów obsługuje dużą część tych poleceń. Jeżeli instrukcja modemu jest niedostępna (lub np. wcale jej nie było) to niniejszy opis na pewno się przyda. Można na przykład dowiedzieć się jak wyłączyć głośnik w modemie: wystarczy wpisać ATM0 i ..... nareszcie cisza !!!Ciąg znaków inicjujących pracę modemu, zawiera zbiór poleceń. Jego zadaniem jest przygodowanie modemu do celów komunikacji, ustawiając takie opcje jak: tryb dzwonienia, czasy oczekiwania, cechy sygnału zajętości oraz wiele innych. Współczesne oprogramowanie komunikacyjne ustawia polecenia inicjujące modem, w zależności od opcji konfiguracyjnych ustawianych przez użytkownika w menu, oknach dialogowych, itp.Przez wiele lat, modemy firmy Hayes były standardem. Jeżeli nowe firmy rozpoczynały produkcję i sprzedaż modemów, to w dużej mierze stosowały się do standardu firmy Hayes. Poniżej znajduje się lista wybranych poleceń standardu Hayes (nazywanych też poleceniami AT). Zbiór poleceń standardu Hayes może być podzielony na cztery grupy:Polecenia podstawoweDuża litera z następującą po niej liczbą, np.: M1.Polecenia rozszerzoneZnak & (ampersand) oraz duża litera z następującą po niej cyfrą. Jest to rozszerzenie standardowego zestawu poleceń, na przykład &M1. Należy zwrócić uwagę, iż polecenie M1 to nie to samo, co polecenie: &M1.Polecenia specyficzne dla producentaRozpoczynają się albo od ukośnika (\), lub znaku procent (%), Polecenia te są zróżnicowane w modemach różnych producentów, z tego powodu omówione zostaną jedynie niektóre z nich.Polecenia obsługi rejestrówPostaci Sr=n gdzie r jest numerem rejestru, który ma zostać zmieniony, a n jest wartością, którą należy do tego rejestru wpisać.Rejestr jest informatycznym określeniem określonej lokalizacji w pamięci. Modemy posiadają wbudowaną niewielką pamięć, do której można zapisywać określone wartości z wykorzystaniem tego zestawu poleceń. Rejestry mogą przechowywać zmienne (informacje alfanumeryczne) które są wykorzystywane przez modem i oprogramowanie komunikacyjne. Na przykład, polecenie: S7=60 instruuje modem, abyZapisać w rejestrze numer #7 wartość 60.Chociaż większość poleceń definiowana jest za pomocą kombinacji liter i cyfr (L0, L1 &etc;), to użycie cyfry zero, jest opcjonalne, tzn. w przykładzie polecenie L0 jest tożsama z poleceniem L. Należy o tym pamiętać, podczas czytania poniższej tabeli!Poniżej znajdują się niektóre z najważniejszych znaków, które powinny pojawić się w ciągu inicjującym modem. Te fragmenty ciągu nie powinny być zmieniane.ATStanowi informację dla modemu, że zostaną przesłane polecenia sterujące. Znaki AT muszą rozpoczynać każdą linię poleceń dla modemu.ZZeruje modem do ustawień standardowych., (przecinek)powoduje, iż oprogramowanie oczekuje przez moment. Można wpisać więcej niż jedną poleceń , w wierszu. Na przykład zapis: ,,,, instruuje modem do wprowadzenia przerwy długości 4 sekund (Czas trwania przerwy jest zdeterminowany przez zawartość rejestru S8.^MPrzesyła kod sterujący oznaczający powrót karetki (CR - Carriage Return )Podstawowy zestaw poleceń Hayes'aw porządku alfabetycznym:
Polecenia podstawoweKomendaOpisKomentarzA0 lub AOdbierz połączenie przychodząceA/Powtórz ostatnią poleceńNie należy ich poprzedzać ciągiem AT. Klawisz Enter z reguły przerywa operację.B0 lub BSposób negocjacji parametrów połączeniaStandard negocjacji V32 Mode/CCITTB1Sposób negocjacji parametrów połączeniaStandard negocjacji Bell 212AB2Sposób negocjacji parametrów połączeniaTryb gadatliwy lub cichy przy odbieraniuDZadzwońDzwoni na podany numer i przekazuje sterowanie do aplikacjiPWybieranie impulsoweTWybieranie tonoweWPoczekaj na drugi sygnał wybierania,Przewij na czas określony w rejestrze S8 (wartość domyślna to najczęściej 2 sekundy);Po realizacji polecenia dzwoń, pozostań w trybie komend!Obsługa mechanizmu przenoszenia połączenia (odłożenie słuchawki przez wpisaniem numeru docelowego)LZadzwoń pod ostatnio wybierany numerE0 lub EBrak echaNie będzie powtarzać poleceń przekazywanych przez komputerE1EchoModem będzie powtarzać polecenia przekazywane przez komputer (użytkownik będzie widział co pisze w oknie terminala)H0Ustawienie stanu słuchawkiOpuszczona na widełkiH1Ustawienie stanu słuchawkiPodniesionaI0 lub IŻądanie informacji o możliwościach modemuJest to polecenie w dużej części zależna od sprzętu, polecenie I0 z reguły zwraca kod lub liczbę, wyższe numery mogą spowodować przesłanie dużo większej liczby użytecznych informacji o sprzęcie.L0 lub LPoziom głośności. Modemy z ręczną regulacją głośności, nie obsługują poniższych opcji.Wyłączenie głosu lub bardzo cichy dźwięk.L1CichoL2Średnio głośnoL3Głośno lub bardzo głośnoM0 lub MWyłączenie głośnikaCzęsto stoduje się też poleceń M3, lecz może ona różnie działać w zależności od producenta modemu.M1Głośnik włączony dopóki modem nie wykryje sygnału nośnej (tzn. do chwili pojawienia się dźwięku z drugiego modemu)M2Głośnik jest włączony cały czas, nawet po połączeniu (słyszalne są sygnały przesyłanych danych)N0 lub NSzybkość negocjacji parametrówNegocjuj z wykorzystaniem tylko z prędkości zdefiniowanych w rejestrze S37N1Rozpocznij negocjację od największej dostępnej prędkości, większej od wartości zdefiniowanej w rejestrze: S37O0 lub OWróć do stanu - PołączonyNależy zwrócić uwagę na poleceń X1, jako że wykrywanie sygnału wybierania może być aktywne.O1Wróć do stanu połączony, po zdefiniowanym czasie działania funkcji RetrainQ0 lub Q1Tryb cichyWyłączony - powoduje wyświetlanie odpowiedzi modemu na polecenia użytkownika (np: OK)Q1Tryb cichyWłączony - Odpowiedzi modemu na polecenia użytkownika są wyłączoneSn?Wyświetla zawartość rejestru S modemu, o numerze: nSn=rZapiszZapisz wartość: r w rejestrze S-o numerze: nV0 lub VTryb gadatliwyKody stanu modemu zwracane w postaci liczbowejV1Kody stanu zwracane przez modem jako słowa w języku angielskim (⪚ CONNECT, BUSY, NO CARRIER &etc;)X0 lub XStandard SmartmodemKody stanu zgodne ze standardem Hayes Smartmodem 300X1Powoduje zwykle dodanie informacji o prędkości połączenia, do kodów rezultatu (np: CONNECT 1200X2Powoduje uaktywnienie wykrywania sygnału wywołania (wyłączając możliwość "ślepego" dzwonienia) i wyłączenie działania polecenia AT0)X3Włącza opcję wykrywania sygnału zajętościX4Włącza opcję wykrywania sygnału zajętości oraz sygnału wybieraniaZ0 lub ZZerowanieZeruje stan modemu i uaktywnia zachowaną konfigurację. Użycie poleceń Z0, Z1 itp. umożliwia korzystanie z różnych profili konfiguracji. Komenda ta działa identycznie jak &F dla przywrócenia ustawień fabrycznych w modemach bez pamięci NVRAM (pamięć nieulotna).
Rozszerzony zbiór poleceń standardu HayesPolecenia rozszerzone
Rozszerzony zbiór poleceń standardu HayesKomendaOpisKomentarz&B0 lub &BParametry funkcji RetrainWyłączenie automatycznego działania Retrain&B1Parametry funkcji RetrainWłączenie automatycznego działania retrain&B2Parametry funkcji RetrainWłączenie funkcji auto retrain, jednak modem rozłączy się, jeżeli stan linii nie poprawi się w ciągu okresu ustawionego w rejestrze S7&C0 or &C1Wykrywanie sygnału nośnejSygnał zawsze włączony&C1Wykrywanie sygnału nośnejDetekcja nośnej zdalnego modemu (najczęściej jest to wartość domyślna)&D0 lub &DSygnał gotowości terminala (DTR)Ten sygnał jest ignorowany (Działanie jest uzależnione od sprzętu, należy sprawdzić w dokumentacji sposób reakcji na ten sygnał!)&D1Sygnał gotowości terminala (DTR)Po zmianie stanu sygnału DTR (z włączony na wyłączony) modem przechodzi w tryb przyjmowania poleceń (dotyczy tylko niektórych modemów)&D2Sygnał gotowości terminala (DTR)Pewne modemy po zmianie stanu sygnału DTR (z włączony na wyłączony) rozłączają się. (Działanie takie preferowane jest jako domyślne)&D3Sygnał gotowości terminala (DTR)Powoduje rozłączenie, zerowanie modemu i powrót do trybu poleceń po otrzymaniu sygnału DTR&F0 lub &FUstawienia fabryczneTypowe wartość domyślne w standardzie Hayes Nieraz wykorzystanie tych ustawień do definiowania ciągów połączeniowych może być przydatne, gdyż ustawienia parametrów &F1-&F3 mogą się różnić między modemami, co może powodować problemy z połączeniami (jako że nie wiadomo jakiej marki dotyczy polecenie &F2)Niejednokrotnie, wiele problemów może być rozwiązanych poprzez zastąpienie skomplikowanego ciągu poleceń, prostym poleceniem &F2, jeżeli jednak niezbędne jest utworzenie skoplikowanego ciągu poleceń, najlepiej rozpocząć od prostego: &F, unikając stosowania dostosowanych ustawień domyślnych.&F1Ustawienia fabryczneUstawienia fabryczne dopasowane do komputerów kompatybilnych z IBM PC.&F2Ustawienia fabryczneUstawienia fabryczne dla komputerów typu Mac z obsługą programowej negocjacji parametrów połączenia&F3Ustawienia fabryczneUstawienia fabryczne dla komputerów typu Mac ze sprzętową obsługą negocjacji parametrów połączenia&G0 lub &GSygnał Guard ToneWyłączenie sygnału Guard Tone&K0 lub &KLokalna kontrola przepływuWyłącza lokalną kontrolę przepływu&K1Lokalna kontrola przepływuWłącza lokalną sprzętową kontrolę przepływu typu RTS/CTS&K2Lokalna kontrola przepływuWłącza programową kontrolę przepływu XON/XOFF&K3Lokalna kontrola przepływuWłącza lokalną sprzętową kontrolę przepływu typu RTS/CTS&K4Lokalna kontrola przepływuWłącza programową kontrolę przepływu XON/XOFF&L0 lub <ryb dzwonieniaWybierz tryb połączenia&M0 lub &MTryb kontroli błędówWłącz tryb asynchroniczny bez kontroli błędów (tak samo jak polecenie&Q0))&P0 lub &PParametry wybierania impulsowegoStosunek sygnału do przerwy dla U.S./Canada (39% impuls / 61% przerwa)&P1Parametry wybierania impulsowegoStosunek sygnału do przerwy dla U.K./Hong Kong (33% impuls / 67% przerwa)&Q0 lub &QTryb kontroli błędówTryb asynchroniczny bez korekcji błędów. Brak buforowania danych. ASB wyłączone.&Q5Tryb kontroli błędówKorekcja błędów zgodna ze standardem V.42 (wymaga włączonej kontroli przepływu)&Q6Tryb kontroli błędówTryb asynchroniczny z włączonym ASB (wymaga włączonej kontroli przepływu)&Q8Tryb kontroli błędówAlternatywny protokół korekcji błędów (MNP)&Q9Tryb kontroli błędówWarunkowa kompresja danych: V.42bis = tak, MNP5 = nie.&S0 lub &SStarowanie sygnałem DSRZawsze włączony (wartość domyślna)&S1Starowanie sygnałem DSRZachowanie zgodne ze specyfikacją EIA (Sygnał aktywny po uzyskaniu sygnału wybierania, nieaktywny po zerwaniu połączenia)&T0 lub &TTest modemuDziałanie uzależnione od typu i producenta modemu. Występuje w niektórych modelach.&U0 lub &UModulacja Trellis (TCM - Trellis code modulation)Włącz V.32 TCM&U1Modulacja Trellis (TCM - Trellis code modulation)Wyłącz V.32 TCM&V0 lub &V1Wyświetla aktywne(i często przechowywane w pamięci) skonfigurowane profile ustawień (lub polecenie ATI4&W0 lub &WZapisz profilW pamięci NVRAM (można stosować polecenia &W0, &W1 itp. dla wielu profili) Część ustawień nie może być zapisana, informacje o nich dostępne są po wywołaniu komend &V lub ATI4&Y0 lub &YWybierz konfigurację ładowaną podczas uruchamianiaZaładuj profil numer 0 (wartość domyślna)&Y1Wybierz konfigurację ładowaną podczas uruchamianiaZaładuj profil numer 1&Zn=xWyzeruj modem i załaduj zachowany profil o numerze nNależy podkreślić, iż wszelkie znaki w linii następujące po komendzie &Z są ignorowane
Polecenia z ukośnikiem i znakiem procent
Polecenia z ukośnikiem i znakiem procentKomendaOpisKomentarz\A0 lub \AMaksymalny rozmiar bloku MNP w znakachmaksymalnie 64 znaki\A1Maksymalny rozmiar bloku MNP w znakachmaksymalnie 128 znaków\A2Maksymalny rozmiar bloku MNP w znakachmaksymalnie 192 znaki\A3Maksymalny rozmiar bloku MNP w znakachmaksymalnie 256 znaków%C0 lub %CWłączenie/wyłączenie kompresji danychWyłączona%C1Włączenie/wyłączenie kompresji danychWłączona kompresja MNP5%C2Włączenie/wyłączenie kompresji danychWłączona kompresja V.42bis (BTLZ)%C3Włączenie/wyłączenie kompresji danychWłączona kompresja MNP5 oraz V.42bis (BTLZ)%D0 lub %DKompresja danychRozmiar słownika BLTZ: 512%D1Kompresja danychRozmiar słownika BLTZ: 1024%D2Kompresja danychRozmiar słownika BLTZ: 2048%D3Kompresja danychRozmiar słownika BLTZ: 512%E0 lub %E1Metoda wyjścia do trybu poleceńWyjście do trybu poleceń wyłączone%E1Metoda wyjścia do trybu poleceńMetoda +++AT (domyślna)%E2Metoda wyjścia do trybu poleceńMetoda: BreakAT%E3Metoda wyjścia do trybu poleceńObie metody równocześnie%E4Metoda wyjścia do trybu poleceńWyłącz wyświetlanie tekstu OK po znakach +++%E5Metoda wyjścia do trybu poleceńWłącz wyświetlanie tekstu OK po znakach +++\J0 lub \JAutomatyczne ustawianie szybkości DTEWyłączona\J1Automatyczne ustawianie szybkości DTESzybkość portu szeregowego (DTE) jest dopasowywana do szybkości połączenia.\N0 lub \NRodzaj zastosowanego algorytmu korekcji błędówPołączenie zwykłe (poniżej znajdują się definicje)\N1Rodzaj zastosowanego algorytmu korekcji błędówPołączenie bezpośrednie - bez korekcji\N2Rodzaj zastosowanego algorytmu korekcji błędówPołączenie niezawodne-automatyczne w standardzie MNP\N3Rodzaj zastosowanego algorytmu korekcji błędówPołączenie niezawodne-automatyczne\N4Rodzaj zastosowanego algorytmu korekcji błędówPołączenie niezawodne w standardzie V.42bis z detekcją fazy\N5Rodzaj zastosowanego algorytmu korekcji błędówPołączenie niezawodne-automatyczne w standardzie V.42bis auto z detekcją fazy\N6Rodzaj zastosowanego algorytmu korekcji błędówPołączenie niezawodne w standardzie V.42 z detekcją fazy\N7Rodzaj zastosowanego algorytmu korekcji błędówPołączanie niezawodne-automatyczne w standardzie V.42 auto z detekcją fazy
Połączenie bezpośrednie, jest najprostszym rodzajem połączenia bez korekcji błędów lub kompresji danych. Dla tego rodzaju połączenia, prędkość połączenia komputer-modem i modem-modem musi być identyczna.Zwykłe połącznie wykorzystuje kontrolę przepływu (sprzętową lub programową) buforując dane wysyłane i otrzymywane, co pozwala na przesyłanie danych z prędkością inną niż w relacji komputer<—>modem. Na przykład, komputer wysyła dane z prędkością 57kbps, jednak wykorzystanie kompresji, powoduje iż modem w rzeczywistości przesyła dane z prędkością 28,8kbps. Ten typ połączenia jest wykorzystywany przez większość modemów.Połączenie niezawodne, jest podobne w połączenia zwykłego, jeżeli jednak z jakichś powodów tryb kompresji danych i korekcji błędów nie może być uruchomiony i utrzymany, połączenie zostaje zerwane. (W tym trybie, modem zapewnia iż każda transmisja będzie niezawodna, jeżeli jest to niemożliwe połączenie musi zostać zerwane)Podobnie jak wyżej, połączenie niezawodne-automatyczne jest prawie identyczne, różni się jedynie tym iż modem będzie ponawiał próby wynegocjowania algorytmu kompresji lub korekcji błędów, aby powrócić do trybu niezawodnego połączenia. Ten tryb jest najczęściej wykorzystywany.Rejestry S
Rejestry SRejestrZakresWartość domyślnaFunkcjaS00-255 dzwonków1-2Liczba dzwonków po którym zostanie odebrane połączenie. Nie odpowiadaj jeżeli 0S10-255 dzwonków0Jeżeli wartość zapisana w rejestrze S0 jest większa niż 0 to odliczane są dzwonki przed odebranie połączenia.S20-127 ASCII43 +Kod znaku przejścia do trybu poleceń (ESC)S2>127brak zdefiniowania kodu ESCS30-127 ASCII13 CRKod znaku powrotu karetkiS40-127 ASCII10 LFKod znaku przejścia do następnej liniiS50-32, 127 ASCII8 BSKod znaku usuwaniaS62-255 sekund2Czas oczekiwania na sygnał wybierania (informacje o wybieraniu "ślepym" znajdują się tutaj:XnS71-255 sekund30-60Czas oczekiwania na sygnał zdalnego modemuS80-255 sekund2Długość przerwy określonej przecinkiem w numerze telefonuS91-255 1/10-ta sekundy6Czas wymagany na wykrycie i rozpoznanie nośnejS101-255 1/10-ta sekundy7-14Czas pomiędzy utratą nośnej i rozłączeniemS1150-255 milisekund70-95Długość i odsŧępy między sygnałami w wybieraniu tonowym.S120-255 1/50-te sekundy50Dodatkowa przerwa otaczająca sekwencję +++.S36Określa zachowanie modemu jeżeli połączenie z korekcją błędów nie powiedzie się0 - Rozłączenie1 - Ustanowienie połączenia bezpośredniego3 - Ustanowienie połączenia normalnego4 - Ustanowienie połączenia typu MNP lub rozłączenie jeżeli jest to niemożliwe5 - Ustanowienie połączenia typu MNP lub połączenie bezpośrednie jeżeli jest to niemożliwe7 - Ustanowienie połączenia typu MNP lub połączenie normalne jeżeli jest to niemożliwe7Szybkość ustawiana przy nieudanej negocjacjiS371 = 300 bps5 = 1200 bps6 = 2400 bps7 = 1200/75 bps (tryb v.23)8 = 4800 bps9 = 9600 bps10 = 12000 bps11 = 14400 bps12 = 7200 bps0Prędkość negocjacji parametrów (wartość początkowa przy rozpoczynaniu negocjacji)
Wiele modemów posiada kilkadziesiąt lub kilkaset rejestrów S, jednak tylko kilkanaście pierwszych stanowi nieformalny standard. Można zmieniać ich zawartość za pomocą polecenia: ATSn=N, zaś sprawdzać ich aktualne ustawienie za pomocą polecenia: ATSn? (np: polecenie ATS10S1? spowoduje, iż modem będzie oczekiwał 7 sekund na odpowiedź zdalnego modemu, oraz zwróci informację o ostatniej liczbie dzwonków.)