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).