Processo para reconhecimento e utilização do infra-vermelho a partir da porta serial para um processador RCX - H8/300

 

ANÁLISE DE REQUISITOS

 

Implementar um driver para prover a comunicação entre a porta serial do Robô da Lego RCX - Hitachi H8/300 para possibilitar o uso do infra-vermelho para comunicação com um iPaq.

    O driver deve prover os seguintes serviços básicos:

 

ESTUDO DE VIABILIDADE

 

Uma proposta para a implementação de um driver de baixo custo, na qual disponibiliza as principais funções para a comunicação de dados através do dispositivo de infravermelho.

A comunicação é half-duplex.

Taxa de transmissão de dados de 9,6 Kb/s padrão, até 115.2Kb/s;

Portanto este projeto é viável.

 

MODELAGEM DO SISTEMA

 

Relacionamentos: A abstração do SO, inicialmente chamada de "IR_Device" está relacionada diretamente pela abstração Device. Na família Device houve a necessidade da criação de um membro chamado de "IR_Device", que deriva de "Basic_Device" para interagir com os dispositivos de infra-vermelho. 

 

Descrição do Sistema: O sistema consiste em um driver para o robô, para ser usado por uma aplicação de comunicação entre um robô e um iPad, que faça uso da porta de infra vermelho no processador RCX H8/300. Essa aplicação conversa com o hardware através de um protocolo e um driver que é o que deve ser desenvolvido por nós. Esse driver irá receber e enviar dados através da porta de infra vermelho que utiliza a estrutura da porta serial. Através dos dados fornecidos pelo dispositivo, o IR_Device irá tratar das camadas mais baixas de comunicação de dados, para que essa informação seja transmitida de maneira confiável.

Descrição dos Metodos:

Na Classe Uart

get: Le um conjunto de bits da uart e fornece byte a byte para o protocolo de comunicação.

set: Envia para um registrador um byte recebido como parâmetro.

config: Ativa o dispositivo no sistema e atribui uma taxa de transferência ao estabelecer uma conexão.

Na Classe Driver

getinfo: Fornece as informações necessárias para a UART se comunicar com um dispositivo específico, no caso o infra-vermelho.

 

 

Na Classe IR Device

in: Lê bit a bit e trata o conteúdo do registrador informado pela uart. Passando um byte como parâmetro.

out: Envia para a uart o dado (byte) a ser transmitido.

initialize: reseta a uart, inicializando e tentando estabelecer uma comunicação entre os dispositivos.

get_status: retorna o estado do serial device. Se ele está pronto para enviar, receber, idle (pode enviar ou receber) ou busy.

get_baud: retorna a taxa de transferência que está sendo utilizada no momento.

set_baud: atribui um novo valor à taxa de transferência.


 

Links relacionados:

http://www.hitachi-eu.com/hel/ecg/products/micro/8_16bit/h8300h_tiny/3664n/h8_3664_n.html
http://www.cs.brown.edu/~tld/courses/cs148/01/programming/programming.htm
http://www.informatik.hu-berlin.de/~mueller/rt/mindstorm/www.crynwr.com/lego-robotics/
http://www.slewis.com/rcxport/docs/
http://www.javaworld.com/javaworld/javaone00/j1-00-lego.html
http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/nikander/nikander_html/index.html http://www.noga.de/legOS/
http://graphics.stanford.edu/~kekoa/rcx/#Protocol
http://graphics.stanford.edu/~kekoa/rcx/romref.html
http://www.cs.uu.nl/people/markov/lego/rcxcc/index.html
http://www.crynwr.com/lego-robotics/
Documentacao