Ir para conteúdo
  • Cadastre-se

Registradores ATA

Avalie este tópico:


Posts em destaque

Quando programamos diretamente em um disco rígido, uma completa compreensão da interface entre o disco rígido e o computador é necessário.

 

Mapa porta ATA e Descrição

 

Um disco rígido que está em conformidade com ATA/ATAPI terá 9 registros acessíveis ao usuário. Para argumentos bem, terão estes P00 - P08, a função de cada registro é descrita abaixo, observe que alguns registos têm nome e efeitos diferentes dependendo se o cadastro está sendo escrita ou quando os conteúdos estão sendo lidos pelo computador. Além disso, as portas podem conter informações diferentes ou faltando quando os comandos DATA ou NONDATA são enviados. Por exemplo, quando você envia um IDENTIFY_DEVICE (Ech) apenas o comando registro precisa ser definido. Note-se, ainda, que uma vez o comando registro foi escrito, a unidade irá executar o comando imediatamente. Portanto, o procedimento correto é.

 

1.      Aguarde até a unidade para entrar em 'READY' - Status de Registro = 50h

2.      registre P00-P06 com os valores corretos

3.      Definir o comando registro P07 com o código de comando

4.      Aguarde até a unidade estar em estado DRQ - isto significa que os dados estão prontos no buffer

5.      Ler o buffer

6.      passo 4

7.      Processo concluído

 

Se uma condição de erro é encontrado, o bit 1 do status do registro está definido. Mais informações sobre o erro podem ser encontrados consultando o registro de erros. definir os outros registos com os dados corretos, com o comando registro sendo ajustado por último. A unidade irá executar o comando e retornar as informações para o buffer pronto para ser lido 2 bytes de cada vez no P00.

 

Discos Rígidos Registos de Portas

 

Lista de portas e descrição de funções.

 

image.php?di=ARSM 

 

Estado registrar as bandeiras

 

Ao ler o status do registro ele mostra o estado atual da unidade. O estado do registro é de 8 bits e cada bit é descrito abaixo

 

•        BSY (ocupado) - Auto-explicativo - a unidade está "ocupado" com o comando anterior.

•        DRDY (dispositivo pronto) - A unidade está pronta para o próximo comando enquanto o DSC é definido

•        DF (Falha do Dispositivo) - O disco rígido foi desenvolvido uma falta que o impede de concluir o comando.

•        DSC (procurar completar) - o último comando de busca foi concluída com êxito.

•        DRQ (Requerimento de transferência de dados) - Os dados estão no buffer de memória do disco a espera de serem lidos.

•        CORR - Este bit é obsoleto

•        IDX - Este bit é obsoleto)

•        ERR (erro) - Houve um erro ao processar o último comando (veja abaixo)

 

Por exemplo, se o registro lê 80 (50h) este é 01010000 em binário que mostra as bandeiras DRDY e DSC para definir - a unidade está pronta para o próximo comando.

 

Erro ao registrar as bandeiras

 

Quando ocorre um erro, o melhor a fazer é ler o registro ALT_STATUS, se o valor não é o mesmo um erro ocorreu. O código exato pode ser lido a partir do ERROR_REGISTER. O registo é de 8 bits e cada bit é descrito abaixo. o valor devolvido é de quando o bit do registo de erro foi definido.

 

•        BBK - Bad block mark - uma marca bad block(Bloco ruim) foi detectada no campo ID para o setor que está sendo lido.

•        UNC - incorrigível Erro - Um erro foi encontrado que não pode ser corrigido

•        MC - Mídia Alterada (não usado para unidades fixas de disco rígido)

•        IDNF marca ID não encontrado - O campo ID para o setor não pode ser encontrado.

•        MCR - Alteração de midia solicitada (não usado para unidades fixas de disco rígido)

•        ABRT (comando interrompido ou não-reconhecido ) - o último comando foi cancelado por causa de um erro na unidade ou o último comando não foi reconhecido.

•        TNF (via 0 não encontrado) via 0 não foi encontrada durante o comando de recalibração.

•        AMNF (Marca de Endereço não encontrado) a marca do endereço dos dados não foi encontrado após encontrar o campo ID correto

 

Por exemplo: Se o registro de erro lê 04h isto é 00000100 isso é a indicação binária da bandeira ABRT definida - a unidade não reconhece o último comando ou ocorreu um erro ao processar ele.

Para as unidades que suportam o comando CFA, é possível obter informações precisas sobre o erro usando o CFA PEDIDO PRORROGADO DE CÓDIGO DE ERRO.

 

fonte:

Você não tem permissão para ver links. Faça login ou cadastre-se.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Muito bom, uma duvida, esta leitura é feita somente em HEX, ou poderia ser usado uma interface mais amigável?

 

A resposta aos comandos sempre se dara na forma de codigos de retorno. Vc pode usar outros programas para fazer leituras que ja te dao o retorno convertido em resposta de uma tabela. Na forma mais "pura" ou crua, vc manda um comando e tem uma resposta na forma de codigo.

 

Esses comandos vc pode usar atraves do MHDD, desde que utilizando uma interface que converta o serial (do HDD, aqueles pinos do lado do cabo de dados), em TTL para computador.

Link para o comentário
Compartilhar em outros sites

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...