O Conjunto de Comandos de Modem Hayes Aqui está uma descrição do Conjunto de Comandos Hayes. A maioria dos modems seguem este conjunto de comandos em grande medida. Se você perdeu o manual do seu modem ou nunca teve nenhum, de facto, esta referência poderá ser útil. O autor, por exemplo, descobriu como desligar o altifalante do seu modem: ATM0 -- Finalmente: Silêncio! O comando de inicialização do modem consiste numa série de comandos. Ele prepara o modem para as comunicações, configurando algumas funcionalidades como o modo de marcação, as esperas, a detecção do sinal de ocupado, entre muitas outras configurações. Os programas mais recentes de comunicação por modem repõem o comando de inicialização por si de acordo com as opções do menu que selecciona, quais as funcionalidades que activa, &etc;. Durante vários anos, os modems Hayes foram a norma. Como o campo do fabrico dos modems cresceu, alguns aderiram pelo menos de forma ligeira à norma Hayes. O que se segue é uma lista parcial do conjunto de comandos Hayes (chamados os comandos AT). O conjunto de comandos Hayes poderá ser dividido em quatro grupos: Conjunto Básico de Comandos Um carácter maiúsculo seguido de um dígito. Por exemplo, M1. Conjunto de Comandos Extendidos Um & (E comercial) e um carácter maiúsculo seguido de um número. Esta é uma extensão do conjunto de comandos básico. Por exemplo, &M1. Repare que o M1 é diferente do &M1. Conjunto de Comandos Proprietário Normalmente iniciados por uma barra invertida (\), ou por um sinal de percentagem (%), estes comandos variam de fabricante para fabricante de modems. Por essa razão, somente alguns desses comandos estão aqui listados. Comandos de Registos Sr=n em que o r é o número do registo a ser alterado e o n é o valor novo que é atribuído. Um registo é o termo informático para uma localização física específica na memória. Os modems têm muito pouca memória incorporada. Este quarto conjunto de comandos é usado para introduzir valores num registo (localização de memória) em particular. O registo irá guardar uma variável especial (informação alfanumérica) que será usada pelo modem e pelo programa de comunicação. Por exemplo, o S7=60 diz ao seu computador para Configurar o registo #7 para o valor 60. Ainda que a maioria dos comandos sejam definidos através de uma combinação letra-número (L0, L1 &etc;), o uso de um zero é opcional. Neste exemplo, o L0 é o mesmo que um L normal. Tenha isso em atenção quando ler a tabela em baixo! Aqui estão alguns dos caracteres mais importantes que poderão aparecer no comando de inicialização do modem. Estes caracteres normalmente não deverão ser alterados. AT Diz ao modem que se seguem comandos do modem. Isto deverá iniciar cada uma das linhas de comandos. Z Repõe o modem no seu estado predefinido , (uma virgula) faz o seu programa parar por um segundo. Você poderá usar mais do que um , por cada linha. Por exemplo, o ,,,, diz ao programa para parar quatro segundos (A duração da pausa é definida pela configuração do registo S8). ^M Envia o carácter de Mudança de Linha que termina a linha actual para o modem. Este é um código de controlo que a maioria dos programa de comunicação traduz como Carriage Return O Conjunto Básico de Comandos Hayes Em ordem alfabética: Conjunto Básico de Comandos Hayes Comando Descrição Comentários A0 ou A Atende a chamada recebida A/ Repete o último comando Não prefixe com o AT. O Enter normalmente interrompe. B0 ou B Negociação de chamadas Sequência de Resposta Modo V32/CCITT. B1 Negociação de chamadas Sequência de Resposta Bell 212A. B2 Negociação de chamadas Descritivo/Silencioso na Resposta D Ligar Liga o número seguinte e executa o início do protocolo no modo de origem. P Marcação por Impulsos T Marcação por Tons W Esperar pelo segundo toque de ligação , Fica em pausa durante o tempo definido no registo S8 (normalmente 2 segundos) ; Fica no modo de comandos depois da marcação. ! Modo de comutação (suspende por meio segundo, como quem transfere uma chamada). L Marca o último número E0 ou E Sem Eco Não fará eco dos comandos para o computador E1 Eco Fará eco dos comandos para o computador (para que o utilizador veja o que escreve) H0 Estado do Descanso No descanso - Suspenso H1 Estado do descanso Fora do descanso - telefone levantado I0 ou I Pesquisa, Informação ou Interrogação Este comando é muito específico do modelo. O I0 normalmente devolve um número ou um código, enquanto que os números mais elevados normalmente devolvem informações muito mais úteis. L0 ou L Volume do Altifalante. Os modems com controlos de volume não terão estas opções. Volume baixo ou desligado L1 Volume Baixo L2 Volume Médio L3 Volume Alto M0 ou M Altifalante desligado O M3 também é normal, mas é diferente de marca para marca M1 Altifalante ligado até à portadora remota ser detectada (&ie; até que o outro modem se ouça) M2 O altifalante está sempre ligado (os sons dos dados ouvem-se depois do CONNECT) N0 ou N Velocidade da Negociação Negoceia só a à velocidade indicada no registo S37 N1 A negociação é feita a uma velocidade maior do que o registo S37 O0 ou O Volta a 'Online' Veja também o X1, dado que a detecção do toque de chamada poderá estar activa. O1 Volta a 'Online' depois de uma sequência de equalização Q0 ou Q1 Volume Silencioso Desligado - Mostra os códigos do resultados, o utilizador vê as respostas dos comandos (⪚ OK) Q1 Volume Silencioso Ligado - Os códigos do resultado são suprimidos e o utilizador não vê as respostas. Sn? Pergunta o conteúdo do registo S n Sn=r Gravar Guarda o valor de r no registo S n V0 ou V Descritivo Códigos de resultado numéricos V1 Códigos de resultado em inglês (⪚ CONNECT (ligado), BUSY (ocupado), NO CARRIER (sem portadora), &etc;) X0 ou X Smartmodem Códigos resultado compatíveis com o Smartmodem 300 da Hayes X1 Normalmente adiciona a velocidade da ligação aos códigos de resultado básicos (⪚ CONNECT 1200 X2 Normalmente adiciona a detecção do toque de chamada (o que evita a ligação cega e algumas vezes evita o AT0) X3 Normalmente adiciona a detecção do sinal de ocupado X4 Normalmente adiciona tanto a detecção do toque de chamada como o de ocupado Z0 ou Z Reiniciar Repõe o modem na configuração gravada. Use o Z0, Z1 &etc; para vários perfis. Isto é o mesmo que o &F para os valores de fábrica no caso dos modems sem NVRAM (memória não-volátil)
O Conjunto Extendido de Comandos HayesComandos com E-Comercial O Conjunto Extendido de Comandos Hayes Comando Descrição Comentários &B0 ou &B Parâmetros de Reaprendizagem Desactiva a função de reaprendizagem automática &B1 Parâmetros de Reaprendizagem Activa a função de reaprendizagem automática &B2 Parâmetros de Reaprendizagem Activa a reaprendizagem automática, mas desliga-a se não houver melhoria da linha no período definido pelo registo S7 &C0 ou &C1 Detecção da portadora Sinal sempre activo &C1 Detecção da portadora Indica a portadora remota (normalmente predefinido) &D0 ou &D Data Terminal Ready - Terminal de Dados Pronto (DTR) Sinal ignorado (Isto é específico do modelo, por isso deverá ver as informações sobre ele!) &D1 Data Terminal Ready - Terminal de Dados Pronto (DTR) Se o DTR vier de Ligado para Desligado, o modem entra no modo de comandos (Só em alguns modems) &D2 Data Terminal Ready - Terminal de Dados Pronto (DTR) Alguns modems suspendem-se com a transição de Ligado para Desligado do DTR (Esta é a predefinição normal) &D3 Data Terminal Ready - Terminal de Dados Pronto (DTR) Suspende e reinicia o modem, voltando ao modo de comandos com o DTR &F0 ou &F Predefinições de fábrica Predefinições genéricas compatíveis com o Hayes. Esta é normalmente uma boa coisa para usar no seu comando de inicialização, dado que as configurações &F1-&F3 podem variar entre modems, e poderão ser elas próprias a causa de alguns problemas de ligação (Dado que você nem sempre sabe o que é que o &F2 da marca X realmente altera).Por outro lado, poupa o trabalho de tentar as outras opções em baixo; muitos dos problemas das pessoas podem ser resolvidos se substituir um comando de inicialização complicado com um simples &F2 ou algo semelhante. Contudo, se você estiver a criar um comando de inicialização, é melhor começar com um &F simples e não usar a forma personalizada das predefinições. &F1 Predefinições de Fábrica Os valores por omissão destinados para um utilizador de um PC compatível com a IBM &F2 Predefinições de Fábrica Os valores por omissão para um Mac com negociação por 'software' &F3 Predefinições de Fábrica Os valores por omissão para um Mac com negociação por 'hardware' &G0 ou &G Tons de guarda Desactiva os tons de guarda &K0 ou &K Controlo de fluxo local Desactiva o controlo de fluxo local &K1 Controlo de fluxo local Activa o controlo de fluxo local por 'hardware' com o RTS/CTS &K2 Controlo de fluxo local Activa o controlo de fluxo local por 'software' com o XON/XOFF &K3 Controlo de fluxo local Activa o controlo de fluxo local por 'hardware' com o RTS/CTS &K4 Controlo de fluxo local Activa o controlo de fluxo local por 'software' com o XON/XOFF &L0 ou &L Modo de marcação Selecciona o modo de marcação &M0 ou &M Modo de controlo de erros Selecciona o modo assíncrono sem EC (correcção de erros) (é o mesmo que o &Q0) &P0 ou &P Relação da marcação por impulsos A marcação por impulsos nos E.U.A./Canadá têm uma relação de 39% marcação / 61% quebra &P1 Relação da marcação por impulsos A marcação por impulsos da G.B./Hong Kong têm uma relação de 33% marcação / 67% quebra &Q0 ou &Q Modo de controlo de erros Modo assíncrono sem EC (correcção de erros). Sem armazenamento temporário de dados. ASB desactivado. &Q5 Modo de controlo de erros Selecciona a operação com EC (correcção de erros) do V.42 (necessita de controlo de fluxo) &Q6 Modo de controlo de erros Modo assíncrono com ASB (necessita de controlo de fluxo) &Q8 Modo de controlo de erros Selecciona o protocolo de EC (correcção de erros) alternativo (MNP) &Q9 Modo de controlo de erros Compressão de dados condicional: V.42bis = sim, MNP5 = não. &S0 ou &S Selecção da acção de DSR Sempre activa (por omissão) &S1 Selecção da acção de DSR Segue a especificação da EIA (Activa a seguir ao tom da portadora e até esta ser perdida) &T0 ou &T Teste automático Efectua um teste ao dispositivo na maioria dos modems &U0 ou &U Modulação de código Trellis Activa a TCM do V.32 &U1 Modulação de código Trellis Desactiva a TCM do V.32 &V0 ou &V1 Ver as configuração activas (e normalmente gravadas) dos perfis (ou ATI4 &W0 ou &W Guardar o perfil Na NVRAM (&W0, &W1 etc. para os vários perfis) Algumas configurações não podem ser gravadas. Estas normalmente não são apresentadas no &V ou no ATI4 &Y0 ou &Y Selecciona a configuração carregada no arranque Carrega o perfil 0 (por omissão) &Y1 Selecciona a configuração carregada no arranque Carrega o perfil 1 &Zn=x Reinicialização rápida com carregamento do perfil gravado número n Tenha em atenção que todos os itens a seguir ao &Z na linha de comandos são ignorados
Comandos da Barra Invertida e do Sinal de Percentagem Comandos da Barra Invertida e do Sinal de Percentagem Comando Descrição Comentários \A0 ou \A Tamanho máximo do bloco de MNP em caracteres máximo de 64 caracteres \A1 Tamanho máximo do bloco de MNP em caracteres máximo de 128 caracteres \A2 Tamanho máximo do bloco de MNP em caracteres máximo de 192 caracteres \A3 Tamanho máximo do bloco de MNP em caracteres máximo de 256 caracteres %C0 ou %C Activação/Desactivação da Compressão dos Dados Desactivado %C1 Activação/Desactivação da Compressão dos Dados MNP5 activo %C2 Activação/Desactivação da Compressão dos Dados V.42bis (BTLZ) Activo %C3 Activação/Desactivação da Compressão dos Dados MNP5 & V.42bis (BTLZ) Activado %D0 ou %D Compressão de dados tamanho do dicionário BLTZ igual a 512 %D1 Compressão de dados tamanho do dicionário BLTZ igual a 1024 %D2 Compressão de dados tamanho do dicionário BLTZ igual a 2048 %D3 Compressão de dados tamanho do dicionário BLTZ igual a 4096 %E0 ou %E1 Método de escapes ESCAPE DESACTIVADO %E1 Método de escapes método +++AT (por omissão) %E2 Método de escapes Método AT de Break (quebra) %E3 Método de escapes AMBOS os métodos activos %E4 Método de escapes Desactiva o OK para o +++ %E5 Método de escapes Activa o OK para o +++ \J0 ou \J Ajuste Automático da Taxa do DTE Desactivado \J1 Ajuste Automático da Taxa do DTE A taxa do DTE é ajustada para corresponder à taxa da portadora. \N0 ou \N Tipo de ligação Ligação normal (ver abaixo a definição) \N1 Tipo de ligação Ligação directa \N2 Tipo de ligação Ligação fiável MNP automática \N3 Tipo de ligação Ligação fiável automática \N4 Tipo de ligação Ligação fiável V.42bis com detecção de fase \N5 Tipo de ligação Ligação fiável V.42bis automática com detecção de fase \N6 Tipo de ligação Ligação fiável V.42 com detecção de fase \N7 Tipo de ligação Ligação fiável V.42 automática com detecção de fase
Uma ligação directa é uma ligação simples sem qualquer correcção de erros ou compressão de dados. Neste caso, as velocidades computador-modem e modem-modem deverão ser idênticas. Uma ligação normal usa o controlo de fluxo (quer por 'software' quer por 'hardware') para colocar em 'buffer' os dados a enviar ou a receber, de modo a que o modem possa transmitir os dados a uma taxa diferente da que o computador efectivamente os envia ou recebe. Por exemplo, um computador poderá enviar os dados actuais a 57kbps, mas usando a compressão, o modem envia de facto apenas 28,8kbps. Este é modo usado pela maioria dos modems. Uma ligação fiável é um tipo de ligação normal; se, por alguma razão, a compressão de dados ou a correcção de erros não puderem ser estabelecidas ou mantidas, a ligação suspender-se-á (em resumo, um modem desse tipo garante que todas as ligações são fiáveis, na medida em que suspende a ligação se esta não for fiável). Da mesma forma, uma ligação fiável automática é mais ou menos o mesmo, excepto que o modem tentará negociar de novo a ligação de forma a estabelecer uma ligação fiável. Mais uma vez, este é o modo que a maioria dos modems usa.
Registos-S Registos S Registo Intervalo Predefinição Função S0 0-255 toques 1-2 Responder no número de toque indicado. Não responder se for igual a 0 S1 0-255 toques 0 Se o S0 for maior que 0, este registo conta os toques recebidos. S2 0-127 ASCII 43 + Carácter de escape para o modo de comandos S2 >127 sem ESC S3 0-127 ASCII 13 CR Carácter de fim-de-linha S4 0-127 ASCII 10 LF Carácter de mudança de linha S5 0-32, 127 ASCII 8 BS Carácter de remoção do carácter anterior S6 2-255 segundos 2 Tempo de espera do toque de chamada (para ligações cegas, ver em Xn S7 1-255 segundos 30-60 Tempo de espera para a portadora remota S8 0-255 segundos 2 Tempo de pausa da vírgula usada na chamada S9 1-255 1/10 segundos 6 Tempo de detecção da portadora necessário para o reconhecimento S10 1-255 1/10 segundos 7-14 Tempo entre a perda da portadora e a suspensão S11 50-255 milisegundos 70-95 Duração e intervalo entre os tons na marcação por tons S12 0-255 1/50 segundos 50 Tempo de guarda para a pausa entre as sequências de comandos do +++ S36 Opções de substituição quando a ligação com correcção de erros falha: 0 - Desligar 1 - Estabelecer Ligação Directa 3 - Estabelecer Ligação Normal 4 - Estabelecer uma ligação MNP se possível, caso contrário desligar 5 - Estabelecer uma ligação MNP se possível, caso contrário uma Ligação Directa. 7 - Estabelecer uma ligação MNP se possível, caso contrário uma Ligação Normal. 7 Tratamento da Falha de Negociação S37 1 = 300 bps 5 = 1200 bps 6 = 2400 bps 7 = 1200/75 bps (modo v.23) 8 = 4800 bps 9 = 9600 bps 10 = 12000 bps 11 = 14400 bps 12 = 7200 bps 0 Velocidade da Negociação (Negociação inicial)
Muitos dos modems têm dezenas, até centenas, de registos S, mas só a primeira dúzia ou duas é que são relativamente normalizadas. Elas são alteradas com um comando do tipo ATSn=N, e é analisada com o ATSn? (⪚ o AT S10 S1? iria dizer ao modem para não suspender durante sete segundos se não ouvir o modem de resposta, e devolve o número de vezes que o telefone tocou da última vez).