Preciso saber por que as pessoas nos sistemas embarcados usam comandos AT?
Quando perguntei, as pessoas dizem que é um padrão.
Então, minha pergunta é: O que significa "AT"? Por que as pessoas continuam dizendo que é um padrão?
serial
communication
at-commands
xsari3x
fonte
fonte
why people in embedded systems use AT commands
- não há nada específico sobre a sua pergunta ou o uso de AT em um link serial. Pode ser que você tenha visto isso em um sistema embarcado, mas sua origem é explicada abaixo e não é específica para sistemas embarcados. (Tenha cuidado para não pintar as coisas com muito ampla de um pincel.)modemu
: um programa Unix que cria um dispositivo pseudo-tty mestre / escravo e simula um modem que realmente passa pelo telnet. Você "disca" um host comATD<hostname>
. O engraçado é que o programa saiu quase exatamente no momento em que eu precisava, por volta de 1996: versão 0.0.1. Eu não precisava disso desde então. E ainda é 0.0.1! Usei-o em conjunto com o minicom para fazer transferências do zmodem pelo telnet para hosts remotos que só poderiam ser alcançados dessa maneira.Respostas:
Um detalhe raramente apreciado sobre os comandos "AT" é que muitos modems começariam no modo "auto-baud / auto-parity". Inicialmente, o modem começava a não tentar decodificar dados seriais, mas simplesmente observava um pulso baixo e alto consecutivos cujas larguras correspondiam ao mesmo período de bits válido (por exemplo, 3.333ms para 300 baud, 833us para 1200 baud, etc. .). Ao descobrir isso, eles veriam se o próximo pulso baixo tinha cinco vezes essa largura. Nesse caso, eles procurariam outro alto-baixo-alto ou pelo menos 1,5 bit vezes mais alto. Encontrar um desses indica que o modem acabou de ver um 0x41 ou 0xC1 (ou seja, "A") da taxa de transmissão identificada. Indicaria ainda que o computador conectado estava usando 8-N-1 ou 7-E-1 ou que estava usando 7-N-1 ou 7-O-1. Nos dois casos, ele procuraria o próximo caractere como 0x54 ou 0xD4 (ou seja, "T"). Isso permitiria ao modem categorizar ainda mais as configurações de comprimento e paridade de caracteres.
Observe que tudo o que foi recebido antes do "AT" seria ignorado. Se o eco estivesse ativado, os dados retornariam ao computador conectado simplesmente espelhando todas as transições de linha sem nenhuma decodificação serial. Se um computador enviasse dados anteriores ao "AT" em, por exemplo, 247 baud, eles ecoariam nessa velocidade.
Atualmente, alguns dispositivos usam um "A" inicial para detecção da taxa de transmissão automática, mas, caso contrário, o fato de os comandos começarem com "AT" é basicamente uma curiosidade histórica.
fonte
Refere-se ao conjunto de comandos Hayes, que é o padrão há muito tempo para emitir comandos para modems (e outros equipamentos) em uma linha serial.
Em vez de os comandos e os dados terem duas linhas separadas, apenas uma linha é usada e para alternar para o modo de comando a partir dos dados, uma certa sequência é enviada, por exemplo, +++ seguida de uma pausa de duração definida. Os próximos dados são vistos como um comando pelo equipamento receptor.
O motivo para usar algo assim é o fato de evitar a necessidade de outro par de linhas, que em muitos casos simplesmente não estão disponíveis, especialmente em pequenos sistemas embarcados.
Dê uma olhada na página do Wiki e nos links na parte inferior - há muitos detalhes lá.
No entanto, existem todos os tipos de extensões para o conjunto AT original, então eu não apostaria em tudo que menciona o AT para realmente usar todos os comandos originais do Hayes. Por exemplo, eu tenho um chip serial bluetooth aqui que o IIRC usa seu próprio conjunto de tipos AT.
Eu não sou especialista nisso, apenas me lembro de hackear com comandos em alguns dias de discagem e BBS.
fonte
O conjunto de comandos "AT" era para resolver um problema de necessidade de informações de controle fora da banda nos mesmos dados arbitrários enviados pelo canal de fluxo de bytes. Esse era um problema comum dos modems, quando eram caixas externas conectadas aos computadores por meio de um cabo serial.
Hayes era um fabricante de tais modems e ganhou muita popularidade no início. Sua solução para o problema fora da banda foi enviar ao modem, na maioria das vezes, comandos de controle ASCII de duas letras com uma sequência especial para colocá-lo no modo de passagem de dados. Para reduzir a probabilidade de coisas aleatórias parecerem comandos, todas as seqüências de comandos começaram com o comando AT, que significava "atenção".
Hayes ganhou tanta participação de mercado que outros fabricantes de modem tiveram que implementar o mesmo conjunto de comandos para serem compatíveis. Dessa forma, os clientes poderiam usar seus modems sem precisar reescrever o software, que já estava configurado para operar um modem Hayes.
Hoje em dia, esse esquema é raramente usado, mas é claro que algo tão difundido permanece nos cantos escuros até hoje.
fonte
Há um documento especialmente bom que descreve o histórico dos comandos "AT" que podem ser encontrados aqui:
http://nemesis.lonestar.org/reference/telecom/modems/at/history.html
Ele contém muitas páginas de boa "história" sobre como o protocolo surgiu.
fonte
por que as pessoas em sistemas embarcados usam comandos AT?
Eu não sou uma dessas "pessoas em sistemas embarcados", mas eu diria que os
AT
comandos ainda estão em uso porque eles vêm de um padrão bem definido de baixa sobrecarga para sinalização em linha.O que isso significa é que você pode usar o mesmo canal de comunicação para sinalizar (comandos AT para gerenciar a comunicação) e dados (dados reais que você deseja enviar). O
AT
padrão especifica como diferenciar os dois para que você e seu dispositivo serial não fiquem confusos ao conversar um com o outro.O que significa "AT"?
AT
é para atençãoPor que as pessoas continuam dizendo que é um padrão?
Bem, porque é. Eu diria que é na verdade uma mistura de padronização de facto e um par de "reais" normas e algumas recomendações .
fonte