RS-232 specificaties
Flow control
Welke nulmodem?
RS-232 kabels
Spionagekabels
IPtables firewall
Browser headers
Software download

Hayes modem AT commando set

Direct naar commando's: ATA, ATH, ATL, ATM, ATZ

Hayes AT commando set, de geschiedenis

Modem worden gebruikt sinds het begin van de computer geschiedenis. Het woord modem is een combinatie van de woorden modulator en demodulator en dit is typisch wat definiŽert wat modems doen. Digitale gegevens die komen van een DTE, data terminal equipment wordt op zo'n manier gemoduleerd dat het kan worden verzonden over transmissielijnen. Aan de andere zijde van de lijn demoduleert een modem de gegevens en zendt ze daar verder.

De oudste modems waren alleen in staat gegevens te verzenden en te ontvangen. Om een verbinding te maken was een extern apparaat zoals een kiezer benodigd. Soms werden verbindingen gelegd door handmatig te bellen naar het gewenste telefoonnummer en het modem pas in te schakelen nadat de verbinding gelegd was. Dit was geen probleem in vroeger dagen toen computers nog bediend werden door goed opgeleide techneuten en de kosten van een externe kiezer in het niet vielen in vergelijking tot de kosten van terminals, modems en mainframes. In de zeventiger jaren begonnen kleine computers langzaam op te komen in de privť sfeer en kosten en gebrek aan technische kennis werden langzaam aan belangrijker.

We spreken nu over een periode waarbij internet, telebankieren en andere gangbare toepassingen zoals we ze nu kennen nog niet bestonden. De belangrijkste reden voor mensen om een modem te gebruiken was om verbindingen te maken met BBSen, Bullitin Board Systems. Centrale computersystemen die gerund werden door bedrijven of vrijwilligers waar mensen met elkaar konden communiceren via berichten en software en utilities konden up- en downloaden. Low-cost en eenvoudig te gebruiken modems waren noodzakelijk om dit mogelijk te maken. In het ideale geval zouden deze modems zelf in staat moeten zijn om de gewenste telefoonnummers te kiezen, zonder tussenkomst van de gebruiker of een externe kiezer.

Zoals te zien is in de RS232 poort layout, beschrijft de RS232 standaard een secundair communicatiekanaal op de 25 pins DB25 connector die oorspronkelijk was bedoeld om controle commando's naar het aangesloten modem te sturen. Hierbij zouden ook commando's om een specifiek telefoonnummer te kiezen kunnen horen. Helaas was op de low-cost RS232 implementaties die aanwezig waren op de home computers van de jaren zeventig dit secondaire communicatiekanaal niet geÔmplementeerd. Daarom moest een methode worden gedefiniŽerd waarmee het bestaande datakanaal niet alleen data kon overbrengen van de ene zijde naar de andere, maar ook zou kunnen worden gebruikt om controle commando's te verzenden die alleen voor het lokale modem bestemd zouden moeten zijn. Dennis Hayes kwam in 1977 met de oplossing. Zijn smart modem gebruikte het enkele RS232 communicatiekanaal dat met de computer verbonden was om zowel controle commando's als data over te dragen. Omdat elk commando startte met AT van attention werd de commandotaal van Hayes al snel bekend als de Hayes AT commando set. Vanwege de eenvoud en de low-cost implementatie werd de Hayes AT commando set al snel overgenomen in modems van andere fabrikanten. Naarmate functionaliteit en complexiteit van modems vergrote in de loop der tijd, werd ook de Hayes AT commandotaal steeds uitgebreider en al snel implementeerde elke modemfabrikant zijn eigen dialect. Tegenwoordig bevat de Hayes AT commando set commando's voor data, fax, spraak en SMS communicatie.

Data mode en commando mode

Het lukte Dennis Hayes om slechts ťťn communicatiekanaal voor zijn smart modem te gebruiken door een data mode en commando mode te definiŽren. Het schakelen van commando mode naar data mode was eenvoudig , een controle commando kon hiervoor worden gebruikt. Terugschakelen van data mode naar commandomode met in-band signalling was echter wat ingewikkelder. Eťn mogelijkheid had het gebruik van het default ASCII DLE data link escape karakter kunnen zijn als trigger om terug te schakelen van data mode naar commando mode. Maar dit geeft problemen wanneer binaire data wordt verstuurd omdat die byte waarde zeerwel aanwezig kan zijn in de verstuurde gegevens. A binaire datastroom die over een modem verbinding versuurd kan worden kan bestaan uit elke combinatie van karakters. Een specifieke byte volgorde aanwijzen als trigger om over te schakelen van data mode naar commando mode zou er toe kunnen leiden dat het modem elke keer teruschakelt naar commando mode als die specifieke datarij wordt gedetecteerd, zelfs als het per ongeluk onderdeel is van de reguliere datastroom. De byte volgorde om terug te scvhakelen naar commando mode werd gedefiniŽerd als "+++", drie plus tekens. De kans dat drie plus tekens in een datastroom het overschakelen zouden triggeren werd gereduceerd door een extra regel toe te voegen: alleen wanneer de "+++" gegevensrij werd voorafgegaan en gevolgd door een seconde van stilte op de lijn, zou het modem dit herkennen als een escape commando. Als additionele data wordt verzonden van de aangesloten computer binnen een tijdframe van een seconde neemt het modem aan dat de drie plustekens onderdeel zijn van de reguliere datastroom en zullen ze worden doorgezonden naar het andere modem. In de praktijk is de kans dat drie plustekens in een datastroom worden voorafgegaan en gevolgd door een seconde stilte verwaarloosbaar.

Basis, uitgebreide, merkspecifieke en register commando's

De regels van de Hayes AT commando taal zijn redelijk eenvoudig. Ten eerste moeten we enkele basisregels onthouden:

  • Elk commando start met "AT" of "at". De strings "aT" en "At" zijn ongeldig om een commando te starten. De enige uitzonderingen op deze regel zijn "+++" waarmee van data mode naar commando mode wordt overgeschakeld, en "A/" om het vorige commando te herhalen.
  • Commando's kunnen zowel in hoofdletters, als in kleine letters worden gegeven.
  • Meerdere commando's kunnen worden gecombineerd op ťťn commandoregel.
  • De lengte van een commandoregel moet korter zijn dan veertig karakters.
  • Om handmatige wijziging mogelijk te maken wordt de backspace herkend om het ervoor ingetikte karakter in de commando string te wissen.
  • Elk commando dat begint met "AT" of "at" moet worden afgesloten met ENTER.
  • Telefoonnummers mogen de karakters "1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "=", ",", ";", "#", "+" en ">" bevatten. Alle andere karakters in een telefoonnummer worden genegeerd.
  • Wanneer een numerige parameter in een commando wordt weggelaten, wordt aangenomen dat de waarde nul is.
  • het ATZ commando om het modem te resetten moet gevolgd worden door een pauze van tenminste twee seconden voor het volgende commando wordt ingevoerd.

Zoals al eerder gezegd begonnen zodra andere fabrikanten de Hayes AT commando set overnamen in hun eigen modems dialecten te ontstaan. Dialecten voegen alleen nieuwe commando's toe aan de bestaande AT commando set, maar wijzigen in het algemeen niet de originele commando's. Dit is mogelijk door het definiŽren van drie niveaus van commando's in het modem, de basis commando set, de uitgebreide commando set en de merkspecifieke commando set.

De basis commandoset bevat alle noodzakelijke commando's om het modem te gebruiken. Basis commando's kunnen worden herkend door de letter die direct volgt op de "AT". Uitgebreide commando's worden gebruikt voor functionaliteit die niet aanwezig was in de eerste Hayes smart modem implementatie. Deze commando's zijn nog steeds standaard zijn ze zijn aanwezig op praktisch alle moderne modems. Uitgebreide commando's kunnen worden herkend door het "&" teken dat direct op de "AT" volgt. Merkspecifieke commando's verschillen per modemfabrikant en zelfs tussen verschillende modellen. Modemfabrikanten gebruiken verscheidene karakters na de "AT" om hun eigen specifieke commando's te defininŽren. Vaal worden de backslash "\" en procentteken "%" gebruikt, maar er zijn ook andere implementaties.

Om instellingen in een modem op te slaan, zoals de standaard timeout periode die moet worden gebruikt bij het kiezen van een telefoonnummer, zijn registers gedefiniŽerd. Registers hebben een uniek nummer. In een commandostring worden registers gedefiniŽerd als "Sxxx", waarbij xxx het specifieke registernummer is. Registerwaarden kunnen worden opgeslagen, gelezen en verwijderd uit het geheugen door gebruik te maken van basis AT commando's.

Basis Hayes AT commando's

ATA Beantwoord inkomend gesprek
ATA kan worden gebruikt om handmatig een binnenkomend gesprek te beantwoorden. Een ander modem moet op dat moment al bezig zijn een verbinding te maken en de lijn moet overgaan. Na het ATA commando neemt het modem de lijn op, onderhandelt met het andere modem over de data transfer snelheid en error correctie instellingen en schakelt vervolgens over naar dataoverdracht mode.
ATH Lijn controle
Het modem is uitgevoerd met zijn eigen telefoonlijn interface. Net als met een normale telefoon kan het modem van de haak gaan waarbij de interface met de telefoonlijn verbonden wordt, of op de haak om de lijn te verbreken. Dit wordt geregeld met het ATH commando. Het cijfer na de H definieert de gewenste haak stand.
  • H0 Ga op de haak (verbreek)
  • H1 Ga van de haak (verbind)
ATL Zet speaker volume
De meeste modems zijn uitgevoerd met een speaker. Deze speaker kan worden gebruikt om problemen tijdens de verbinding op te sporen. Het volume van de speaker wordt geregeld door het ATL commando. Het cijfer volgend op de L geeft het gewenste speaker volume aan. Verschillende volumeinstellingen zijn mogelijk.
  • L0 Laagste speaker volume
  • L1 Laag speaker volume
  • L2 Gemiddeld speaker volume
  • L3 Hoogste speaker volume
ATM Speaker controle
In veel gevallen is de speaker alleen noodzakelijk om de kies en onderhandelingsfase van het modem te beluisteren. In andere situatie is het gewenst om de speaker tijdens de hele sessie aan te houden, of om hem vanaf het begin uit te schakelen. Het ATM commando kan worden gebruikt om te selecteren wanneer de speaker zou moeten werken. Het cijfer dat volgt op de M definiŽert de speaker mode. Er kan uit vier verschillende modes worden gekozen.
  • M0 Speaker altijd uit
  • M1 Speaker aan totdat de carrier is gedetecteerd
  • M2 Speaker altijd aan
  • M3 Speaker alleen aan tijdens het beantwoorden.
ATZ Reset modem
Het modem kan gereset worden naar een standaard instelling met het ATZ commando. Het cijfer dat volgt op de Z geeft aan naar welke status het modem moet worden gereset. Volgend op dit commando is een pauze van tenminste twee seconden nodig om het modem tijd te geven om zijn nieuwe toestand te initialiseren. Wanneer het reset commando wordt gegeven zal een lopende communicatiesessie worden afgebroken en de lijn gaat op de haak. De volgende reset statussen kunnen worden geselecteerd. Deze statussen zijn opgeslagen in het residente geheugen van het modem.
  • Z0 Herstel opgeslagen profiel 0
  • Z1 Herstel opgeslagen profiel 1

A pipe gives a wise man time to think
and a fool something to stick in his mouth.
TRISCHMANN'S PARADOX
   Lammert Bies     Interfacing     Sitemap     Forum 
 EN   NL