siehe Bildunterschrift
Hayes 300 Baud Smartmodem

Der Hayes-Befehlssatz (auch bekannt als AT-Befehlssatz ) ist eine spezielle Befehlssprache, die ursprünglich von Dale Heatherington und Dennis Hayes [ 1 ] [ 2 ] für das Hayes Smartmodem im Jahr 1981 entwickelt wurde.

Der Befehlssatz besteht aus einer Reihe kurzer Textzeichenfolgen, die kombiniert werden können, um Befehle für Vorgänge wie Wählen, Auflegen und Ändern der Verbindungsparameter zu erzeugen. Die überwiegende Mehrheit der Einwahlmodems verwendet den Hayes-Befehlssatz in zahlreichen Varianten.

Der Befehlssatz umfasste nur diejenigen Operationen, die von der frühesten Version unterstützt wurden.300-  Bit/s -Modems. Als für die Steuerung zusätzlicher Funktionen in schnelleren Modems neue Befehle benötigt wurden, entwickelten die großen Hersteller verschiedene individuelle Standards. Diese behielten die grundlegende Befehlsstruktur und -syntax bei, ergänzten sie aber um eine Vielzahl neuer Befehle mithilfe von Präfixzeichen – beispielsweise &bei Hayes und USRobotics sowie \bei Microcom . Viele dieser Befehle wurden nach der Einführung des SupraFAXModem 14400 und der darauf folgenden Marktkonsolidierung in den Hayes-Erweiterungen neu standardisiert .

Der Begriff Hayes-kompatibel wurde [ 3 ] [ 1 ] geprägt und ist auch 2018 in der Branche noch von Bedeutung. [ 4 ]

Geschichte

Hintergrund

Vor der Einführung des Bulletin-Board-Systems (BBS) funktionierten Modems üblicherweise über Direktwahlleitungen, die jeweils mit einem bekannten Modem an beiden Enden verbunden waren. Die Modems arbeiteten entweder im Modus „Anrufen“ oder „Annehmen“ und schalteten manuell zwischen zwei Frequenzsätzen für die Datenübertragung um. Für das anrufende Modem waren dies 1270 Hz (Markierungston, Binär 1) und 1070 Hz (Leertaste, Binär 0). Für das annehmende Modem waren es 2225 Hz (Markierungston) und 2025 Hz (Leertaste). Normalerweise stellte der Anrufer sein Modem auf „Anrufen“ und wählte dann die Nummer manuell. Sobald das entfernte Modem, das bereits im Modus „Annehmen“ war, den Anruf annahm, wurde der Telefonhörer ausgeschaltet und die Verbindung lief weiter, bis der Anrufer manuell auflegte.

Wenn Automatisierung erforderlich war, betraf sie üblicherweise nur die Anrufannahme; beispielsweise musste eine Bank Anrufe von mehreren Filialen für die Tagesabschlussverarbeitung entgegennehmen. Um diese Funktion zu erfüllen, verfügten einige Modems über die Möglichkeit, Anrufe automatisch anzunehmen, sobald sie angenommen wurden, und die Verbindung zu trennen, sobald der andere Nutzer manuell auflegte. Der Bedarf an automatisierten ausgehenden Wählvorgängen war deutlich seltener und wurde über ein separates Peripheriegerät, einen sogenannten Dialer, realisiert. Dieser wurde üblicherweise an einen separaten Ein-/Ausgang des Computers (typischerweise einen RS-232- Anschluss) angeschlossen und unabhängig vom Modem programmiert.

Diese Betriebsmethode funktionierte in den 1960er und frühen 1970er Jahren zufriedenstellend, als Modems üblicherweise zur Verbindung von einfachen Endgeräten wie Computerterminals (ausgehende Anrufe) mit Großrechnern (Anrufannahme) verwendet wurden. Die Mikrocomputer-Revolution der 1970er Jahre führte jedoch zur Einführung kostengünstiger Modems, und die Idee einer semi-dedizierten Punkt-zu-Punkt-Verbindung war nicht mehr zeitgemäß. Es gab potenziell Tausende von Nutzern, die jeden anderen Tausenden von Nutzern anrufen wollten, und die einzige Lösung bestand damals darin, dass die Nutzer manuell wählen mussten.

Die Computerindustrie benötigte eine Möglichkeit, dem Modem per Software die zu wählende Nummer mitzuteilen. Frühere separate Wählgeräte boten diese Funktion, allerdings nur auf Kosten eines separaten Anschlusses , der bei Mikrocomputern oft nicht verfügbar war. Eine andere Lösung wäre die Verwendung separater „Befehlspins“ zum Senden und Empfangen von Befehlen gewesen; eine weitere Möglichkeit wäre ein Signalpin gewesen, der dem Modem signalisiert hätte, eingehende Daten als Befehl zu interpretieren. Beide Ansätze wurden vom RS-232- Standard hardwareseitig unterstützt. Viele Implementierungen des RS-232-Anschlusses in Mikrocomputern waren jedoch sehr einfach gehalten, und einige verzichteten aus Kostengründen auf viele dieser Pins.

Hayes' Lösung

Hayes Communications führte 1981 mit seinem Smartmodem eine Lösung ein , indem die vorhandenen Datenpins ohne Modifikation genutzt wurden. Stattdessen konnte das Modem selbst zwischen zwei Modi umgeschaltet werden:

  1. Datenmodus , in dem das Modem die Daten an das entfernte Modem sendet. (Ein Modem im Datenmodus behandelt alles, was es vom Computer empfängt, als Daten und sendet diese über die Telefonleitung).
  2. Befehlsmodus, in dem Daten als Befehle an das lokale Modem interpretiert werden (Befehle, die das lokale Modem ausführen soll).

Um vom Datenmodus in den Befehlsmodus zu wechseln, sendeten die Sitzungen eine Escape-Sequenz aus drei Pluszeichen ( +++) gefolgt von einer Pause von etwa einer Sekunde. Diese Pause am Ende der Escape-Sequenz war notwendig, um das Problem der In-Band-Signalisierung zu reduzieren : Wurden innerhalb einer Sekunde nach den drei Pluszeichen andere Daten empfangen, handelte es sich nicht um die Escape-Sequenz, sondern um Daten. Zum Zurückschalten wurde der Online- Befehl gesendet ATO. Im praktischen Einsatz wechselten viele Befehle nach ihrer Ausführung automatisch in den Online-Modus, und es kam selten vor, dass ein Benutzer den Online-Befehl explizit verwendete.

Um die Lizenzierung von Hayes' Patent zu umgehen, implementierten einige Hersteller die Escape-Sequenz ohne Zeitschutzintervall ( zeitunabhängige Escape-Sequenz , TIES). Dies hatte erhebliche Auswirkungen auf die Sicherheit, da das Modem die Verbindung unterbrach, sobald der Computer versuchte, die Bytefolge +++ATH0im Datenmodus zu übertragen. Bei jedem Computer, der über ein solches Modem mit dem Internet verbunden war, konnte dies leicht ausgenutzt werden, indem eine Ping-of-Death -Anfrage mit der Sequenz +++ATH0im Nutzdatensatz gesendet wurde. Das Betriebssystem des Computers versuchte automatisch, dem Absender mit demselben Nutzdatensatz zu antworten und trennte sich sofort vom Internet, da das Modem die ICMP -Datennutzdaten als Hayes-Befehl interpretierte. [ 5 ] Derselbe Fehler trat auch auf, wenn der Benutzer des Computers beispielsweise versuchte, eine E-Mail mit der genannten Zeichenkette zu versenden.

Befehle

Der Hayes-Befehlssatz umfasste Befehle für verschiedene Telefonleitungsfunktionen wie Wählen und Auflegen. Er enthielt außerdem verschiedene Steuerelemente zur Modemkonfiguration, darunter Registerbefehle, mit denen der Benutzer die Speicheradressen des ursprünglichen Hayes-Modems direkt festlegen konnte. Der Befehlssatz wurde, einschließlich der Registerbelegung, von fast allen frühen 300-Baud-Modemherstellern – und davon gab es eine ganze Reihe – weitgehend unverändert übernommen.

Die Erweiterung auf 1200 und 2400 Baud erforderte die Einführung neuer Befehle, von denen einige mit einem kaufmännischen Und-Zeichen (& &) gekennzeichnet wurden, um die neuen Funktionen zu kennzeichnen. Hayes selbst sah sich gezwungen, kurz nach dem 1200-Baud-Modell ein 2400-Baud-Modell auf den Markt zu bringen, wobei die Befehlssätze aus Zeitgründen identisch waren. [ 6 ] Dadurch konnten Benutzer bestehender 1200-Baud-Modems die neuen Hayes-2400-Modelle quasi zufällig nutzen, ohne ihre Software ändern zu müssen. Dies bestärkte die Verwendung der Hayes-Versionen dieser Befehle. Jahre später standardisierten die Telecommunications Industry Association (TIA) und die Electronic Industries Alliance (EIA) den 2400-Baud-Befehlssatz formell als „ Data Transmission Systems and Equipment – ​​Serial Asynchronous Automatic Dialing and Control“ , TIA/EIA-602 .

Hayes Communications brachte jedoch nur zögerlich Modems mit höherer Geschwindigkeit oder besserer Komprimierung auf den Markt , und drei andere Unternehmen – Microcom , USRobotics und Telebit – übernahmen die Führung . Jedes dieser drei Unternehmen nutzte eigene zusätzliche Befehlssätze. Anfang der 1990er-Jahre waren vier Hauptbefehlssätze im Einsatz, und es gab zahlreiche Versionen, die auf einem dieser Sätze basierten. Mit der weitverbreiteten Einführung von 14.4 undAnfang der 1990er-Jahre kamen Modems mit 28,8 kbit/s auf den Markt. Langsam etablierte sich ein Befehlssatz, der stark auf dem erweiterten Hayes-Befehlssatz basierte&, und wurde schließlich zum Standard . Nur ein weiterer Befehlssatz ist bis heute weit verbreitet: der von USRobotics aus deren beliebter Modemreihe.

Beschreibung

Der folgende Text listet einen Teil des Hayes-Befehlssatzes auf, auch AT-Befehle genannt : „AT“ steht für „Attention“ (Aufmerksamkeit). Jeder Befehlsfolge steht das Präfix „AT“, und nach dem „AT“ können mehrere einzelne Befehle aneinandergereiht werden.

Der Hayes-Befehlssatz lässt sich in vier Gruppen unterteilen:

  1. Grundbefehlssatz – Ein Großbuchstabe gefolgt von einer Ziffer. Zum Beispiel: M1.
  2. Erweiterter Befehlssatz – Ein „&“ (kaufmännisches Und-Zeichen) und ein Großbuchstabe, gefolgt von einer Ziffer. Dies erweitert den Basisbefehlssatz. Beispiel: &M1. Beachten Sie, dass M1 nicht mit &M1 identisch ist.
  3. Proprietärer Befehlssatz – Beginnt üblicherweise entweder mit einem Backslash („\“) oder mit einem Prozentzeichen („%“); diese Befehle variieren stark zwischen den Modemherstellern.
  4. Registerbefehle – Sr=n, wobei r die Nummer des zu ändernden Registers und n der neue Wert ist. Ein Register repräsentiert einen bestimmten Speicherbereich. Modems verfügen über einen kleinen internen Speicher. Der vierte Befehlssatz dient zum Eintragen von Werten in ein bestimmtes Register (Speicherbereich). Beispielsweise weist S7=60 das Modem an, Register Nr. 7 auf den Wert 60 zu setzen. Register steuern üblicherweise Aspekte des Modembetriebs (z. B. Sendestärke, Modulationsparameter) und sind in der Regel modellspezifisch.

Obwohl die Befehlssyntax die meisten Befehle durch eine Buchstaben-Zahlen-Kombination (L0, L1 usw.) definiert, ist die Verwendung einer Null optional. In diesem Beispiel entspricht „L0“ einem einfachen „L“. Beachten Sie dies beim Lesen der folgenden Tabelle.

Im Datenmodus kann eine Escape-Sequenz das Modem in den Befehlsmodus zurückführen. Die normale Escape-Sequenz besteht aus drei Pluszeichen (+++). Um sie von möglichen echten Daten zu unterscheiden, wird ein Schutztimer verwendet: Sie muss von einer Pause eingeleitet werden, darf keine Pausen zwischen den Pluszeichen enthalten und muss von einer Pause gefolgt werden. Standardmäßig beträgt die „Pause“ eine Sekunde, alles darunter „keine Pause“.

Syntaktische Definitionen

Es gelten folgende syntaktische Definitionen: [ 7 ]

  • <CR>Das Wagenrücklaufzeichen (Carriage Return) ist das Befehlszeilen- und Ergebniscode-Abschlusszeichen, dessen Wert im Dezimal-ASCII-Format zwischen 0 und 255 im Register S3 festgelegt ist. Der Standardwert ist 13.
  • <LF>Das Zeilenvorschubzeichen (Linefeed) wird als Zeilenvorschubzeichen erkannt. Sein Wert im Dezimal-ASCII-Format zwischen 0 und 255 wird im Register S4 festgelegt. Der Standardwert ist 10. Bei Verwendung ausführlicher Ergebniscodes (Option V1) wird das Zeilenvorschubzeichen nach dem Wagenrücklaufzeichen ausgegeben; bei Verwendung numerischer Ergebniscodes (Option V0) erscheint es hingegen nicht.
  • <...>Namen in spitzen Klammern sind syntaktische Elemente. Sie erscheinen nicht in der Befehlszeile.
  • [...]Optionale Unterparameter eines Befehls oder optionale Teile der AT-Informationsantwort werden in eckige Klammern gesetzt. Die Klammern selbst erscheinen nicht in der Befehlszeile. Wird der Unterparameter in AT-Befehlen mit einem Lesebefehl nicht angegeben, entspricht der neue Wert seinem vorherigen Wert. Bei AT-Befehlen, die keine Unterparameter speichern und daher keinen Lesebefehl besitzen (sogenannte Aktionsbefehle), wird die Aktion anhand der empfohlenen Standardeinstellung des Unterparameters ausgeführt.

Modeminitialisierung

Eine Zeichenkette kann mehrere Hayes-Befehle enthalten, die so angeordnet sind, dass das Modem optimal für das Wählen oder Annehmen von Anrufen vorbereitet wird . Die meisten Modemprogramme unterstützten eine vom Benutzer bereitgestellte Initialisierungszeichenkette , typischerweise einen langen, verketteten AT-Befehl, der beim Start an das Modem gesendet wurde. [ 8 ] Die V.250-Spezifikation schreibt vor, dass alle DCEs einen Body (nach „AT“) von mindestens 40 Zeichen verketteter Befehle akzeptieren müssen. [ 9 ]AT&F&D2&C1S0=0X4

Beispielsitzung

Die folgende Abbildung zeigt zwei Computer, Computer A und Computer B, jeweils mit angeschlossenen Modems. Der Benutzer steuert die Modems mithilfe einer Terminalemulationssoftware . Mit einer Terminalemulationssoftware kann der Benutzer Hayes-Befehle direkt an das Modem senden und die Antworten empfangen. In diesem Beispiel wählt das Modem von Computer A die Telefonnummer von Modem B unter (212) 555-0100 (Ferngespräch). Nach jedem Befehl und jeder Antwort wird ein Zeilenumbruch gesendet, um den Befehl abzuschließen.

Modem AModem BKommentar
ATDT12125550100Benutzer an Modem A gibt folgenden Wählbefehl ein: AT – Modem auffordern; D – Wählen; T – Wählton; 12125550100 – Diese Nummer anrufen
RINGModem A beginnt zu wählen. Die Telefonleitung von Modem B klingelt, und das Modem meldet dies.
ATADer Computer am Modem B gibt den Antwortbefehl aus.
VERBINDENVERBINDENDie Modems verbinden sich, und beide melden „Verbunden“. (In der Praxis senden die meisten Modems nach dem Wort „Verbunden“ weitere Informationen, die die Verbindungsgeschwindigkeit angeben.) Außerdem senden beide Modems zu diesem Zeitpunkt das DCD-Signal (Data Carrier Detect) am seriellen Port.
abcdefabcdefSobald die Modems verbunden sind, werden alle auf beiden Seiten eingegebenen Zeichen auf der jeweils anderen Seite angezeigt. Die Person an Computer A beginnt zu tippen. Die Zeichen werden durch das Modem übertragen und erscheinen auf dem Bildschirm von Computer B. (Benutzer A sieht seine eigenen eingegebenen Zeichen möglicherweise nicht – dies hängt von den lokalen Echo- Einstellungen der Terminalsoftware ab.)
+++Die Person an Computer B gibt den Modem-Escape-Befehl aus. (Alternativ, und häufiger, kann Computer B das DTR-Signal (Data Terminal Ready) ablegen, um eine Verbindungsunterbrechung zu erreichen, ohne +++ oder ATH verwenden zu müssen.)
OKDas Modem bestätigt dies.
ATHDie Person an Computer B gibt den Befehl zum Auflegen.
KEIN TRÄGEROKBeide Modems melden den Verbindungsabbruch. Modem B antwortet erwartungsgemäß mit „OK“; Modem A meldet „NO CARRIER“, um anzuzeigen, dass die Gegenseite die Verbindung unterbrochen hat. Die Modems beider Seiten verlieren außerdem ihre DCD-Signale.

Kompatibilität

Während der ursprüngliche Hayes-Befehlssatz einen enormen Fortschritt in der modembasierten Kommunikation darstellte, traten mit der Zeit viele Probleme auf, von denen fast keines auf Hayes selbst zurückzuführen war :

  • Mangels eines schriftlichen Standards kopierten andere Modemhersteller einfach die extern sichtbaren Befehle und (grob) die grundlegenden Aktionen. Dies führte zu einer Vielzahl subtiler Unterschiede in der Art und Weise, wie Modems zwischen verschiedenen Zuständen wechselten und wie sie Fehlerzustände, Verbindungsabbrüche und Timeouts behandelten.
  • Jeder Hersteller fügte tendenziell neue Befehle hinzu, um aufkommenden Anforderungen gerecht zu werden, die oft mit anderen Modems inkompatibel waren. Beispielsweise erforderte die Einrichtung des Hardware- oder Software-Handshakes häufig viele verschiedene Befehle für unterschiedliche Modems. Dies beeinträchtigte die praktische Universalität des grundlegenden Hayes-Befehlssatzes .
  • Viele Hayes-kompatible Modems wiesen gravierende Eigenheiten auf, die sie praktisch inkompatibel machten. Beispielsweise benötigten viele Modems nach dem Empfang des Reset-Befehls „AT Z“ eine Wartezeit von mehreren Sekunden. Manche Modems erforderten Leerzeichen zwischen den Befehlen, andere nicht. Einige änderten die Baudrate eigenmächtig, was dazu führte, dass der Computer die eingehenden Daten nicht mehr verarbeiten konnte.

Als Folge all dessen mussten viele Kommunikationsprogramme schließlich die Vorstellung aufgeben, mit allen "Hayes-kompatiblen" Modems kommunizieren zu können, und stattdessen mussten die Programme versuchen, den Modemtyp anhand seiner Antworten zu bestimmen oder dem Benutzer eine Option bieten, mit der er die erforderlichen speziellen Befehle eingeben konnte, um sein jeweiliges Modem zum ordnungsgemäßen Verhalten zu zwingen.

Autobaud

Der Hayes-Befehlssatz ermöglichte die automatische Baudratenerkennung, da die Bitmuster von „A“ und „T“ sehr regelmäßig sind: „A“ entspricht „100 0001“ und hat daher am Anfang und Ende ein 1-Bit, während „T“ „101 0100“ entspricht und ein Muster aufweist, bei dem (nahezu) jedes zweite Bit gesetzt ist. [ 10 ] Da die RS-232-Schnittstelle das niedrigstwertige Bit zuerst überträgt, ergibt sich das entsprechende Leitungsmuster mit 8-N-1 (acht Datenbits, kein Paritätsbit, ein Stoppbit) zu 0 10000010 10 00101010 1 (Start- und Stoppbits kursiv ), welches als Synchronwort verwendet wird .

Der grundlegende Hayes-Befehlssatz

Die folgenden Befehle werden von praktisch allen Modems verstanden, die einen AT-Befehlssatz unterstützen, egal ob alt oder neu.

Grundlegender Hayes-Befehlssatz
Befehl Beschreibung Kommentare
A0 oder AAnruf entgegennehmen  
A/Letzten Befehl wiederholen Kein AT voranstellen , keinen Zeilenumbruch einfügen. Die Eingabetaste führt in der Regel zum Abbruch.
DWählen Wählen Sie die folgende Nummer und führen Sie dann einen Handschlag durch.

P – Impulswahl T – Tonwahl W – Warten auf den zweiten Wählton R – Nach dem Wählen in den Antwortmodus zurückkehren @ – Bis zu 30 Sekunden auf einen oder mehrere Rückrufe warten , – Pause für die in Register S8 angegebene Zeit (normalerweise 2 Sekunden) ; – Nach dem Wählen im Befehlsmodus bleiben. ! – Auflegen (für eine halbe Sekunde, wie beim Weiterleiten eines Anrufs) L – Letzte Nummer wählen

E0 oder EKein Echo Befehle werden nicht an den Computer zurückgesendet.
E1Echo Gibt die Befehle an den Computer zurück (damit man sehen kann, was man tippt, falls die Computersoftware keine Echo-Funktion unterstützt).
H0 oder HHook-Status Legt auf. Beendet das laufende Gespräch.
H1Hook-Status Der Hörer wird abgenommen. Der Hörer nimmt den Anruf entgegen (normalerweise hört man einen Wählton).
I0 bis I9Anfrage, Information oder Verhör Dieser Befehl liefert Informationen zum Modell, wie z. B. Firmware oder Markenname. Jede Zahl (0 bis 9, manchmal auch 10 und höher) gibt eine Zeile mit modemspezifischen Informationen zurück oder das Wort „ERROR“, falls die Zeile nicht definiert ist. Windows verwendet dies aktuell zur Plug-and-Play- Erkennung bestimmter Modemtypen.
L0 oder Ln (n=1 bis 3) Lautsprecherlautstärke. Wird nur von einigen Modems mit Lautsprechern unterstützt. Modems ohne Lautsprecher, mit physischen Lautstärkereglern oder solche, deren Tonausgabe über die Soundkarte erfolgt, unterstützen diesen Befehl nicht. 0 schaltet den Lautsprecher aus, 1 bis 3 dienen zum Erhöhen der Lautstärke.
M0 oder MLautsprecher stummgeschaltet, während des Wählens völlig stumm. M3 ist ebenfalls üblich, variiert jedoch je nach Marke.
M1Der Lautsprecher bleibt eingeschaltet, bis ein entfernter Netzbetreiber erkannt wird (der Benutzer hört den Wählvorgang und den Modem-Handshake, sobald eine vollständige Verbindung hergestellt ist, wird der Lautsprecher stummgeschaltet).
M2Lautsprecher immer eingeschaltet (Datentöne sind danach zu hören CONNECT)
OZurück zur Website Stellt den normalen Verbindungszustand des Modems wieder her, nachdem die Verbindung durch den Escape-Code "+++" unterbrochen wurde.
Q0 oder QLeiser Modus Aus – Zeigt Ergebniscodes an, der Benutzer sieht die Befehlsantworten (z. B. OK)
Q1Leiser Modus Ein – Ergebniscodes werden unterdrückt, der Benutzer sieht keine Antworten.
SnAktuelles Register auswählen

Beachten Sie, dass Sn , ? und = reigentlich drei separate Befehle sind und in separaten AT- Befehlen angegeben werden können.

Wählen Sie Register n als aktuelles Register aus
S n?Wählen Sie Register n als aktuelles Register aus und fragen Sie dessen Wert ab. Die alleinige Verwendung von ? fragt das zuletzt ausgewählte Register ab.
S n=rWähle Register n als aktuelles Register aus und speichere r darin. Die Verwendung von =r allein speichert den Wert in dem zuletzt ausgewählten Register.
V0 oder VAusführlich Numerische Ergebniscodes
V1Englische Ergebniscodes (z. B. CONNECT, BUSY, NO CARRIERetc.)
X0 oder XSmartmodem Hayes Smartmodem 300 kompatible Ergebniscodes
X1Fügt üblicherweise die Verbindungsgeschwindigkeit zu den grundlegenden Ergebniscodes hinzu (z. B. CONNECT 1200).
X2Fügt üblicherweise eine Wähltonerkennung hinzu (verhindert Blindwahl und manchmal auch ATO ).
X3Fügt üblicherweise eine Besetztzeichenerkennung hinzu.
X4Fügt üblicherweise sowohl Besetztzeichen- als auch Wähltonerkennung hinzu.
Z0 oder ZZurücksetzen Setzt das Modem auf die gespeicherte Konfiguration zurück und führt in der Regel auch einen physischen Neustart durch (währenddessen reagiert es nicht). Z0 , Z1 usw. dienen zum Speichern mehrerer Profile. &F stellt bei Modems ohne NVRAM (nichtflüchtiger Speicher) die Werkseinstellungen wieder her, setzt das Modem jedoch nicht zurück.

Hinweis: Eine Befehlszeichenfolge wird mit einem CR-Zeichen (\r) abgeschlossen.

Obwohl die Tilde ~ nicht zum Befehlssatz gehört, wird sie häufig in Modem-Befehlssequenzen verwendet. Die Tilde ~ bewirkt, dass viele Anwendungen die Übertragung des Befehlsstroms an das Gerät unterbrechen (üblicherweise für eine halbe Sekunde), z. B. nach einem Reset . Die Tilde ~ wird nicht an das Modem gesendet. [ 11 ]

Modem S Registerdefinitionen

RegistrierenBeschreibungReichweiteStandardwert
S0 Anzahl der Klingeltöne vor der automatischen Rufannahme 0–255 (0 = nie) 0
S1 Ringzähler 0–255 Ringe 0
S2 Fluchtcharakter 0–255, ASCII-Dezimalzahl 43 ("+")
S3 Kutschenrückkehrer 0–127, ASCII-Dezimalzahl 13 (Rückfahrt mit Gepäck)
S4 Zeilenvorschubzeichen 0–127, ASCII-Dezimalzahl 10 (Zeilenvorschub)
S5 Rücktaste 0–32, ASCII-Dezimalzahl 8 (Rücktaste)
S6 Wartezeit vor dem Blindwählen 2–255 Sekunden 2
S7 Nach dem Wählen auf die Netzbetreiberverbindung warten 1–255 Sekunden 50
S8 Pausenzeit für Komma (Wählverzögerung) 0–255 Sekunden 2
S9 Antwortzeit der Trägererkennung 1–255 Zehntelsekunden 6 (0,6 Sekunden)
S10 Verzögerung zwischen Verbindungsverlust und Auflegen 1–255 Zehntel einer Sekunde 14 (1,4 Sekunden)
S11 DTMF-Tondauer 50–255 Millisekunden 95 Millisekunden
S12 Escape-Code-Wachzeit 0–255 Fünfzigstel einer Sekunde 50 (1 Sekunde)
S18 Testzeit 0–255 Sekunden 0 Sekunden
S25 Verzögerung bis DTR 0–255 (Sekunden im Synchronmodus, Hundertstelsekunden in allen anderen Modi) 5
S26 RTS zu CTS Verzögerungsintervall 0–255 Hundertstel einer Sekunde 1 Hundertstel Sekunde
S30 Inaktivitäts-Trennzeit 0–255 Zehnersekunden 0 (deaktivieren)
S37 Gewünschte Telekommunikationsleitungsgeschwindigkeit 0–10

Befehlsoptionen:

  • 0 Versuche, eine Verbindung im automatischen Modus herzustellen
  • 1. Verbindungsversuch mit 300 Bit/s
  • 2. Verbindungsversuch mit 300 Bit/s
  • 3. Verbindungsversuch mit 300 Bit/s
  • 5. Verbindungsversuch mit 1200 Bit/s
  • 6. Verbindungsversuch mit 2400 Bit/s
  • 7. Verbindungsversuch im V.23 75/1200-Modus.
  • 8. Verbindungsversuch mit 9600 Bit/s
  • 9. Verbindungsversuch mit 12000 Bit/s
  • 10. Verbindungsversuch mit 14400 Bit/s
0
S38 Verzögerung vor erzwungener Trennung 0–255 Sekunden 20 Sekunden

V.250

Die ITU-T etablierte 1995 mit ihren V-Series Recommendations ( V.25ter) einen Standard für den Befehlssatz, um diesen erneut zu standardisieren. 1998 wurde er in V.250 umbenannt , wobei ein Anhang, der nicht den Hayes-Befehlssatz betraf, die Bezeichnung V.251 erhielt . Ein V.250-konformes Modem implementiert die Befehle A, D, E, H, I, L, M, N, O, P, Q, T, V, X, Z, &C, &D und &F gemäß den Vorgaben des Standards. Es muss außerdem S-Register implementieren und die Register S0, S3, S4, S5, S6, S7, S8 und S10 für die im Standard genannten Zwecke verwenden. Darüber hinaus darf es Befehle, die mit einem Pluszeichen („+“) und einem Buchstaben von A bis Z beginnen, nur gemäß den ITU-Empfehlungen implementieren. Es steht den Modemherstellern frei, andere Befehle und S-Register nach eigenem Ermessen zu implementieren und den Standardbefehlen Optionen hinzuzufügen.

V.250 – Definierte führende Zeichensequenzen
Hauptfiguren​ Beinhaltet Befehle im Zusammenhang mit
+AProbleme bei der Anrufsteuerung (Netzwerkadressierung), häufig, PSTN, ISDN, ITU-T Rec. X.25, vermitteltes digitales
+CDigitale Mobilfunk-Erweiterungen
+DDatenkomprimierung, ITU-T Rec. V.42 bis
+EFehlerkontrolle, ITU-T Rec. V.42
+FFaksimile, ITU-T Rec. T.30, etc.
+GAllgemeine Themen wie Identität und Fähigkeiten
+IProbleme mit der DTE-DCE-Schnittstelle, ITU-T Rec. V.24 usw.
+MModulation, ITU-T Rec. V.32 bis usw.
+PPCM-DCE-Befehle, ITU-T Rec. V.92
+SUmgeschaltete oder gleichzeitige Datentypen
+TTestprobleme
+VSpracherweiterungen
+WDrahtlose Erweiterungen

GSM

Der ETSI-Standard GSM 07.07 (3GPP TS 27.007) spezifiziert AT-Befehle zur Steuerung eines GSM- Telefons oder -Modems. Der ETSI-Standard GSM 07.05 (3GPP TS 27.005) spezifiziert AT-Befehle zur Verwaltung der SMS-Funktion ( Short Message Service ) von GSM.

Beispiele für GSM-Befehle: [ 12 ] [ 13 ]

BefehlBeschreibung
AT+CPIN=1234PIN-Code eingeben
AT+CPWD="SC","alt,"neu"PIN-Code von „alt“ auf „neu“ ändern
AT+CLCK="SC",0,"1234"PIN-Code entfernen
AT&VStatus
ATIStatus (Hersteller, Modell, Revision, IMEI , Funktionen)
AT+COPS=?Verfügbare Netzwerke auflisten: 0-Unbekannt/2-Aktuell/3-Verboten, Langname, Kurzname, Numerische ID, "AcT"
AT+CSQSignalstärke abrufen. Antwort: +CSQ: < rssi (mehr=besser)>, < ber , weniger=besser>
ATD*99#Einwahlzugangspunkt
AT+CGDCONT=1,"IP","access.pointname"Definiert den PDP-Kontext [ 12 ]

GSM/3G-Modems unterstützen typischerweise die ETSI GSM 07.07/3GPP TS 27.007 AT-Befehlssatzerweiterungen, wobei die Anzahl der implementierten Befehle variiert.

Die meisten USB-Modemhersteller, wie beispielsweise Huawei, Sierra Wireless und Option, haben proprietäre Erweiterungen zur Auswahl des Funkmodus (GSM/3G-Präferenz) oder Ähnliches definiert. Einige neuere Hochgeschwindigkeitsmodems bieten aus Performancegründen eine virtuelle Ethernet-Schnittstelle anstelle des Point-to-Point-Protokolls (PPP) für die Datenverbindung (die PPP-Verbindung wird nur zwischen Computer und Modem, nicht über das Netzwerk, genutzt). Die Einrichtung erfordert herstellerspezifische AT-Befehlserweiterungen. Manchmal sind die Spezifikationen für diese Erweiterungen öffentlich zugänglich, manchmal verlangt der Hersteller jedoch eine Geheimhaltungsvereinbarung (NDA) für den Zugriff darauf. [ 14 ]

Sprachbefehlssatz

Modems mit Sprach- oder Anrufbeantworterfunktionen unterstützen eine Obermenge dieser Befehle, um die digitale Audiowiedergabe und -aufnahme zu ermöglichen.

Siehe auch

Anmerkungen und Verweise

  1. ^ a b Victoria Shannon (7. Januar 1999). „Aufstieg und Fall des modernen Königs“ . The New York Times . Archiviert vom Original am 17. Dezember 2019. Abgerufen am 25. Dezember 2019. mit einem Partner
  2. ^ Georgi Dalakov (4. Januar 2021). „Das Modem von Dennis Hayes und Dale Heatherington“ . Archiviert vom Original am 16. September 2020. Abgerufen am 8. Januar 2015 .
  3. ^ „Hayes-kompatibel“. Computerworld . 30. März 1987. S. 61.
  4. ^ „Anleitung zum Einrichten eines Hayes-kompatiblen Modems“ . IBM . 17. Juni 2018. Archiviert vom Original am 31. August 2024. Abgerufen am 25. Dezember 2019 .
  5. ^ Max, Schau (27. September 1998). „1+2=3, +++ATH0=Old school DoS“ . Bugtraq -Mailingliste . Archiviert vom Original am 16. November 2018. Abgerufen am 8. Dezember 2012 .
  6. ^ Frank Durda IV, „The AT Command Set Reference – History“, archiviert am 15.04.2008 in der Wayback Machine , 1993
  7. ^ AT-Befehlsreferenzhandbuch
  8. ^ „Initialisierungszeichenketten: Warum, Was & Wo“ . Archiviert vom Original am 10. März 2009. Abgerufen am 9. April 2008 .
  9. ^ „5.2.1 Allgemeines Format der Befehlszeile“ (PDF) , V.250: Serielle asynchrone automatische Wähl- und Steuerungstechnik (05/99, 07/03) , ITU-T / Büro für Telekommunikationsnormung, archiviert vom Original am 16. August 2012 , abgerufen am 23. November 2009
  10. ^ „Serielle Schnittstellen“ . PICList . Archiviert vom Original am 10. Juni 2016. Abgerufen am 15. Mai 2016 .
  11. ^ „Weitere Modembefehle“ . Chebucto Community Net. Archiviert vom Original am 6. September 2016. Abgerufen am 12. September 2016 .
  12. ^ a b „Entwicklerrichtlinien Juni 2010 AT-Befehle für Sony Ericsson-Telefone“ . Archiviert vom Original am 29. September 2011.090505 developer.sonyericsson.com
  13. ^ „UC864-E Software-Benutzerhandbuch“ (PDF) . Archiviert vom Original (PDF) am 14. Juli 2011.090505 m2m-platforms.com
  14. ^ „Dan Williams’ Blog – Dann greife ich nach meinem Revolver…“ . 20. März 2009. Archiviert vom Original am 30. August 2010. Abgerufen am 6. November 2010 .