Professional Documents
Culture Documents
*Bolsista FEG/UNESP
INPE
So Jos dos Campos
2005
PROPOSTA PRELIMINAR DE
ARQUITETURA PARA
IMPLEMENTAO DE SOLUES DE
NAVEGAO VIA GPS EM TEMPO
REAL
RELATRIO FINAL DE PROJETO DE INICIAO CIENTFICA
(PIBIC/CNPq/INPE)
Maio de 2005
SUMRIO
Captulo 1 Introduo.......................................................................................................1
Captulo 2 Sistema GPS...................................................................................................3
2.1 Descrio do Sistema GPS.................................................................................3
2.2 Estrutura do Sistema GPS..................................................................................4
2.2.1 Segmento Espacial........................................................................................4
2.2.2 Segmento de Controle..................................................................................5
2.2.3 Segmento Usurio.........................................................................................6
2.3 Sinais dos Satlites GPS.....................................................................................6
2.4 Principais Fontes de Erro...................................................................................9
2.5 Mtodo para Solues de Navegao atravs de GPS.......................................9
2.5.1 Mtodo Geomtrico......................................................................................9
2.5.2 Mtodo Algbrico.......................................................................................10
2.5.3 Mtodo Estatstico......................................................................................13
Captulo 3 Receptor Orbsat 2002 RPL...........................................................................18
3.1 Resultados da primeira fase do projeto............................................................18
3.2 - Especificaes do carto receptor GPS ORB 2002 RLP...............................19
3.3 - Componentes funcionais de um receptor GPS..............................................21
3.4 Descrio geral..............................................................................................22
3.5 Descrio funcional.......................................................................................23
Captulo 4 Interface Serial..............................................................................................30
4.1 Princpios da Comunicao Serial ...............................................................30
4.2 Como Funciona Viso Geral .....................................................................31
4.2.1 Transmisso................................................................................................31
4.2.2 Recepo.....................................................................................................33
4.2.3 Pinos e Fios.................................................................................................33
4.2.4 Cablagem entre portas seriais.....................................................................34
4.2.5 Endereo de E/S e IRQ...............................................................................35
4.2.6 Interrupes................................................................................................35
4.2.7 Fluxos de Dados (velocidades)...................................................................36
4.2.8 Caminho do Fluxos de Dados (buffers)......................................................38
4.3 UARTs.......................................... ...............................................................39
4.4 Formas de Onda de Tenso ..........................................................................41
4.4.1 Tenso para um bit.....................................................................................41
CAPTULO 1
INTRODUO
O sistema NAVSTAR-GPS (NAVigation Satellite Timing and Ranging Global Position
System) um sistema de posicionamento e navegao que utiliza satlites em rbitas
circulares. Seu desenvolvimento controlado pelo Departamento de Defesa dos EUA e
destina-se a satisfazer as exigncias tanto civis quanto militares na determinao precisa de
posio, velocidade e tempo em um sistema de referncia comum e em qualquer lugar sobre
ou acima da superfcie terrestre.
Determinar a rbita de um satlite artificial significa determinar a posio e a velocidade do
satlite, em relao a um referencial inercial, utilizando um conjunto de medidas de
observao do satlite. Estas observaes podem ser obtidas atravs de sistemas de
rastreamento em solo ou de sensores a bordo do veculo espacial. Tcnicas modernas de
observao so atualmente capazes de medir a distncia entre o instrumento e o satlite com a
preciso de centmetros ou at melhor.
Ao longo dos anos, os requisitos das misses ficaram mais rigorosos. Com isto, os mtodos de
determinao de rbita tiveram que se tornar mais precisos, sem aumentar gastos
computacionais e financeiros. Vrios mtodos foram desenvolvidos e aperfeioados com
relao ao modelo do sistema dinmico, s medidas e s tcnicas de estimao.
Determinao de rbita usando sistema de navegao por satlites, como o sistema GPS,
uma atividade que surgiu no comeo dos anos 80. Desenvolvimentos recentes tm mostrado
preciso de poucos centmetros para misses de satlites com altmetro. Um ambiente de
operao de ps-processamento necessrio para atingir esta preciso, com um atraso do
tempo que pode atingir uma semana ou mais (Bertiger et al., 1994).
O INPE (Instituto Nacional de Pesquisas Espaciais) vem determinando rbita de seus satlites
com muito sucesso utilizando estaes de rastreamento terrestres localizadas em pontos
estratgicos pelo Brasil. Mas, a necessidade de desenvolver algoritmos com maior preciso e
baixo custo computacional sempre um desafio constante. A cada dia, novas tcnicas vm
sendo desenvolvidas, como a utilizao do sistema GPS. Porm, este tipo de tecnologia ainda
no foi utilizada pelo INPE ou por qualquer instituto brasileiro.
Assim, este trabalho tem por objetivo investigar, desenvolver, implementar e comparar
solues de navegao possveis atravs do uso de medidas obtidas por receptores GPS, em
ambiente espacial, com computao de solues em tempo real.
CAPTULO 2
SISTEMA GPS
2.1 DESCRIO DO SISTEMA GPS
O sistema GPS (Global Positioning System) um sistema de navegao por satlites
desenvolvido pela Fora Area dos Estados Unidos durante as dcadas de 70 e 80 e colocado
em operao na dcada de 90.
O princpio bsico de funcionamento do GPS determinar a posio e a velocidade
tridimensionais e o tempo com alta preciso. O sistema GPS permite ao receptor determinar
sua posio e tempo em qualquer lugar da superfcie terrestre e a qualquer hora utilizando
dados de apenas quatro satlites. O sistema pode ter um nmero ilimitado de usurios
simultaneamente em qualquer parte do mundo.
O princpio de navegao por satlites se baseia no princpio da triangulao, a qual consiste
na transmisso de sinais e dados das posies dos satlites GPS em relao a um sistema de
coordenadas. O receptor mede o tempo de transmisso do sinal, o que permite calcular a
distncia entre o usurio e os satlites GPS, e decifra os dados. Se o relgio do receptor
estiver sincronizado com os relgios dos satlites GPS, a medida das distncias de trs
diferentes satlites GPS, em posio conhecida, permitiro ao usurio calcular a sua posio.
Se o relgio do receptor no estiver sincronizado com os relgios dos satlites, sero
necessrios quatro satlites GPS, sendo o quarto para determinar o desvio do relgio, uma
quantidade desconhecida. As medidas da distncia com relgio impreciso so chamadas de
pseudo-distncia.
Os receptores GPS recebem continuamente uma srie de dados dos satlites GPS na forma de
bits modulados em sinais. Estes dados so chamados de mensagem de navegao e so
transmitidos nas freqncias L1 (1575.42 MHz) e L2 (1227.6 MHz). Estas informaes so
computadas e controladas pelo segmento de controle e freqncias so usadas para regular o
atraso ionosfrico. Os sinais L1 e L2 transmitem ao usurio as efemrides do satlite, as
correes do relgio do satlite, parmetros atmosfricos, parmetros orbitais de todos os
satlites e outros dados relevantes sobre o sistema em geral.
distncia, porque utiliza dois relgios assincronizados com o tempo, um no satlite (aquele
que governa a gerao do sinal do GPS) e outro no receptor (aquele que governa a gerao da
rplica do cdigo), alm de incluir todos os erros atmosfricos e de propagao do sinal. O
receptor pode determinar este erro de sincronizao junto com as suas coordenadas de posio
e velocidade.
Os observveis bsicos do GPS so a pseudo-distncia do cdigo, que chamamos somente por
pseudo-distncia, e a pseudo-distncia da fase da portadora, que chamamos somente por fase
da portadora.
A equao fundamental da pseudo-distncia, medida em metros, dada por:
onde =
(1)
(2)
CAPTULO 3
MTODOS PARA SOLUES DE NAVEGAO ATRAVS DE GPS
Existem diferentes mtodos programveis para se obter solues de navegao atravs do
GPS. Eles podem ser classificados em:
Mtodos geomtricos
Mtodos algbricos
Mtodos estatsticos.
y 2pi r Ri
= r T r + RiT Ri 2 RiT r ,
(3)
onde r o vetor posio do satlite usurio, Ri o vetor posio do i-simo satlite GPS.
Subtraindo a Eq. (3) de sua mdia aritmtica em i, temos:
y 2pi < y 2pi > RiT Ri < RiT Ri > 2[Ri < Ri >] r ,
T
(4)
(5)
) ]
T
1
... : RiT Ri < RiT Ri > y 2pi < y 2pi > : ...
2
(6)
resulta em:
~
Rr z .
(7)
Uma soluo aproximada deste sistema linear determinado pode ser dada por:
~ ~ ~
r 0 = ( R T R ) 1 R z .
(8)
~
A condio de existncia para a pseudo inversa de R pode ser especificada da seguinte
maneira: um nmero n 4 de satlites GPS no coplanar deve ser observado pelo usurio.
3.2 MTODO ALGBRICO
x n +1 = x n + H 1 (t f ( x n )) ,
(9)
(10)
(11)
Definimos:
A = (a1
a2
a3
...
an )T ,
(12)
i 0 = (1 1 1 ... 1) T ,
(13)
r = (r1
(14)
r2
r3
... rn ) T ,
ri = a i , a i / 2 .
(15)
(16)
(17)
e
v = Br
(18)
(19)
F = u, v 1 ,
(20)
G = v, v .
(21)
(22)
(23)
(24)
tambm o par x1,b1 ou o par x2,b2 resolver o problema GPS para a posio do usurio e
correo do relgio. Para diferenciar a soluo real, substitumos de volta as equaes
definindo as pseudo-distncia originais.
3.3 METODO ESTATSTICO
Minimizar L(r, i ) =
1
ai r ( Ri + i )
2 i
Sujeito a it i = y i2 , i = 1, 2,K, n,
Dados { ( Ri , y i , ai ), i = 1, 2,K , n; n 3}
(25)
(26)
(27)
onde r o vetor posio do satlite usurio (ou alvo); Ri o vetor posio do i-simo satlite
GPS; i o vetor posio relativo do satlite usurio em relao ao i-simo satlite GPS; yi o
pseudo-range (pseudo-distncia) medido a partir do i-simo satlite GPS; e ai um peso
positivo. Assume-se que tanto yi quanto Ri esto corrompidos por erros aleatrios noviesados (unbiased), yi e Ri com covarincias dadas por:
E [(y i ) 2 ] = yi2 ,
E [ Ri t Ri ] = Ri2 I
(28)
1
a * 2 y,
2
Sujeito a it i = ( y pi + y ) 2 , i = 1, 2, K , n,
Dados {a*, ( Ri , y i , ai ), i = 1, 2,K, n; n 4 }
(29)
(30)
(31)
onde ypi a medida de pseudo-range, y uma constante a ser adicionada a ypi para correo
do bias, e a* um peso positivo. Dessa forma assume-se que o pseudo-range pode ser
modelado por:
y pi = y i + b + y i
(32)
(33)
A derivao da soluo pode ser obtida atravs do mtodo dos multiplicadores de Lagrange.
Definindo-se uma funo de custo modificada:
l* = L * +
1
i ai [ it i ( y pi + y ) 2 ] ,
2 i
(34)
(35)
l *
= ai {i i [r ( Ri + i )]}t = 0,
i
(36)
l *
= a * y i ai ( y pi + y ) = 0,
y
i
(37)
a u [ r R
i
( y pi + y )] = 0
(38)
r Ri
= ( y pi + y ) u i ,
1 + i
(39)
a * y = i ai ( y pi +y ) ,
(40)
i =
ui =
| r Ri |
1 .
y pi + y
(41)
i =
| r Ri |
1 .
y pi + y
(42)
Usando o vnculo de normalidade (33) junto com a equao (42) acima, pode-se escrever:
y = ai [ | r Ri | y pi ]
(43)
f (r Ri , y pi ) ai (u i U ) [ r Ri y pi ] = 0 .
i
(44)
Este conjunto de equaes (41), (43) e (44) fornece a soluo fechada para a determinao de
posio do satlite, utilizando medidas GPS viesadas, via mtodo de mnimos quadrados.
Estas equaes podem ser resolvidas numericamente via o mtodo de Newton-Raphson
quando um chute inicial ro est disponvel:
r k +1 = r k F 1 f (r k Ri , y pi ) ,
F=
f
r
(45)
(46)
r Ri , yi
r Ri yi = 0 ,
(47)
(48)
(49)
Para F no singular, ui s no pode estar no mesmo cone; por exemplo, a linha de visada dos
satlites de GPS no pode cruzar a Esfera Celeste em pontos coplanares.
Para precises realsticas no chute inicial, este mtodo converge em poucos passos a um alto
nvel de preciso.
CAPTULO 4
INTERFACE SERIAL
4.1 PRINCPIOS DA COMUNICAO SERIAL
A porta serial convencional (no a nova porta USB) uma porta E/S muito antiga. Quase
todos os PC's as possuem. A especificao comum RS-232 (ou EIA-232). O conector para a
porta serial visto muitas vezes como um ou dois conectores de 9 pinos (em alguns casos 25
pinos) na parte posterior do PC.
O computador precisa saber em qual PORTA SERIAL est conectado o modem para poder
se comunicar com ele. As portas seriais em micros PC so chamadas de COM1, COM2,
COM3 e COM4.
Embora se possam ter quatro portas de comunicao disposio, existem algumas
consideraes a se fazer quanto correta configurao:
Cada porta COM possui uma chamada de interrupo que ela usar para informar ao
micro
que
(Interrupt Request), e so numerados de 0 a 15. Para as portas seriais, existem dois IRQs:
PORTA
IRQ
COM1
IRQ4
COM2
IRQ3
COM3
IRQ4
COM4
IRQ3
Assim sendo, no recomendado ter dois perifricos em duas portas com IRQs iguais, ou
seja, ao mesmo tempo na COM1 e COM3 ou na COM2 e COM4.
Se o modem for INTERNO e se puder configurar gosto a porta serial a usar, devem ser
seguidas algumas recomendaes:
COM1: Use essa porta se seu micro no tiver uma conexo serial j como COM1 (o
COM2: Se seu micro estiver equipado com somente uma porta serial na COM1, e se
voc no j est usando a COM2 para outro equipamento, use essa porta ( a
configurao mais comum e os modems normalmente vm com a COM2 por default).
Alm de poder configurar a porta serial, os modems internos tambm permitem configurar o
IRQ a ser usado, sendo que assim voc pode contornar o problema dos IRQs j exposto.
Mas a porta serial mais do que apenas isso. Inclui a eletrnica associada, que deve produzir
sinais de acordo com a especificao EIA-232. Um pino usado para enviar bytes de dados e
outro para receber bytes de dados. Um outro pino um terra para sinais comum. Os outros
pinos "teis" so usados principalmente para fins de sinalizao com uma tenso negativa
constante significando "desligado", e uma tenso positiva constante significando "ligado".
4.2 - COMO FUNCIONA - VISO GERAL
4.2.1 TRANSMISSO
Transmisso o envio de bytes pela porta serial para fora do computador. O que segue uma
explicao de como funcionam portas seriais mais antigas e obsoletas (com buffers de apenas
1 byte). Quando o computador quiser enviar um byte para fora, a UCP envia o byte pelo bus
dentro do computador ao endereo de E/S da porta serial. A porta serial toma o byte, e o
envia, um bit de cada vez (uma corrente serial de bits) pelo pino de transmisso do conector
serial.
A maior parte do trabalho na porta serial executado pelo chip UART (Universal
Asynchronous Receiver Transmitter) ou similar. O programa acionador de dispositivo,
rodando na UCP, envia um byte ao endereo de E/S serial. Esse byte vai para um buffer de
transmisso de 1 byte na porta serial. Quando uma porta est pronta para transmiti-lo, ela
move esse byte para o registrador de deslocamentos para transmisso e envia-o pelo pino de
transmisso bit a bit. Agora o buffer de transmisso est vazio e um outro byte pode ser nele
colocado enquanto o byte original estiver sendo transmitido do registrador de deslocamentos
para transmisso. Uma vez que um byte foi completamente transmitido, a porta toma um
outro byte de seu buffer e envia-o tambm bit a bit. A porta continua a fazer isto enquanto
houver um novo byte no buffer de transmisso.
Para que no haja quaisquer falhas na transmisso, a UCP deve manter o buffer de
transmisso de 1 byte preenchido. Ela o faz usando interrupes. Assim que um byte foi
movido para fora do buffer de transmisso de 1 byte, e est a ser transmitido do registrador de
deslocamentos para transmisso, o buffer de transmisso est vazio e requer outro byte. A
porta serial ento emite uma interrupo para dizer que est pronta para o prximo byte.
A interrupo na verdade uma tenso aplicada num fio dedicado quela porta serial (embora
em alguns casos, o mesmo fio possa ser compartilhado por mais de uma porta). O acionador
de dispositivos notificado sobre a interrupo e verifica os registradores em endereos para
saber o que aconteceu. Ele descobre que o buffer de transmisso da porta serial est vazio e
esperando por mais um byte. Ento, se houver mais bytes para enviar, o acionador envia o
prximo byte para o endereo de E/S serial. Este prximo byte deve chegar quando o byte
anterior est ainda no registrador de deslocamentos de transmisso e ainda sendo transmitido
bit a bit. Este novo byte vai para o buffer de transmisso mas no pode ser movido para o
registrador de deslocamentos enquanto o byte anterior no tiver sido completamente
transmitido. Quando o ltimo bit tiver sido enviado, as seguintes trs aes ocorrem
simultaneamente:
1.
para transmisso.
2.
3.
4.2.2 RECEPO
Receber bytes por uma porta serial semelhante a envi-los, s que na direo oposta.
tambm acionado por interrupes. Para o tipo obsoleto de porta serial com buffers de um
byte, quando um byte recebido completamente, vai para um buffer de recepo de 1 byte.
Ento a porta d CPU uma interrupo para dizer-lhe que apanhe um byte, de modo que a
porta serial tenha espao para armazenar o byte que est sendo recebido.
4.2.3 PINOS E FIOS
Antigos PCs usavam conectores de 25 pinos, mas somente 9 pinos eram realmente usados,
por isso hoje a maioria dos conectores tm 9 pinos. Cada um dos 9 pinos so ligados a um fio.
Alm dos fios isolados usados para transmitir e receber dados, um outro pino (e fio) o terra
para sinais. A tenso em qualquer fio medida em relao a esse terra. H mais fios ainda que
so para controle (sinalizao) somente. Todos esses sinais poderiam ser enviados atravs de
um nico fio, porm, existe um fio separado dedicado a todo tipo de sinal.
9 Pinos
25Pinos Sigla
Nome
Significado
TxD
Transmitir Dados
RxD
Receber Dados
RTS
Request To Send
CTS
Clear To Send
DSR
20
DCD
22
RI
Ring Indicator
LISTA DOS PINOS da PORTA SERIAL (--> direo para fora do PC)
Alguns (ou todos) esses fios de controle so chamados "linhas de controle de modem". Fios
de controle de modem esto em estado ligado de +12 volts ou em estado desligado de -12
volts. Um desses fios serve para sinalizar ao computador para parar de enviar bytes para fora
da porta serial. Por outro lado, um outro fio sinaliza ao dispositivo acoplado porta serial a
parar de enviar bytes para o computador. Se o dispositivo acoplado um modem, outros fios
podem dizer ao modem para desligar a linha telefnica ou dizer ao computador que uma
conexo foi feita ou que a linha telefnica est chamando (algum est tentando chamar para
dentro).
Somente 3 dos 9 pinos possuem uma atribuio fixa: transmitir, receber e terra para sinal.
Estes so fixados pelo hardware e no se pode alter-los. Mas as outras linhas de sinal so
controladas por software e podem fazer (e significar) quase qualquer coisa. Entretanto elas
podem estar em um de dois estados: positivo (+12 volts) ou negativo (-12 volts). Positivo
"ligado" e negativo "desligado".
4.2.4 CABLAGEM ENTRE PORTAS SERIAIS
Um cabo de uma porta serial sempre se conecta a uma outra porta serial. Um modem ou outro
dispositivo que se conecta a outra porta serial tem uma porta serial nele embutida. Para
modems, o cabo sempre vai direto: pino 2 vai para pino 2, etc. Diz-se que o modem um
DCE (Data Communications Equipment) e que o computador um DTE (Data Terminal
Equipment). Assim, para conectar um DTE a um DCE usa-se um cabo direto.
Para conectar um DTE a outro DTE usa-se um cabo de modem nulo, e existem muitas
maneiras de ligar os fios num tal cabo. Existem boas razes pelas quais funciona assim. Uma
que os sinais so unidirecionais. Se o pino 1 envia um sinal para fora, mas incapaz de
receber qualquer sinal, ento obviamente no podes conect-lo ao pino 1 de um mesmo tipo
de dispositivo. Se isso for feito, ambos enviariam sinais um ao outro mas nenhum deles
seriam capazes de receber qualquer sinal. Existem dois modos de lidar com esta situao. Um
ter dois diferentes tipos de equipamento onde o pino 1 do primeiro tipo envia o sinal ao pino
1 do segundo tipo (o que recebe o sinal). Isto o que ocorre quando um PC (DTE)
conectado a um modem (DCE). Existe um segundo modo de faz-lo sem ter dois diferentes
tipos de equipamento: conectar o pino 1 (um pino que envia) a um pino que recebe no mesmo
equipamento. assim que so conectado 2 PCs um ao outro ou um PC a um terminal (DTE a
DTE). O cabo usado para isto chamado cabo de modem nulo. As designaes dos pinos
seriais foram originalmente definidas para conectar um terminal burro a um modem. O
terminal era um DTE (Data Terminal Equipment - equipamento terminal de dados) e o
modem um DCE (Data Communication Equipment - equipamento de comunicao de dados).
Hoje o PC usualmente um DTE ao invs de um terminal (mas terminais reais podem ainda
ser usados desta forma). Os nomes dos pinos so os mesmos em ambos, DTE e DCE. As
palavras "receber" e "transmitir" so usadas do ponto de vista do PC (DTE). O pino de
Como o computador necessita comunicar-se com cada porta serial, o sistema operacional
deve saber que cada porta serial existe e onde se encontra (seu endereo de E/S). O Sistema
Operacional tambm precisa saber qual fio (nmero IRQ) a porta serial vai usar para solicitar
servio da UCP do computador. A porta serial pede servio enviando uma interrupo neste
fio. Assim, toda porta serial deve armazenar em sua memria no voltil ambos, seu endereo
de E/S e seu nmero IRQ (pedido de interrupo). Para o PCI bus no funciona exatamente
deste jeito, desde que o PCI bus tem seu prprio sistema de interrupes. Mas como o BIOS
ciente do PCI faz com que os chips mapeiem essas interrupes PCI para IRQs, parece que se
comporta exatamente como descrito acima. As portas seriais so rotuladas 0x3F8, 0x3E8, etc.
correspondendo a COM1, COM2 etc. Cada qual desses nomes se refere a uma certa porta
serial fsica e determinado pelo endereo de E/S armazenado no chip de hardware da porta
fsica. Quando um endereo de E/S posto no bus de endereos do computador, um outro fio
energizado. Isto diz tanto memria principal ignorar o endereo quanto a todos os
dispositivos que possuem Endereos de E/S (tal como a porta serial) a escutarem no endereo
para ver se ele corresponde. Se o endereo corresponder, ento o dispositivo de E/S l os
dados no bus de dados.
4.2.6 INTERRUPES
Quando a porta serial pega um byte, ela sinaliza a UCP para buscar o byte enviando um sinal
eltrico conhecido como interrupo a um condutor dedicado. Ela enviar tambm essa
interrupo se houver uma demora inesperada enquanto espera o prximo byte chegar
(conhecido como tempo terminal (timeout)). Cada condutor de interrupo (dentro do
computador) tem um nmero (IRQ) e a porta serial deve saber qual condutor usar para
sinalizar. Por exemplo, 0x3F8 normalmente usa o IRQ nmero 4, conhecido como IRQ4.
Interrupes so emitidas sempre que a porta serial precisa chamar a ateno da UCP.
importante fazer isso em uma forma oportuna, pois o buffer dentro da porta serial contm 1
bytes entrante. Se a UCP no remover tal byte prontamente, ento no haver espao
sobrando para qualquer byte entrante e ocorrer transbordamento, e bytes se perdero. No h
Controle de Fluxo para evitar isto.
Interrupes so tambm emitidas quando a porta serial acabou de enviar todo o byte de seu
pequeno buffer de transmisso para fora do cabo externo. Ento ela tem espao para mais 1
byte saindo. A interrupo para notificar a UCP daquele fato de modo que ela possa por
mais bytes no pequeno buffer de transmisso a ser transmitido. Tambm, quando uma linha
de controle de modem muda de estado, uma interrupo emitida.
4.2.7 FLUXOS DE DADOS (VELOCIDADES)
Dados (bytes representando letras, figuras, etc.) fluem para dentro e para fora da porta serial.
Taxas de fluxo (tais como 56k bits/segundo) so incorretamente chamadas de "velocidades".
importante entender que a velocidade mdia freqentemente menor que a velocidade
especificada. Tempos de espera resultam em menor velocidade mdia. Estas esperas podem
incluir longas esperas de talvez um segundo devido ao Controle de Fluxo. No outro extremo
pode haver esperas muito curtas de vrios micro-segundos entre bytes. Se o dispositivo na
porta serial (tal como um modem) no pode aceitar toda a velocidade da porta serial, ento a
velocidade mdia deve ser reduzida.
Controle de fluxo o poder de parar o fluxo de bytes num fio. Inclui tambm meios de
reiniciar o fluxo sem perda de bytes. O controle de fluxo necessrio em situaes que
necessitam permitir mudanas bruscas na taxa de fluxo.
O sintoma da falta de controle de fluxo a falta de pedaos de dados em arquivos enviados
sem o benefcio do controle de fluxo. Isto ocorre porque quando o transbordo acontece,
usualmente mais do que uns poucos bytes transbordam e so perdidos. Freqentemente
centenas ou mesmo milhares de bytes se perdem, e todos em pedaos contnuos. Pode-se
utilizar controles de fluxos via software ou mesmo por hardware. Para modems, melhor usar
controle de fluxo de "hardware" que usa dois fios dedicados a "controle de modem" para
enviar os sinais de tenso para "parar" e "iniciar". O controle de fluxo de software usa os fios
de receber e transmitir para enviar os sinais de iniciar e parar. Para isso usa os caracteres de
controle ASCII DC1 (iniciar) e DC3 (parar). So apenas inseridos na corrente regular de
dados. O controle de fluxo de software no apenas reage mais lentamente, como tambm no
permite o envio de dados binrios pelo modem pois os dados binrios podem conter os
caracteres de controle DC1 ou DC3 usados no controle de fluxo.
Controle de Fluxo RTS/CTS e DTR/DSR
RTS/CTS e DTR/DSR so controles de fluxo em hardware e funcionam da mesma forma.
Para obter fluxo de controle RTS/CTS, necessita-se selecionar hardware de fluxo de controle.
Isto ativa o hardware de fluxo de controle RTS/CTS no acionador de dispositivos. Ento
quando um DTE (tal como um PC) quiser parar seu fluxo de entrada, nega o RTS. Negar o
"Request To Send" (-12 volts) significa "Solicito NO enviar para mim" (pra o envio).
Quando o PC estiver pronto para mais bytes, ele positiva o RTS (+12 volts) e que o fluxo de
bytes a ele se reinicia. Sinais de fluxo de controle so sempre enviados numa direo oposta
ao fluxo de bytes sendo controlado. Equipamentos DCE (modems) funcionam do mesmo
modo porm envia o sinal de parada para fora do pino CTS. Assim o fluxo de controle
RTS/CTS usa 2 linhas.
Para conexes DCE-DTE as linhas so diretas ento o sinal recebido num pino com mesma
posio relativa que o emissor. RTS-->RTS (PC para modem) e CTS<--CTS (modem para
PC). Para DTE-DTE a conexo tambm fcil de entender. O pino RTS envia e o pino CTS
recebe. Suponha que conectamos dois PCs (PC1 e PC2) atravs de suas portas seriais.
Teremos RTS(PC1)-->CTS(PC2) e CTS(PC1)<--RTS(PC2). Em outras palavras, RTS e CTS
cruzam-se. Tal cabo (com outros sinais cruzados tambm) chamado cabo de "modem nulo".
O que algumas vezes confuso que existe o uso original de RTS, onde significa quase o
oposto da explicao anterior acima. O significado original : solicito te enviar. Esta
solicitao deveria ser enviada de um terminal (ou computador) a um modem que, se
decidisse atender ao pedido, retornaria um CTS positivo de seu pino CTS para o pino CTS do
computador: estar livre para me enviar. Notar que em contraste com o moderno fluxo
bidirecional RTS/CTS, isto apenas protege o fluxo em uma direo: do computador (ou
terminal) ao modem. O uso original parece ser pouco usado hoje em equipamentos modernos
(incluindo modems).
Exatamente como o RTS e CTS, estes pinos so pareados. Para conexes DTE-DTE
provavelmente se cruzam. Existem duas maneiras de usar esses pinos. Uma us-los como
substitutos para controle fluxo RTS/CTS. O pino DTR exatamente como o pino RTS,
enquanto que o pino DSR se comporta como o pino CTS. O fluxo de controle DTR o
mesmo que o fluxo de controle DTR/DSR porm somente unidirecional e o pino DSR no
utilizado. Muitos terminais de texto e algumas impressoras usam este tipo de fluxo de
controle.
O uso normal de DTR e DSR o seguinte: Um dispositivo positivando o DTR diz que est
ativo e pronto para operar. Para um modem, o significado de um sinal DTR do PC depende de
como o modem est configurado. Para enviar um sinal DTR manualmente de um PC usando o
comando que ajusta a velocidade de baud a zero. Negar o DTR algumas vezes chamado de
"desligar" (hanging up) mas isto nem sempre acontece.
4.2.8 CAMINHO DO FLUXO DE DADOS, BUFFERS
Alm do buffers de porta serial de 1 byte (no hardware) h ainda um outro buffer. Estes so
um grande par de buffers (talvez 8k) na memria principal tambm conhecidos como buffers
de porta serial. Quando um programa aplicativo envia bytes porta serial, estes so primeiro
guardados no buffer de porta serial de transmisso na memria principal. O par consiste num
buffer de transmisso e um buffer de recepo para a direo oposta ao fluxo de bytes. O
acionador de dispositivos seriais retira digamos 16 bytes deste buffer de transmisso, um byte
de cada vez, e coloca-os no buffer de transmisso. Uma vez no buffer de transmisso, no h
meio de evitar que sejam transmitidos. Eles so ento transmitidos pela porta serial. Quando o
acionador de dispositivos (sob ordens do controle de fluxo) pra o fluxo de bytes para fora do
computador, o que ele realmente pra o fluxo de bytes para fora do grande buffer de
transmisso na memria principal. Mesmo depois que isto aconteceu e o fluxo serial para fora
parou, um programa aplicativo pode continuar enviando bytes para o buffer de transmisso de
8k at que seja preenchido. Quando estiver preenchido, o programa aplicativo no pode enviar
mais bytes (uma instruo "write" num bloco de programa em C) e o programa aplicativo
temporariamente pra de rodar e espera at que algum espao de buffer se torne disponvel.
Mesmo que este programa pare, o computador no necessariamente para de computar. Ele
pode passar a rodar outros processos enquanto espera por uma parada do controle de fluxo.
4.3 UARTs
disparo) possa ser fixado em 8 ao invs de 14, isto ainda uma grande vantagem sobre os
outros UARTs, que possuem buffers de 1 byte. A UCP recebe menos interrupes, e fica livre
para fazer outras coisas e os dados no so perdidos.
Enquanto a maioria dos PCs possui apenas um 16550 com buffers de 16 bytes, UARTs
melhores possuem buffers ainda maiores. Notar que a interrupo emitida um pouco antes
do buffer ficar cheio (a um "nvel de disparo" de, digamos, 14 bytes para um buffer de 16).
Isto d lugar para alguns bytes mais a serem recebidos durante o tempo em que a interrupo
est para ser atendida. O nvel de disparo pode ser definido para vrios valores permitidos
pelo software do ncleo. Um nvel de disparo de 1 funciona quase como um UART burro
(exceto que tem 15 mais bytes aps emisso da interrupo. Eis uma lista de UARTs. ND o
Nvel de Disparo.
8250, 16450, antigo 16550: Obsoletos com buffer de 1 byte
16550, 16550A, 16c552: buffer de 16 bytes, ND=1,4,8,14
16650: buffer de 32 bytes. Velocidade at 460.8 Kbps
16750: buffer de 64 bytes para enviar, 56 bytes para receber. Velocidade at 921.6 Kbps
Hayes ESP: buffer de 1K-byte
Os obsoletos somente servem para os modems mais lentos que 14,4 kbps (velocidades DTE
at 38400 bps). Para modems modernos necessrio pelo menos um 16550 (que no seja
antigo). Para modems de 56k V.90, eles podem ser bem mais rpidos com um 16650. A
principal vantagem do 16650 o seu buffer maior, pois a velocidade extra no necessria, a
menos que a razo de compresso seja alta.
4.4 FORMAS DE ONDA DE TENSO
4.4.1 TENSO PARA UM BIT
positiva sendo verdadeira, ou "ligado" e negativa sendo falsa, ou "desligada"). Tenso zero
no tem significado lgico (usualmente significa que a unidade est desenergizada). Um
intervalo de tenses permitido. As especificaes dizem que a magnitude de um sinal
transmitido deve ser entre 5 e 15 volts mas no deve nunca exceder 25 volts. Qualquer tenso
recebida abaixo de 3 volts indefinido como sinal (mas alguns terminais aceitam uma tenso
menor como vlida). Vem-se algumas vezes declaraes errneas de que a tenso
normalmente 5 volts (ou mesmo 3 volts), mas usualmente 11 a 12 volts.
4.4.2 SEQUNCIA DE TENSES PARA UM BYTE
O pino de transmisso (TxD) mantido a -12 V (marca) em repouso, quando nada est a ser
enviado. Para iniciar um byte a tenso salta para +12 V (espao) para o "start bit" e
permanece em +12 V pela durao (perodo) de um bit. Em seguida vem o bit de baixa ordem
do byte de dados. Se for um bit zero, nada muda e alinha mantm-se em +12 V por outro
perodo de um bit. Se for um bit um, a tenso salta de +12 para -12 V. Depois disso vem o bit
seguinte, e assim por diante. Finalmente, um bit de paridade pode ser enviado e ento um
"stop bit" de -12 V (marca). A linha permanece a -12 V (inerte) at o prximo "start bit".
Notar que no h retorno para zero volts e portanto no existe um modo simples (exceto por
um sinal de sincronizao) de saber onde um bit termina e o prximo se inicia no caso em que
2 bits consecutivos so da mesma polaridade (ambos zero ou ambos um). Um segundo bit de
parada seria tambem de -12 V, a mesma tenso que o primeiro bit de parada. Como no existe
um sinal para marcar os limites entre os bits, o nico efeito do segundo bit de parada que a
linha deve permanecer em -12 V durante duas vezes o tempo. O receptor no tem meios de
detectar a diferena entre um segundo bit de parada e um tempo mais longo entre bytes.
Assim, a comunicao funciona bem se um lado usa um bit de parada e o outro usa dois bits
de parada, mas usando apenas um obviamente mais rpido. Em raros casos 1 1/2 bits de
parada so usados. Isto significa que a linha mantida a -12 V por 1 1/2 perodos de tempo.
4.4.3 PARIDADE
modo que o nmero de bits num byte, incluindo o de paridade, seja mpar. Se um desses bytes
for corrompido por um bit ter sido alterado, o resultado ser um byte ilegal de paridade par.
Esse erro ser detectado e ser for um byte chegando ao terminal, um smbolo de caractere
errado aparece na tela. Paridade par funciona de modo similar com todos os bytes legais
(incluindo o bit de paridade) tendo um nmero par de bits 1. Durante a inicializao, o
nmero de bits por caractere em geral significa o nmero de bits de dados por byte (7 para o
ASCII original e 8 para vrios conjuntos de caracteres ISO). Uma "marca" um bit 1 e um
"espao" um bit 0. Para paridade de marca, o bit de paridade sempre um bit um. Para
paridade de espao, sempre um bit zero. Paridade de marca ou espao desperdia largura de
banda e deve ser evitada quando vivel. "Sem paridade" significa que paridade no
adicionada. Para terminais que no permitem bytes de 9 bits, deve-se selecionar "sem
paridade" quando usar o conjunto de caracteres de 8 bits pois no existem vaga para o bit de
paridade.
4.4.4 FORMANDO UM BYTE (FRAMING)
Na transmisso serial de bytes via portas EIA-232, o bit de baixa ordem sempre enviado
primeiro. As portas seriais de PCs usam comunicao assncrona onde existe um bit de
partida e um bit de parada para marcar o incio e fim de um byte. Isto chamado "framing"
(emoldurao ou enquadramento) e o byte enquadrado as vezes chamado de "frame"
(quadro). Como resultado, um total de 9, 10, ou 11 bits por byte so enviados, sendo 10 o
mais comum. O termo "8-N-1" significa 8 bits de dados, sem paridade, 1 bit de parada. Isto d
10 bits total quando se conta o bit de partida. Um bit de parada quase universalmente usado.
A 110 bits/s (e algumas vezes a 300 bits/s) dois bits de parada eram antes usados, porm hoje
o segundo bit usado somente em situaes muito incomuns.
4.4.5 ASSNCRONO E SINCRONIZADO
A porta serial EIA-232 conforme implementada nos PCs assncrona, que efetivamente
significa que no existe um sinal de relgio com tiques para marcar quando cada bit
enviado. Existem somente dois estados do fio de transmisso (ou recepo): marca (-12 V) ou
espao (+12 V). No existe um estado para 0 V. Assim, uma seqncia de bits 1 transmitida
por apenas -12 V constante sem marcadores entre os bits. Para o receptor detectar os bits
individuais deve sempre ter um sinal de relgio que esteja em sincronismo com o relgio do
transmissor. Tal relgio geraria um tique em sincronismo com cada bit transmitido (ou
recebido). Para transmisso assncrona, o sincronismo realizado cercando cada byte com um
bit de partida e parada (feito por hardware). O receptor escuta na linha por um bit de partida e
quando detecta um dispara os tiques de seu relgio. Ele usa este tique do relgio para medir o
tempo dos prximos 7, 8 ou 9 bits. Na realidade um pouco mais complexo do que isto, pois
vrias amostras de um bit so freqentemente tomadas e isto requer tiques adicionais. Ento o
bit de parada lido, o relgio pra e o receptor espera pelo prximo bit de partida. Assim,
existe sincronismo durante a recepo de um byte nico, mas no existe sincronismo entre um
byte e o prximo.
CAPTULO 5
RECEPTOR ORBISAT ORB 2002 RLP
O ORB 2002 RLP uma soluo para o receptor de Sistema de Posicionamento Global, cujo
diagrama em blocos mostrado na Figura 7.
O ORB 2002 RLP foi projetado para adquirir e rastrear simultaneamente sinais de 12 satlites
GPS e calcular a posio, a velocidade e o tempo precisos do usurio. A Orbisat oferece um
programa de interface grfica que roda em um IBM-PC, o qual pode ser conectado ao
receptor de GPS atravs de uma ligao RS 232. O receptor ORB 2002 RLP consiste de (vide
Figura 9):
- Correlator
- Mdulo de navegao
- Interface do usurio
O sinal GPS L1, recebido atravs de uma antena ativa, sofre uma converso para uma FI de
baixa freqncia na terminao frontal de RF projetada em torno de um conversor para
baixa freqncia VLSI. Este sinal de FI amostrado a uma taxa pr-definida e ento
quantificado em um conversor A/D no interior da terminao frontal de RF. As amostras
quantificadas do sinal de FI so recebidas serialmente pelo processador de sinais digitais
(DSP) e armazenados em um buffer interno. A converso para baixa freqncia deste sinal de
FI armazenado para banda base, a correlao do sinal com o cdigo local, as malhas de
rastreamento de portadora e cdigo, o clculo da posio, da velocidade e do tempo do
usurio, bem como a interface de comunicao com um PC hospedeiro (PC/host), so todos
implementados no software operando no DSP.
Antena: A seo da antena consiste de:
A antena recebe o sinal L1 de todos os satlites visveis com quase o mesmo ganho atravs de
diagramas de irradiao hemisfricos (vide Figura 9).
O sinal de satlite na antena bastante fraco (-130 dBm) com uma relao sinal/rudo (SNR)
menor que -16 dB. O amplificador de baixo rudo interno compensa a perda de sinal no cabo
de RF. As principais funes da seo da antena GPS so:
- Filtro passa-faixa
- Filtro LC
- Filtro SAW
- Relgio de referncia
um amplificador.
A sada final da terminao frontal de RF consiste de um sinal de FI digitalizado de baixa
freqncia a ser processado no prximo estgio, ou seja, no correlator. A terminao frontal
de RF tambm fornece interfaces de sinal para o BITE (autoteste), sinal de clock para o
correlator e nvel de AGC.
baixa freqncia e realiza medidas do sinal de satlite. As sadas das medidas so enviadas ao
mdulo de navegao que computa a posio, a velocidade e o tempo do usurio. O correlator
consiste de:
- Gerador da portadora
- Gerador de cdigo
- Seleo de satlite
- Gerenciamento de canal
- Suporte de dados
- Interface RS 232
O algoritmo de clculo de posio tal que quando a posio determinada com 3 satlites, a
VDOP 1,0.
Interface do usurio: O software de interface do usurio fornecido com o receptor opera
num IBM-PC conectado ao receptor atravs de uma conexo RS 232. Utilizando o software,
voc pode:
- Modo DGPS
- Configurao PTTI
Memria flash: A memria flash mantm o cdigo GPS e proporciona espao para
armazenagem de dados. O receptor dispe de uma memria flash de 512 kbytes, na qual o
usurio pode armazenar seus dados em 192 kbytes. A memria flash diferente da EEPROM
no modo pelo qual armazena dados. Na memria flash, os dados no podem ser sobrescritos
antes de se apagar um determinado espao de memria.
A organizao da memria flash apresentada abaixo:
A verso atual do ORB 2002 RLP suporta somente a memria flash SST 39F040.
Nas mensagens flash, quando o usurio especifica um endereo 00000, este corresponde ao
endereo 0x40000 na memria flash. Portanto, o endereo especificado as mensagens flash
um endereo relativo. Para sobrescrever dados em um determinado local, o segmento de
dados do usurio deve ser apagado totalmente utilizando a mensagem flash de pagar. Quando
o apagamento flash realizado, o segmento de dados do usurio apagado e o receptor sofre
um reset de software.
Exemplo: Para a mensagem de escrita flash ACFLW,000000,03,12,AB,34*<CS><CR><LF>,
os dados 12,AB,34 so armazenados no local de memria 0x40000 e quando os dados so
lidos pela mensagem de leitura flash $ACFLR,000000,03*<CS><CR><LF>, os dados sero
lidos do local de memria 0x40000 e apresentados ao usurio numa mensagem $ACFLD.
CAPTULO 6
PROGRAMAO DETALHADA
Existem diversas mensagens em diferentes formatos que o receptor ORBISAT pode enviar a
partir de uma mensagem de comando enviada a este receptor pela porta serial. A diferena
deste receptor em relao aos outros tipos existentes no mercado que ele capaz de fornecer
dados brutos dos satlites, isto , aqueles dados que no foram equacionados e que, portanto,
possam ser utilizados pelo usurio para diferentes finalidades (no nosso caso, o
equacionamento sob diferentes algoritmos).
convencionais que a soluo dada para o usurio, porm o aparelho funciona como uma
caixa preta, sem que tenhamos acesso a soluo numrica e o equacionamento dessa soluo.
Como temos a inteno de que no futuro do trabalho a soluo gerada deva sofrer alteraes a
fim de melhorar a soluo, necessitamos ter acesso aos mtodos e algoritmos de soluo de
navegao.
GPS
Mensagem de
navegao de interesse
Receptor GPS
caixa preta
Soluo de Navegao
Para a anlise estamos interessados em duas das mensagens do receptor, as quais ele envia no
formato binrio (customizado) atravs da porta serial, so elas: dados de mensagem sem
tratamento (dados crus) e dados crus de efemride.
DADOS DE MENSAGEM SEM TRATAMENTO OU CRUS
Esta mensagem utilizada para enviar as medidas cruas e a efemride ao host. O modo de
dados crus pode ser ativado utilizando-se a mensagem $ACMCC com B como parmetro. Se
o modo de dados crus for habilitado, dados crus de medida sero transmitidos por default.
Esta mensagem possui o perodo fixo de 1 segundo.
3F3F AF07 UUUU WWWW SSSSSSSS NNNNNNNN R1 R2 R3 R4 R5 R6 R7 R8 R9 R10
R11 R12 CS LF
Descrio fornecida pelo fabricante:
3F3F ? Cabealho da mensagem
AF07 ? Identificao da mensagem
UUUU ? Reservado
WWWW ? 2 bytes do nmero da semana do GPS com MSB transmitido primeiro.
Esta mensagem pode ser ativada utilizando-se a mensagem $ACEPH Esta mensagem ser
gerada sempre que o receptor coletar nova efemride para um satlite. O comando efetivo
somente se o modo de dados crus estiver ativado.
Ao receber esta mensagem, os dados de efemride sero enviados aos satlites para os quais o
receptor tem efemride. Em um segundo, os dados de efemride sero enviados para qualquer
satlite. Os dados para os outros satlites sero enviados nos segundos subseqentes, um aps
o outro.
Por exemplo, se h 10 satlites com efemrides, os dados de efemrides sero enviados
durante 10 segundos. A solicitao de PRNs dos SV depende da disponibilidade de
efemride.
3F3F AF08 UUPP ZYXX WWWW E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12
E13 E14 E15 E16 E17 E18 E19 E20 E21 CS LF
Descrio fornecida pelo fabricante:
3F3F Cabealho da mensagem
AF08 ID da mensagem
UU No utilizado (reservado)
PP PRN do SVZ Os dois bits mais significativos so reservados O prximo bit o bit de
validade. A totalidade dos dados de efemride so vlidos somente se este bit for 1. O bit
menos significativo a flag do intervalo de ajuste, que indica o intervalo de ajuste da curva
utilizada pelo segmento de controle para determinar os parmetros da efemride conforme a
seguir:
0 = 4 horas
1 = maior que 4 horas
Y Preciso da distncia do usurio (URA)
XX Contedo dos dados de efemride (IODE)
WWWW Semana de referncia da efemride
Parmetros da efemride (E1 a E21)
Cada parmetro da efemride possui 6 bytes.
O nmero representado utilizando-se o seguinte formato:
Sinal * (1.mantissa) * 2expoente
O driver de comunicao desenvolvido tem como idia base a recepo de dados crus dos
satlites de GPS a partir do receptor ORBISAT. Isso pode ser feito a partir de uma mensagem
enviada ao receptor pelo software de comunicao com o intuito de comand-lo. Essa
mensagem tem um formato padro, fornecido pelo fabricante do receptor, padro que varia de
fabricante para fabricante. Da por diante somente as mensagens de interesse sero enviadas
pela porta serial.
Uma vez enviadas as mensagens pelo receptor, temos que receb-las e interpret-las conforme
a estrutura descrita pelo fabricante. Pelo estudo da estrutura das mensagens verifica-se que as
mesmas podem ter um tamanho mximo; tambm que cada mensagem possui um cabealho
especfico e que no final da mesma existe um argumento chamado CHECK SUM (CS) que
nada mais do que um argumento onde possvel verificar se todos os dados da mensagem
foram corretamente recebidos (o nmero de bytes enviado pelo receptor conferido).
MENSAGEM
186
Efemride AF08
138
Em verdade, o que o software faz uma espcie de filtragem que consiste em receber tudo o
que chega pela porta serial e comparar com o cabealho da mensagem. Uma vez que o
cabealho corresponde ao esperado, o software d seqncia ao programa, que recebe
armazenando os argumentos da mensagem. Observe que este filtro est sujeito a erros, uma
vez que o cabealho pode, por uma coincidncia bem remota, estar localizado no meio de uma
mensagem no desejada pelo usurio.
Os argumentos da string so armazenados pelo software de maneira que j estejam separados
em blocos, onde cada um desses blocos armazena uma informao de interesse do usurio.
Nota-se pela anlise da estrutura das mensagens recebidas que as dimenses desses blocos so
diferentes e, alm disso, as maneiras de converso para nmeros decimais de cada um desses
blocos binrios feita seguindo regras diferentes fornecidas pelo fabricante.
Os dados so enviados de byte em byte pelo receptor e um problema que surge que eles
somente podem ser lidos na forma decimal, um byte por vez. Quando o dado possui uma
maior faixa (mais de um byte), no conseguimos ter o seu equivalente decimal de maneira
direta. Como soluo, propus a converso desses argumentos do tipo char (1byte) para oito
valores do tipo int (2 bytes), simplesmente convertendo decimal em binrio, com o propsito
de formar um string equivalente de nmeros binrios. A partir destes nmeros inteiros (que
na realidade so binrios), faz-se a converso desejada conforme manda a especificao do
fabricante.
A soluo dada foi desenvolver um algoritmo para cada tipo deste aglomerado de dados.
Assim, foi possvel comparar quatro tipos de dados a serem interpretados, portanto
desenvolveu-se quatro algoritmos diferentes.
Os dados foram classificados da seguinte maneira: dados de 2 bytes, 4 bytes, tipo mantissa e
tipo fracionrio. Os dados de dois e de quatro bytes tm uma converso idntica, porm, por
simplificao e opo do programador foram separados nas suas dimenses, obtendo-se uma
CAPTULO 7
STATUS ATUAL E RESULTADOS
O software se inicia com o setup da comunicao serial, onde alguns parmetros so ajustados
de acordo com o tipo de comunicao que desejamos realizar, isto , de acordo com as
configuraes pr-estipuladas pelo fabricante do equipamento e de qual porta estamos
utilizando para a comunicao.
_outp( COM1 + 1 , 0x00 ); // Turn off interrupts - COM1
_outp( COM1 + 3 , 0x80 );
Foram realizados testes para conferncia destes parmetros a fim de verificar se realmente
estaramos tendo uma comunicao serial. Para isso adaptamos um software que imprimiria
na tela qualquer caractere captado pela porta serial. Aps essa verificao, ilustrada na figura
abaixo, partimos para a fase de envio de comandos pela porta. Sabe-se que a partir de alguns
comandos (mensagens) o receptor alteraria as mensagens que estavam sendo enviadas. A
partir da verificao visual obtemos a certeza de que o setup e a comunicao serial estavam
funcionando corretamente.
??
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
; 1) C!VL5. g $. dL-
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
;0- 0) C x. g4K. dJ -|
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
;\ d ) C . gjU. dE ,
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
??
$ACSTM,AO,0,AS,0,RC,0,EP,0,RF,0,TS,1,*44
Figura 14: Ilustrao dos dados recebidos na comunicao serial.
Os dados que aparecem na tela so os caracteres capturados pela porta serial. Esses dados
esto codificados num cdigo chamado ASCII, podendo ser interpretados, como caracteres
binrios, de um byte a cada caractere mostrado na codificao ASCII. A tabela de caracteres
ASCII contm os valores decimais e hexadecimais dos padres de caracteres estendidos
ASCII (American Standards Committee for Information Interchange). O padro de caracteres
estendido inclui o set de caracteres ASCII e 128 outros caracteres para grficos e desenhos
lineares, freqentemente chamados de IBM set de caracteres. Segue abaixo uma lista com a
codificao ASCII e suas correspondncias em decimal e hexadecimal.
Esses strings de caracteres devem ser decifrados de acordo com o protocolo de mensagem
fornecido pelo fabricante. no protocolo que se classifica o tamanho do dado e seu formato
dentro da string. Por exemplo, existem dados de 2 bytes, 4 bytes, em forma de mantissa e
tambm na forma fracionria. (Ver captulo 6.1 ).
Um nmero binrio de mais de um byte, ou em formato mantissa ou fracionrio, de acordo
com o protocolo do fabricante do receptor no pode ser convertido em decimal de forma
direta. Devido a isso foram formulados os subrotinas que sero responsveis pela converso
de cada uma das maneiras descritas pelo protocolo. Pelo pequeno nmero de diversidade de
maneiras de converso de dados, foram feitas quatro subrotinas independentes, simplificando
o trabalho de programao. As quatro subrotinas, apesar de independentes, so muitos
similares em seu algoritmo.
O algoritmo inicia-se com a transformao de um nmero binrio com n nmeros de bytes em
8n chars que contm os bites dispostos de forma ordenada de maneira que facilite a faze
posterior do algoritmo. Como memria no uma restrio para o programa, o nmero de
alocaes no ser um problema. Esses bites dispostos um a um em cada char sero
transformados novamente no nmero decimal correspondente.
Por exemplo, o nmero 40086 recebido pela porta serial por 2 chars (2 bytes ). No primeiro
byte, recebido o nmero 10011100, ou seja 9C, que representa o nmero decimal 156. O
segundo nmero recebido 10010110, ou seja 96 em hexadecimal, que representa o nmero
decimal 150. Esses dois nmeros foram transformados em 16 grupos, onde cada char dever
receber um valor correspondente ao valor binrio do algarismo. Com esses valores alocados
em 16 espaos (no caso de 2 bytes) fica fcil introduzir um pequeno loop para obter o valor
decimal correspondente da unio dos 2 bytes, ou seja: 40086.
Segue abaixo a ilustrao de uma das subrotinas que fazem parte do programa.
double convertedois(char a[2])
{
int i,j,rest,k;
char z[16];
double c;
k=1;
for(j=0;j<2;j++)
{
for(i=0;i<8;i++) //ajusta o binrio
{
rest=a[j]%2;
z[k*8-1-i]=rest;
a[j]=a[j]/2;
}
k=k+1;
}
c=0;
for(i=0;i<16;i++) //converte para decimal
{
c=c+(pow(2,(15-i))*z[i]);
}
return(c);
}
O software segue com a proposta de trabalho em tempo real. Para isso foi necessrio preparar
uma subrotina com o seguinte algoritmo:
A primeira mensagem de interesse a de dados brutos, cujo cabealho 3F3F AF07, e isso
que deve ser comparado com a mensagem que chega pela porta serial. A rotina que foi
apresentada no algoritmo acima faz exatamente isso, foram feitos quatro loops para verificar
esses quatro primeiros bytes do cabealho da mensagem. A cada valor confirmado procura-se
o prximo valor, caso contrrio reinicia-se o ciclo. Veja o algoritmo codificado abaixo:
d=0;
while(d=!0x07)
{
a=_inp(COM1);
if(a==0x3f)
b=_inp(COM1);
if(b==0x3f)
c=_inp(COM1);
if(c==0xaf)
d=_inp(COM1);
Com o cabealho conferido d-se incio a uma imensa rotina onde os dados que so recebidos
so organizados e divididos em blocos de acordo com o protocolo para que os mesmos
possam ser convertidos em nmeros decimais a partir das subrotinas j mencionadas acima.
Para a anlise dos dados dos satlites escolheu-se um local adequado para a recepo dos
mesmos, um local consideravelmente aberto, em um dia que no estivesse nublado e que ao
menos 4 satlites estivessem disponveis, possibilitando assim uma boa anlise dos resultados.
As mensagens foram coletadas e armazenadas em um arquivo a fim de serem analisadas
offline. As mensagens nos arquivos contm caracteres que no podem ser lidos diretamente
num editor de textos, o que no impede de serem lidas atravs de software. Em primeiro
lugar, as mensagens coletadas foram comparadas com a estrutura da mensagem do fabricante,
em parmetros como dimenses, cabealho, check sum, entre outros.
Ocorreram alguns problemas na interpretao dos dados com a estrutura fornecida pelo
fabricante no manual do receptor, essas diferenas a princpio foram atribudas a bugs, a erros
de protocolos e a inexatido do manual. Consultamos o fabricante e fomos esclarecidos de
que existiam dados nulos (0x00) que eram ignorados pelo software, portanto no apresentados
na impresso dos dados.
Aps a conferncia da estrutura dos dados partiu-se para a fase de converso dos dados
binrios para dados em decimal. Somente os dados da mensagem de dados crus foram
convertidos e armazenados na memria do software. Os dados de efemride, em razo de
serem dados enviados toda vez que h alguma alterao em algum satlite no foram
recolhidos pelo receptor e sim coletados via Internet.
Esses dados foram lanados num software, o qual gerou as pseudodistncias e coordenadas
dos satlites. Enfim essas coordenadas puderam ser inseridas nos algoritmos matemticos,
gerando assim as solues de navegao.
Na tabela seguinte esto relacionados os resultados obtidos na fase anterior do projeto onde a
soluo de navegao obtida a partir de dados que convencionamos estticos, isso pelo fato
dos dados injetados no software serem de referncia, ou seja, terem sido encontrados a partir
de bibliografias e at mesmo na Internet.
Os dados gerados pelo software foram comparados com a soluo dada tambm pelo software
fornecido pelo fabricante, rodado em ambiente Windows. Esses dados esto dispostos na
tabela abaixo:
PRN
X (m)
Y (m)
Z (m)
Pseudorange (m)
06
4321548.098
-16113266.768
-20447051.439
21591553,27
09
14391355.351
-14333548.847
16472675.570
23802395,23
21
5152057.244
-25738225.859
2053865.566
22054198,31
25
-10523829.014
-16836957.880
-17272537.434
24393079,87
Y (m)
Z (m)
Geomtrico
4145553,29
-4173852,58
-2457716,10
Algbrico
4145558,81
-4173857,91
-2457719,23
Estatstico
4145558,81
-4173857,91
-2457719,23
Receptor
4145180,00
-4174294,00
-2457783,00
CAPTULO 8
CONCLUSES E PLANOS FUTUROS
REFERNCIAS BIBLIOGRFICAS
Amato, A.L. Clculo de DOPS para Satlites GPS. Trabalho de Graduao.
FEG/UNESP Guaratinguet 1999.
Interfacing
The
Serial
RS-232
Port
2004
[online]
http://www.beyondlogic.org
Lopes, R. V. F.; Kuga, H. K. ORBEST - A GPS navigation solution algorithm without
DOP analysis. Advances in the Astronautical Sciences, AAS97-108, v. 95, p. 153-166,
1997.
Lopes, R. V. F.; Kuga, H. K. Optimal estimation of local orbit from GPS
measurements. Journal of Guidance, Control and Dynamics, v.11, n.2, p. 186-188, 1988.
Lundberg, J. B.; Minter, C.F.;Yoon, S. Analysis of algebraic solutions to the GPS
navigational equtions. AAS/AIAA Space Flight Mechanics Meeting, Huntsville, AL, Feb.
Orlando, V.; Kuga, H. K. Analysis of an autonomous orbit control concept using GPS.
Revista Brasileira de Cincias Mecnicas, v.21, p. 52-59, 1999.
C.
T.
Computer
Tecnologies
Ltda
2003[online]
http://www.papyrus.co.il/FAQ/gps_applications_market_segments.htm
Senne, E. L. F. Introduo Programao de Computadores Com a Linguagem
C. FEG/ Unesp 2000.