Francamente, por que todos os ICs de comunicação (ou pelo menos muitos deles ou mais famosos ou populares) como Bluetooth ou WIFI ou GSM ou etc suportam o conjunto de comandos AT? por que eles não têm um pino simples para D / C (dados ou comando) para comunicações? Quais são os benefícios do uso do conjunto de comandos AT?
O conjunto de comandos AT é grande e requer tempo e espaço de memória, dificultando a comunicação enquanto você pode usar um pino D / C simples e enviar um número inteiro para definir registros ou enviar dados.
Respostas:
brhans está correto - Legado.
Na década de 1980, Hayes começou a fazer o "Smartmodem 1200". Estava obsoleto quase imediatamente e Hayes lançou o Smartmodem 2400. Naquele momento, não havia tempo para alterações no design entre os designs do modem. Como resultado, Hayes foi o primeiro a fazer dois modems de velocidade diferentes que aceitaram os mesmos comandos de programação! Qualquer software que pudesse obter um Smartmodem 1200 para discar um número de telefone também poderia discar para um Smartmodem 2400.
Na época, todo novo modem exigia meses para que um driver atualizado fosse gravado. Quando o Smartmodem 2400 foi lançado no mercado, já havia um driver ativo para o Smartmodem 1200, portanto, não havia meses de espera. De repente, outros fabricantes perceberam a vantagem de novos modems possuírem o mesmo conjunto de comandos dos modems mais antigos. Em seis meses, os fornecedores estavam oferecendo modems "compatíveis com Hayes" como a única opção. O que os processou por Hayes. Então, todos começaram a chamar seus modems de "AT Command Set compatível", mas continuaram a usar o conjunto de comandos Hayes.
Em meados dos anos 80, não foram feitos modems de consumo que não pudessem usar o conjunto de comandos AT. Como resultado, todo modem como sistema de comunicação usa comandos AT. Também existem outras vantagens - como o conjunto de comandos é ASCII, qualquer pessoa pode digitar manualmente os comandos AT em uma janela do terminal para controlar um modem. Como meu próprio modem tinha uma conexão RJ11 perigosa, eu costumava iniciar todas as sessões no Procomm Plus com:
Só para ter certeza de que recebi o tom de discagem. Se não o fizesse, daria uma volta e mexeria um pouco nos fios!
fonte
Você está falando apenas das desvantagens do conjunto de comandos. Considere as vantagens:
Usando o conjunto de comandos AT, seu dispositivo de comunicação pode ser imediatamente colocado em qualquer rede IP através da implementação de PPP do sistema operacional. A alternativa é que, além de projetar uma interface de protocolo personalizada, você deve escrever seu próprio driver de dispositivo de rede para todos os SOs que deseja oferecer suporte antes que o SO possa usar seu dispositivo para ingressar na Internet.
Qualquer engenheiro competente já conhecerá esse protocolo. Tomemos como exemplo aquele cujo trabalho diário exige que ele compreenda e implemente dezenas de protocolos seriais fora do padrão: um protocolo comum bem projetado é melhor.
Embora seja verdade que o protocolo AT seja bastante complexo e precise de mais memória para ser implementado do que um protocolo criado para fins específicos de tarefa, também é o caso de alguém que optar por implementar esse protocolo evite gastar muito tempo reinventando um roda perfeitamente boa. Ele tem décadas de experiência em design para desenhar. Ele sabe que funcionará antes de comprometer o tempo de desenvolvimento. Um bom design de protocolo é surpreendentemente difícil.
(Um dia desses, publicarei minha magnum opus, "Your Protocol Sucks", na esperança de impedir a perpetração de mais terríveis protocolos únicos considerados meio.)
fonte
ATS
comando ...Vou expandir do outro lado da questão ... por que não adicionar outra linha de sinalização à interface?
Isso só pode ser solicitado por alguém que não passou por todas as permutações de linhas de sinalização em uma interface RS232 de 25 pinos genuína. Além do TXD, RXD e Gnd, já havia vários outros pares de sinais, RTS / CTS (pronto para enviar, limpar para enviar) DSR / DTR (pronto para conjunto de dados, pronto para terminal de dados) e um pino Hangup de hardware. E outros. E nenhum acordo universal claro entre os fabricantes exatamente o que funcionou - por que você precisou de dois conjuntos de sinais de handshake de hardware em primeiro lugar? E o protocolo XON / XOFF do software, além disso) (e por que as impressoras Diablo insistem - exclusivamente até onde eu sei - no aperto de mãos no pino 11?)
Alguns equipamentos exigiam uma interface completa. Alguns ficaram felizes com TXD / RXD / Gnd. Alguns poderiam ser enganados ao trabalhar colocando os pinos 4 e 6 em curto (retornando assim o seu próprio RTS ao CTS). E alguns que deveriam ter sido DCE eram DTE ou vice-versa e só conversavam com qualquer outra coisa através de um cabo "modem nulo" com cada par de conexões trocadas.
Para simplificar tudo isso, o IBM PC introduziu uma nova interface de 9 pinos para o RS232. Ou seja, toda a sua coleção de cabos existente estava obsoleta e você teve que começar de novo ...
Tudo isso dificultou a vida, mesmo sem considerar que as duas extremidades podem ter sido definidas com diferentes taxas de transmissão ...
Isso deu suporte a todo um setor construído em torno de caixas de interrupção RS232, cabos e ferramentas de teste / depuração.
Adicionar outro sinal, nesse contexto, provavelmente não voaria ...
fonte
O primeiro modem Hayes a usar comandos "AT" escolheu "A" como o primeiro caractere de seu prefixo de comando, porque precisava suportar várias taxas de transmissão, e o "A" na linha se parece com:
-------_-_____-x----------
que possui uma proporção de 5: 1 entre os tempos 'baixo' mais longos e mais curtos (o "x" pode ser alto ou baixo, dependendo das configurações de paridade). Nenhuma taxa mais lenta que 1200 baud pode gerenciar um tempo "curto" de 833us ou menos, e nenhuma taxa mais rápida que 2400 pode gerenciar um tempo "longo" de 4,16ms ou mais; portanto, um modem pode assumir com segurança que se vir algo que pareça como um "A" de 1200 bauds, é (e da mesma forma com 300 bauds etc.). O "T" tem a paridade oposta ao "A", portanto, se o segundo caractere se parecer com um "T",Os dispositivos ou drivers que usam comandos "AT" que funcionam de maneira semelhante ou analogica aos comandos do modem Hayes (por exemplo, aceitar
ATDTW192,168,254,123W4567
como um comando para conectar-se à porta 4567 de 192.168.254.123) fazem isso para compatibilidade com o software que espera conversar com um estilo antigo modem ou dispositivo compatível. Existem muitos dispositivos, no entanto, que usam comandos começando com "AT" na teoria de que "conjunto de comandos AT" parece ser um chavão de marketing útil, mesmo que os dispositivos não sejam capazes de detecção automática da taxa de transmissão e tenham comandos diferentes qualquer coisa em qualquer outro dispositivo. O uso de "AT" como prefixo de comando em tais contextos não agrega valor de compatibilidade e não serve a nenhum propósito útil; designers fazem isso porque viram outros designers fazerem isso,fonte