Trabalho de Integração Software/Hardware

Driver para comunição via ondas infra-vermelhas no iPaq® h3600®, rodando sistema operacional linux

 

Acadêmicos:          Fábio Luís Stange

                                   Islon de Souza Scherer

                                   Thiago Ramos dos Santos

 

Última atualização: 12/04/2003

 

O objetivo do trabalho é a implementação de um driver e um protocolo para possibilitar a comunicação via infra-vermelho entre o iPaq® h3600® e o receptor infra-vermelho do LEGO® Mind-Storm Kit®, com o propósito de salvar o planeta Terra e ganhar um churrascão do Killer-Robot no final do semestre.

 

 

Noções Iniciais

 

O iPaq® h3600® tem seu processamento principal realizado pelo processador StrongArm 1110®, da Intel®. O dispositivo de infra-vermelho, no iPaq®, é acessado através de uma porta serial, cujos registradores de dados, controle e status estão diretamente mapeados no processador. No caso, especial do iPaq h3600®, esta porta é a serial número 2.

Sabendo como mudar corretamente os estados dos registradores acima citados, torna-se simples a realização da tarefa.

 

 

Registradores

 

Os registradores, para acesso da porta serial número 2, se dividem em três sub-grupos: de controle (UART control registers – UTCRs), de dados (UART data registers – UTDR) e de status (UART status registers – UTSRs).

 

            Registradores de controle: São quatro registradores que realizam esta função.

 

Registradores de dados: Existe apenas um para realizar esta função.

 

Registradores de status: É um grupo de dois elementos.

 

Para maiores detalhes sobre os registradores e outros dados do processador, consultar o “SA-1110 Developer’s Manual”, da Intel®, disponível em http://developer.intel.com/design/strong/manuals/27824004.zip.

 

 

Análise do Driver

 

O driver será dividido em dois módulos: um responsável pelo acesso dos registradores para a transmissão e recepção através do dispositivo infra-vermelho, e outro que funcionará como um protocolo de transmissão.

 

 

Antes de prosseguir com as explanações, gostaríamos de deixar BEM CLARO que o modelo acima NÃO é UML, ou seja, as setas não significam que o módulo de acesso ao hardware chama funções do protocolo ou o driver chama funções do programa de usuário. As setas simbolizam apenas o fluxo de dados.

Prosseguindo, daremos um breve esclarecimento sobre o modelo.

Um programa de usuário qualquer pode acessar o driver através de duas funções: uma para enviar dados e outra para receber. No método para enviar dados, o protocolo recebe os dados que o usuário deseja enviar e faz o tratamento necessário para a transmissão (inclui bits de erro, faz quebra de pacotes, etc). Depois de condicionados, os dados são passados para o módulo de acesso ao hardware que providenciará a transmissão efetiva destes. O módulo de acesso ao hardware também deverá possuir duas funções de acesso, porém estas estarão disponíveis somente ao protocolo. Elas são também para o envio e recepção de dados.

 

O protocolo será definido com os membros do outro grupo de transmissão infra-vermelho (LEGO).