|
Hayes modem AT commando set
Hayes AT commando set, de geschiedenisModem 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.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 modeHet 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'sDe regels van de Hayes AT commando taal zijn redelijk eenvoudig. Ten eerste moeten we enkele basisregels onthouden:
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
|
| Feb. 2013 | Sitemap | Copyright © 1997-2010 Lammert Bies, Alle rechten voorbehouden |