You are on page 1of 70

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CINCIAS TECNOLGICAS


CURSO DE ENGENHARIA DE TELECOMUNICAES
PROTTIPO DE UM SISTEMA COLETOR DE DADOS
MICROCONTROLADO CONECTADO A UMA REDE TCP/IP
ANDERSON LUIZ VASQUES
BLUMENAU,
2003
I
ANDERSON LUIZ VASQUES
PROTTIPO DE UM SISTEMA COLETOR DE DADOS
MICROCONTROLADO CONECTADO A UMA REDE TCP/IP
Trabalho de Concluso de Curso
submetido Universidade Regional de
Blumenau para a obteno dos crditos
na disciplina Trabalho de Concluso de
Curso do curso de Engenharia de
Telecomunicaes.
Prof. Francisco Adell Pricas Orientador
BLUMENAU,
2003
II
PROTTIPO DE UM SISTEMA COLETOR DE DADOS
MICROCONTROLADO CONECTADO A UMA REDE TCP/IP
ANDERSON L. VASQUES
ESTE TRABALHO DE CONCLUSO DE CURSO, FOl JUGADO ADEQUADO
PARA OBTENO DOS CRDlTOS, NA DlSClPLlNA DE TRABALHO DE
CONCLUSO DE CURSO OBRlGATRlA PARA A OBTENO DO TlTULO
DE:
ENGENHEIRO DE TELECOMUNICAES
Prof. Francisco Adell Pricas, Dr. Orientador, FURB
Prof. Romeu Hausmann Coordenador do TCC, FURB
BANCA EXAMINADORA
Prof. Fbio Rafael Segundo
Prof. Marcelo Grafulha Vanti
Blumenau, 11 de Novembro de 2003
III
DEDICATRIA
Dedico este trabalho a todos os amigos,
especialmente aqueles que me ajudaram
diretamente na realizao deste.
IV
AGRADECIMENTOS
Deus, pelo seu imenso amor e graa.
minha famlia, que sempre acreditou e apoiou meus ideais.
Aos meus amigos, que compreenderam a importncia deste trabalho.
minha namorada, que abriu mo do tempo que ficamos juntos para
que eu pudesse realizar as pesquisas.
Ao meu orientador, Francisco Adell Pricas que aceitou orientar este
trabalho.
V
RESUMO
O presente trabalho apresenta o desenvolvimento de um prottipo para
coleta e armazenamento de dados utilizando um microcontrolador e
dispositivos de rede Ethernet usando a arquitetura de rede TCP/lP.
VI
ABSTRACT
This work presents the development of a prototype for collecting and
storage data using microprocessor and Ethernet devices running a TCP/lP
network architecture.
VII
SUMRIO
LISTA DE FIGURAS ..................................................................................................................VIII
LISTA DE QUADROS..................................................................................................................IX
LISTA DE TABELAS ...................................................................................................................IX
1 INTRODUO.................................................................................................................... 10
1.1 OBJETlVO ................................ ................................ ................................ ......................... 11
1.1.1 Objetivos Especficos............................................................................................. 11
1.2 JUSTlFlCATlVA ................................ ................................ ................................ ................... 12
2 REDES DE DADOS............................................................................................................ 13
2.1 AS REDES lNDUSTRlAlS ................................ ................................ .............................. 15
2.1.1 DeviceNet............................................................................................................... 16
2.1.2 PROFIBUS............................................................................................................. 19
2.1.3 GPIB....................................................................................................................... 24
2.2 REDE ETHERNET ................................ ................................ ................................ ............... 25
2.2.1 Sinais da camada fsica......................................................................................... 27
2.2.2 Elementos de Interligao ..................................................................................... 27
2.2.3 Quadro Ethernet..................................................................................................... 30
2.2.4 Endereamento...................................................................................................... 31
2.2.5 Protocolos TCP e UDP .......................................................................................... 34
2.2.6 Aplicao................................................................................................................ 37
3 MICROCONTROLADORES............................................................................................... 39
3.1 MlCROCONTROLADORES E REDES ................................ ................................ ...................... 40
4 DESENVOLVIMENTO DO SISTEMA ................................................................................ 41
4.1 REQUlSlTOS DO SlSTEMA ................................ ................................ ................................ .. 41
4.2 ESPEClFlCAO ................................ ................................ ................................ ................ 41
4.2.1 Prottipo................................................................................................................. 41
4.2.2 Mensagens entre o prottipo e o software de aplicao....................................... 44
4.3 lMPLEMENTAO ................................ ................................ ................................ ............... 46
4.3.1 O kit RCM2200....................................................................................................... 46
4.3.2 Hardware................................................................................................................ 49
4.3.3 Software................................................................................................................. 50
4.4 OPERAClONALlDADE DA lMPLEMENTAO ................................ ................................ ........... 65
4.5 TESTES................................ ................................ ................................ ............................. 65
5 CONCLUSO..................................................................................................................... 66
BIBLIOGRAFIA........................................................................................................................... 69
VIII
LISTA DE FIGURAS
FlGURA 1 MODELO DE REFERNClA OSl ................................ ................................ ...................... 14
FlGURA 2 TOPOLOGlA DA REDE DEVlCENET................................ ................................ ................. 17
FlGURA 3 PROTOCOLO CAN DE ACORDO COM O MODELO OSl................................ ...................... 17
FlGURA 4 FRAME DE DADOS DA REDE DEVlCENET ................................ ................................ ........ 18
FlGURA 5 LlGAO MlSTA: BARRAMENTO E RVORE ................................ ................................ ..... 21
FlGURA 6 TOKEN E MESTRE-ESCRAVO ................................ ................................ ......................... 23
FlGURA 7 - TOPOLOGlAS ................................ ................................ ................................ ................ 25
FlGURA 8 DESLOCAMENTO DOS BlTS EM UM MElO FlSlCO AO LONGO DO TEMPO .............................. 27
FlGURA 9 PLACA DE REDE................................ ................................ ................................ ........... 28
FlGURA 10 lNTERLlGAO DE TX (TRANSMlSSOR) COM RX (RECEPTOR) ................................ ..... 29
FlGURA 11 QUADRO DE DADOS ETHERNET................................ ................................ ................... 31
FlGURA 12 AS CLASSES E OS HOSTS................................ ................................ ........................... 33
FlGURA 13 AS CAMADAS DA ARQUlTETURA lNTERNET ................................ ................................ ... 36
FlGURA 14 DlAGRAMA DE BLOCOS DE UM MlCROCONTROLADOR ................................ ................... 40
FlGURA 15 PROCESSO DE CONEXO NO COLETOR................................ ................................ ....... 42
FlGURA 16 LElTURA DO TECLADO, REGlSTRO E ATUALlZAO DO VlSOR................................ ....... 43
FlGURA 17 APLlCAO CLlENTE PARA O COMPUTADOR................................ ................................ 44
FlGURA 18 - FLUXO DAS lNFORMAES ENTRE O COLETOR E A APLlCAO CLlENTE .......................... 45
FlGURA 19 KlT RCM2200................................ ................................ ................................ ........... 46
FlGURA 20 MDULO RCM2200 E SEUS COMPONENTES ................................ .............................. 47
FlGURA 21 CONECTOR DE LlGAO................................ ................................ ............................. 47
FlGURA 22 AMBlENTE DE TRABALHO DO DYNAMlC C ................................ ................................ .... 48
FlGURA 23 MENU DE CONECTlVlDADE DA LlNGUAGEM DELPHl ................................ ....................... 48
FlGURA 24 CONEXO DOS PERlFRlCOS AO MDULO ................................ ................................ .... 49
FlGURA 25 APLlCAO PARA O COMPUTADOR ................................ ................................ .............. 59
FlGURA 26 JANELA DE SOLlClTAO DO ENDEREO lP DO COLETOR................................ .............. 59
FlGURA 27 O MENU "APLlCAO ................................ ................................ ................................ 60
FlGURA 28 FAlXA DE APLlCAO DAS REDES ................................ ................................ ................ 66
IX
LISTA DE QUADROS
QUADRO 1 CONSTANTES NECESSRlAS PARA CONEXO ................................ ............................... 50
QUADRO 2 CONSTANTES DO PROGRAMA ................................ ................................ ...................... 50
QUADRO 3 VARlVElS GLOBAL DO PROGRAMA ................................ ................................ ............. 51
QUADRO 4 AGUARDO DE CONEXO................................ ................................ .............................. 51
QUADRO 5 AGRUPADOR DE CARACTERES ................................ ................................ .................... 52
QUADRO 6 VERlFlCAO DAS lNSTRUES ................................ ................................ .................. 52
QUADRO 7 EXECUO DAS lNSTRUES ................................ ................................ ..................... 53
QUADRO 8 CONTlNUAO DA EXECUO DAS lNSTRUES ................................ .......................... 54
QUADRO 9 MONlTOR DO TECLADO ................................ ................................ ............................... 55
QUADRO 10 MONTAGEM DO CDlGO TECLADO ................................ ................................ ............. 56
QUADRO 11 GRAVAO DOS REGlSTROS ................................ ................................ ..................... 57
QUADRO 12 EXlBlR O CDlGO TECLADO ................................ ................................ ....................... 57
QUADRO 13 GERENTE DO TCP/lP................................ ................................ ............................... 58
QUADRO 14 BOTO CONECTAR................................ ................................ ................................ ... 61
QUADRO 15 EVENTO ONCONECT ................................ ................................ ................................ 61
QUADRO 16 EVENTO ONERROR................................ ................................ ................................ .. 61
QUADRO 17 EVENTO ONREAD ................................ ................................ ................................ .... 62
QUADRO 18 BOTO "STATUS ................................ ................................ ................................ ..... 62
QUADRO 19 BOTO "AJUSTAR DATA ................................ ................................ .......................... 63
QUADRO 20 BOTO "AJUSTAR HORA................................ ................................ .......................... 63
QUADRO 21 BOTO "DESCONECTAR ................................ ................................ .......................... 64
QUADRO 22 BOTO "SAlR................................ ................................ ................................ .......... 64
QUADRO 23 EVENTO ONKEYDOWN................................ ................................ ............................. 64
LISTA DE TABELAS
TABELA 1 COMANDOS ENVlADOS AO COLETOR ................................ ................................ ............. 63
10
1 INTRODUO
A troca de informaes a nvel mundial se tornou uma obsesso. Tudo
o que existe na forma de comunicao hoje teve incio na necessidade das
pessoas compartilharem informaes.
Devemos essa interao das informaes aos sistemas
computacionais que tiveram origem por volta da dcada 60, quando surgia o
teleprocessamento, com a necessidade de ligar usurios distantes a um
computador principal.
Os principais desenvolvedores das tecnologias utilizadas hoje foram os
departamentos de defesas de vrias naes, sempre alavancando o progresso
nas reas da computao e das comunicaes.
O departamento de defesa americano desenvolveu em meados da
dcada de 60 a primeira forma de rede de computadores para fins militares.
Pouco tempo depois a tecnologia foi utilizada para fins comerciais. Essa
primeira rede tinha o nome de ARPA e foi com ela que surgiram os primeiros
protocolos e conceitos de redes utilizados at os dias atuais.
A partir da dcada de 80, os servios e vantagens oferecidos pelas
redes tiveram uma expanso quase que exponencial, onde os conceitos
utilizados eram herdados da tecnologia ARPA que, ao se tornar pblica,
passou a ser chamada de lnternet: uma rede de computadores de alcance
global.
O principal protocolo dessas novas redes hoje conhecido como
TCP/lP. Vrias aplicaes operam baseadas nesse recurso atualmente.
A necessidade do uso de computadores para disponibilizar
informaes em uma rede tem dificultado muitas novas aplicaes
principalmente devido ao elevado custo de um computador.
A evoluo da indstria necessita cada vez mais de processos
informando situaes em tempo real, e nada melhor que isso ocorra atravs de
uma rede local. Este resultado pode ser obtido com a implementao de
sistemas dedicados de baixo custo e que garantam grande confiabilidade
11
durante a operao.
Com a crescente evoluo das redes de computadores cada vez
maior a procura por equipamentos que possam ser ligados a ela para trocar
informaes de maneira rpida e segura.
As primeiras redes foram implementadas de tal maneira que os
computadores conectados a ela pudessem realizar troca de arquivos e
mensagens. Pouco tempo depois j eram utilizadas para concentrar um ponto
de impresso em uma empresa ou escritrio.
Hoje possvel encontrar vrios modelos e tipos de redes, sendo a
mais comum as redes que utilizam como principal protocolo o TCP/lP.
cada vez crescente a necessidade de sistemas inteligentes
conectados diretamente s redes, dispensando o uso de computadores que
demandam de um investimento de certa maneira elevado se comparado ao uso
de sistemas microcontrolados.
Sistemas microcontrolados so atualmente utilizados amplamente em
automao, seja ela industrial ou comercial. cada vez maior a procura por
estes sistemas tendo em vista sua excelente relao custo-benefcio.
1.1 OBJETlVO
Este trabalho servir como base para o desenvolvimento de um coletor
de dados microcontrolado de baixo custo com a capacidade de troca de
informaes via TCP/lP com qualquer computador ligado a uma rede,
utilizando um programa especfico tambm desenvolvido neste trabalho.
1.1.1 Objetivos Especficos
Ser feito um estudo das redes de dados utilizadas na indstria
demonstrando suas estruturas alm do estudo da rede Ethernet com TCP/lP.
O coletor desenvolvido ter um pequeno teclado numrico, um visor de
cristal lquido e uma porta de comunicao Ethernet. Onde registrar as
informaes tecladas, alm de data e hora, e as disponibilizar para acesso
atravs de qualquer computador que faa parte da mesma rede.
12
O programa para computador ser uma interface para efetuar o
download (transferncia dos dados) das informaes armazenadas no coletor,
alm de prover comandos que permitam o ajuste da data, da hora, a limpeza
da memria e o status da memria utilizada.
1.2 JUSTlFlCATlVA
As aplicaes dos sistemas microcontrolados que utilizam TCP/lP so
inmeras das quais se destacam: controle de carto ponto, controle de acesso,
monitorao de processos, monitorao de condies do ambiente, medies
remotas entre outras milhares de aplicaes.
O uso de sistemas dedicados busca um aperfeioamento e uma
melhora na produtividade seja qual for o seguimento com uma economia de at
70% comparada com as solues oferecidas atualmente para a rea industrial.
Com o crescente aumento do nmero dos equipamentos que utilizam
TCP/lP nas indstrias e o barateamento desse recurso, sero necessrias
pessoas com grande conhecimento no desenvolvimentos de sistemas
microcontrolados integrados a redes TCP/lP.
13
2 REDES DE DADOS
A histria da comunicao de dados comeou, timidamente, nos anos
60, quando alguns terminais deixaram o centro de processamento de dados
para serem instalados a distncia e comearam a se comunicar com o
computador principal. Nascia, dessa forma, o sistema de teleprocessamento,
cujo elemento central era o computador que alojava todas as aplicaes e
cuidava do funcionamento dos terminais remotos.
O mundo percebeu, ento, que a tecnologia envolvida na utilizao
remota do computador seria determinante nas dcadas seguintes e que iria
contribuir para o avano de todas as outras atividades humanas. Cada
fabricante, vislumbrando o potencial do novo mercado, investiu no
desenvolvimento de uma tecnologia de teleprocessamento prpria e, com isso,
as redes de teleprocessamento obtiveram um enorme crescimento.
Em 1972 teve incio as atividades da rede de computadores do
departamento de defesa americano, projeto denominado ARPA (Advanced
Research Project Agency), tendo por base o conhecimento e o potencial de
pesquisas das universidades e dos centros de pesquisas norte-americanos.
O projeto ARPA foi pioneiro na criao de protocolos de transporte.
Dentro de seu escopo foi projetado e implementado o n de comutao de
pacotes e foram elaborados mecanismos de controle de fluxo, confiabilidade e
roteamento (CARVALHO, 1994).
O surgimento da lnternet se deu quando o departamento de defesa
interligou alguns de seus computadores a outras redes de computadores dos
campi de pesquisas de universidades e outros centros de tecnologia, para, em
conjunto com estes rgos, trocar informaes com os mestres e cientistas
destes, criando assim uma lnter-Rede (lnter-Net).
No final da dcada de 80, quem entrou na grande rede foram empresas
que passaram a vender e comprar pela lnternet (STARLlN, 1998).
Cada interessado havia definido sua arquitetura de rede (conjunto de
protocolos para comunicao de dados): os fabricantes, as arquiteturas
proprietrias; as operadoras de telecomunicaes, as arquiteturas de redes
14
pblicas; e algumas entidades, como era o caso da ARPA, arquiteturas
especficas para atender suas redes.
A soluo para a padronizao foi encontrada pela lSO (lnternational
Organization for Standardization), sob a proposta de elaborao de um modelo
que viesse a sintetizar, de modo abstrato, o funcionamento de computadores
integrados por redes de dados. Foi elaborado o "Modelo de Referncia para
lnterconexo de Sistemas Abertos (Modelo OSl Open Systems
lnterconnection) com um total de sete camadas funcionais.
As sete camadas do modelo de referncia e sua funcionalidade bsica
so mostradas na Figura 1. A camada mais alta do Modelo de Referncia
oferece um meio para os processos e aplicativos acessarem os recursos de
interconexo com o sistema, enquanto as camadas mais baixas so
responsveis pela transmisso de fluxos de bits pelos meios fsicos de
transmisso. Comeando de baixo para cima, as camadas intermedirias
oferecem nveis crescentes de servio, com cada camada acrescentando ao
servio os servios de uma camada abaixo dela (BOCHENSKl, 1995).
Figura 1 Modelo de Referncia OSl
Camada de ApIicao
Fornece aos usurios finais uma interface para os servios de rede
Camada de Apresentao
Transforma dados para apresentao adequada
Camada de Sesso
Sincroniza conversao fim a fim
Camada de Transporte
Oferece servio fim a fim de qualidade adequada
Camada de Rede
Transmite dados confiveis de um n para o prximo (roteamento)
Camada de enIace
Transmite dados confiveis de um n para o prximo
Camada Fsica
Transmite um fluxo constante de bits atravs de um meio de transmisso fsico
Fonte : Bochenski (1995).
15
A dcada de 80 caracterizou-se pelo grande desenvolvimento de redes
locais de computadores, com vrias topologias, organizaes de
funcionamento, protocolos e padronizaes sendo ofertadas.
A coexistncia das redes de longa distncia com as redes locais abriu
um novo horizonte: a interconexo de redes.
A lnternet, que no propriamente uma rede de computadores, mas
sim um sistema de redes interconectadas, aproveitou as principais aplicaes
do ARPA: o terminal virtual e a transferncia de arquivos. Para gerenci-la foi
criada uma forte estrutura tcnico-organizacional, denominada lAB (lnternet
Activities Board), onde foi elaborada a arquitetura TCP/lP (CARVALHO, 1994).
O TCP/lP (Transmission Control Protocol / lnternet Protocol Protocolo
de Controle de Transmisso / Protocolo da lnternet) se refere ao conjunto de
protocolos utilizados na internet. Ele inclui uma srie de padres que
especificam como os computadores vo se comunicar e cria convenes para
interconectar redes para o roteamento atravs dessas conexes (STARLlN,
1998).
2.1 AS REDES lNDUSTRlAlS
As redes industriais vm cada vez mais sendo implantadas em
sistemas de automao e controle, uma vez que proporcionam diversas
melhorias a esses processos, tais como reduo de custos de implantao e
manuteno, alm de serem capazes de tornar esses processos mais rpidos
e eficientes. Alm disso, um outro fator importante para a disseminao de
redes industriais a crescente distribuio geogrfica, que vem sendo
acentuada nas novas instalaes industriais.
Muitos so os modelos de redes, cada um com suas caractersticas
prprias, e apenas alguns se tornaram populares mundialmente. As mais
conhecidas so a DeviceNet, Profibus e a GPlB.
16
2.1.1 DeviceNet
A rede DeviceNet uma rede de baixo nvel que proporciona
comunicaes utilizando o mesmo meio fsico entre equipamentos desde os
mais simples, como sensores e atuadores, at os mais complexos como
controladores lgicos programveis (CLP's) e microcomputadores.
Possui o protocolo aberto, tendo vrios fornecedores de equipamentos
que adotaram o protocolo. A Open DeviceNet Association, tambm conhecida
como ODVA, uma organizao independente com objetivo de divulgar,
padronizar e difundir a rede DeviceNet, visando o seu crescimento mundial.
Esta rede baseada no protocolo CAN (Controller Area Network),
desenvolvido pela BOSCH nos anos 80, originalmente para aplicao
automobilstica. O protocolo CAN define uma metodologia MAC (Controle de
Acesso ao Meio) e fornece como segurana uma checagem CRC (Verificao
de Redundncia Cclica), que detecta estruturas alteradas e erros, detectados
por outros mecanismos do protocolo. A rede DeviceNet muito verstil, sendo
utilizada em milhares de produtos fornecidos por vrios fabricantes, desde
sensores inteligentes at interfaces homem-mquina (lHM), suportando vrios
tipos de mensagens, fazendo com que a rede trabalhe da maneira mais
inteligente.
O meio fsico da rede DeviceNet utiliza dois pares de fios, um deles
para a comunicao e o outro para alimentao em corrente contnua dos
equipamentos (Figura 2).
Os sinais de comunicao utilizam uma tcnica de tenso diferencial
para reduzir o efeito de induo e rudos eletromagnticos. A alimentao da
corrente contnua, por sua vez, de 24V, o que prov proteo aos
instaladores contra acidentes.
17
Figura 2 Topologia da Rede DeviceNet
A rede DeviceNet pode ter 64 equipamentos ativos, que utilizam o
barramento para se comunicar, endereados de 0 a 63.
A taxa de comunicao a velocidade com que os dados so
transmitidos no barramento da rede, e quanto maior a velocidade, menor o
tempo de varredura da rede, mas em contra partida menor o comprimento
mximo dos cabos. So admitidas como padro trs velocidades: 125 Kbits/s
250 Kbits/s e 500 Kbits/s.
O protocolo CAN, obteve aceitao mundial como um protocolo muito
verstil, alm de ser uma plataforma econmica para a troca de dados
aplicveis em sistemas mveis, mquinas, equipamentos tcnicos e
automao industrial.
O protocolo CAN pode ser mostrado de acordo com o modelo OSl,
como ilustra a Figura 3.
Figura 3 Protocolo CAN de acordo com o modelo OSl
Fonte: http://www.dca.ufrn.br/~affonso
Microcomputador
Dispositivo 1 Dispositivo 2 Dispositivo 3
Alimentao 24Vdc
Barramento de Dados CAN
ReIerncia de Tenso (GND)
18
A camada 1 responsvel por funes como codificao, tempo de bit
e sincronizao de bit. A camada 2, por sua vez, responsvel por funes
como arbitrao, frame de mensagem e segurana de dados, validao de
mensagens, deteco e sinalizao de erros e limites de falhas. A camada de
conexo de dados da DeviceNet totalmente definida pela especificao CAN
e implementao por seus chips. So definidos dois estados lgicos: recessivo
(lgica 1) e dominante (lgica 0). Qualquer n pode iniciar uma transmisso
levando o barramento do estado recessivo, (condio sem comunicao), para
o estado dominante (incio do frame).
O protocolo DeviceNet utiliza somente o Data Frame, apresentado na
Figura 4.
Figura 4 Frame de dados da rede DeviceNet
Fonte: http://www.dca.ufrn.br/~affonso
A rede DeviceNet caracterizada principalmente pela simplicidade na
sua operao, mas esta simplicidade pode representar problemas quando h
uma expanso de dispositivos conectadas a ela, pois s suporta o limite de 64
dispositivos o que muitas vezes inviabiliza muitas das ampliaes necessrias
no meio industrial.
A DeviceNet est amplamente suscetvel a falhas e erros por no
possuir mecanismos dinmicos de retransmisso de quadros danificados por
distrbios nos meios fsicos de transmisso, o que ocasiona paradas e
sinalizaes de falha no sistema sem que as mesmas tenham realmente
acontecido (GUEDES, 2001).
19
2.1.2 PROFlBUS
O PROFlBUS um padro aberto de rede de comunicao industrial,
utilizado em um amplo espectro de aplicaes em automao da manufatura,
de processos e predial. Sua total independncia de fabricantes e sua
padronizao so garantidas pelas normas EN50170 e EN50254 da European
Fielbus Standard.
Com o PROFlBUS, dispositivos de diferentes fabricantes podem
comunicar-se sem a necessidade de qualquer adaptao na interface. O
PROFlBUS pode ser usado tanto em aplicaes com transmisso de dados em
alta velocidade como em tarefas complexas e extensas de comunicao.
A Organizao de Usurios PROFlBUS est atualmente trabalhando
na implementao de conceitos universais para integrao vertical baseada em
TCP/lP.
O PROFlBUS baseado em padres reconhecidos
internacionalmente, sendo sua arquitetura de protocolo orientada ao modelo de
referncia OSl (Open System Interconnection) conforme o padro internacional
lSO 7498. Neste modelo, a camada 1 (nvel fsico) define as caractersticas
fsicas de transmisso, a camada 2 (data link layer) define o protocolo de
acesso ao meio e a camada 7 (application layer) define as funes de
aplicao.
A configurao do sistema PROFlBUS dividida basicamente em trs
perfis. De acordo com a aplicao, pode-se utilizar como meio de transmisso
(Physical Profile) qualquer um dos seguintes padres: RS-485, lEC 61158-2 ou
Fibra tica.
O padro RS-485 a tecnologia de transmisso mais freqentemente
encontrada no PROFlBUS. Sua aplicao inclui todas as reas nas quais uma
alta taxa de transmisso aliada a uma instalao simples e barata so
necessrias. Um par tranado de cobre blindado (shield) com um nico par
condutor o suficiente neste caso. A tecnologia de transmisso RS 485
muito fcil de manusear. A topologia por sua vez permite a adio e remoo
de estaes, bem como uma colocao em funcionamento do tipo passo a
passo, sem afetar outras estaes (SElXAS FlLHO, 2002).
20
Taxas de transmisso entre 9,6 kbps e 12 Mbps podem ser
selecionadas, porm uma nica taxa de transmisso deve ser selecionada para
todos dispositivos no barramento quando o sistema for inicializado.
Todos os dispositivos so ligados a uma estrutura de tipo barramento
linear. At 32 estaes mestres ou escravos podem ser conectados a um nico
segmento. O barramento terminado por um terminador ativo do barramento
no incio e fim de cada segmento.
Para assegurar uma operao livre de erros, ambas as terminaes do
barramento devem estar sempre ativas. Normalmente estes terminadores
encontram-se nos prprios conectores de barramento ou nos dispositivos de
campo, acessveis atravs de um interruptor.
No caso em que mais que 32 estaes necessitem ser conectadas ou
no caso que a distncia total entre as estaes ultrapasse um determinado
limite, devem ser utilizados repetidores para se interconectar diferentes
segmentos do barramento.
O comprimento mximo do cabo depende da velocidade de
transmisso.
A Transmisso sncrona em conformidade norma lEC 61158-2, com
uma taxa de transmisso definida em 21,25 Kbps, veio atender aos requisitos
das indstrias qumicas e petroqumicas. Permite, alm de segurana
intrnseca, que os dispositivos de campo sejam energizados pelo prprio
barramento. As opes e limites do PROFlBUS com tecnologia de transmisso
lEC61158-2 para uso em reas potencialmente explosivas so definidas pelo
modelo FlSCO (Fieldbus Intrinsically Safe Concept).
O modelo FlSCO foi desenvolvido pelo instituto alemo PTB -
Physikalisch Technische Bundesanstalt (lnstituto Tecnolgico de Fsica) e
hoje internacionalmente reconhecida como o modelo bsico para barramentos
em reas classificadas. A transmisso baseada nos seguintes princpios, e
freqentemente referida como H1:
- cada segmento possui somente uma fonte de energia, a fonte de
alimentao;
- a alimentao no fornecida ao barramento enquanto uma
estao est enviando;
21
- os dispositivos de campo consomem uma corrente bsica constante
quando em estado de repouso;
- uma terminao passiva de linha necessria, em ambos fins da
linha principal do barramento;
- topologia linear, rvore e estrela so permitidas. No caso da
modulao, supe-se que uma corrente bsica de pelo menos 10
mA seja consumida por cada dispositivo no barramento. Atravs da
energizao do barramento, esta corrente alimenta os dispositivos
de campo. Os sinais de comunicao so ento gerados pelo
dispositivo que os envia, por modulao de +/- 9 mA, sobre a
corrente bsica.
Na rede PROFlBUS-PA so possveis estruturas tanto de rvore como
de linha, ou uma combinao dos dois como mostra a Figura 5.
Figura 5 Ligao Mista: barramento e rvore
Fonte: http://www.cpdee.ufmg.br/~seixas
Nas ligaes, uma derivao no deve ultrapassar 30m em aplicaes
intrinsecamente seguras. Ambas as terminaes do cabo principal do
barramento devem ser equipadas com um terminador passivo de linha, que
consiste num elemento resistor capacitor (RC) em srie (SElXAS FlLHO,
2002).
A Fibra tica pode ser utilizada pelo PROFlBUS para aplicaes em
ambientes com alta interferncia electromagntica ou mesmo com o objetivo de
aumentar o comprimento mximo dos cabos com taxas de transmisso
elevadas.
22
Vrios tipos de fibra esto disponveis, com diferentes caractersticas,
tais como, distncia mxima, preo e aplicao. Os segmentos PROFlBUS que
utilizam fibra normalmente so em estrela ou em anel.
Alguns fabricantes de componentes para fibra tica permitem o uso de
enlaces redundantes com meios fsico alternativo, cuja transferncia
automtica quando ocorre uma falha. Diversos fabricantes oferecem
conectores especiais com conversor integrado de sinais RS485 para fibra tica
e vice-versa. lsto proporciona um mtodo muito simples de troca entre
transmisso RS 485 e fibra tica dentro de um sistema.
A poltica de acesso ao meio hbrida: token e mestre-escravo.
Dispositivos mestres determinam a comunicao de dados no barramento. Um
mestre pode enviar mensagens, sem uma requisio externa, sempre que
possuir o direito de acesso ao barramento (o token). Os mestres tambm so
chamados de estaes ativas no protocolo PROFlBUS. Os dispositivos
escravos so dispositivos remotos (de periferia), tais como mdulos de l/O,
vlvulas, acionamentos de velocidade varivel e transdutores. Os escravos so
ligados na fase de configurao aos respectivos mestres. Eles no tm direito
de acesso ao barramento e s podem enviar mensagens ao mestre ou
reconhecer mensagens recebidas quando solicitados. Os escravos tambm
so chamados estaes passivas. Os perfis de comunicao PROFlBUS
(PROFIBUS Communication Profiles) usam um protocolo uniforme de acesso
ao meio. Este protocolo implementado pela camada 2 do modelo de
referncia da OSl. lsto inclui tambm a segurana de dados e a manipulao
do protocolos de transmisso e mensagens.
No PROFlBUS a camada 2 chamada Fieldbus Data Link (FDL). O
Controle de Acesso ao Meio (MAC) especifica o procedimento quando uma
estao tem a permisso para transmitir dados. O MAC deve assegurar que
uma nica estao tem direito de transmitir dados em um determinado
momento (SElXAS FlLHO, 2002).
Portanto, o protocolo PROFlBUS de acesso ao barramento (como
mostra a Figura 6) inclui o procedimento de passagem do Token, que
utilizado pelas estaes ativas da rede (mestres) para comunicar-se uns com
os outros, e o procedimento de mestre-escravo que usado por estaes
23
ativas para se comunicarem com as estaes passivas (escravos).
Figura 6 Token e mestre-escravo
Fonte: http://www.cpdee.ufmg.br/~seixas
O procedimento de passagem do Token garante que o direito de
acesso ao barramento (o token) designado a cada mestre dentro de um
intervalo preciso de tempo. A mensagem de Token, um telegrama especial
para passar direitos de acesso de um mestre ao prximo mestre, deve ser
distribuda no anel lgico de Token pelo menos uma vez a todos mestres
dentro de um intervalo de tempo mximo denominado tempo de rotao do
Token. O procedimento mestre-escravo permite ao mestre que no momento
possui o Token acessar seus prprios escravos. O mestre pode enviar
mensagens aos escravos ou ler mensagens dos escravos.
A Figura 6 mostra uma configurao PROFlBUS com trs estaes
ativas (mestres) e sete estaes passivas (escravos). Os trs mestres formam
um anel lgico de Token.
Na fase de inicializao do sistema, a tarefa do controle de acesso
(MAC) das estaes ativas captar esta designao lgica e estabelecer o
anel de Token. Na fase operacional, estaes ativas defeituosas ou fora de
operao so removidas do anel e novas estaes ativas podem ser
adicionadas ao anel. Alm disto, o controle de acesso assegura que o Token
seja passado de um mestre ao prximo em ordem crescente de endereos. O
tempo de reteno do Token por um mestre depende do tempo de rotao de
24
Token configurado. A deteco de defeitos no meio de transmisso ou no
receptor, assim como deteco de erros de endereamento (por ex.: endereos
duplicados) ou na passagem do Token (por ex.: mltiplos tokens ou perda do
Token) so funes do Controle de Acesso ao Meio (MAC) do PROFlBUS.
Outra tarefa importante de camada 2 a segurana de dados. A
camada 2 do PROFlBUS formata frames que asseguram a alta integridade de
dados com o uso de telegramas especiais delimitadores de incio/fim, bit de
paridade e byte de verificao, conforme norma lEC 870-5-1.
A camada 2 do PROFlBUS opera num modo denominado "sem
conexo. Alm de transmisso de dados ponto-a-ponto, proporciona tambm
comunicaes do tipo multi-ponto (Broadcast e Multicast).
O PROFlBUS apresenta dois modelos de comunicaes, o PROFlBUS
DP que responsvel pela comunicao em anel entre CLP's (Controladores
Lgicos Programveis) e os computadores e o PROFlBUS-PA que
responsvel pela comunicao atravs de uma topologia tipo rvore (SElXAS
FlLHO, 2002).
2.1.3 GPlB
A rede GPlB (General-Purpose lnterface Bus) visa a interligao de
dispositivos de medio para a troca de informaes. Sua tecnologia foi
desenvolvida pela empresa HP (Hewlett Packard).
Devido ao uso extenso acabou tornando-se norma que citada como a
norma lEEE 488.1 / lEC 625-1.
O seu meio de transmisso composto por um barramento com 16
linhas onde 8 linhas so para a transmisso de dados, 3 linhas para o controle
e 5 linhas para o gerenciamento dos dispositivos.
Cada barramento pode conter no mximo 15 estaes as quais no
podem se estender a um raio maior do que 20 metros.
Sua capacidade de transmisso atinge 1Mbps o que lhe garante uma
performance considervel, pois utiliza um barramento paralelo diminuindo o
tempo de enfileiramento das informaes.
25
Possui uma estrutura mestre/escravo onde a estao mestre controla o
acesso dos escravos ao meio de comunicao.
2.2 REDE ETHERNET
A rede Ethernet passou por uma longa evoluo nos ltimos anos se
constituindo na rede de melhor faixa e desempenho para uma variada gama de
aplicaes. A Ethernet foi inicialmente concebida para ser uma rede de
barramento com conectores do tipo vampiro (piercing), mas este sistema
mostrou-se de baixa praticidade. A evoluo se deu na direo de uma
topologia lgica tipo estrela e topologia fsica barramento com cabos de par
tranado (Figura 7).
Figura 7 - Topologias
Fonte: CCNA Cisco Semestre 1
As velocidades da rede cresceram de 10 Mbps para 100 Mbps e agora
alcanam 1 Gbps (lEEE802.3z ou Gigabit Ethernet). A Gigabit Ethernet disputa
com a tecnologia ATM o direito de ser a espinha dorsal (backbone) das redes
nas empresas. A outra evoluo se d no uso de concentradores (hubs)
inteligentes com capacidade de comutao de mensagens e no uso de cabos
full duplex em substituio aos cabos half duplex mais comumente utilizados.
26
lsto faz com que a rede se torne determinstica e reduzem a probabilidade de
coliso de dados (COMER, 1999).
Em 1980 a lntel, Digital e Xerox publicaram o padro DlX V1.0,
estabelecendo a velocidade de 10 Mbps. Em 1985 o comit lEEE 802.3
publicou a norma lEEE802.3: Carrier Sense Multiple access with Collision
Detection (CSMA/CD) Access Method and Physical Layer Specifications. Esta
tecnologia chamada 802.3 CSMA/CD e no Ethernet. Na verdade os frames
definidos pela norma 802.3 CSMA/CD e DlX V2.0 so diferentes.
As diferenas entre as LANs Ethernet e lEEE 802.3 so sutis. A
Ethernet fornece servios correspondentes s camadas 1 e 2 do modelo de
referncia OSl. O lEEE 802.3 especifica a camada fsica, a camada 1, e a parte
do acesso por canal da camada de enlace, a camada 2, mas no define um
protocolo de Controle Lgico de Enlace (Logical Link Control). Ambas as LANs
Ethernet e lEEE 802.3 so implementadas atravs de hardware. Normalmente,
a parte fsica desses protocolos uma placa de interface em um computador
host ou um conjunto de circuitos em um placa de circuitos principal no
computador (SElXAS FlLHO, 2000).
A Ethernet uma tecnologia de barramento de difuso com mtodo de
entrega sem garantia e controle de acesso distribudo.
O esquema de acesso Ethernet o CSMA/CD onde vrios
equipamentos podem acessar simultaneamente e cada um deles estabelece se
o meio est livre para iniciar a transmisso.
Quando um transceptor inicia uma transmisso nem todos os locais da
rede recebem o sinal simultaneamente, deste modo possvel que dois
transceptores transmitam ao mesmo tempo ocorrendo ento uma coliso que
a sobreposio do sinais.
A Ethernet lida com as colises de forma simples. Cada transceptor
quando transmite, verifica se algum sinal incomum interfere na transmisso, se
acontecer, o transceptor para de transmitir. Aps ocorrer uma coliso os
transceptores aguardam um tempo aleatrio e reiniciam a transmisso, fazendo
com que um dispositivo transmita antes que o outro (COMER, 1999).
27
2.2.1 Sinais da camada fsica
O componente bsico de informaes o dgito binrio 1, conhecido
como bit ou pulso. Um bit, em um meio eltrico, o sinal eltrico que
corresponde ao binrio 0 ou ao binrio 1. lsso pode ser to simples quanto 0
volts para o binrio 0 e +5 volts para o binrio 1, ou uma codificao mais
complexa (Figura 8).
Figura 8 Deslocamento dos bits em um meio fsico ao longo do tempo
Fonte: CCNA Cisco Semestre 1
A codificao utilizada nas redes atualmente chamada Manchester e
mais complexa que o simples envio de impulsos para representar zeros e
uns, mas mais imune a rudo e melhor para se manter sincronizada. Na
codificao Manchester, a tenso no fio de cobre, o brilho do LED ou do laser
na fibra ptica ou a energia da onda eletromagntica em redes sem fio
codificam os bits como transies. A codificao Manchester resulta no 1
sendo codificado como transio baixa para alta e o 0 sendo codificado como
transio alta para baixa. Em decorrncia de 0s e 1s resultarem em transio
para o sinal, o relgio pode ser eficazmente recuperado no receptor.
2.2.2 Elementos de lnterligao
Os elementos necessrios para a formao de uma rede vo de uma
simples placa de rede a componentes como switches e roteadores que
possuem uma srie de recursos de processamento inteligente.
28
As placas de rede (Figura 9) so consideradas dispositivos da camada
2 porque cada placa de rede no mundo inteiro transporta um cdigo exclusivo,
chamado endereo de Controle de Acesso ao Meio (MAC - Media Access
Control). Esse endereo usado para controlar as comunicaes de dados do
computador na rede. Como o nome sugere, a placa de rede controla o acesso
do computador ao meio fsico.
Figura 9 Placa de Rede
Fonte: CCNA Cisco Semestre 1
O comprimento mximo do cabo de par tranado em uma rede de
100 metros (aproximadamente 333 ps). Se precisarmos estender a rede alm
desse limite, devemos adicionar um dispositivo rede. Esse dispositivo
chamado de repetidor e faz parte da camada 1 do modelo OSl.
O dispositivo capaz de interligar vrias placas de rede e que pertence
ao nvel 1 do modelo OSl o Hub. A finalidade de um hub gerar os sinais da
rede novamente e os retemporizar. lsso feito no nvel de bit para um grande
nmero de hosts (terminais) (por exemplo, 4, 8 ou mesmo 24), usando um
processo conhecido como concentrao.
O hub possui mecanismos que fazem a interligao dos elementos
transmissores de um terminal com todos os outros receptores dos terminais
ligados a ele (Figura 10).
29
Figura 10 lnterligao de TX (Transmissor) com RX (Receptor)
Fonte: CCNA Cisco Semestre 1
A comutao uma tecnologia que alivia o congestionamento nas LANs
Ethernet, reduzindo o trfego e aumentando a largura de banda. Os switches
(seletores), tambm conhecidos como switches LAN, freqentemente
substituem os hubs compartilhados e trabalham com infra-estruturas de cabo
existentes para garantir que sejam instalados com o mnimo de interrupo nas
redes existentes.
Hoje, nas comunicaes de dados, todos os equipamentos de comutao
e roteamento executam duas operaes bsicas:
N comutao de quadros de dados - o processo pelo qual um quadro
recebido em um meio de entrada e depois transmitido a um meio de
sada;
N manuteno das operaes de comutao - os switches criam e
mantm tabelas de comutao e procuram loops (laos cclicos). Os
roteadores criam e mantm as tabelas de roteamento e de servio.
Como as bridges (pontes), os switches conectam os segmentos da LAN,
usam uma tabela de endereos MAC a fim de determinar o segmento para
onde um datagrama precisa ser transmitido e reduzem o trfego. Os switches
operam em velocidades muito mais altas que as bridges e podem suportar
novas funcionalidades, como LANs virtuais (COMER, 1999).
Um switch Ethernet tem muitas vantagens, como permitir que vrios
usurios se comuniquem paralelamente atravs do uso de circuitos virtuais
internos e de segmentos de rede dedicados em um ambiente livre de colises.
30
lsso maximiza a largura de banda disponvel em um meio compartilhado. Outra
vantagem que mudar para um ambiente de LAN comutada muito
econmico porque o cabeamento e o hardware existentes podem ser usados
mais de uma vez. Por ltimo, os administradores da rede tm grande
flexibilidade em gerenciamento de rede atravs da eficcia do switch e do
software (programa) para configurar a LAN.
A ligao entre redes feita atravs de roteadores onde so mais
avanados que as bridges tpicas. Uma bridge passiva (transparente) na
camada de rede e opera na camada de enlace. Um roteador opera na camada
de rede e baseia todas as suas decises de encaminhamento no endereo do
protocolo da camada 3. O roteador faz isso examinando o endereo da rede
(camada de rede) de destino no pacote de dados e procurando na sua tabela
de roteamento as instrues de encaminhamento. Os roteadores criam o nvel
mais alto de segmentao devido s suas habilidades em fazer determinaes
exatas sobre para onde o pacote de dados deve ser enviado.
Em decorrncia dos roteadores executarem mais funes que as
bridges, eles operam em uma taxa de latncia (atraso) mais alta. Os roteadores
devem examinar os pacotes a fim de determinar o melhor caminho para
encaminh-los aos seus destinos. lnevitavelmente, esse processo leva tempo e
introduz a latncia.
2.2.3 Quadro Ethernet
A Ethernet deve ser considerada uma conexo no nvel do enlace dos
dados entre mquinas. Desse modo, faz sentido observar as informaes
transmitidas como um quadro. Os quadros da Ethernet possuem vrios
comprimentos, sendo que no h nenhum inferior a 64 octetos (Bytes) ou
superior a 1518 octetos (cabealho, informaes e CRC (Cyclic Redundancy
Check)). Como em todas as redes de comutao de pacotes, cada quadro da
Ethernet contm um campo com o endereo de seu destinatrio (Figura 11).
Alm de identificar a origem e o destino, cada quadro transmitido
atravs da Ethernet possui um prembulo, um campo de tipo, um campo de
informaes, e um CRC (COMER,1999).
31
Figura 11 Quadro de dados Ethernet
Prembulo
Endereamento
de Destino
Endereamento
de Origem
Tipo de
Quadro
Dados do
Usurio
CRC
8 octetos 6 octetos 6 octetos 2 octetos
64 - 1518
octetos
4 octetos
Fonte: COMER, 1999
2.2.4 Endereamento
A camada de rede responsvel pela navegao dos dados atravs da
rede e tem por funo encontrar o melhor caminho dentro da mesma. O
esquema de endereamento da camada de rede usado pelos dispositivos
para determinar o destino dos dados medida que eles se movem pela rede.
A Ethernet um meio de transmisso de broadcast. lsso significa que
todos os dispositivos de uma rede podem ver todos os dados que passam
pelos meios da rede. Entretanto, nem todos os dispositivos da rede
processaro os dados. Apenas os dispositivos cujos endereos MAC e lP
coincidam com os endereos MAC e lP de destino, carregados pelos dados,
copiaro os dados.
Os protocolos que suportam a camada de rede usam um esquema de
endereamento hierrquico que permite que endereos exclusivos atravessem
os limites das redes, tendo, juntamente com isso, um mtodo para encontrar
um caminho para os dados trafegarem entre as redes. E os endereos MAC
usam um esquema de endereamento contnuo que torna difcil localizar os
dispositivos em outras redes.
Os esquemas de endereamento hierrquico permitem que as
informaes atravessem uma internetwork, juntamente com um mtodo para
encontrar o destino de modo eficiente. A rede de telefone um exemplo do uso
de endereamento hierrquico. O sistema telefnico usa um cdigo de rea
que designa uma rea geogrfica para a primeira parada das chamadas (salto).
Os trs dgitos seguintes representam a troca local (segundo salto). Os dgitos
32
finais representam o telefone de destino individual (o que o salto final).
O endereamento ocorre na camada de rede. As analogias anteriores
de um endereo de rede incluem as primeiras partes (o cdigo de rea e os
primeiros trs dgitos) de um nmero de telefone. Os dgitos restantes (os
ltimos quatro) de um nmero de telefone informam ao equipamento da
companhia telefnica que nmero de telefone especfico discar. lsso se
assemelha funo da parte do host de um endereo. A parte do host informa
ao roteador a que dispositivo especfico um pacote deve ser entregue.
Cada dispositivo que faz parte da camada 2 ou 3 do modelo OSl possui
um endereo MAC pode ser comparado ao seu nome e o endereo de rede ao
seu endereo postal, pois nico e exclusivo em cada porta de conexo do
dispositivo.
Juntamente com o endereo MAC da camada 2, o lnternet Protocol (lP)
a implementao mais popular de um esquema de endereamento de rede
(camada 3) hierrquico. O lP o protocolo de rede que a lnternet usa.
medida que as informaes fluem pelas camadas do modelo OSl, os dados
so encapsulados em cada camada. Na camada de rede, os dados so
encapsulados dentro de pacotes (tambm conhecidos como datagramas). O lP
determina a forma do cabealho lP do pacote (que inclui o endereamento e
outras informaes de controle) mas no se relaciona com os dados reais:
aceita qualquer coisa que passada pelas camadas superiores.
Os endereos MAC so atribudos aos dispositivos assim que eles so
fabricados, sendo o controle pela numerao realizado atravs de rgos
internacionais (STARLlN, 1998).
O endereo MAC representado por 6 bytes (64 bits) agrupados em 6
grupos de 2 algarismos hexadecimais cada. Um exemplo : 00-00-0c-12-34-56
onde os trs primeiros grupos representam os fabricantes e os demais a
numerao escolhida pelo fabricante.
Os endereos lP so formados por 4 bytes (32 Bits) e podem ser
atribudos dentro de uma rede de forma dinmica (com um servidor tipo
Dynamic Host Configuration Protocol (DHCP)) ou de forma manual.
So representados por 4 grupos de valores que vo de 0 a 255
separados por ponto. Um exemplo : 198.162.5.4 .
33
O nmero de rede de um endereo lP identifica a rede qual um
dispositivo est conectado. A parte do host de um endereo lP identifica o
dispositivo especfico nessa rede. Como os endereos lP consistem em quatro
octetos separados por pontos, um, dois ou trs desses octetos esquerda
podem ser usados para identificar o nmero de rede. De forma semelhante, at
trs desses octetos direita podem ser usados para identificar a parte do host
de um edereo lP.
Existem trs classes de endereos lP que uma organizao pode
receber do American Registry for lnternet Numbers (ARlN) (ou do lSP da
organizao). Elas so classe A, B e C como mostra a Figura 12. O ARlN
reserva, agora, os endereos de classe A para governos por todo o mundo
(embora algumas grandes empresas, como, por exemplo, a Hewlett Packard,
tenham recebido um no passado) e de classe B para empresas de mdio porte.
A todos os outros requerentes so atribudos endereos de classe C.
Figura 12 As Classes e os Hosts
Fonte: CCNA Cisco Semestre 1
A classe de rede comumente utilizada em pequenas redes o de
classe C onde todos os endereos lP usam os primeiros 24 bits para identificar
a parte da rede no endereo. Apenas o ltimo octeto de um endereo lP de
classe C pode ser usado para a parte do host do endereo. Todas as redes
que usam um endereo lP de classe C podem ter atribudos a ela at 2
8
- 2, ou
seja, 254 endereos lP possveis para os dispositivos conectados rede
simultaneamente.
34
Os hosts em uma rede podem apenas se comunicar diretamente com
os dispositivos que tenham a mesma lD de rede. Pode ser que eles
compartilhem o mesmo segmento fsico, mas se eles tiverem nmeros de
redes diferentes, eles normalmente no podero se comunicar um com o outro,
a menos que haja outro dispositivo que possa fazer uma conexo entre as
redes (STARLlN, 1998).
Dois endereos lP's so reservados em um segmento de rede, o
endereo de rede e o de broadcast, por isso sempre o nmero de hosts da
classe C ser de 2
8
- 2. O endereo de rede serve para o encaminhamento e o
de broadcast serve para enviar mensagens a todos os dispositivos presentes
no mesmo segmento de rede.
Para se determinar a que rede pertence um determinado lP, faz-se uso
de um argumento chamado mscara de sub-rede, a qual realiza uma operao
de lgica AND entre o endereo e a mscara programada. Um exemplo o lP
192.168.5.4 e a mscara 255.255.255.0: a rede que dever ser alcanada
neste caso 192.168.5.0 .
2.2.5 Protocolos TCP e UDP
O objetivo do TCP oferecer aos seus usurios um servio de
transferncia confivel de dados, implementando mecanismos de recuperao
de dados perdidos, danificados ou recebidos fora de seqncia e minimizando
o atraso de trnsito para transmisso de dados.
O TCP um protocolo fim a fim, orientado conexo. Reside
imediatamente acima do protocolo lP (lnternet Protocol), conforme mostra a
Figura 13, que prov o servio de transferncia de segmentos de dados de
tamanho varivel, inseridos em datagramas lP. A camada lP realiza a
fragmentao e a remontagem dos segmentos TCP, operaes necessrias ao
transporte e entrega de dados atravs de mltiplas redes e gateways de
interconexo, utilizando informaes sobre procedncia, nvel de segurana e
fragmentao realizada sobre os segmentos TCP.
O servio TCP oferece um servio de alta confiabilidade camada de
aplicao, podendo ser usado em qualquer tipo de rede.
35
As principais funes desempenhadas pelo TCP so (CARVALHO,
1994):
N transferncia dos dados: os dados da aplicao so acomodados
em mensagens de tamanho varivel, transferidas em modo full-
duplex;
N transferncia de dados urgentes: os dados urgentes (por
exemplo, informaes de controle) so transferidos com indicativo
de urgncia, tendo precedncia sobre as demais;
N estabeIecimento e Iiberao de conexo: antes de iniciar
qualquer tipo de transferncia de dados estabelecida uma
conexo lgica, liberada apenas ao final da fase da transferncia de
dados. Tanto o estabelecimento como a liberao de uma conexo
TCP so realizadas utilizando mecanismo de Handshake
(solicitao e confirmao) de 3 vias;
N muItipIexao: dados de vrias aplicaes so multiplexados pelo
TCP para serem entregues ao lP para transmisso; no destino
ocorre a demulplexao para entrega dos dados s respectivas
aplicaes;
N segmentao: as mensagens entregues ao TCP podem ser
segmentadas. Cada segmento deve compor um datagrama lP e
possuir um nmero de identificao, que possibilita a posterior
recomposio da mensagem original no destino;
N controIe de fIuxo: utilizando mecanismo de controle de fluxo
baseado no princpio de janelas deslizantes de tamanho varivel, o
TCP envia vrios segmentos ao destino, mesmo antes de receber
um reconhecimento positivo ou negativo, adaptando-se diferena
de velocidade existente entre os dois sistemas envolvidos;
N controIe de erros: os segmentos so numerados para que possam
ser ordenados e entregues na seqncia correta aplicao de
destino. Alm disso, incorporado ao cabealho o checksum (soma
de verificao), usado para verificar a correo dos dados que
compe todo o segmento recebido;
36
N precedncia e segurana: nveis de precedncia e de segurana
podem ser estabelecidos pela aplicao para tratamento dos dados
durante o processo de comunicao.
Figura 13 As camadas da arquitetura lnternet
Aplicaes
TCP
lP
Sub-Rede de Comunicaes
Fonte: CARVALHO, 1994
Para organizar as informaes entre as diversas aplicaes, o TCP
utiliza um nmero de porta de protocolo que um inteiro de 16 bits. Uma
conexo para ser realizada, precisa definir um ponto terminal que ser
composto pelo nmero lP e pela porta da aplicao e isso passar a constituir
um socket (COMER, 1999).
Um socket pode ser considerado um ponto de referncia para o qual as
mensagens podem ser enviadas e recebidas, sendo necessrio um par de
sockets para identificar uma conexo entre dois processos aplicativos
(CARVALHO, 1994).
Sobre a camada lP, atua tambm um outro protocolo chamado UDP
(User Datagram Protocol), que fornece um servio de transmisso sem
conexo, no confivel, usando o lP para transportar mensagens entre
mquinas. Usa o lP para transportar mensagens, porm acrescenta uma certa
habilidade de distinguir entre mltiplos destinos em um certo host (COMER,
1999).
O UDP um protocolo que no oferece meios que permitam garantir
uma transferncia de dados confivel, uma vez que no implementa
mecanismos de reconhecimento, de seqnciao nem de controle de fluxo
das mensagens trocadas entre dois sistemas.
A responsabilidade de verificar a coerncia da mensagem recebida fica
por conta da aplicao que pode de maneira bastante satisfatria elaborar
mecanismos de controle (CARVALHO, 1994).
37
A maioria dos sistemas de computador permite que mltiplos
programas aplicativos sejam rodados simultneamente. O UDP faz a distino
entre os mltiplos processos em uma determinada mquina, permitindo que
transmissores e receptores acrescentem dois nmeros inteiros de 16 bits,
chamados nmeros de porta de protocolo, a cada mensagem UDP. Os
nmeros de porta identificam a origem e o destino.
Algumas portas so padronizadas, como por exemplo a porta 69 que
exclusiva para o servio de transferncia de arquivo TFTP e para aplicaes
diversas devem ser utilizadas portas com valores acima de 255.
2.2.6 Aplicao
No contexto do modelo de referncia OSl, a camada de aplicao
(camada 7) suporta o componente de comunicao de uma aplicao. A
camada de aplicao responsvel por:
N identificar e estabelecer a disponibilidade de parceiros que se
pretenda ter na comunicao;
N sincronizar as aplicaes cooperativas;
N estabelecer acordos sobre procedimentos na recuperao de erros;
N controlar a integridade dos dados.
A camada de aplicao a camada do modelo OSl mais prxima do
sistema final. lsso determina se existem recursos suficientes para a
comunicao entre sistemas. Sem a camada de aplicao, no haveria
nenhum suporte comunicao de rede. A camada de aplicao no fornece
servios a nenhuma outra camada do modelo OSl. Ela fornece sim, servios a
processos de aplicao que esto fora da extenso do modelo OSl. Exemplos
desses processos de aplicao incluem programas de planilhas, programas de
processamento de textos e programas de terminais bancrios. Alm disso, a
camada de aplicao fornece uma interface direta para o restante do modelo
OSl usando aplicaes de rede (por exemplo, navegador, correio eletrnico,
FTP, Telnet) ou uma interface indireta usando aplicaes stand alone (por
38
exemplo, processadores de texto, planilhas, gerenciadores de apresentaes)
com um redirecionador de rede (CARVALHO, 1994).
A maioria das aplicaes que trabalham em um ambiente em rede so
classificadas como aplicaes cliente-servidor.
O lado do cliente est localizado no computador local e o solicitador
dos servios. O lado do servidor localiza-se em um computador remoto e
fornece servios em resposta s solicitaes do cliente.
Uma aplicao cliente-servidor trabalha repetindo constantemente a
seguinte rotina em loop: solicitao do cliente, resposta do servidor; solicitao
do cliente, resposta do servidor, etc. (CARVALHO, 1994).
39
3 MICROCONTROLADORES
Com o desenvolvimento dos microprocessadores em larga escala em
1972, o equipamento (hardware) analgico foi sendo substitudo pelo digital.
Todos os tipos de controladores tambm foram sendo substitudos pela
tecnologia digital. J o trabalho do computador, atuando como supervisor de
um processo, fornece referncias operacionais para a instrumentao
analgica. No final dos anos 60 chegaram os microcomputadores, mquinas
mais baratas e mais adequadas s indstrias de pequeno e mdio portes. O
aumento da produo caracterizado pelo aumento da confiabilidade e pela
flexibilizao introduzida com a progressiva padronizao de linguagens de
programao desenvolvidas para os computadores conhecidas como software
de programao (SlLVElRA e SANTOS, 2002).
Um microcontrolador um circuito integrado capaz de realizar toda a
parte aritmtica e de controle de um computador. uma poderosa ferramenta
para o uso em aplicaes seqenciais de alta complexidade (POBLET et al,
1981).
Basicamente, um microcontrolador um componente que possui todos
os perifricos dos microprocessadores comuns embutidos em uma s pastilha,
facilitando assim o desenvolvimento de sistemas pequenos e baratos, embora
complexos e sofisticados.
Conforme afirma Silva Jnior (1997), os microcontroladores costumam
apresentar em um nico mdulo memria de dados e programa, canal serial,
temporizadores, interfaces para displays, memria EEPROM, PWM e muitos
outros recursos.
A maioria dos microcontroladores existentes no mercado tem sua
estrutura interna de memria de dados e programas baseados na arquitetura
Von Neumann (Figura 14), que prev um nico bus (via) de comunicao entre
memria e CPU (SlLVA JNlOR, 1997).
40
Figura 14 Diagrama de Blocos de um Microcontrolador
Fonte: Silva Jnior, 1997
A seqncia de trabalho de um microprocessador se resume em ler
uma instruo, ler a operao e executar a instruo.
3.1 MlCROCONTROLADORES E REDES
O trfego de informaes entre computadores no mundo todo, por meio
de uma rede de comunicao de dados faz com que a informao seja
conhecida rapidamente por meio de um grfico, texto, relatrio ou de uma
simples instruo de caracteres que modifica e atua em um parque industrial
inteiro, manipulando variveis de controle nos mais diferentes nveis. Com os
avanos da tecnologia da informao, possvel monitorar, supervisionar,
tomar decises em funo da anlise crtica de dados obtidos graficamente e
atuar sobre o futuro de uma indstria de maneira eficiente, rpida e segura,
permitindo assim uma maior coerncia estratgica de seu gerenciamento. A
informao torna-se enfim o insumo da nova indstria (SlLVElRA e SANTOS,
2002).
PORTAS
I/O
UNIDADE
ARITIMETICA
E LOGICA
V
I
A
I
N
T
E
R
N
A
ROM
PERIEERICOS
RAM
41
4 DESENVOLVIMENTO DO SISTEMA
4.1 REQUlSlTOS DO SlSTEMA
Com a crescente demanda de equipamentos que utilizem a rede
Ethenet para a troca de informaes entre os processos e as bases de dados,
sugere-se neste trabalho um coletor de dados que armazena at quatro dgitos
de um cdigo e armazena a hora e data da insero do registro.
O prottipo tem capacidade para at 3500 registros que devem ser
descarregados via rede Ethernet.
O prottipo possui um pequeno teclado com 12 teclas das quais 10
teclas so nmeros de 0 a 9 e uma tecla com funo de ENTER e outra tecla
com a funo CANCELA para abortar caso seja digitado algum nmero errado.
Os nmeros teclados devero ser exibidos em um visor de cristal
lquido (LCD).
Em funcionamento, o prottipo dever aguardar tanto a conexo TCP
quanto os nmeros digitados no teclado, alm de exibir constantemente a hora,
a data e o status de conexo no visor.
Alm do prottipo desenvolveu-se um aplicativo especfico para facilitar
a transferncia dos dados do terminal para um computador para que possam
ser futuramente processados.
4.2 ESPEClFlCAO
4.2.1 Prottipo
O prottipo tem por funo coletar uma seqncia de at 4 nmeros,
digitados no seu teclado, armazenar a hora e a data em que este registro foi
inserido e proporcionar uma conectividade TCP/lP para que se possa efetuar o
download das informaes atravs de um aplicativo tipo TELNET (terminal
virtual) ou pelo aplicativo especfico. As funes do coletor devem operar de
forma paralela, ou seja, mesmo transferindo informaes, este deve poder
armazenar um novo registro.
42
A Figura 15 demonstra a estrutura de funcionamento do prottipo no
que diz respeito ao processo de conexo e transferncia de informaes
atravs da rede Ethernet.
Figura 15 Processo de Conexo no Coletor
A Figura 16 apresenta o processo para leitura do teclado e atualizao
do visor.
43
Figura 16 Leitura do Teclado, Registro e Atualizao do Visor
A aplicao para o computador (cliente) tem a finalidade de prover uma
interface de fcil utilizao para a transferncia das informaes do coletor
(servidor) para o computador, onde cada boto resultar em um comando. A
estrutura da aplicao exibida na Figura 17.
44
Figura 17 Aplicao Cliente Para o Computador
4.2.2 Mensagens entre o prottipo e o software de aplicao
Durante a conexo entre o hardware coletor de dados (servidor) e a
aplicao para computador (cliente), so trocadas mensagens que
representam funes e que devem retornar algum tipo de resposta tambm no
formato de mensagem.
Esta troca de mensagens formam o protocolo de aplicao.
Aps cada comando executado com sucesso no coletor de dados,
enviada a resposta "+OK para a aplicao cliente no computador.
45
Abaixo esto as mensagens do coletor de dados:
1. LlSTA esta funo faz a listagem dos registros armazenados no
coletor;
2. STATUS esta funo exibe o nmero de bytes utilizados pelos
registros contidos no coletor;
3. LlMPA esta funo apaga os registros contidos na memria do
coletor;
4. SAlR esta funo finaliza a conexo com o coletor de dados;
5. AJUSTA DATA esta funo seguida da data no formato DDMMAA
proporciona o ajuste da data do coletor onde, DD o dia formado
por dois dgitos, o MM o ms formado por dois dgitos e AA o
ano tambm formado por dois dgitos;
6. AJUSTA HORA - esta funo seguida do horrio no formato
HHMMSS proporciona o ajuste das horas do coletor onde, HH so
as horas formado por dois dgitos, MM so os minutos formado por
dois dgitos e SS so os segundos tambm formado por dois
dgitos.
As funes listadas podem ser enviadas por uma aplicao TELNET
presente na grande maioria dos computadores.
O fluxo das informaes entre o coletor e a aplicao cliente acontece
conforme mostra a Figura 18.
Figura 18 - Fluxo das informaes entre o coletor e a aplicao cliente
APLICATIVO
CLIENTE
COLETOR
SERVIDOR
Solicitao de
Conexo
Envio do comando
Encerramento da
conexo
OK
Resposta e OK
Desconexo
46
4.3 lMPLEMENTAO
Para o desenvolvimento foi escolhido o kit RCM2200 produzido pelas
empresas Z-World e Rabbit Semiconductor, ambas dos Estados Unidos.
4.3.1 O kit RCM2200
O kit RCM2200 composto por um mdulo programvel RCM2200, o
qual utiliza um processador Rabbit 2000
TM
com clock de 22.1 Mhz, 256 Kb de
memria flash, 128 Kb de SRAM, interface ethernet e portas seriais, alm de
entradas e sadas digitais.
O kit ainda contm uma placa prottipo que possui conectores de
alimentao, regulador de tenso, bateria de backup para a memria SRAM,
um relgio de tempo real, alm de rea de soldagem para os perifricos.
Para programao, o kit vem com um ambiente de desenvolvimento
Dynamic C com bibliotecas para TCP/lP, um cabo serial para programao,
fonte de alimentao de 9V, manual de iniciao e documentao em CD. A
Figura 19 demonstra o kit de desenvolvimento RCM2200.
Figura 19 Kit RCM2200
Fonte: www.rabbitsemiconductor.com
O mdulo RCM2200 possui vrios perifricos que so mostrados na
Figura 20.
47
Figura 20 Mdulo RCM2200 e Seus Componentes
Fonte: www.rabbitsemiconductor.com
Na parte inferior do Kit, localiza-se o circuito integrado responsvel pela
conectividade com a rede Ethernet (um RTL8119AS produzido pela RealTek
TM
)
e tambm o circuito integrado da memria RAM com 128Kb de capacidade.
Para a ligao de perifricos, o mdulo dispe de um conector onde
cada pino, possui uma funo especfica, como mostra a Figura 21.
Figura 21 Conector de Ligao
Fonte: www.rabbitsemiconductor.com
Para a programao do mdulo, o kit prov um ambiente de
desenvolvimento chamado Dynamic C, que composto por uma srie de
bibliotecas e funes capazes de realizar toda a gerncia da pilha de
protocolos TCP/lP, alm de um editor para o programa, um compilador e um
mecanismo de transferncia do programa compilado para o mdulo com a
possibilidade de fazer depurao em tempo de execuo.
Porta
Ethernet
10Base-T
Microcontrolador Rabbit 2000
Memoria Elash de 256K
Conector serial
para programao
Conector para
ligao de
periIericos
Indicadores de
link e atividade
48
A Figura 22 ilustra o ambiente de trabalho do software Dynamic C com
um programa em desenvolvimento.
Figura 22 Ambiente de Trabalho do Dynamic C
Para o desenvolvimento do aplicativo cliente que fica em um
computador, foi utilizada a linguagem de programao Delphi, a qual possui
inmeros recursos de acesso aos servios TCP/lP. Na Figura 23 exibido o
menu com as funes de conectividade da linguagem Delphi.
Figura 23 Menu de conectividade da linguagem Delphi
Objeto para criao de um socket em uma aplicao cliente.
49
4.3.2 Hardware
O sistema composto pelo mdulo RCM2000, sua placa prottipo, por
um teclado com 12 teclas, um visor de cristal lquido com 20 caracteres por
linha e 4 linhas alm de uma fonte de alimentao 9VDC.
O mdulo programvel RCM2000 responsvel pela interpretao dos
sinais do teclado e por escrever as mensagens no visor, alm de fornecer total
conectividade com a rede Ethernet.
O teclado um arranjo de chaves push-button com diodos de maneira
a fornecer um sinal binrio formado por quatro bits representando o nmero da
tecla pressionada e mais um bit que fornece a informao de que existe uma
tecla sendo pressionada.
O visor de cristal lquido tipo LCD, que funciona atravs de um
barramento de dados de 8 bits e mais 3 bits de controle. Um protocolo
especfico, faz com que os caracteres sejam visualizados. Este protocolo
fornecido junto com o Dynamic C. A Figura 24 mostra as conexes do mdulo
com o teclado e o visor:
Figura 24 Conexo dos perifricos ao mdulo
50
4.3.3 Software
Foram desenvolvido dois softwares distintos. O primeiro o software
que opera no mdulo RCM2200, o qual desenvolvido atravs do ambiente do
Dynamic C, compilado e transferido atravs de um cabo serial especial para o
mdulo. Ao lig-lo, o programa comea a funcionar automaticamente.
O segundo software a aplicao para computador, o qual foi
desenvolvida no ambiente do Borland Delphi 5.0 que possui diversos recursos
e suporte para aplicaes que envolvem interconectividade via rede local ou
lnternet.
4.3.3.1 Software para o mdulo RCM2200
No desenvolvimento do programa para o mdulo, foram utilizadas
algumas bibliotecas especiais que so fornecidas pela Z_World juntamente
com a linguagem Dynamic C.
Para o funcionamento da aplicao, alguns itens devem ser definidos
durante o desenvolvimento do programa, como o lP do equipamento, a
mascara de subrede bem como a porta que dever ficar aguardando conexo e
o nmero mximo de bytes que o socket deve ser capaz de armazanar
enquanto aguarda que seja feita uma leitura pelo aplicativo.
O Quadro 1 mostra as definies constantes do programa
Quadro 1 Constantes necessrias para conexo
#define MY_lP_ADDRESS "10.0.0.2" // endereo lP do coletor
#define MY_NETMASK "255.255.255.0" // mscara de sub-rede
#define PORT1 8888 // Port da aplicao
#define SOCK_BUF_SlZE 2048 // tamanho da memria temporria do soket
As constantes da aplicao so mostradas no Quadro 2:
Quadro 2 Constantes do programa
#define MAX_BUFSlZE 512 // tamanho da memria temporria dos dados
#define NUMERO_DE_COMANDOS 6 // enviados pela aplicao cliente.
const char str_ok[6]={43,79,75,13,10,0}; // string (texto) OK
const char str_final[3]={13,10,0}; // string (texto) enter
const char LlSTA_DE_COMANDOS[NUMERO_DE_COMANDOS+1][12]={" ",
"LlSTA", "SAlR","LlMPA", "AJUSTA DATA", "AJUSTA HORA", "STATUS"}; // lista de comandos
51
O Quadro 3 mostra as variveis globais que foram utilizadas no
desenvolvimento do programa.
Quadro 3 Variveis Global do programa
char buf1[MAX_BUFSlZE],comando[MAX_BUFSlZE]; // vetor do tipo caracter
char str_envio[20]; // vetor do tipo caracter
unsigned long contador_posicao; // varivel numrica de 32 bits
unsigned long ENDERECO_MEM; // varivel numrica de 32 bits
O software do mdulo RCM2200 foi dividido em trs partes, uma
responsvel pelo processo de conexo e transferncia dos dados, um pelo
processamento da teclas pressionadas e gerncia das mensagens exibidas no
visor e uma terceira parte controlando a pilha TCP/lP.
As trs partes funcionam quase que simultaneamente, pois so
criados processos independentes para cada um, mais interagem sem nenhum
problema pois durante a execuo de qualquer uma das partes, esta deve
fazer a chamada do gerente de processos, que vai verificar e executar os
outros processos paralelos.
Cada processo criado dentro de uma funo chama "Costate e ao
qual alternado a cada chamada do comando "yield. Este recurso quem
garante a execuo quase que simultnea de trs diferentes partes do
programa garantindo mesmo que seja digitado um registro, o equipamento
continue a transferncia dos dados.
4.3.3.1.1 O processo de conexo e o recebimento dos comandos no coletor
A primeira parte do programa responsvel pelo monitoramento das
informaes que chegam ao socket e pelo processamento das mensagens de
comando. O Quadro 4 mostra o aguardo de conexo.
Quadro 4 Aguardo de conexo
tcp_listen(&Socket_1, PORT1, 0, 0, NULL, 0);
while((-1 == sock_bytesready(&Socket_1)) && (0 == sock_established(&Socket_1)))
yield; // executa os processos paralelos
52
Enquanto o socket estiver estabelecido, o programa faz o agrupamento
dos caracteres que chegam e fica comparando com uma das 6 funes
programadas. O Quadro 5 mostra a funo que agrupa os caracteres.
Quadro 5 Agrupador de caracteres
yield; // executa processos paralelos
space_avaliable = sock_tbleft(&Socket_1); // obtem espao disponvel no socket
if(space_avaliable > (MAX_BUFSlZE-1)) // limita o espaa mximo
space_avaliable = (MAX_BUFSlZE-1);
length = sock_fastread(&Socket_1, buf1, space_avaliable); // coleta os dados do socket
if(length > 0) // chegou algum dado ?
{
buf1[length] = '\0'; // insere final de string
strcat(comando, buf1); // copia o que chegou para a string comando
for(i=0;i<=strlen(buf1);i++) // lao para procurar o carecter CR (Carrier Return)
{
if(buf1[i]==13)
{
acao_comando=compara_comando(comando); // verifica a instruo
if(acao_comando==0) // se no existir, apenas limpa a string
memset(comando, 0, MAX_BUFSlZE);
memset(buf1, 0, MAX_BUFSlZE); // limpar o buffer de recepo
}
}
A rotina que verifica se os dados agrupados so funes mostrado no
Quadro 6.
Quadro 6 Verificao das instrues
char compara_comando(char *comando_recebido)
{
char contador;
for(contador=1;contador<=NUMERO_DE _COMANDOS;contador++)
{
if(strstr(comando_recebido,LlSTA_DE_COMANDOS[contador])!=NULL)
return contador;
}
return 0;
}
Aps verificada a instruo, retornado o nmero da instruo caso
seja encontrada. O nmero de retorno desta funo o nmero da ordem em
que ela foi programada na constante LlSTA_DE_COMANDOS, ou seja, o
53
comando LlSTA se for encontrado retornar o nmero 1, pois a lista comea na
posio 0.
Com o retorno deste nmero possvel comparar para que seja
executada a instruo correspondente. Os Quadros 7 e 8 mostram a rotina
responsvel pela execuo da instruo correspondente.
Quadro 7 Execuo das lnstrues
switch(acao_comando)
{
case 1 : { // lnstruo LlSTA
memset(str_envio,0,17); // limpa a string de envio
for(transmitidos=0;transmitidos<contador_posicao;transmitidos) // lao para enviar os
{ //registros ao cliente
xmem2root(str_envio,ENDERECO_MEM+transmitidos,14);
strcat(str_envio,str_final); // Acrescenta enter ao final da string
sock_fastwrite(&Socket_1, str_envio, 16); // envia os dados
yield; // dispara os processos paralelos
memset(str_envio,0,17); // limpa a string de envio
transmitidos+=14; // incrementa ndice de registro s transmitidos
}
sock_fastwrite(&Socket_1, str_ok, 5); // envia a string +OK
yield; // dispara os processos paralelos
memset(comando, 0, MAX_BUFSlZE); // limpa a string comando
acao_comando=0;
}break; // finaliza a ao
case 2 : { // instruo SAlR
memset(comando, 0, MAX_BUFSlZE);
sock_fastwrite(&Socket_1, str_ok, 5); // envia a string +OK
sock_close(&Socket_1); // encerra o socket
acao_comando=0;
}break;
case 3 : {
contador_posicao=0; // aponta para zero o ndice dos registros
sock_fastwrite(&Socket_1, str_ok, 5); // envia a string +OK
yield;
memset(comando, 0, MAX_BUFSlZE);
acao_comando=0;
}break;
case 4 : { // instruo AJUSTA DATA DDMMAA
memset(str_temp,0,3); // limpa a string temporaria
str_temp[0]=comando[12];
str_temp[1]=comando[13];
rtc.tm_mday=atoi(str_temp);
str_temp[0]=comando[14];
str_temp[1]=comando[15];
rtc.tm_mon=atoi(str_temp);
str_temp[0]=comando[16];
str_temp[1]=comando[17];
rtc.tm_year=atoi(str_temp)+10 0; // soma 100 ao ano, pois o RCM considera o ano
// lnicial como 1900.
Write_rtc(mktime(&rtc)); // grava a hora no RCM
SEC_TlMER=read_rtc(); // atualiza o timer d o RCM
Sock_fastwrite(&Socket_1, str_ok, 5); // envia a string +OK
Yield;
lsolar os caracteres DD, MM e AA da
instruo
54
Quadro 8 Continuao da execuo das instrues
Memset(comando, 0, MAX_BUFSlZE);
Acao_comando=0;
}break;
case 5 : { // instruo AJUSTA HORA HHMMSS
memset(str_temp,0,3);
str_temp[0]=comando[12];
str_temp[1]=comando[13];
rtc.tm_hour=atoi(str_temp);
str_temp[0]=comando[14];
str_temp[1]=comando[15];
rtc.tm_min=atoi(str_temp);
str_temp[0]=comando[16];
str_temp[1]=comando[17];
rtc.tm_sec=atoi(str_temp);
write_rtc(mktime(&rtc));
SEC_TlMER=read_rtc();
Sock_fastwrite(&Socket_1, str_ok, 5);
Yield;
Memset(comando, 0, MAX_BUFSlZE);
Acao_comando=0;
}break;
case 6 : { // instruo STATUS
memset(str_envio,0,17);
sprintf(str_envio,"%05lu",contador_posicao); // monta uma string de 5 caracteres com
// o nmero de bytes utilizados pelos registros.
Strcat(str_envio, str_final);
Sock_fastwrite(&Socket_1, str_envio, strlen(str_envio));
Sock_fastwrite(&Socket_1, str_ok, 5);
Memset(comando, 0, MAX_BUFSlZE);
acao_comando=0;
}break;
}
4.3.3.1.2 O processo monitor do teclado e de escrita no visor
A segunda parte do programa consiste em uma rotina para monitorar
os sinais do teclado, conexo e escrever no visor.
A parte principal desta rotina monitora o sinal de alguma tecla
pressionada. Enquanto nenhuma for pressionada, o programa atualiza a hora e
data no visor alm do status de conexo que dado pela letra "Z. No Quadro
9 demonstrado a parte principal da rotina.
lsolar os caracteres HH, MM e SS da
instruo
55
Quadro 9 Monitor do teclado
LcdGoto(0,0); // Posiciona o cursor na posio 0,0 do visor
lcdPrintf("Digite o Codigo "); // Escreve a mensagem no visor
while(BitRdPortl(PEDR,0))
{
lcdGoto(0,3);
tm_rd(&rtc); // le a hora do sistema
lcdPrintf("%02d:%02d:%02d %02d/%02d/%02d",rtc.tm_hour, rtc.tm_min,
rtc.tm_sec,rtc.tm_mday,rtc.tm_mon,rtc.tm_year-100); // exibe a
hora e data no visor
lcdGoto(18,3);
if(conectado==1) // Se estiver conectado exibe a letra Z no visor
lcdPrintf("Z");
else //Caso contrrio exibe um caracter em branco
lcdPrintf(" ");
yield;
}
Esta parte da rotina continuamente executada. Quando uma tecla
qualquer do teclado pressionada, o programa executar o agrupamento das
teclas pressionadas e verificar se foi pressionado alguma tecla de funo. No
Quadro 10 possvel visualizar a parte do programa responsvel pela
montagem do cdigo teclado.
Quando uma tecla de funo pressionada ela gera no teclado um
nmero maior que 10, sendo possvel distinguir quando pressionado uma
tecla ou uma funo.
Ao ser pressionado uma funo executada uma parte da rotina
responsvel por verificar se a tecla de funo um ENTER ou um CANCELA.
Caso seja pressionada um ENTER, obtida a hora e a data do sistema
e gerado um registro que contm o cdigo teclado juntamente com a hora e
data, e ento esta seqncia gravada na memria, conforme mostra o
Quadro 11.
56
Quadro 10 Montagem do cdigo teclado
Valor=0; // limpa a varivel valor
if(!(BitRdPortl(PBDR,5))) // caso a ligao do bit do teclado estiver em zero significa
que a tecla que o utiliza est pressionada.
Valor+=1;
if(!(BitRdPortl(PBDR,4)))
valor+=2;
if(!(BitRdPortl(PBDR,3)))
valor+=4;
if(!(BitRdPortl(PBDR,2)))
valor+=8;
if(valor<11) // se valor for menor que 11, indica que no foi pressionada
// nenhuma funo
{
if(strlen(str_valor)<4) // se o cdigo contes mais de 4 dgitos o novo dgito descartado
{
if(valor==10) // se valor estiver valendo 10 indica que a tecla 0 foi pressionada
valor=0;
sprintf(str_temporaria,"%d",valor); // monta uma string temporria com o novo
// nmero
strcat(str_valor, str_temporaria); // adiciona a nova string a string que contm a
// seqncia teclada at o momento.
}
}
O registro gravado possui 14 caracteres, formado por 4 caracteres que
informam o cdigo teclado, 4 caracteres que informam a hora e os minutos e os
6 ltimos que informam o dia, o ms e o ano em que o registro foi efetuado.
Aps ser efetuado um registro, o ponteiro de posio de memria
acrescido em 14, fazendo com que o prximo registro seja gravado 14
posies adiante.
Ao final desta parte da rotina atualizado no visor o valor do cdigo
teclado, conforme mostra o Quadro 12.
57
Quadro 11 Gravao dos registros
Else
{
if(valor==13) // se foi pressionado o ENTER do teclado
{
memset(registro,0,15);
SEC_TlMER=read_rtc();
tm_rd(&rtc);
if(atoi(str_valor)==9000) // se o cdigo teclado for 9000, gera 1000 registros para
// teste
{
for(i=1;i<1000;i++)
{
sprintf(registro,"%04d%02d%02d%02d%02d%02d",i,rtc.tm_mday,
rtc.tm_mon,rtc.tm_year-100,rtc.tm_hour,rtc.tm_min);
root2xmem(ENDERECO_MEM+contador_posicao,registro, 14);
contador_posicao+=14;
yield;
}
}
sprintf(registro,"%04d%02d%02d%02d%02d%02d",atoi(str_valor),rtc.tm_mday,
rtc.tm_mon,rtc.tm_year-100,rtc.tm_hour,rtc.tm_min);
root2xmem(ENDERECO_MEM+contador_posicao,registro, 14);
contador_posicao+=14;
lcdClear(); // limpa o visor
lcdGoto(4,1);
lcdPrintf("REGlSTRO OK");
waitfor(DelayMs(2000)); // aguarda 2 segundos.
memset(str_valor, 0, 6);
lcdClear();
}
else // caso a tecla pressionada seja CANCELA limpa o contedo do cdigo teclado
{
memset(str_valor, 0, 5);
lcdGoto(0,1);
lcdPrintf(" ");
}
}
Quadro 12 Exibir o cdigo teclado
LcdGoto(0,1);
LcdPrintf("%s",str_valor);
While(!(BitRdPortl(PEDR,0)))
Yield;
}
58
4.3.3.1.3 O processo de gerncia dos protocolos TCP/lP
A terceira e ltima parte do programa do mdulo consiste em um
gerenciador dos protocolos TCP/lP, este apenas um comando que deve
funcionar paralelamente s outras partes do programa (Quadro 13).
Quadro 13 Gerente do TCP/lP
tcp_tick(NULL); // Controle da pilha TCP/lP
yield; // Execute processos paralelos
4.3.3.2 Software para o computador (Aplicao)
No desenvolvimento do programa, para efetuar a transferncia dos
dados do terminal para o computador, foi utilizado a linguagem de
programao Delphi desenvolvida pela Borland.
A verso 5.0 do Borland Delphi oferece vrios recursos para
conectividade, seja ela via internet ou ethernet. Estes recursos vo desde a
interface com o usurio at um socket de comunicao.
O Delphi uma linguagem orientada a objetos a qual permite
manipular respostas em funo dos vrios eventos que acontecem. O
programa foi totalmente baseado nos eventos que acontecem, sejam eles o
click de um boto ou o recebimento dos dados em um socket.
4.3.3.2.1 lnterface com o usurio
A interface com o usurio apresenta os botes que enviam, via uma
conexo TCP/lP, os comandos para o mdulo, alm de exibirem em uma
janela a sintaxe dos comandos enviados e as respostas obtidas do mdulo. A
Figura 25 mostra a aparncia da aplicao cliente.
59
Figura 25 Aplicao para o computador
Ao clicar no boto "Conectar uma nova janela aberta, solicitando um
endereo lP para se conectar ao mdulo. lsto permite que o programa se
conecte a vrios mdulos com endereos diferentes, mas um de cada vez. A
Figura 26 mostra a janela de pedido do endereo lP.
Figura 26 Janela de solicitao do endereo lP do coletor
Aps fornecer o endereo lP, o programa inicia o processo de conexo
TCP com o coletor de dados.
Ao conectar com o coletor, a mensagem de +OK exibida na rea
"Respostas, indicando que a conexo foi efetuada com sucesso.
60
O menu "Aplicao, possui apenas trs funes: conectar,
desconectar e sair.
A Figura 27 ilustra o menu "Aplicao.
Figura 27 O menu "Aplicao
4.3.3.2.2 O boto "Conectar
Com o ClientSocket do Dephi 5 possvel efetuar conexo com um
dispositivo conectado a uma rede TCP/lP.
So necessrios configurar alguns parmetros fundamentais neste
componente como o endereo lP de destino e a porta de comunicao.
Estes dois parmetros podem ser alterados durante a execuo do
programa. Devido a forma com que este trabalho foi desenvolvido, a porta de
comunicao est fixada em 8888 para poder "conversar com o coletor,
restando somente se preocupar em saber seu nmero lP.
Ao clicar no boto "Conectar a rotina mostrada no Quadro 14
executada, fazendo com que o componente do Dephi ClientSocket inicie o
processo de comunicao TCP/lP.
61
Quadro 14 Boto Conectar
procedure TTCC.FileConnectltemClick(Sender: TObject);
begin
if ClientSocket.Active then ClientSocket.Active := False; // desativa o socket caso esteja ativo
if lnputQuery('Conectar a ', 'Endereco : ', Server) then // solicita o lP para conexo
if Length(Server) > 0 then // verifica se o que foi digitado tem algum dgito
with ClientSocket do // utilizando o componente ClientSocket execute.
Begin
Host := Server; // atribui o nmero digitado ao item host do ClientSocket
Active := True; // ativa o ClientSocket.
end;
end;
Aps conectar, o evento OnConect do ClientSocket gerado o que faz
com que seja escrita a mensagem "Conectado na barra de status da
aplicao.
Quadro 15 Evento OnConect
Procedure TTCC.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
Begin
Statusbar1.Panels[0].Text := 'Conectado';
end;
Caso seja solicitada uma conexo e esta no consiga ser completada,
um evento de erro gerado pelo ClientSocket. O Quadro 16 mostra a rotina
que trata o erro.
Quadro 16 Evento OnError
Procedure TTCC.ClientSocketError(Sender: TObject;
Socket: TcustomWinSocket; ErrorEvent: TErrorEvent;
Var ErrorCode: lnteger);
Begin
Memo2.Lines.Add('Erro ao Conectar');
ErrorCode := 0;
end;
4.3.3.2.3 O evento OnRead
Ao receber uma seqncia de caracteres atravs do socket, o evento
OnRead gerado, fazendo que seja possvel extrair os caracteres
armazenados no socket.
62
Os caracteres extrados do socket sero exibidos na rea "Respostas
na interface do usurio.
O Quadro 17 mostra a rotina executada no evento OnRead do
ClientSocket.
Quadro 17 Evento OnRead
Procedure TTCC.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
Var
Texto : string;
Begin
Texto:=Socket.ReceiveText; // Extrai os caracteres recebidos no socket
Memo2.Lines.Add(texto); // Adiciona o que foi recebido a janela "Respostas
if(StrPos(Pchar(texto),Pchar('+OK'))<>nil) then ok_recebido:=true;
end;
4.3.3.2.4 O boto "Status
Quando clicado no boto "Status enviado atravs do socket a
mensagem STATUS que representa um comando para o coletor. O Quadro 18
mostra o envio do comando.
Quadro 18 Boto "Status
procedure TTCC.SpeedButton1Click(Sender: TObject);
begin
memo1.lines.add('STATUS'); // Mostra a sintaxe do comando na janela "Comandos
ClientSocket.Socket.SendText('STATUS'+#13+#10); // Transmite o texto STATUS
// acrescido da seqncia de enter.
end;
4.3.3.2.5 Os botes "Listar Registros, "Limpar Memria, "Ajustar Data e
"Ajustar Hora
Quando clicado em um desses botes, uma mensagem de comando
enviada semelhantemente ao do boto "Status mudando apenas o texto
enviado. A Tabela 1 mostra os comandos enviados e suas funes.
63
Tabela 1 Comandos enviados ao coletor
Boto Texto enviado Ao
"Listar Registros LlSTA
Faz com que o coletor descarregue todos
os registros armazenados.
"Apagar Memria LlMPA
Faz com que o coletor limpe sua memria
para que novos registros possam ser
registrados.
"Ajustar Data AJUSTA DATA
Ajusta a data do coletor com a mesma
data do computador. A rotina que envia o
ajuste da data mostrada no Quadro 19.
"Ajustar Hora AJUSTA HORA
Ajusta a hora do coletor com a mesma
hora do computador. A rotina que envia o
ajuste da data mostrada no Quadro 20.
Quadro 19 Boto "Ajustar Data
procedure TTCC.SpeedButton4Click(Sender: TObject);
var
dia, mes, ano : word;
presente: TDateTime;
begin
presente:= Now; // obtm a hora e a data atual do sistema;
DecodeDate(presente, ano, mes, dia);
memo1.lines.add('AJUSTA DATA '+Format('%2.2d', [dia])+Format('%2.2d',
[mes])+Format('%2.2d', [ano-2000])); // Formata o nmero de caracteres.
ClientSocket.Socket.SendText('AJUSTA DATA '+Format('%2.2d', [dia])+Format('%2.2d',
[mes])+Format('%2.2d', [ano-2000])+#13+#10); // envia o comando ao coletor.
end;
Quadro 20 Boto "Ajustar Hora
Procedure TTCC.SpeedButton5Click(Sender: TObject);
Var
hora, minuto, segundo, msegundo : word;
presente: TDateTime;
begin
presente:= Now;
DecodeTime(presente, hora, minuto, segundo, msegundo);
memo1.lines.add('AJUSTA HORA '+Format('%2.2d', [hora])+Format('%2.2d',
[minuto])+Format('%2.2d', [segundo]));
ClientSocket.Socket.SendText('AJUSTA HORA '+Format('%2.2d', [hora])+Format('%2.2d',
[minuto])+Format('%2.2d', [segundo])+#13+#10);
end;
64
4.3.3.2.6 O boto "Desconectar
Ao clicar no boto "Desconectar a conexo finalizada. O Quadro 21
mostra a rotina responsvel pela desconexo.
Quadro 21 Boto "Desconectar
Procedure TTCC.Exit1Click(Sender: Tobject);
Begin
ClientSocket.Close;
Close;
end;
4.3.3.2.7 O boto "Sair
O boto "Sair quando clicado faz a desconexo e a finalizao do
programa. O Quadro 22 mostra a rotina do boto Sair.
Quadro 22 Boto "Sair
procedure TTCC.Exit1Click(Sender: TObject);
begin
ClientSocket.Close; // Finaliza o ClientSocket
Close; // Finaliza o Programa
end;
4.3.3.2.8 O Evento OnKeyDown da janela "Comandos
Ao pressionar uma qualquer tecla dentro da janela "Comandos estas
so analisadas quanto a presena da tecla "Enter. Ao detectar a tecla "Enter,
os caracteres teclados sero transmitidas para o coletor da mesma maneira
que os comandos dos botes.
O Quadro 23 exibe a rotina responsvel por enviar os comandos
digitados na janela "Comandos.
Quadro 23 Evento OnKeyDown
Procedure TTCC.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TshiftState);
Begin
if Key = VK_Return then
ClientSocket.Socket.SendText(Memo1.Lines[Memo1.Lines.Count - 1]+#13+#10); // envia a
// ltima linha teclada
end;
65
4.4 OPERAClONALlDADE DA lMPLEMENTAO
O coletor de dados funciona de maneira independente da aplicao do
computador, pois para entrar em funcionamento, basta lig-lo rede eltrica.
Para a conectividade, necessrio ligar o coletor rede Ethernet local e
garantir que o lP 10.0.0.2 no esteja em utilizao nesta rede, pois para o
prottipo foi especificado este lP fixo no desenvolvimento do software.
Aps ligar o coletor, basta digitar at quatro nmeros e pressionar
"Enter para que o registro seja gravado ou "Cancela para anular a operao.
O software de aplicao (cliente) para o computador pode ser
executado em computadores com o Microsoft Windows 98 ou 2000.
Para conectar a aplicao do computador ao coletor, basta clicar em
"Conectar e especificar o lP 10.0.0.2. Assim que a conexo for efetuada com
sucesso, a primeira resposta do coletor ser "+OK.
Depois de conectado, basta clicar nos botes para que sejam enviados
os comandos para o coletor e a cada comando executado uma resposta "+OK
transmitida para o computador.
4.5 TESTES
Para realizar os testes de transferncia de informaes, foi
implementado no coletor o cdigo 9000 que, ao ser teclado, gera 1000
registros fictcios, tornando possvel os testes de capacidade de memria e de
transferncia dos dados.
Com 1000 registros armazenados, registrou-se um tempo mdio de 10
segundos para a transferncia de todas as informaes (100 registros/s) em
uma conexo de 10Mbps.
O prottipo foi testado tambm na empresa WF Automao de
Blumenau SC conectado a uma rede Ethernet de 10Mbps com 8
computadores ligados a um hub atravs de placas de rede.
Os computadores utilizam constantemente a rede, gerando um grande
volume de informaes trafegadas, e o prottipo apresentou um rendimento
satisfatrio no aumentando o tempo de transferncia.
66
5 CONCLUSO
Verificou-se que os objetivos propostos foram alcanados. Para tal, foi
buscado um aprendizado conceitual e tecnolgico dos estudos descritos neste
trabalho. Para realizao deste, foi necessrio o estudo do dispositivo
microcontrolado programado em linguagem C, o estudo da utilizao dos
sockets de comunicao TCP/lP e a criao de um protocolo de aplicao para
que o programa cliente pudesse trocar informaes com o coletor de dados.
Verificou-se tambm que possvel fazer a automao de diversos
processos de coleta de dados utilizando a rede Ethernet com TCP/lP.
Fazendo uma anlise com as redes industriais atuais, v-se que estas
esto ficando ultrapassadas com relao rede Ethernet, pois a Ethernet
capaz de prover recursos de interconectividade desde o nvel fsico at o nvel
de aplicao (atravs do TCP/lP), o que no acontece com as demais
tecnologias de rede. Um exemplo a DeviceNet que utiliza como meio fsico o
protocolo CAN que tratado parte pelos dispositivos do enlace de rede.
A Figura 28 mostra a abrangncia dos recursos da rede Ethernet sobre
as demais.
Figura 28 Faixa de aplicao das redes
FONTE : http://www.dca.ufrn.br/~affonso
67
Outro fato muito importante e vantajoso da Ethernet com TCP/lP sobre
as demais tecnologias a capacidades de prover informao sem um suposto
limite de equipamentos conectados ao enlace, que pode se estender ao redor
do mundo como acontece com a lnternet. As demais tecnologias, sejam elas a
DeviceNet, a Profibus ou a GPlB, sofrem com o nmero reduzido de
equipamentos que podem ser conectados simultaneamente ao enlace e com a
falta de pessoas com conhecimento amplo que possam desenvolver
equipamentos a custos mais baixos.
A economia com a utilizao de recursos Ethernet com TCP/lP pode
chegar at a 70%, como exemplo pode-se citar a substituio de um CLP
(controlador lgico programvel) que custa em mdia R$1000,00 por um
mdulo RCM2200 que pode chegar a custar R$300,00.
Nas indstrias do Vale do ltaja, como nas de todo o mundo, h uma
forte presena de redes Ethernet TCP/lP para interligao dos computadores
do escritrio ou at mesmo mquinas que ficam prximas s linhas de
produo, mais em raros casos h computadores ligados s mquinas atravs
de redes Ethernet, fato este que est mudando devido ao barateamento e
facilidade de implementao de dispositivos capazes de prover tal integrao,
como o caso do prottipo desenvolvido neste trabalho.
Muitas empresas utilizam as tecnologias comuns da rea industrial,
mas esto dispostas a investir maciamente na substituio pela tecnologia
provida pela rede Ethernet, fazendo que seja possvel ter um acompanhamento
instantneo do que est acontecendo no interior da linha de produo ou no
controle de acesso de pessoas a um determinado local.
As ferramentas utilizadas para a implementao mostraram-se
adequadas e eficientes, possibilitando futuras implementaes e manutenes
de forma prtica.
A aquisio do Kit de desenvolvimento do RCM2200, devido ao seu
elevado custo inicial, foi uma dificuldade encontrada neste trabalho. Com o
auxlio da empresa WF Automao de Blumenau - SC que fez a compra e o
emprstimo do equipamento foi possvel desenvolver este trabalho.
O ambiente de desenvolvimento Dynamic C facilitou o desenvolvimento
do software do mdulo RCM2200 pois conforme o objetivo proposto, o
68
prottipo desenvolvido tornou-se um coletor de dados de certa forma genrico
que, devido as facilidades de implementao, pode ser facilmente transformado
em um equipamento dedicado para uma aplicao, como por exemplo um
relgio ponto, um contador de objetos em uma linha de produo, um
registrador de eventos em um ambiente, tudo dependendo de pequenas
alteraes tanto no prottipo quanto no software para o computador.
69
BIBLIOGRAFIA
BOCHENSKl, Barbara. ImpIementando Sistemas CIiente/Servidor de
QuaIidade. So Paulo: Makron Books, 1995.
CARVALHO, Tereza C. M. de B. Arquitetura de Redes de Computadores.
So Paulo: Makron Books, 1994.
COMER, D. E.; STEVENS, D. L. InterIigao em Rede com TCP / IP , v. 2.
Rio de Janeiro: Editora Campus, 1999.
POBLET, Jos Mompn. EIectronica y automatica industriaIes. v. 2.
Barcelona : Marcombo S.A., 1981.
SlLVElRA, P. R. da; SANTOS, W. E. dos. Automao e ControIe Discreto, 4.
ed. So Paulo : Editora rica, 2002.
STARLlN, Gorki. TCP / IP CompIeto. 3. ed. Rio de Janeiro : Book Express,
1998.
SlLVA JNlOR, Vidal Pereira da. MicrocontroIadores PIC: Teoria e Prtica,
v. 1. So Paulo: autor-editor independente, 1997.
GUEDES, Luis Affonso. Redes Para Automao IndustriaI, Rio Grande do
Norte, [2001]. Disponvel em : <http://www.dca.ufrn.br/~affonso/DCA447/
trabalho3.html>. Acessado em: 21 set. 2003.
SElXAS FlLHO, Constantino. Sistemas Distribudos para Automao, Belo
Horizonte, [2002]. Disponvel em: < http://www.cpdee.ufmg.br/~seixas/
PaginaSDA/Download/SDADownload.htm>. Acessado em: 21 set. 2003.

You might also like