¿Por qué AT comando set?

14

Francamente, ¿por qué todos los circuitos integrados de comunicación (o al menos muchos de ellos o los más famosos o populares) como Bluetooth, WIFI, GSM o etc. son compatibles con el conjunto de comandos AT? ¿Por qué no tienen un pin simple para D / C (datos o comando) para las comunicaciones? ¿Cuáles son los beneficios de usar el conjunto de comandos AT?

El conjunto de comandos AT es grande y tomaría tiempo y espacio de memoria, y dificulta la comunicación, mientras que en su lugar puede usar un simple pin D / C y enviar un número entero para establecer registros o enviar datos.

    
pregunta Roh

4 respuestas

27

brhans es correcto - Legacy.

En la década de 1980, Hayes comenzó a hacer el "Smartmodem 1200". Fue obsoleto casi de inmediato y Hayes se apresuró a utilizar el Smartmodem 2400. En ese apuro, no hubo tiempo para alteraciones de diseño entre los diseños de módem. ¡Como resultado, Hayes fue el primero en hacer dos módems de velocidad diferentes que aceptaron los mismos comandos de programación! Cualquier software que pudiera obtener un Smartmodem 1200 para marcar un número de teléfono también podría marcar un Smartmodem 2400.

En ese momento, cada nuevo módem requería meses para que se escribiera un controlador actualizado. Cuando el Smartmodem 2400 apareció en el mercado, ya existía un controlador de trabajo para el Smartmodem 1200, así que no hay meses de espera. De repente, otros fabricantes se dieron cuenta de la ventaja de los nuevos módems que tienen el mismo conjunto de comandos que los módems anteriores. En seis meses, los proveedores ofrecían módems "compatibles con Hayes" como la única opción. Lo que les hizo ser demandados por Hayes. Así que todos comenzaron a llamar a sus módems "AT Command Set compatible", pero continuaron usando el conjunto de comandos de Hayes.

A mediados de los 80 no se hicieron módems de consumo que no pudieran usar el conjunto de comandos AT. Como resultado, todos los módems, como el sistema de comunicaciones, utilizan comandos AT. También hay otras ventajas: como el conjunto de comandos es ASCII, cualquiera puede escribir manualmente los comandos AT en una ventana de terminal para controlar un módem. Debido a que mi propio módem tenía una conexión RJ11 peligrosa, solía comenzar cada sesión en Procomm Plus con:

AT
OK
ATH1
[dial tone]
ATDT [phone number]

Solo para asegurarme de que tengo el tono de marcado. ¡Si no lo hiciera, iría a mover los cables un poco!

    
respondido por el carveone
19

Estás hablando solo de las desventajas del conjunto de comandos. Considera las ventajas:

  1. Al usar el conjunto de comandos AT, su dispositivo de comunicación se puede colocar inmediatamente en cualquier red IP a través del sistema operativo Implementación PPP . La alternativa es que además de diseñar una interfaz de protocolo personalizada, debe escribir su propio controlador de dispositivo de red para cada sistema operativo que desee admitir antes de que dicho sistema pueda usar su dispositivo para unirse a Internet.

  2. Cualquier ingeniero competente ya va a conocer este protocolo. Tómelo de alguien cuyo trabajo diario le exige comprender e implementar docenas de protocolos seriales no estándar: un protocolo común bien diseñado es mejor.

  3. Si bien es cierto que el protocolo AT es bastante complejo y requiere más memoria para implementarlo que un protocolo específico para tareas específicas, también es cierto que alguien que elige implementar este protocolo consigue evitar gastar un montón de Tiempo reinventando una rueda perfectamente buena. Él tiene décadas de experiencia en diseño para aprovechar. Sabe que funcionará antes de dedicarle tiempo de desarrollo. Un buen diseño de protocolo es sorprendentemente difícil.

    (Uno de estos días, voy a publicar mi obra magna, "Your Protocol Sucks", con la esperanza de evitar la perpetración de protocolos más terribles de una sola vez).

respondido por el Warren Young
14

Me expandiré al otro lado de la pregunta ... ¿por qué no agregar otra línea de señalización a la interfaz?

Esto solo lo puede pedir alguien que no haya superado todas las permutaciones de las líneas de señalización en una interfaz RS232 de 25 pines. Además de TXD, RXD y Gnd, ya había varios otros pares de señales, RTS / CTS (Listo para enviar, Borrar para enviar) DSR / DTR (Conjunto de datos listo, Listo para terminal de datos) y un pin de hardware para colgar. Y otros. Y no hay un acuerdo universal claro entre los fabricantes: ¿qué hizo exactamente qué funcionó? ¿Por qué necesitó dos conjuntos de señales de handshaking de hardware en primer lugar? Y el software del protocolo XON / XOFF además de eso (y ¿por qué insistieron las impresoras de Diablo, por lo que yo sé, en apretón de manos en el pin 11?)

Algunos equipos requieren una interfaz completa. Algunos estaban contentos con TXD / RXD / Gnd. Algunos podrían ser engañados para que trabajen cortocircuitando los pines 4 y 6 (por lo tanto, cambiando su propio RTS a CTS). Y algunos de los que deberían haber sido DCE eran DTE o viceversa y solo hablarían con cualquier otra cosa a través de un cable de "módem nulo" con cada par de conexiones intercambiadas.

Luego, para simplificar todo esto, la PC de IBM introdujo una nueva interfaz de 9 pines para RS232. Es decir, toda su colección de cables existente estaba obsoleta y tuvo que comenzar de nuevo ...

Todo lo cual hizo la vida difícil, incluso sin tener en cuenta que ambos extremos pueden haberse configurado a diferentes velocidades en baudios ...

Esto apoyó a toda una industria construida alrededor de cajas de ruptura RS232, cables y herramientas de prueba / depuración.

Agregar otra señal, en este contexto, probablemente no iba a volar ...

    
respondido por el Brian Drummond
9

El primer módem Hayes en usar comandos "AT" eligió "A" como primer carácter de su prefijo de comando porque necesitaba admitir múltiples velocidades en baudios, y la "A" en la línea se ve así: -------_-_____-x---------- , que tiene una relación de 5: 1 entre los tiempos "bajos" más largos y más cortos (la "x" puede ser alta o baja según la configuración de paridad). Ninguna velocidad inferior a 1200 baudios puede administrar un tiempo "corto" de 833us o menos, y ninguna velocidad superior a 2400 puede administrar un tiempo "largo" de 4.16ms o más, por lo que un módem puede asumir con seguridad que si ve algo que parece como una "A" de 1200 baudios, lo es (y lo mismo ocurre con 300 baudios, etc.). La "T" tiene la paridad opuesta a la "A", por lo que si el segundo carácter parece una "T", el módem puede mirar el bit superior en eso y la "A" y distinguir entre 7-E-1, 7-O-1, 7-N-1 y 8-N-1.

Los dispositivos o controladores que usan comandos "AT" que funcionan de manera similar o análoga a los comandos del módem Hayes (por ejemplo, aceptando ATDTW192,168,254,123W4567 como un comando para conectarse al puerto 4567 de 192.168.254.123) lo hacen por compatibilidad con el software que espera hable con un módem de estilo antiguo o dispositivo compatible. Sin embargo, hay muchos dispositivos que utilizan comandos que comienzan con "AT" en la teoría de que "conjunto de comandos AT" parece ser una palabra de moda útil para la comercialización, aunque los dispositivos no son capaces de detectar automáticamente la velocidad de transmisión y tienen comandos diferentes. Cualquier cosa en cualquier otro dispositivo. El uso de "AT" como un prefijo de comando en tales contextos no agrega valor de compatibilidad y no tiene ningún propósito útil; los diseñadores lo hacen porque han visto a otros diseñadores hacerlo, aunque ninguno de los diseñadores en cuestión tiene idea de por qué.

    
respondido por el supercat

Lea otras preguntas en las etiquetas