Ehrlich gesagt, warum unterstützen alle Kommunikations-ICs (oder zumindest viele von ihnen oder die bekanntesten oder beliebtesten) wie Bluetooth, WIFI, GSM usw. den AT-Befehlssatz? Warum haben sie keinen einfachen Pin für D / C (Daten oder Befehl) für die Kommunikation? Was sind die Vorteile der Verwendung des AT-Befehlssatzes?
Der AT-Befehlssatz ist groß und würde Zeit und Speicherplatz beanspruchen und die Kommunikation erschweren, während Sie stattdessen einen einfachen D / C-Pin verwenden und eine Ganzzahl senden können, um Register zu setzen oder Daten zu senden.
Antworten:
brhans ist richtig - Vermächtnis.
In den 1980er Jahren begann Hayes mit der Herstellung des "Smartmodem 1200". Es war fast sofort veraltet und Hayes brachte das Smartmodem 2400 heraus. In dieser Eile gab es keine Zeit für Designänderungen zwischen den Modemdesigns. Infolgedessen war Hayes der erste, der zwei verschiedene Geschwindigkeitsmodems herstellte, die dieselben Programmierbefehle akzeptierten! Jede Software, mit der ein Smartmodem 1200 eine Telefonnummer wählen kann, kann auch ein Smartmodem 2400 wählen.
Zu dieser Zeit benötigte jedes neue Modem Monate, um einen aktualisierten Treiber zu schreiben. Als das Smartmodem 2400 auf den Markt kam, gab es bereits einen funktionierenden Treiber für das Smartmodem 1200, so dass keine Monate auf sich warten ließen. Plötzlich erkannten andere Hersteller den Vorteil neuer Modems mit demselben Befehlssatz wie ältere Modems. Innerhalb von sechs Monaten boten Anbieter als einzige Option "Hayes-kompatible" Modems an. Womit sie von Hayes verklagt wurden. Daher nannten alle ihre Modems "AT Command Set-kompatibel", verwendeten aber weiterhin den Hayes-Befehlssatz.
Mitte der 80er Jahre wurden keine Consumer-Modems hergestellt, die den AT-Befehlssatz nicht verwenden konnten. Infolgedessen verwendet jedes Modem wie ein Kommunikationssystem AT-Befehle. Es gibt auch andere Vorteile: Da der Befehlssatz ASCII ist, kann jeder manuell AT-Befehle in ein Terminalfenster eingeben, um ein Modem zu steuern. Da mein eigenes Modem eine dicke RJ11-Verbindung hatte, startete ich jede Sitzung in Procomm Plus mit:
Nur um sicherzugehen, dass ich den Wählton habe. Wenn ich es nicht täte, würde ich ein bisschen herumgehen und die Drähte wackeln!
quelle
Sie sprechen nur über die Nachteile des Befehlssatzes. Betrachten Sie die Vorteile:
Mithilfe des AT-Befehlssatzes kann Ihr Kommunikationsgerät über die PPP- Implementierung des Betriebssystems sofort in ein beliebiges IP-Netzwerk eingebunden werden . Die Alternative besteht darin, dass Sie zusätzlich zum Entwerfen einer benutzerdefinierten Protokollschnittstelle für jedes Betriebssystem, das Sie unterstützen möchten, einen eigenen Netzwerkgerätetreiber schreiben müssen, bevor dieses Betriebssystem Ihr Gerät zum Herstellen einer Internetverbindung verwenden kann.
Jeder kompetente Ingenieur wird dieses Protokoll bereits kennen. Nehmen Sie es von jemandem, dessen Tagesgeschäft es erfordert, dass er Dutzende von nicht standardmäßigen seriellen Protokollen versteht und implementiert: Ein ausgereiftes gemeinsames Protokoll ist besser.
Zwar ist das AT-Protokoll recht komplex und benötigt mehr Speicher für die Implementierung als ein aufgabenspezifisches, speziell erstelltes Protokoll, aber es ist auch so, dass jemand, der sich für die Implementierung dieses Protokolls entscheidet, vermeidet, viel Zeit damit zu verbringen, a neu zu erfinden vollkommen gutes Rad. Er verfügt über jahrzehntelanges Design-Know-how. Er weiß, dass es funktionieren wird, bevor er Entwicklungszeit dafür einsetzt. Gutes Protokolldesign ist überraschend schwierig.
(Eines Tages werde ich mein umfangreiches Werk "Your Protocol Sucks" veröffentlichen, in der Hoffnung, die Verfolgung schrecklicherer, nur halb in Betracht gezogener Einzelprotokolle zu verhindern.)
quelle
ATS
Befehl ...Ich werde auf die andere Seite der Frage eingehen ... warum nicht einfach eine weitere Signalleitung zur Schnittstelle hinzufügen?
Das kann nur jemand fragen, der nicht alle Permutationen von Signalleitungen an einer echten 25-poligen RS232-Schnittstelle durchlebt hat. Neben TXD, RXD und Gnd gab es bereits mehrere andere Signalpaare, RTS / CTS (Bereit zum Senden, Löschen zum Senden), DSR / DTR (Bereit für Datensätze, Bereit für Datenterminal) und einen Hardware-Hangup-Pin. Und andere. Und es gibt keine eindeutige allgemeine Übereinstimmung zwischen den Herstellern, was genau funktioniert hat - warum brauchten Sie überhaupt zwei Sätze von Hardware-Handshake-Signalen? Und obendrein das Software-XON / XOFF-Protokoll. (Und warum bestanden Diablo-Drucker - meines Wissens nach einmalig - auf dem Handshake an Pin 11?)
Für einige Geräte ist eine vollständige Schnittstelle erforderlich. Einige waren mit TXD / RXD / Gnd zufrieden. Einige könnten durch Kurzschließen der Stifte 4 und 6 zum Arbeiten verleitet werden (wodurch ihre eigene RTS zu CTS zurückgeschleift wird). Und einige, die DCE gewesen sein sollten, waren DTE oder umgekehrt und sprachen nur über ein "Nullmodem" -Kabel mit irgendetwas anderem, wobei jedes Verbindungspaar ausgetauscht wurde.
Um dies zu vereinfachen, führte der IBM PC eine neue 9-polige Schnittstelle für RS232 ein. Das heißt, Ihre gesamte vorhandene Kabelsammlung war veraltet und Sie mussten erneut beginnen ...
All das machte das Leben schwierig, auch wenn man bedachte, dass beide Enden auf unterschiedliche Baudraten eingestellt waren ...
Dies unterstützte eine ganze Branche, die sich aus RS232-Breakout-Boxen, Kabeln und Test- / Debugging-Tools zusammensetzte.
Ein weiteres Signal hinzuzufügen, würde in diesem Zusammenhang wahrscheinlich nicht fliegen ...
quelle
Das erste Hayes-Modem, das "AT" -Befehle verwendete, wählte "A" als erstes Zeichen seines Befehlspräfixes, da es mehrere Baudraten unterstützen musste, und das "A" in der Zeile sieht folgendermaßen aus:
-------_-_____-x----------
mit einem Verhältnis von 5: 1 zwischen die längste und kürzeste "niedrige" Zeit (das "x" kann abhängig von den Paritätseinstellungen hoch oder niedrig sein). Keine Rate, die langsamer als 1200 Baud ist, kann eine "kurze" Zeit von 833 us oder weniger bewältigen, und keine Rate, die schneller als 2400 ist, kann eine "lange" Zeit von 4,16 ms oder mehr bewältigen, sodass ein Modem sicher davon ausgehen kann, dass es etwas sieht, das aussieht wie ein 1200-Baud "A" ist es (und ebenfalls mit 300 Baud usw.). Das "T" hat die entgegengesetzte Parität zum "A". Wenn also das zweite Zeichen wie ein "T" aussieht,Geräte oder Treiber, die "AT" -Befehle verwenden, die ähnlich oder analog zu den Befehlen des Hayes-Modems funktionieren (z. B. Annahme
ATDTW192,168,254,123W4567
als Befehl zum Verbinden mit Port 4567 von 192.168.254.123), tun dies aus Gründen der Kompatibilität mit Software, die erwartet, mit einem alten Stil zu kommunizieren Modem oder kompatibles Gerät. Es gibt jedoch viele Geräte, die Befehle verwenden, die mit "AT" beginnen. Die Theorie besagt, dass "AT-Befehlssatz" ein nützliches Marketing-Schlagwort zu sein scheint, auch wenn die Geräte keine automatische Baudratenerkennung unterstützen und andere Befehle haben alles auf einem anderen Gerät. Die Verwendung von "AT" als Befehlspräfix in solchen Kontexten fügt keinen Kompatibilitätswert hinzu und dient keinem nützlichen Zweck. Designer tun es, weil sie andere Designer gesehen haben,quelle