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.