UNIVERSIDADE ESTADUAL PAULISTA "JÚLIO DE MESQUITA FILHO" CAMPUS DE ILHA SOLTEIRA DEPARTAMENTO DE ENGENHARIA ELÉTRICA IMPLEMENTAÇÃO DE UM NÓ IEEE 1451, BASEADO EM FERRAMENTAS ABERTAS E PADRONIZADAS, PARA APLICAÇÕES EM AMBIENTES DE INSTRUMENTACÃO DISTRIBUÍDA Silvano Renato Rossi Tese de Doutorado submetida à Universidade Estadual Paulista - UNESP, Campus de Ilha Solteira, como parte dos requisitos necessários para a obtenção do título de Doutor em Engenharia Elétrica. Orientador: Prof. Dr. Aparecido Augusto de Carvalho Co-Orientador: Prof. Dr. Alexandre César Rodrigues da Silva ILHA SOLTEIRA – SP, JANEIRO DE 2005 ii iii A Deus A minha mãe, Rosa À memória do meu pai, Roberto Aos meus irmãos, Adriana e Claudio Ao meu amor, Diva Ao colega e amigo, Edson Antonio Batista DEDICO iv AGRADECIMENTOS A Deus, pelo amor, pela misericórdia, pelas forças tanto nos momentos bons como nos difíceis. À minha família, pelo apoio incondicional ao longo da realização deste trabalho. Ao meu orientador, Professor Aparecido Augusto de Carvalho, pela orientação, pela motivação, pela confiança, pela sinceridade, pela humildade, pela amizade e, principalmente, por contribuir para o meu crescimento, não apenas como profissional, mas também como pessoa. Ao meu co-orientador, Professor Alexandre César Rodrigues da Silva, pela orientação, pelas sugestões e contribuições, pela confiança e pelos bons momentos compartilhados. Ao Professor Cláudio Kitano, por ser um modelo de profissional, que contribuiu muito no desenvolvimento da tese e que incentivou, em mim, o espírito de pesquisador. Ao engenheiro eletricista Edson Antonio Batista, colega e amigo, porque sem a sua ajuda este trabalho não teria sido realidade. Aos Professores Marcelo Carvalho Minhoto Teixeira, Ricardo Tokio Higuti, José P. Fernandes Garcia, Edward D. Moreno Ordonez e Onofre Trindade Júnior, pelas sugestões e contribuições. Ao Programa de Pós Graduação em Engenharia Elétrica da FEIS-UNESP, pela oportunidade; aos professores do Programa, pela qualidade de ensino e aos servidores técnico-administrativos, pela atenção e disposição. À “Universidad Nacional del Centro de la Pcia. de Buenos Aires”, pelo apoio financeiro cedido através da bolsa do “Programa VII”, para aperfeiçoamento em docência e pesquisa. Aos Professores Marcelo Spina, Roberto Juan de La Vega, Gerardo Acosta e ao grupo Intelymec da “Universidad Nacional del Centro de la Pcia. de Buenos Aires”, pelo apoio e confiança. À Fundunesp, pelo apoio financeiro cedido para compra de equipamentos e materiais. À minha namorada Diva e sua família, pelo amor, paciência e ajuda. Aos colegas, Uender da Costa Faria, Tony Inácio da Silva, Josivaldo Godoy da Silva, Adriano dos Santos Cardoso e ao pessoal do Laboratório de Processamento de Sinais e Sistemas Digitais, pelas sugestões e pela disposição. v “Graças vos dou, porque me ouvistes, e vos fizestes meu salvador” ( Sal. 117, 21) vi RESUMO Atualmente, as redes de transdutores inteligentes desempenham um papel de importância vital em sistemas de Medição e Controle Distribuído. Nesse contexto, o Padrão IEEE 1451 para interfaceamento de transdutores inteligentes tem como objetivo simplificar a conectividade de transdutores em ambientes de rede, fornecendo, para tal fim, um conjunto de interfaces padronizadas, aumentando a flexibilidade dos sistemas de instrumentação distribuída. Neste trabalho descreve-se a implementação de um nó de rede em conformidade com o padrão IEEE 1451. O nó foi completamente desenvolvido através do emprego de ferramentas padronizadas e sistemas abertos. O nó é composto por um Processador de Aplicação com Capacidade de Operar em Rede (NCAP), com base no padrão IEEE 1451.1 e um Módulo de Interface para Transdutores Inteligentes (STIM), em conformidade com o padrão IEEE 1451.2. A parte física do NCAP foi implementada através dos recursos de um Computador Pessoal (PC) e de um Dispositivo Lógico Programável (PLD) de uso geral. A parte lógica do NCAP foi desenvolvida através da tecnologia Java. O STIM foi implementado com dispositivos lógicos programáveis versáteis, de uso geral, e sua funcionalidade foi integralmente descrita em linguagem de descrição de hardware. O conjunto NCAP-STIM foi conectado a uma rede de área local, sob o modelo de comunicação cliente-servidor, sendo que várias aplicações clientes podem acessar as informações dos transdutores conectados ao STIM, através da rede, via intermediação do NCAP. O emprego de ferramentas padronizadas e abertas no desenvolvimento total do sistema IEEE 1451 é uma das contribuições mais importantes do presente trabalho. No entanto, há várias contribuições pontuais como: a maneira de descrever as Informações de Transdutores em Formato Eletrônico (TEDS), a implementação de um gerenciador de protocolo que permite o uso da porta paralela de um PC sem qualquer modificação da mesma, a utilização de PLDs de baixo custo para a implementação do STIM e do gerenciador de protocolo, e o desenvolvimento do software do NCAP integralmente na linguagem Java. Através da implementação do padrão IEEE 1451, as indústrias podem obter inúmeros benefícios como redução de custos de sistemas de instrumentação devido à redução da complexidade, flexibilidade para transmitir informações através de uma rede de comunicação e maior facilidade para ampliar os sistemas sem efetuar configurações complicadas. Palavras chave - Medição e Controle Distribuído, Transdutores em rede, Interfaceamento, IEEE 1451, STIM, NCAP, Transdutor Inteligente, Tecnologia de Lógica Programável, Java. vii ABSTRACT Nowadays, smart transducer networks play an essential role in distributed measurement and control systems. In this context, the IEEE 1451 smart transducer interface standards aimed to simplify transducer connectivity, providing a set of common interfaces for connecting transducers in a networked fashion, increasing the flexibility of distributed instrumentation systems. In this work the implementation of a network node according to the IEEE 1451 standard is introduced. The node has been fully developed using open and standardized tools. A Network Capable Application Processor (NCAP) according to the IEEE 1451.1 Standard and a Smart Transducer Interface Module (STIM) comprises the node. The physical part of the NCAP has been implemented using the resources of a Personal Computer (PC) and a general-purpose Programmable Logic Device (PLD). The logical part of the NCAP has been developed using Java technology. The STIM module was implemented with versatile, general-purpose Programmable Logic Devices. STIM functionality has been fully developed in hardware description language. A network node (STIM-NCAP) was connected in a client-server model- based local area network. Many client applications can access STIM transducers information, through the network with the NCAP as an intermediary. One of the most important contributions of this work is the employment of open and standardized tools for implementing the IEEE 1451 network node. However, there are many specific contributions such as: Transducer Electronic Data Sheet (TEDS’s) description method, programmable logic-based Protocol Manager implementation that allows the use of the parallel port without any modification, the employment of low-cost PLDs for implementing the STIM and the Protocol Manager, and Java-based NCAP software development. Through the implementation of the IEEE Standard, industries can obtain great benefits such as optimization of the instrumentation system costs due to reduced complexity, flexibility for transmitting information through a communication network, and more flexibility for enhancing their systems without complicated configuration tasks. Keywords - Distributed Measurement and Control, Transducer Networks, Interfacing, IEEE 1451, STIM, NCAP, Smart Transducer, Programmable Logic Technology, Java. viii LISTA DE FIGURAS Figura 2.1 - Duas topologias de redes LAN, a) Barramento; b) Anel......................................... 16 Figura 2.2 - Topologia em estrela................................................................................................ 17 Figura 2.3 - Camadas, protocolos e interfaces.............................................................................19 Figura 2.4 - Modelo de referência ISO/OSI................................................................................ 21 Figura 2.5 - Formato de quadro genérico.................................................................................... 23 Figura 2.6 - Modelo de referência TCP/IP.................................................................................. 23 Figura 2.7 - Diferentes níveis em uma rede industrial.................................................................27 Figura 3.1 - Sistema de instrumentação; uma visão conceitual...................................................30 Figura 3.2 - Dispositivo transdutor conectado a uma rede.......................................................... 32 Figura 3.3 - Concepção básica de um sensor inteligente.............................................................33 Figura 3.4 - Sistema DMC elementar.......................................................................................... 34 Figura 4.1 - Barramento para sensores........................................................................................ 38 Figura 4.2 - Barramento MPS......................................................................................................39 Figura 4.3 - Barramento MSS......................................................................................................40 Figura 4.4 - Barramento ISS........................................................................................................ 40 Figura 4.5 - Barramento de campo.............................................................................................. 41 Figura 4.6 - Diferentes topologias de barramentos de campo..................................................... 43 Figura 5.1 - Transdutor inteligente conectado a uma rede.......................................................... 54 Figura 5.2 - Proposta IEEE 1451................................................................................................. 54 Figura 5.3 - Arquitetura da interface IEEE 1451.........................................................................55 Figura 5.4 - Diferentes maneiras de se implementar um STIM...................................................58 Figura 5.5 - Hardware necessário à implementação de um STIM...............................................59 Figura 5.6 - Módulo STIM e seus componentes..........................................................................59 Figura 5.7 - Estrutura de um endereço completo.........................................................................61 Figura 5.8 - Função de disparo.................................................................................................... 62 Figura 5.9 - Registrador de estados............................................................................................. 64 Figura 5.10 - Geração de uma requisição de interrupção............................................................ 65 Figura 5.11 - Interface TII entre STIM e NCAP......................................................................... 66 Figura 5.12 - Protocolo que implementa a função de disparo..................................................... 70 Figura 5.13 - Protocolos de transferência de quadro de leitura e escrita.....................................72 Figura 5.14 - Diagrama do NCAP............................................................................................... 78 Figura 5.15 - Visão conceitual de um NCAP.............................................................................. 79 Figura 5.16 - Hierarquia de Classes IEEE 1451.1....................................................................... 81 Figura 5.17 - Modelo cliente/servidor......................................................................................... 82 Figura 6.1 - Camadas IEEE 802.3 em relação ao modelo ISO/OSI............................................ 84 Figura 6.2 - Quadro Ethernet....................................................................................................... 85 ix Figura 6.3 - Detecção de uma colisão..................................................................................... 86 Figura 6.4 - Desempenho da tecnologia IEEE 802.3...............................................................89 Figura 6.5 - PLDs CMOS de propósito geral..........................................................................92 Figura 6.6 - Estrutura típica de uma FPGA.............................................................................93 Figura 6.7 - Descrição VHDL comportamental de uma porta AND........................................ 95 Figura 6.8 - Processo de síntese de um projeto digital descrito em HDL................................. 96 Figura 6.9 - Exemplo de arquivos criados no ambiente Max+Plus II......................................98 Figura 6.10 - a) Exemplo em Java; b) Diagrama de classe e c) Exibição na tela do monitor.....102 Figura 6.11 - Diagrama da arquitetura RMI............................................................................104 Figura 6.12 - Exemplo de interface em Java............................................................................105 Figura 6.13 - Exemplo de implementação de um servidor na linguagem Java.......................... 105 Figura 6.14 - Exemplo de implementação de um cliente na linguagem Java.............................106 Figura 6.15 - Compilação e execução dos programas: a) servidor, b) cliente........................... 107 Figura 6.16 - API Java de Comunicações; Exemplo básico de aplicação................................. 108 Figura 6.17 - Exemplo básico de Java comm; Exibição na tela do monitor.............................. 109 Figura 6.18 - Leitura e escrita utilizando a porta paralela........................................................ 110 Figura 6.19 - Exemplo de leitura e escrita utilizando a porta paralela; Exibição na tela............111 do monitor....................................................................................................... Figura 6.20 - Etapas para a configuração do aplicativo UserPort............................................ 112 Figura 6.21 - Modelo cliente-servidor baseado em sockets..................................................... 112 Figura 6.22 - Código fonte de um servidor básico baseado em sockets....................................113 Figura 6.23 - Código fonte de um cliente básico baseado em sockets ......................................114 Figura 6.24 - Execução do servidor e do cliente..................................................................... 114 Figura 7.1 - Proposta de implementação................................................................................. 117 Figura 7.2 - a) STIM implementado, arquitetura simplificada; b) Módulos de software ...........119 Figura 7.3 - STIM implementado, arquitetura detalhada......................................................... 121 Figura 7.4 - Módulo de controle da TII.................................................................................. 122 Figura 7.5 - a) Módulo de Endereçamento; b) Módulo multiplexador..................................... 123 Figura 7.6 - Descrição VHDL da memória com capacidade de suportar as TEDS...................124 Figura 7.7 - Módulo que implementa as estruturas TEDS....................................................... 125 Figura 7.8 - Tratamento das TEDS; exemplo de simulação..................................................... 126 Figura 7.9 - Registradores de estados, padrão e auxiliar..........................................................127 Figura 7.10 - Módulo de interface com transdutores...............................................................128 Figura 7.11 - Principais características dos PLDs utilizados para implementar o STIM........... 130 Figura 7.12 - Arquitetura do NCAP implementado................................................................. 131 Figura 7.13 - Suporte hardware do NCAP.............................................................................132 Figura 7.14 - Conector DB-25 e registradores internos da porta paralela................................ 133 Figura 7.15 - Gerenciador de Protocolo com entrada e saída de oito bits. .............................. 135 Figura 7.16 - Multiplexação de dados da porta paralela.......................................................... 135 Figura 7.17 - a) Bloco de controle, b) Bloco multiplexador.................................................... 136 Figura 7.18 - Módulo de disparo............................................................................................ 136 x Figura 7.19 - a) Modo hot-swap , b) Módulo de detecção do STIM........................................... 136 Figura 7.20 - Módulo gerenciador............................................................................................... 137 Figura 7.21 - a) Módulo demultiplexador, b) Controle do demultiplexador............................... 137 Figura 7.22 - Gerenciador de Protocolo com entrada de oito bits e saída de cinco bits ............ 138 Figura 7.23 - Algoritmo para conversão de um byte em duas parcelas de 5 bits ,...................... 139 utilizando dois ciclos de leitura............................................................................ Figura 7.24 - Multiplexação de dados da porta paralela usando apenas o registrador................ 140 de dados................................................................................................................. Figura 7.25 - Fluxogramas ilustrativos: a) comunicação com a porta paralela; b) servidor ...... 143 c) cliente................................................................................................................. Figura 7.26 - Diagrama da arquitetura de software do NCAP, com base em Java RMI............ 144 Figura 7.27 - Diagrama simplificado da arquitetura de software do NCAP, com base.............. 145 em Java NET.......................................................................................................... Figura 7.28 - Classe NACPBlock: a) Diagrama de classe, b) recursos usados da API Java.......146 Figura 7.29 - Classe FunctionBlock : a) Diagrama de classe, b) recursos usados da API..........147 Java........................................................................................................................ Figura 7.30 - Trecho de código da classe FunctionBlock............................................................147 Figura 7.31 - Classe Client : a) Diagrama de classe, b) recursos usados da API Java.............. 148 Figura 7.32 - Classes: a) Dot2TransducerBlock , b) Parameter e c) VectorParameter. ........149 Figura 7.33 - Conexão do nó IEEE 1451 na rede: a) modelo de comunicação; b) interação..... 150 cliente/servidor...................................................................................................... Figura 8.1 - Elementos Lógicos em função do tipo de FPGA e do número de canais................ 152 Figura 8.2 - Aumento percentual do número de elementos lógicos vs.o incremento de............. 154 canais....................................................................................................................... Figura 8.3 - Bits necessários para alocar as TEDS vs. número de canais................................... 154 Figura 8.4 - Simulação do protocolo de disparo.......................................................................... 156 Figura 8.5 - a) Protocolo de transferência de bits , b) Disparo; resultado experimental..............156 Figura 8.6 - Exemplo de protocolo IEEE1451.2: a) simulação; b) e c) resultados..................... 157 experimentais........................................................................................................... Figura 8.7 - Leitura de dados de um canal transdutor................................................................. 159 Figura 8.8 - Exemplo de leitura de dados: a) simulação; b) resultado experimental...................160 Figura 8.9 - Leitura de registrador padrão de estados..................................................................161 Figura 8.10 - Leitura dos dados contidos na estrutura Canal-TEDS........................................... 161 Figura 8.11 - Leitura dos dados contidos na estrutura Meta-TEDS: a) simulação......................164 b) resultado experimental....................................................................................... Figura 8.12 - Ligando e desligando o atuador do canal transdutor 2...........................................166 Figura 8.13 - Escrita das máscaras de interrupção.......................................................................167 Figura 8.14 - STIM implementado no laboratório.......................................................................168 Figura 8.15 - Simulação da multiplexação de dados da porta paralela........................................168 Figura 8.16 - Protocolo IEEE 1451.2 do lado NCAP.................................................................. 169 Figura 8.17 - Protocolo IEEE 1451.2 do lado NCAP, usando o gerenciador com entrada 170 de 8 bits e saída de 5 bits ...................................................................................... xi Figura 8.18 - Compilação e execução do programa IEEE1451_NCAPBlock .............................171 Figura 8.19 - Compilação e execução do programa IEEE1451_FunctionBlock ........................ 171 Figura 8.20 - Identificação de um cliente no servidor................................................................. 172 Figura 8.21 - Interface gráfica..................................................................................................... 172 Figura 8.22 - O servidor recebe um valor enviado pela aplicação cliente...................................172 Figura 8.23 - Montagem realizada para testar o software do NCAP.......................................... 173 Figura 8.24 - Interação cliente-servidor com base na API NET..................................................174 Figura 8.25 - Cliente solicitando a leitura do canal transdutor número 1....................................175 Figura 8.26 - Cliente solicitando a leitura das TEDS e do registrador de estados...................... 176 Figura 8.27 - Nó IEEE 1451 completo: a) simulação, b) montagem realizada no laboratório ...177 Figura 8.28 - Emprego do analisador de tempos do ambiente Max+Plus II para estimar...........178 a freqüência máxima de operação do conjunto STIM-Gerenciador de ................ Protocolo................................................................................................................ Figura 8.29 - Comprovação experimental do modo plug & play do STIM................................ 180 Figura 8.30 - Comprovação experimental do modo plug & play de um STIM baseado em..... 181 microcontrolador................................................................................................... Figura 8.31 - Equivalência entre os pinos do microcontrolador MC68HC908QY4 e os ...........181 sinais daTII............................................................................................................ xii LISTA DE TABELAS Tabela 1.1 - Comparação entre diferentes implementações IEEE 1451......................................11 Tabela 2.1 - Classificação das redes por escala........................................................................... 16 Tabela 4.1 - Possíveis atributos de uma rede de transdutores......................................................... 51 Tabela 5.1 - Definição dos sinais da Interface Independente de Transdutores (TII).................... 67 Tabela 5.2 - TII; Atribuição de pinos e cores.............................................................................. 68 Tabela 5.3 - Bloco de Dados Canal-TEDS.................................................................................. 75 Tabela 5.4 - Bloco de Dados Meta-TEDS................................................................................... 76 Tabela 6.1 - Cabeamento para Ethernet 10 Mbps.......................................................................87 Tabela 6.2 - Cabeamento para Fast Ethernet ..............................................................................87 Tabela 6.3 - Cabeamento para Gigabit Ethernet .........................................................................88 Tabela 7.1 - Pinagem do registrador de estados da porta paralela para funções de leitura......... 139 Tabela 8.1 - STIM; recursos utilizados........................................................................................155 Tabela 8.2 - Endereços de Função utilizados.............................................................................. 158 Tabela 8.3 - Estrutura Canal-TEDS1........................................................................................... 162 Tabela 8.4 - Estrutura Canal-TEDS2........................................................................................... 163 Tabela 8.5 - Estrutura Meta-TEDS.............................................................................................. 165 Tabela 8.6 - Gerenciador com entrada e saída de 8 bits ; recursos utilizados............................. 170 Tabela 8.7 - Gerenciador com entrada de 8 bits e saída de 5 bits ; recursos utilizados............ 171 xiii LISTA DE ABREVIATURAS E SIGLAS ADC (A/D) Analog to Digital Converter (Conversor Analógico-Digital) API Application Programming Interfaces (Interfaces de Programação de Aplicativos) ASIC Application-Specific Integrated Circuit (Circuito Integrado de Aplicação Específica) BIOS Basic Input Output System (Sistema Básico de Entrada Saída) CMOS Complementary Metal-Oxide Semiconductor (Semicondutor Metal-Óxido Complementar) COMM Communication (Comunicação) CPLD Complex Programmable Logic Device (Dispositivo Lógico Programável Complexo) CRC Cyclical Redundancy Check (Teste de Redundância Cíclica) CSMA/CD Carrier Sense Multiple Access with Collision Detection (Acesso Múltiplo com Detecção de Portadora, com Detecção de Colisão) DAC(D/A) Digital to Analog Converter (Conversor Digital-Analógico) ECP Extended Capability Port (Porta com Capacidade Estendida) EEPROM Electrically-Erasable Programmable Read-Only Memory (Memória Exclusivamente de Leitura, Eletricamente Apagável) EPP Enhanced Parallel Port (Porta Paralela Estendida) EPROM Erasable Programmable Read-Only Memory (Mémoria Exclusivamente de Leitura, Programável e Apagável) FPGA Field-Programmable Gate Array (Matriz de Portas Programável em Campo) GAL Generic Array Logic (Matriz Lógica Genérica) HDL Hardware Description Language (Linguagem de Descrição de Hardware) IC Integrated Circuit (Circuito Integrado) IEC International Electrotechnical Commission (Comissão Eletrotécnica Internacional) I/O (E/S) Input/Output (Entrada/Saída) IR InfraRed (Infravermelho) ISO International Standards Organization (Organização Internacional de Padronização) ISP In System Programmability (Programação no Sitema) ISS Integrated Smart Sensor (Sensor Inteligente Integrado) xiv JDK Java Development Kit (Kit de Desenvolvimento Java) JNI Java Native Interface (Interface Java Nativa) JRE Java Run-Time Environment (Ambiente para Execução Java) JTAG Joint Test Action Group JVM Java Virtual Machine (Máquina Virtual Java) LAN Local Area Network (Rede de Área Local) LLC Logical Link Control (Controle de Enlace Lógico) LPM Library of Parameterized Modules (Biblioteca de Módulos Parametrizáveis) MAN Metropolitan Area Network (Rede de Área Metropolitana) MEMS Micro-Electro-Mechanical System (Sistema Microeletromecânico) MPS Michigan Parallel Standard (Padrão Michigan Paralelo) MPU Microprocessor Unit (Unidade Microprocessadora) MSS Michigan Serial Standard (Padrão Michigan Série) NCAP Network Capable Application Processor (Processador de Aplicação com Capacidade de Operar em Rede NIST National Institute of Standards and Technology (Instituto Americano de Padrões e Tecnologia) OSI Open Systems Interconnection (Interconexão de Sistemas Abertos) PAL Programmable Array Logic (Matriz Lógica Programável) PC Personal Computer (Computador Pessoal) PLC Programmable Logic Controller (Controlador Lógico Programável) PLD Programmable Logic Device (Dispositivo Lógico Programável) RMI Remote Method Invocation (Chamada de Método Remoto) RPC Remote Procedure Calls (Chamada de Procedimentos Remotos) SPI Serial Peripheral Interface (Interface Série para Periféricos) SPP Standard Parallel Port (Porta Paralela Padrão) SRAM Static Random Access Memory (Memória Estática de Acesso Aleatório) STIM Smart Tranducer Interface Modue (Módulo de Interface para Transdutores Inteligentes) TC-9 Technical Committee 9 on Sensor Technology (Comitê Técnico 9 em Tecnologia de Sensores) TCP/IP Transmission Control Protocol/Internet Protocol (Protocolo de Controle de Transmissão/Protocolo de Internet) TEDS Transducer Electronic Data Sheet (Especificações de Transdutor em em Formato Eletrônico) TII Transducer Independent Interface (Interface Independente de Transdutores) TTL Transistor-Transistor Logic (Lógica Transistor-Transistor) VHDL Very High Speed Integrated Circuit - Hardware Description Language Linguagem de Descrição de Hardwrare para Circuitos Integrados de Muito Elevada Velocidade) xv SUMÁRIO 1. Introdução Geral.............................................................................................................. 1 1.1. Introdução........................................................................................................................ 1 1.2. Breve Histórico................................................................................................................ 2 1.3. Contextualização do Projeto............................................................................................ 4 1.3.1 - Objetivos da Tese.... ..............................................................................................5 1.3.2 - Motivação. ............................................................................................................ 6 1.3.3 - Justificativa ...........................................................................................................8 1.4. Trabalhos Relevantes na Área......................................................................................... 9 1.4.1 - Comparação entre diferentes implementações IEEE 1451 .................................. 10 1.5. Organização do Texto...................................................................................................... 13 2. Redes de Computadores................................................................................................ 15 2.1. Definição e Objetivos das Redes de Computadores........................................................ 15 2.2. Classificação das Redes por Escala................................................................................. 15 2.2.1 - Rede de Área Local (LAN). ...................................................................................16 2.2.2 - Rede de Área Metropolitana (MAN). ....................................................................17 2.2.3 - Redes Geograficamente Distribuídas (WAN). ...................................................... 18 2.2.4 - Inter-Redes ............................................................................................................18 2.3. Camadas, Protocolos, Interfaces e Serviços.................................................................... 18 2.4. Transmissão de Dados..................................................................................................... 20 2.4.1 -Transmissão Paralela. ........................................................................................... 20 2.4.2 -Transmissão Série. ..................................................................................................20 2.5. Modelos de Referência.................................................................................................... 20 2.5.1 - Modelo de Referência ISO/OSI. .............................................................................21 2.5.2 - Modelo de Referência TCP/IP. ..............................................................................23 2.5.3 - Modelo ISO/OSI vs. TCP/IP. ................................................................................. 25 2.6. Redes Industriais..............................................................................................................26 2.6.1 - Definição e Objetivos das Redes Industriais. ........................................................ 26 2.6.2 - Níveis em uma Rede Industrial. ............................................................................. 27 2.6.3 - Tendências. ............................................................................................................ 28 2.7. Comentários Finais sobre o Capítulo 2............................................................................28 3. Sistemas de Instrumentação Distribuída............................................................... 29 3.1. Introdução........................................................................................................................ 29 3.2. Sistema de Instrumentação.............................................................................................. 30 3.2.1 - Visão Conceitual ....................................................................................................30 3.2.2 - Dispositivo transdutor ........................................................................................... 31 3.2.3 - Sensor Inteligente .................................................................................................. 32 3.2.4 - Sistemas de Medição e Controle Distribuído ........................................................ 33 xvi 3.2.5 - Necessidade de Sistemas Distribuídos ...................................................................35 3.3. Comentários Finais sobre o Capítulo 3............................................................................35 4. Transdutores em Rede.................................................................................................. 36 4.1. Breve Histórico................................................................................................................ 36 4.2. Conexão de Sensores em Rede........................................................................................ 37 4.2.1 - Barramentos para Sensores ...................................................................................38 4.2.2 - Redes de Controle e Barramentos de Campo ........................................................ 41 4.2.3 - Redes e Barramentos de Campo Comerciais......................................................... 46 4 .3. Aspectos Básicos Relacionados com o Projeto de Redes de Transdutores..................... 49 4.3.1 - Propriedades Associadas aos Transdutores. .........................................................50 4.3.2 - Propriedades Relacionadas com os Nós de Rede e o Sistema. ............................. 50 4.4. Comentários Finais sobre o Capítulo 4............................................................................51 5. Padrão de Interfaceamento IEEE 1451....................................................................52 5.1. Introdução........................................................................................................................ 52 5.2. Objetivos.......................................................................................................................... 53 5.3. Efeito do Padrão sobre um Transdutor Conectado a uma Rede...................................... 54 5.4. O Padrão IEEE 1451.2.....................................................................................................55 5.4.1 - Módulo de Interface para Transdutores Inteligentes (STIM). ..............................56 5.4.2 - STIM - Hardware Necessário. .............................................................................. 58 5.4.3 - Funcionalidade da IEEE 1451.2. ......................................................................... 60 5.4.4 - Interface Independente de Transdutores (TII). .....................................................66 5.4.5 - Protocolos de Comunicação ................................................................................. 69 5.4.6 - Formatos TEDS .................................................................................................... 72 5.4.7 - Especificação dos Formatos TEDS....................................................................... 73 5.5. O Padrão IEEE 1451.1.....................................................................................................77 5.5.1 - Processador de Aplicação com Capacidade de Operar em Rede (NCAP)...........77 5.5.2 - O Modelo de Informação IEEE 1451.1 ................................................................ 80 5.6. Comentários Finais sobre o Capítulo 5............................................................................82 6. Tecnologias Utilizadas no Projeto............................................................................. 83 6.1. Tecnologia Ethernet......................................................................................................... 83 6.1.1 - Elementos de um Sistema Ethernet .......................................................................84 6.1.2 - Desempenho da Tecnologia Ethernet ................................................................... 88 6.1.3 - Ethernet na Automação Industrial ........................................................................89 6.2. Tecnologia de Lógica Programável................................................................................ 92 6.2.1 - Dispositivos Lógicos Programáveis. .................................................................... 92 6.2.2 - Linguagens de Descrição de Hardware .............................................................. 94 6.2.3 - Ambientes de Síntese. ............................................................................................96 6.2.4 - Desempenho de PLDs ........................................................................................ 99 6.3. Tecnologia Java.............................................................................................................. 100 6.3.1 - Introdução .............................................................................................................100 6.3.2 - Funcionamento da Linguagem Java......................................................................101 xvii 6.3.3 - Principais Características da Linguagem Java.............................................103 6.3.4 - API RMI........................................................................................................ 103 6.3.5 - API de Comunicações................................................................................... 107 6.3.6 - Códigos Objeto e Java.................................................................................. 109 6.3.7 - API NET........................................................................................................112 6.3.8 - Desempenho da Tecnologia Java..................................................................115 6.4. Comentários Finais sobre o Capítulo 6.................................................................... 116 7. Pojeto do Nó IEEE 1451 ............................................................................ 117 7.1. Desenvolvimento do STIM..................................................................................... 118 7.1.1 - Arquitetura Implementada ........................................................................... 118 7.1.2 - Arquitetura Detalhada...................................................................................120 7.1.3 - Suporte Hardware Empregado .................................................................... 129 7.2. Desenvolvimento do NCAP.................................................................................... 131 7.2.1 - Suporte Hardware Utilizado......................................................................... 132 7.2.2 - Gerenciador de Protocolo ............................................................................133 7.2.3 - Software do NCAP. ......................................................................................140 7.3. Conexão do Nó IEEE 1451 na Rede.......................................................................149 7.4. Comentários Finais sobre o Capítulo 7.................................................................... 150 8. Resultados Obtidos................................................................................. 151 8.1. Implementação do STIM......................................................................................... 152 8.1.1 - Influência do Número de Canais sobre os Recursos Utilizados. .................. 153 8.1.2 - Resultados de Simulações e Experimentais ..................................................155 8.2. Implementação do NCAP........................................................................................168 8.2.1 - Gerenciador de Protocolo com Entrada e Saída de Oito Bits.......................168 8.2.2 - Gerenciador de Protocolo com Entrada de Oito Bits e Saída de Cinco....... 170 8.2.3 - Software do NCAP Baseado em Java RMI................................................... 171 8.2.4 - Software do NCAP Baseado em Java NET...................................................173 8.3. Nó IEEE 1451 Completo........................................................................................ 177 8.4. Desempenho do STIM e do Gerenciador de Protocolo........................................... 178 8.5. Comprovação do Modo Plug and Play.................................................................... 179 8.6. Comentários Finais sobre o Capítulo 8.................................................................... 182 9. Conclusões Gerais ................................................................................ 183 9.1. Conclusões.............................................................................................................. 183 9.2. Contribuições...........................................................................................................186 9.3. Sugestões de Trabalhos Futuros ............................................................................. 187 Referências ......................................................................................................189 Glossário .......................................................................................................... 198 xviii Apêndices........................................................................................................................201 A. Grupos de Trabalho IEEE 802 .......................................................................................... 202 B. Estado Atual do Padrão IEEE 1451 .................................................................................. 203 C. Endereços de Função IEEE 1451.2 .................................................................................. 205 D. Instalação do JDK, Parport e Userport ............................................................................. 206 E. Arquiteturas Detalhadas e Hierarquias de Projeto............................................................. 208 F. Detalhes dos Circuitos de Condicionamento e Conversão de Sinal...................................211 1 Capítulo 1 Introdução Geral 1.1 - Introdução Os dispositivos sensores e os dispositivos atuadores são os protagonistas no cenário da automação industrial. O fato de vivermos atualmente em um mundo de informações e comunicações, exige não apenas que as informações relacionadas com os transdutores em um determinado ambiente sejam transmitidas de um ponto a outro, mas também compartilhadas. Nasce, assim, o conceito de rede de transdutores. Impulsionados pelo avanço significativo das tecnologias de redes de computadores, o crescimento acentuado da Internet e a grande disponibilidade de ferramentas para desenvolvimento de sistemas digitais, os sistemas de medição e controle distribuído, constituem hoje, uma tendência, não apenas no âmbito industrial, mas também na indústria aeroespacial, automação residencial e engenharia biomédica. Os transdutores em rede fazem parte desses sistemas e a transmissão de suas informações, de maneira adequada, é um fato relevante. Os sistemas de medição e controle distribuídos precisam ser flexíveis, visando a integração dos componentes do sistema. Isto significa que, desde os transdutores até o receptor final das informações deve-se estabelecer uma interação cada vez mais simples e acessível. Neste sentido, o projeto das interfaces envolvidas no sistema desempenha um papel de importância vital. O problema do interfaceamento demandou, e demanda ainda, grandes esforços por parte dos engenheiros projetistas da área de instrumentação. Na década de 1980, a evolução das comunicações digitais possibilitou a introdução dos denominados barramentos de campo na área de automação industrial. Esses sistemas de interconexão possibilitam a comunicação digital bidirecional sob um determinado protocolo de comunicação, permitindo que os dispositivos transdutores conectados ao barramento possam trocar informações. Entretanto, existem atualmente inúmeras tecnologias disponíveis, muitas 2 delas proprietárias [1]. Este fato possibilitou um notável avanço na automação industrial, porém, acarretou um outro problema difícil de se resolver, o interfaceamento entre os transdutores e as diferentes tecnologias de rede. Reconhecendo-se a necessidade destes problemas serem resolvidos, no final da década de 1990 foram aprovadas as primeiras diretrizes do padrão de interfaceamento para transdutores inteligentes IEEE 1451 [2], [3]. Esta norma introduz um conceito inovador para estabelecer a independência entre um nó de rede envolvendo transdutores e o protocolo de comunicação da rede. Através dessas normas especificam-se as bases para implementar um modelo de informação de um transdutor inteligente, baseando-se na programação orientada a objetos, que hoje, junto à utilização de padrões, sistemas abertos de comunicação e ferramentas associadas à Internet, constituem as novas tendências na área de instrumentação distribuída [4]. A exploração de ferramentas e recursos de domínio aberto e padronizados, e sua aplicação em sistemas de instrumentação são as principais idéias que norteiam os objetivos deste trabalho. 1.2 - Breve Histórico do Padrão IEEE 1451 Foi em 1993, quando o Comitê Técnico em Tecnologia de Sensores (TC-9 - Technical Committee on Sensor Technology) da Sociedade de Instrumentação e Medidas do IEEE (IEEE Instrumentation and Measurement Society) começou a trabalhar na definição de um padrão de interfaceamento para conexão de transdutores inteligentes em rede. Em parceria com o Instituto Americano de Padrões e Tecnologia (NIST - National Institute of Standards and Technology), o IEEE iniciou uma série de workshops sobre padronização de interfaces, que deram origem aos grupos de trabalho que iriam criar as especificações pertencentes à família 1451 [5]. No mês de março de 1994 foi realizado o primeiro workshop do NIST/IEEE sobre interfaces para sensores inteligentes. Já no mês de setembro do mesmo ano teve lugar o segundo workshop, onde foi demonstrado o conceito de especificações de transdutores em formato eletrônico. Esses eventos motivaram a formação de dois grupos de trabalho denominados IEEE P1451.1 e IEEE P1451.21 respectivamente. No terceiro workshop, realizado no mês de maio de 1995 foram 1 A letra P significa em fase de projeto. 3 demonstrados os primeiros conceitos de interoperabilidade e plug and play2 em redes de transdutores. No mês de setembro de 1996 foram criados os grupos de trabalho IEEE P1451.3 e IEEE P1451.4 . No ano de 1997 foi aprovado o padrão IEEE Std. 1451.2 (Transducer to Microprocessor Communication Protocols and Transducers Electronic Data sheet (TEDS) Formats) [2]. Esta norma foi criada com o objetivo de padronizar a interface entre transdutores e processadores de rede, definindo, para tal fim, o Módulo de Interface para Transdutores Inteligentes (STIM - Smart Transducer Interface Module), a Interface Independente de Transdutores (TII - Transducer Independent Interface) e a maneira de serem consideradas as especificações de transdutores para serem gravadas em formato eletrônico (TEDS – Transducer Electronic Data Sheet). O STIM deve conter um processador para implementar as funcionalidades descritas neste padrão, uma memória de programa para armazenar as estruturas TEDS, circuitos de condicionamento e conversão de sinal e os transdutores propriamente ditos. No ano de 1999 foi aprovado o padrão IEEE Std. 1451.1 (Network Capable Application Processor (NCAP) Information Model for Smart Transducers) [3]. O padrão IEEE 1451.1 foi criado com o objetivo de padronizar o software da interface entre processadores de aplicação para operar em rede (NCAPs) e redes de controle. Isto possibilitou a independência entre um nó de rede e o protocolo de comunicação da rede. A padronização é atingida através do desenvolvimento de um conjunto comum de informações ou modelo objeto, incluindo: blocos de transdutores, blocos de funções e blocos de rede. Este modelo de informação é baseado na programação orientada a objetos. No ano de 2003 foi aprovada a diretriz IEEE Std. 1451.3 (Digital Communication and Transducer Electronic Data Sheet (TEDS) Formats for Distributed Multidrop Systems) [6]. Nesta norma é especificada a forma de comunicação para um arranjo de vários transdutores distribuídos, cujas informações precisam ser lidas de forma sincronizada através de um barramento conectado ao NCAP. No ano de 2004 foi aprovado o padrão IEEE Std. 1451.4 (Mixed-mode Communication Protocols and Transducer Electronic Data Sheet (TEDS) Formats) [7]. Nesta norma especifica- se como um sinal analógico associado a um transdutor e um sinal digital podem ser 2Plug and play: termo que faz referência ao processo de conexão e posterior funcionamento de um dispositivo em um determinado sistema, sem a necessidade de reconfigurações. 4 disponibilizados através da mesma interface com o NCAP. Este fato é importante para aplicações que precisam de elevadas taxas de aquisição de dados. Atualmente há um grupo de trabalho desenvolvendo a especificação IEEE P1451.5 (Wireless Communication Protocols and Transducer Electronic Data Sheets) visando sua futura aprovação. O grupo de trabalho tem como objetivo a criação de uma especificação para direcionar as aplicações do padrão IEEE 1451 em ambientes de rede sem fio [8]. Há também uma proposta recente denominada de P1451.0, cujo objetivo é a criação de uma diretriz que sirva de base para todas as outras especificações da família 1451, por exemplo, a unificação das TEDS das especificações componentes [9], [10]. Outra proposta lançada em 2004 foi a IEEE P1451.6 (A High-speed CANopen-based Transducer Network Interface for Intrinsically Safe and Non-intrinsically Safe Applications) [10]. Neste caso propõe-se o uso de uma rede de alta velocidade baseada no sistema CAN-open3 com diversos módulos contendo transdutores e a definição de uma camada de segurança no modelo de comunicação. 1.3 – Contextualização do Projeto Nesta seção são expostos os objetivos e estratégias de ação do trabalho, assim como também, a motivação e a justificativa correspondente. Os métodos e os materiais empregados no desenvolvimento do trabalho serão abordados no Capítulo 7. O projeto de um sistema de instrumentação distribuída requisita a aplicação de diversas técnicas e metodologias relacionadas com aspectos relevantes como aquisição, interfaceamento e comunicação. O sistema concebido, além de ser eficiente, deve ser flexível o suficiente para que possam ser feitas modificações futuras sem a necessidade de efetuar pesadas reconfigurações. De modo geral, essa flexibilidade deve abranger desde a aquisição de dados até o receptor final das informações, o que implica que as diferentes interfaces envolvidas no sistema de instrumentação devem ser simples e intuitivas. No projeto de sistemas de instrumentação distribuída devem levar-se em conta diferentes pontos críticos. A primeira das considerações diz respeito à descrição dos tipos de transdutores e 3CAN-open: protocolo de comunicação aberto para aplicações industriais baseado em CAN (Controller Area Network) e introduzido pelo grupo CiA (CAN in Automation). 5 dispositivos que constituirão o sistema, além de descrever a interface física necessária para cada aplicação. Na etapa posterior, devem ser analisadas as possíveis redes ou barramentos de campo que possam satisfazer as necessidades do projeto e que melhor se adaptem às características dos dispositivos, a fim de que os transdutores conectados possam ter um ótimo desempenho. Este fato, em certas ocasiões, só pode ser resolvido mediante o emprego de soluções proprietárias. Finalmente, os algoritmos de aplicação devem ser desenvolvidos com base em um modelo de distribuição adequado. 1.3.1 - Objetivos da Tese O objetivo deste trabalho é o desenvolvimento de um sistema de instrumentação distribuída, composto por um nó de rede em conformidade com o padrão de interfaceamento IEEE 1451, para conectar transdutores inteligentes em ambientes de rede, utilizando-se para tal fim, ferramentas padronizadas e de domínio aberto. Como parte do nó IEEE 1451, implementou-se um Processador de Aplicação com Capacidade de Operar em Rede (NCAP), com base no padrão IEEE 1451.1, agindo como servidor, e um Módulo de Interface para Transdutores Inteligentes (STIM), em conformidade com o padrão IEEE 1451.2 [11]. O STIM foi desenvolvido integralmente através dos recursos da tecnologia de lógica programável, utilizando-se a linguagem padronizada VHDL (VHSIC4 Hardware Description Language) para descrever e sintetizar as funcionalidades especificadas no padrão em dispositivos lógicos programáveis de uso geral, conforme feito no trabalho citado em [12]. Por seu turno, o hardware do NCAP foi implementado com um microcomputador, sendo que foram usados: uma placa de rede, a porta paralela e um gerenciador de protocolo, desenvolvido em VHDL. A funcionalidade do IEEE 1451.1, em relação com o ponto de vista software, desenvolveu-se através dos recursos da programação orientada a objetos, especificamente, a tecnologia Java, pois além de puramente orientada a objeto e possuir relação direta com a Internet, possibilita a reutilização de código eficiente e apresenta portabilidade entre diferentes plataformas [13]. 4 VHSIC (Very High Speed Integrated Circuits) é o nome de um grupo de trabalho criado pelo departamento de defesa americano nos finais da década de 1970, com a finalidade de criar uma nova geração de circuitos integrados. 6 O conjunto NCAP-STIM foi conectado a uma rede baseada no padrão IEEE 802.3, sendo que, através da rede, diferentes NCAPs clientes podem acessar a aplicação, para realizar monitoramento e atuação remota das variáveis envolvidas no processo. 1.3.2 - Motivação Já faz algum tempo que grandes companhias como a GM e a Boeing começaram a reavaliar como suas tecnologias de rede poderiam ser padronizadas através de tecnologias e protocolos associados à Internet [14]. A utilização de padrões reconhecidos internacionalmente, para implementar as interfaces e comunicações, constitui um ponto de importância vital no projeto de sistemas de instrumentação distribuída, escaláveis e flexíveis. Entretanto, na descrição de protocolos e interfaces podem ser utilizadas tanto ferramentas de domínio público quanto ferramentas proprietárias. A utilização de ferramentas abertas possibilita ao usuário, empregá-la e até modificá-la, sem depender do projetista original, salientando-se que, esse recurso pode ser tanto hardware quanto software. Já uma ferramenta proprietária está associada a um determinado fabricante e sua aplicação pode fazer com que os sistemas desenvolvidos percam flexibilidade e interoperabilidade. Geralmente, um recurso proprietário mostra-se muito eficiente, porém, em virtude de sua natureza, resulta pouco flexível. Uma ferramenta de domínio público pode apresentar certas deficiências, entretanto, seu emprego possibilita que o sistema desenvolvido possa ser modificado e melhorado constantemente, introduzindo uma grande flexibilidade no projeto. Fazendo-se uma análise em torno da flexibilidade de um sistema de instrumentação distribuída, surgem três conceitos fundamentais: plug and play, conectividade e interoperabilidade. O plug and play refere-se à possibilidade de evitar as dificuldades de reconfigurar um sistema, toda vez que é acrescentado um novo dispositivo ao mesmo. A conectividade refere-se à integração de diferentes equipamentos e dispositivos através de tecnologias de rede, enquanto que a interoperabilidade é a possibilidade de um determinado elemento hardware ou software operar com diferentes tecnologias. O uso de soluções proprietárias pode acarretar, em algum grau, a perda de flexibilidade e dos conceitos de plug and play e interoperabilidade. Deve-se levar em conta que nos sistemas 7 distribuídos de medição e controle torna-se fundamental interconectar diferentes dispositivos e que nem todos eles são fornecidos pelo mesmo fabricante. No Capítulo 4 será analisado o fato de existirem diversas metodologias de conexão possíveis e uma ampla variedade de tecnologias de rede e barramentos de campo disponíveis no mercado atual, a tal ponto que no final da década de 1980 surgiu o termo “guerra dos barramentos de campo” (fieldbus war) fazendo referência a esse problema [15]. Desta maneira, surge uma pergunta muito difícil de responder: qual a tecnologia mais conveniente para uma aplicação em particular? Quando se deseja conectar um barramento de campo com uma rede tipo Intranet, compatível com Ethernet, é necessário desenvolver um gateway completo, para relacionar o protocolo do lado do barramento de campo com o protocolo do lado da rede. Geralmente, o protocolo utilizado pelo barramento é específico, sendo que o protocolo do lado da Intranet oferece várias alternativas. Evidentemente, a interconexão de transdutores à Internet/Intranet, mediante barramentos de campo, resulta em uma ampla variedade de soluções proprietárias. Contudo, existe a possibilidade de direcionar este tipo de problema, através do padrão de interfaceamento IEEE 1451. Pelo fato de especificar um nó de rede com capacidade de processamento local e capacidade de interoperar com diferentes tecnologias de rede, implementando um sistema em conformidade com o padrão IEEE 1451, é possível pensar na conexão de transdutores inteligentes diretamente com redes do tipo local, por exemplo, Ethernet, utilizando o nó como dispositivo intermediário entre o transdutor e a rede. Segundo Lee & Schneeman, em [4] e [16], a tendência atual em sistemas de medição e controle distribuído baseia-se na utilização de padrões para realizar o interfaceamento entre transdutores e redes, o emprego de padrões de comunicação e a utilização da Web para difundir as informações. Assim, os sistemas ficam muito mais flexíveis e integrados. Diferentes tecnologias associadas à Internet como a linguagem Java, WWW, o conjunto de protocolos TCP / IP e a Ethernet, estão se tornando as plataformas preferidas para construir a próxima geração de sistemas de medição e controle distribuídos. Os mesmos autores, em [14], exploram técnicas com o objetivo de integrar as tecnologias associadas à Internet e os novos padrões do IEEE para transdutores inteligentes, com os sistemas de medição e controle distribuído. Desde esse ponto de vista consideram-se três importantes áreas 8 de integração: interfaces padronizadas para transdutores, redes abertas de comunicação e aplicações de modelos distribuídos. Os fatos anteriores motivam a realização de pesquisas na área de padronização em sistemas de instrumentação. Como ponto inicial, no presente trabalho, é de particular interesse a implementação de um sistema baseado no padrão de interfaceamento IEEE 1451 com ênfase na utilização de ferramentas padronizadas e de domínio aberto para implementá-lo. Salientando-se que, explora-se também, a utilização do padrão IEEE 802.3 no nível de rede de controle. 1.3.3 - Justificativa Os dispositivos transdutores fazem parte de um mercado de produtos muito amplo e variado, esperando-se um crescimento deste mercado, equivalente a US$ 43 bilhões até o ano de 2008 [17]. No entanto, de acordo com um estudo recente realizado pelo grupo Itechno Consulting da Suíça, o crescimento do mercado poderia superar os US$ 50 bilhões em 2008, sem levar em conta as aplicações militares [18]. Outro dado interessante é que ao ser considerado o mercado M2M (Machine to Machine), ou seja, tudo aquilo que abrange desde o transdutor até o receptor final das informações como, por exemplo, as tecnologias de rede e desenvolvimento de software, o valor poderia atingir os US$ 400 bilhões em 2010. A ausência de um padrão internacional de interfaceamento fez com que, durante vários anos, os engenheiros projetistas da área de instrumentação tivessem de empregar muito tempo e esforço para projetar as interfaces de transdutores com diferentes tecnologias de rede, incrementando-se, assim, o custo das aplicações. Um sistema de instrumentação e controle distribuído projetado em conformidade com o padrão IEEE 1451 e a filosofia de sistemas abertos possibilita a introdução de conceitos como: flexibilidade, interoperabilidade, plug and play e reutilização de códigos. Embora o projeto possa ser desenvolvido para uma aplicação específica, a relevância do mesmo está no emprego do padrão e não no tipo de processo envolvido. Utilizando os mesmos conceitos, o projeto pode ser ampliado e, ainda, levado para outras áreas, quase sem esforços adicionais. Através da implementação de um sistema em conformidade com as diretrizes do padrão IEEE 1451, as indústrias poderão obter inúmeros benefícios, tais como: redução de custos de sistemas de instrumentação devido à redução de complexidade, maior facilidade e flexibilidade para 9 transmitir informações através de uma rede de comunicação e maior facilidade para ampliar os sistemas sem efetuar grandes configurações. Porém, a relevância não abrange apenas o setor industrial, mas também áreas como a biomédica, telemedicina e automação residencial. 1.4 - Trabalhos Relevantes na Área Um trabalho que teve contribuições relevantes na área de sensores inteligentes em rede, data do ano de 1995 [19]. Como parte dessa pesquisa foi desenvolvido um protótipo de sensor inteligente conectado em rede. O trabalho teve como finalidade contribuir para três áreas bem definidas: a) padronização de interfaces, b) utilização de especificações de transdutores em formato eletrônico e c) execução de tarefas de gerenciamento através de nós de rede associados aos transdutores. No ano de 1996, Lee e Schneeman, em [20], implementaram um módulo inteligente em conformidade com as especificações IEEE P1451.1 e IEEE P1451.2 que ainda estavam em processo de aprovação. Porém, o trabalho teve como finalidade exemplificar e divulgar os conceitos especificados nas diretrizes acima mencionadas. No ano de 1998 foi desenvolvido um circuito integrado com tecnologia CMOS, implementando um STIM que integrava conversores A/D, D/A e um microcontrolador de 8 bits com 256 bytes de memória SRAM (Static Random Access Memory) e 10,5 Kbytes de memória flash EEPROM (Electrically-Erasable Programmable Read-Only Memory), com condições satisfatórias de desempenho [21], [22]. Em 1999 foi implementado um sistema de medição e controle distribuído com base em padrões internacionais. Este trabalho provou a viabilidade dos sistemas de instrumentação projetados em conformidade com os padrões IEEE 1451.1, IEEE 1451.2, IEEE 802 (tecnologias de redes LANs), além da utilização das tecnologias associadas à Internet como, WWW e protocolos TCP/IP [14]. Em 2000 foi implementado um módulo STIM, em conformidade com o padrão IEEE 1451.2, utilizando um sistema embarcado fornecido pela empresa Analog Devices [23], [24]. Esse sistema continha, na mesma placa, um núcleo processador baseado no microcontrolador 8051, além de outros componentes como memórias, conversores A/D e D/A e interfaces com microcomputador. Esse trabalho provou que é possível desenvolver módulos STIM utilizando tecnologias existentes no mercado. 10 Em 2000 foi implementado um nó IEEE 1451 completo STIM-NCAP, para funcionar em um ambiente de rede com o protocolo CAN (Controller Area Network) [25]. Neste caso, tanto o STIM como o NCAP foram implementados utilizando microcontroladores comerciais suportados por alguns periféricos e ambientes de software. Em 2001 foi implementado um sistema de instrumentação experimental, integrando o padrão IEEE 1451, o padrão IEEE 802.3 e tecnologias associadas à Internet [26]. A funcionalidade especificada no padrão IEEE 1451.2 foi desenvolvida, em parte, utilizando a tecnologia de lógica programável. Já a funcionalidade especificada no padrão IEEE 1451.1 foi atingida através do emprego de placas comerciais. Em 2002 foi desenvolvida uma aplicação IEEE 1451.1, para acessar sensores via Internet utilizando comunicação série e protocolo TCP/IP [27]. O NCAP neste caso foi implementado através de uma placa comercial [28]. Em 2002 foi desenvolvido um STIM de dois canais, utilizando a tecnologia de lógica programável [29]. O STIM foi implementado com dispositivo do tipo Matriz de Portas Programável em Campo (FPGA - Field Programmable Gate Array) de cerca de 800.000 portas típicas. Em 2002 foi implementado, em laboratório, um sistema embarcado compatível com vários protocolos de comunicação [30]. O sistema desenvolvido implementava, em parte, um módulo STIM baseado na tecnologia de lógica programável e parte da funcionalidade especificada no padrão IEEE 1451.1, utilizando um microcontrolador. Em 2004 foi proposto um NCAP simples baseado em microcontrolador e reprogramável dinamicamente através de uma rede local [31]. Em 2004 foi implementado um sistema IEEE1451, para monitoramento de níveis de CO2 no ar, através de um STIM contendo um sensor infravermelho não dispersivo conectado à uma rede com características específicas, vinculada à Internet [32]. 1.4.1 – Comparação entre diferentes implementações IEEE 1451 Na Tabela 1.1 é apresentada uma comparação entre os diferentes trabalhos referenciados na seção 1.4 e o presente trabalho de tese. 11 Referência / Tipo de implementação Recursos empregados para a implementação do NCAP Recursos empregados para a implementação do STIM Tecnologia de Rede Características/ possíveis aplicações [20]: Implementação demonstrativa - PC - Software do NCAP em C++ - Sensor de pressão compatível com a especificação IEEE P1451.2 - TEDS on-board - Ethernet 10BaseT - Experimental [21], [22]: STIM - - Circuito integrado baseado em microcontrolador de 8 bits - Tecnologia CMOS - - Experimental [14]: Sistema de instrumentação distribuída - Baseado em [20] e tecnologias diversas - Software em C, C++ e Java Applet - - Ethernet 10BaseT - Experimental - Controle de temperatura [23]: Aplicação do padrão IEEE 1451.2 - Solução Comercial - HP – BFOOT 65501 (Hewlett Packard) - Sistema de aquisição AduC812 + Kit de desenvolvimento Keil C-51 (Analog Devices) - 2 Canais transdutores - Ethernet - Controle de temperatura [25]: Nó IEEE 1451 - Hardware com núcleo uC 16HC9161X1 (Motorola) + Controlador CAN 82C250 - Microcontrolador 87C752 (Philips) - 2 Canais Transdutores - CAN - Indústria automotiva [26]: Sistema de instrumentação - Solução Comercial - HP – BFOOT 65501 (Hewlett Packard) - FPGA multicore APEX 20K200 de 200.000 portas típicas (Altera) - Ethernet - Fast Ethernet - Experimental - Física nuclear [27]: NCAP - Solução Comercial EM04a (Esensors) - - Ethernet 10BaseT - Websensors5 [29]: Aplicação do padrão IEEE 1451.2 - - FPGA VIRTEX XCV800 de cerca de 800.000 portas (Xillinx) - 2 Canais Transdutores - - Gerais [30] NCAP-STIM (SoC – System-on- Chip) - Microprocessador do tipo 6502 - FPGA VIRTEX XCV800 (Xillinx) - - Gerais [31]: NCAP - Hardware com núcleo uC MCS51 - - Rede LAN - Gerais [32]: Nó IEEE 1451 - Microcontrolador - Microcontrolador - Sensor infravermelho para monitoramento de CO2 - Rede específica (emNET) - Monitoramento de níveis de CO2 no ar Trabalho de Tese - PC convencional + gerenciador - de protocolo (FPGA FLEX EPF10K20RC240-4 de 20.000 portas típicas, Altera) - Software do NCAP em Java - FPGA ACEX EP1K50TC144-3 de 50.000 portas típicas (Altera) - 2 Canais Transdutores - Ethernet 10BaseT - Gerais 5Websensor: sistema sensor que pode ser acessado diretamente desde um site na Internet. Tabela 1.1. Comparação entre diferentes implementações IEEE 1451. 12 Como mencionado na Tabela 1.1, em [20], foi implementado um NCAP-PC utilizando a porta paralela. No entanto, pelo fato do padrão IEEE 1451.2 definir uma interface serial padronizada composta por dez sinais, o driver da porta paralela teve de ser modificado. Evidentemente essa solução faz com que a portabilidade de uma determinada aplicação seja perdida. No presente trabalho escolheu-se um PC para implementar o NCAP, entretanto foi desenvolvido um dispositivo gerenciador de protocolo que realiza parte da funcionalidade 1451, possibilitando sua conexão com qualquer PC. O PC deve executar o software do NCAP que foi desenvolvido, neste trabalho, por meio da linguagem Java de domínio público. Em [20] o software do NCAP foi desenvolvido em C e C++. Na alternativa apresentada em [21] e [22] foi desenvolvido um circuito integrado com base em um núcleo microcontrolador de 8 bits, visando a implementação de um STIM experimental. No STIM implementado em [23] utilizou-se um sistema embarcado fornecido pela empresa Analog Devices. Outra solução comercial apresenta-se em [27], com base em um kit de desenvolvimento para aplicações IEEE 1451 fornecido pela empresa Esensors. Além de ter-se notado uma carência de aplicações de baixo custo, existem poucas soluções baseadas em ferramentas abertas e padronizadas. Desta maneira, optou-se por implementar o STIM integralmente com dispositivos lógicos programáveis versáteis e de baixo custo, contendo dois canais transdutores, pois a tecnologia de lógica programável possibilita o projeto de sistemas digitais flexíveis e a reutilização de códigos através da linguagem padronizada VHDL. Em [26] o STIM foi implementado com uma FPGA multicore6, que possibilita a implementação de sistemas digitais complexos, porém, o custo desses dispositivos é maior do que o custo dos dispositivos de lógica programável de uso geral e, além disso, seu uso torna-se mais difícil. Em [29], utilizou-se uma FPGA de 800.000 portas típicas, para um STIM com dois canais transdutores. Em contraste, no presente trabalho fez-se uma avaliação com três FPGAs versáteis e de uso geral de 20.000, 50.000 e 100.000 portas típicas, sendo que um STIM com dois canais transdutores pode ser implementado com uma FPGA de 50.000 portas típicas modelo EPF1K50TC14-3 da família ACEX da empresa Altera. 6Multicore: sistema que combina diferentes estruturas de dispositivos lógicos programáveis em uma única arquitetura, eliminando assim, a necessidade de diversos componentes. 13 Em [25], [30], [31], [32] foram utilizadas soluções comerciais e microcontroladores. Embora o emprego de microcontroladores seja uma solução de baixo custo, possui uma desvantagem importante. Geralmente a utilização de microcontroladores requer o uso de linguagem assembly que é específica de cada fabricante, fazendo com que as aplicações fiquem fechadas e, por conseguinte, percam flexibilidade. Podem ser citados outros trabalhos realizados no NIST como, por exemplo, alguns testes experimentais feitos com tecnologias de rede para aplicações industriais como: LonWorks, DeviceNet e Smart Distributed System (SDS) [17]. Resumindo as idéias expostas, a contribuição global do presente trabalho é o emprego de ferramentas padronizadas e abertas na implementação de um nó IEEE 1451. Entretanto, há várias contribuições pontuais, como o emprego de FPGAs versáteis e de uso geral para implementar o STIM, a maneira com que foram implementadas as TEDS, o desenvolvimento de um gerenciador de protocolo em VHDL com o objetivo de tornar portável o uso de um NCAP-PC e o desenvolvimento do software do NCAP integralmente na linguagem Java. Estas idéias serão tratadas com mais detalhes nos Capítulos 7 e 8. 1.5 - Organização do Texto Incluída a introdução geral correspondente ao Capítulo 1, que contém a contextualização do projeto e os trabalhos mais relevantes na área, o texto foi organizado em nove capítulos. No Capítulo 2 são introduzidos os principais conceitos associados às redes de computadores, sendo que muitos deles foram aplicados diretamente e outros têm a finalidade de esclarecer ao leitor sobre a terminologia e os conceitos utilizados no padrão de IEEE 1451. Nesse Capítulo abordam-se também, alguns aspectos das redes industriais. No Capítulo 3, que trata os sistemas de instrumentação distribuída, são abordados tópicos sobre instrumentação, dispositivos transdutores e sistemas de medição e controle distribuídos. No Capitulo 4 trata-se a conexão de transdutores em rede, abordando-se em detalhe: técnicas, metodologias e tecnologias disponíveis comercialmente para este fim. Na seção 4.2.3 será apresentado o tópico: redes e barramentos de campo comerciais, cuja finalidade é ilustrar a diversificação de tecnologias para conectar transdutores em ambientes de rede. 14 Na seqüência aborda-se, no Capítulo 5, o padrão de interfaceamento IEEE 1451, visando o esclarecimento dos seus objetivos e suas contribuições na área de instrumentação distribuída. Em particular trata-se o padrão IEEE 1451.1 e o padrão IEEE 1451.2, cujas especificações foram usadas para a implementação do nó de rede, motivo do presente trabalho de tese. No Capítulo 6 são introduzidas as tecnologias empregadas no projeto, começando pela Ethernet, utilizada em nível de rede de controle, e na seqüência, a tecnologia de lógica programável e tecnologia Java utilizadas no desenvolvimento do nó IEEE 1451. Apresenta-se um estudo sobre limitações e vantagens de cada uma delas e sua influência no desempenho do nó implementado. No Capítulo 7 são apresentados os materiais e os métodos empregados visando atingir os objetivos mencionados na seção 1.3.1, abordando-se seqüencialmente o desenvolvimento do STIM, do NCAP e da conexão do nó na rede. No capítulo 8 são apresentados os resultados de simulação e os resultados experimentais com a correspondente análise. Finalmente, no Capítulo 9, são apresentadas as conclusões gerais da tese. Além disso, o trabalho contém as referências utilizadas, um glossário e um Apêndice dividido em seis seções. 15 Capítulo 2 Redes de Computadores O presente capítulo tem como objetivo introduzir os principais conceitos associados às redes de computadores que, de maneira direta ou indireta, têm sido utilizados neste trabalho. No final do capítulo abordam-se aspectos básicos das redes industriais. 2.1 - Definição e Objetivos das Redes de Computadores Em meados da década de 1960, a idéia de computador centralizado foi mudando gradativamente para dar passo ao conceito de computadores em rede. O fator custo foi uma das principais causas da migração dos sistemas computadores de grande porte para as redes de computadores, pois, a relação preço/desempenho dos pequenos computadores mostrava-se muito melhor. Define-se rede de computadores como sendo um conjunto de computadores autônomos interconectados que podem trocar informações. A conexão dos mesmos pode ser feita de diferentes maneiras, através de fios de cobre, fibras ópticas, técnicas de microondas e satélites. Compartilhar recursos é o principal objetivo das redes de computadores. Através delas é possível colocar programas, dispositivos e dados ao alcance de todas as pessoas da rede [33]. Uma rede de computadores aumenta a confiabilidade de um sistema de informação, uma vez que ela possui fontes alternativas de fornecimento e oferece escalabilidade, que é a possibilidade de aumentar gradualmente o desempenho de um sistema à medida que cresce o volume de carga, bastando, para tal, que se adicionem mais processadores. 2.2 - Classificação das Redes por Escala De acordo com a abrangência geográfica, as redes de computadores podem ser classificadas em redes de área local, redes metropolitanas, redes geograficamente distribuídas e inter-redes. Na Tabela 2.1 mostra-se uma classificação detalhada. 16 Distância do interprocessador Processadores no(a) mesmo(a) Exemplo 0.1 m Placa de circuitos Máquina de fluxo de dados 1 m Sistema Multicomputador 10 m 100 m 1 Km Sala Prédio Campus Rede Local (LAN) 10 Km Cidade Rede Metropolitana (MAN) 100 Km 1000 Km País Continente Rede Geograficamente Distribuída (WAN) 10000 Km Planeta Inter-Rede 2.2.1 - Rede de Área Local (LAN) As LANs são redes contidas em um prédio, empresa, universidade, etc. Os componentes principais de uma rede LAN são os servidores, as estações de trabalho (clientes) e os recursos (programas, impressoras, etc). Em geral, as LANs operam a velocidades que podem variar de 10 a 100 ou mais Mbps7. As tecnologias de redes de área local estão em conformidade com o padrão IEEE 8028. A tecnologia de rede local mais utilizada na atualidade obedece ao padrão IEEE 802.3, comumente conhecido como Ethernet [34]. Na Figura 2.1 são mostradas duas topologias básicas de LANs. A topologia de rede faz referência à organização do cabeamento do sistema. 7 Mbps: unidade de medida de largura de banda usada para expressar um milhão de bits por segundo. 8 Para maiores informações sobre o padrão IEEE 802 pode recorrer-se ao Apêndice A. Tabela 2.1. Classificação das redes por escala. Fonte: Tanenbaum, A.S. Redes de Computadores. Adaptado. a) b) Figura 2.1. Duas topologias de redes LAN, a) Barramento; b) Anel 17 a) Topologia em Barramento Na topologia em barramento todas as máquinas são conectadas ao mesmo meio físico, fazendo com que as mensagens transmitidas através do cabo sejam recebidas por todas as máquinas da rede. Esse modo de operação é chamado de difusão (broadcasting) [33]. Esta topologia é de fácil implementação, entretanto, o aumento da distância pode degradar os sinais transmitidos. b) Topologia em Anel e Topologia em Estrela Nesta topologia, os dispositivos são conectados a um sistema de cabeamento que forma um círculo ou anel, como mostrado na Figura 2.1 b. As mensagens circulam em uma só direção e são lidas por todos os computadores e retransmitidas ao anel no caso daquele computador não ser o destinatário final da informação. O exemplo típico de rede que utiliza topologia em anel é a Token Ring da IBM, padronizada através do IEEE 802.5. Nela, uma ficha (token) circula pela rede e, caso ela esteja vazia, um computador pode “completar” a ficha e enviar um quadro de dados para outra máquina na rede [35]. A rede Token Ring é implementada com uma topologia lógica em anel e uma topologia física em estrela, por questões de flexibilidade ao inserir novas máquinas na rede, pois a interrupção de um anel físico bloquearia a rede. Na Figura 2.2, é mostrada a topologia em estrela, utilizando um concentrador, que o dispositivo responsável por implementar o anel lógico. 2.2.2 - Rede de Área Metropolitana (MAN) As MAN são uma versão ampliada das LANs, pois basicamente os dois tipos de rede utilizam tecnologias semelhantes. Uma MAN pode abranger um grupo de escritórios vizinhos ou uma Figura 2.2. Topologia em estrela. 18 cidade. O fato das MANs serem tratadas como uma categoria especial deve-se a que elas obedecem a um padrão em particular, o IEEE 802.6. 2.2.3 - Redes Geograficamente Distribuídas (WAN) As WANs possuem uma maior abrangência geográfica, podendo abranger desde um país até um continente. Geralmente, as WANs interconectam LANs distantes geograficamente utilizando linhas de transmissão fornecidas por empresas de telecomunicações. 2.2.4 - Inter-Redes Normalmente, usuários distantes por milhares de quilômetros, conectados a diferentes redes, precisam comunicar-se entre si. Nesses casos é preciso que se estabeleçam conexões entre redes que podem ser incompatíveis. Às vezes, isso só é possível através da utilização de equipamentos chamados de gateways, também conhecidos como conversores de protocolo. Assim, um conjunto de redes interconectadas é chamado de inter-rede. Um exemplo específico é a Internet, de alcance mundial. 2.3 - Camadas, Protocolos, Interfaces e Serviços Com o objetivo de reduzir o grau de complexidade, a estrutura de software de uma rede divide-se em diferentes camadas. Deste modo, a camada n de uma máquina ou host9 se comunica com a camada n de outra, a fim de lhe oferecer determinados serviços. O conjunto de regras sobre o modo como se estabelecerá a comunicação entre as partes envolvidas denomina-se de protocolo de camada n [33]. Na Figura 2.3 é ilustrado o conceito de forma esquemática. Na verdade, os dados não são transferidos diretamente desde a camada n de uma máquina para a camada n da outra. A informação percorre os diferentes níveis até atingir a camada requisitada. Nesse caminho, as informações passam pelo meio físico, através do qual se dá a comunicação propriamente dita. 9 Host: termo utilizado para fazer referência a um sistema computador conectado a uma rede. Similar ao termo nó de rede. 19 Entre cada par de camadas adjacentes existe uma interface. A interface define as operações e serviços que uma camada tem a oferecer para a outra. O conjunto de camadas, protocolos e interfaces, denomina-se arquitetura de rede. Quanto aos serviços, existem serviços orientados à conexão e serviços sem conexão ou de datagrama. O serviço orientado à conexão confiável, é baseado no sistema telefônico. O usuário estabelece uma conexão, utiliza a conexão e finalmente a libera. O emissor envia bits e o receptor os recebe na ordem em que foram enviados. Neste tipo de serviço pode-se dispor de confirmação, mas, os retardos introduzidos pelas confirmações podem ser simplesmente inaceitáveis. O serviço sem conexão, ou de datagrama, é baseado no sistema postal. Cada mensagem carrega o endereço de destino completo e cada um deles é roteado através do sistema independentemente de todos os outros. O serviço de datagrama é usado, por exemplo, para o tráfego de voz digital ou a transmissão de um vídeo, quando não há problema se aparecem alguns bits de ruído ou alguns pixels errados durante a transmissão [33]. Um serviço é especificado por um conjunto de primitivas disponíveis para que uma entidade possa acessá-lo. Por exemplo, a primitiva request que faz referência a uma entidade querendo que o serviço execute alguma ação, ou a primitiva response, fazendo referência a uma entidade querendo responder a um evento. Figura 2.3. Camadas, protocolos e interfaces. Interface entre as camadas 1 e 2 Interface entre as camadas 2 e 3 Interface entre as camadas n-1 e n Camada n Camada 2 Camada 1 Host 1 Camada n Camada 2 Camada 1 Host 2 Meio Físico Protocolo da camada n Protocolo da camada 2 Protocolo da camada 1 20 2.4 - Transmissão de Dados A transferência de dados na rede pode-se dar através de alguma das seguintes formas: a) Transferência em apenas uma direção ou comunicação simplex. b) Transferência em duas direções, mas não simultaneamente ou comunicação half duplex. c) Transferência em duas direções simultaneamente ou comunicação full duplex. 2.4.1 -Transmissão Paralela Em termos genéricos, na comunicação paralela o transmissor envia ao mesmo tempo para o receptor, todos os bits que ele é capaz de transmitir, por exemplo, uma palavra de oito bits. A transmissão paralela é utilizada internamente em processadores e computadores [35]. O meio físico precisa de um fio por bit transmitido e, portanto, um fio pode causar interferência no seu adjacente. Outro fenômeno que pode aparecer na transmissão paralela é o skewing, que está relacionado com a diferença entre os tempos de propagação dos diferentes sinais através do meio de transmissão. Assim, a comunicação paralela depende do meio físico usado para a transmissão e o comprimento dos cabos não deve passar de uns poucos metros. A transmissão paralela é mais rápida do que a série, que será abordada a seguir. 2.4.2 - Transmissão Série Na transmissão em série o transmissor envia os bits um a um precisando apenas de um fio para tal fim. Em geral, a comunicação em série é mais lenta do que a paralela. Contudo, podem se levar em conta distâncias maiores. Por este motivo, as redes locais utilizam este tipo de transmissão. 2.5 - Modelos de Referência Existem dois modelos de referência mundialmente conhecidos, o modelo ISO/OSI e o modelo TCP/IP. Embora estes modelos sejam chamados muitas vezes de arquiteturas de rede, não são estritamente arquiteturas de rede, pois apenas fazem referência a camadas e não a protocolos e interfaces. A seguir abordam-se ambos modelos. 21 2.5.1 - Modelo de Referência ISO/OSI O modelo de referência ISO/OSI surgiu a partir de uma proposta desenvolvida pela Organização de Padrões Internacionais (ISO - International Standards Organization). A idéia era que os fabricantes pudessem criar protocolos baseados nesse modelo. A sigla OSI, do inglês Open Systems Interconnection, significa interconexão de sistemas abertos, ou seja, conexão de sistemas de diferentes fabricantes, mas que obedecem ao mesmo padrão. Apesar de que, a maioria dos protocolos existentes não segue o modelo de maneira estrita, o modelo constitui uma ferramenta didática essencial, pois através dele é possível entender o funcionamento do protocolo ideal. Na Figura 2.4 são mostradas as sete camadas do modelo OSI, que são descritas a seguir. a) Camada de Aplicação A camada de aplicação é a interface entre o protocolo de comunicação e o aplicativo, que lhe solicita para executar alguma tarefa através do usuário. b) Camada de Apresentação A camada de apresentação converte o formato de dado recebido pela camada de aplicação em um formato comum entendido pelo protocolo de comunicação para ser usado nas outras camadas. Portanto, a camada de apresentação se preocupa com a sintaxe e a semântica das informações transmitidas. Figura 2.4. Modelo de referência ISO/OSI. 7 6 5 4 3 2 1 APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE ENLACE DE DADOS FÍSICA 22 c) Camada de Sessão Esta camada possibilita que os usuários de diferentes máquinas estabeleçam sessões. Na sessão mencionada, as aplicações definem o modo em que será feita a comunicação e colocam marcadores nos dados transmitidos. Se a rede falhar, os computadores reiniciarão a transmissão de dados a partir da última marcação recebida pela máquina receptora. d) Camada de Transporte A função básica da camada de transporte é aceitar dados da camada de sessão, dividi-los em unidades menores e passá-los para a camada de rede. Do lado do receptor, a camada de transporte é responsável por pegar os pacotes recebidos da camada de rede e construir o dado original para enviá-lo à camada de sessão. e) Camada de Rede A camada de rede diz respeito ao modo como os pacotes de informação serão roteados da origem para o destino. Fala-se em rota quando a rede contém mais de um segmento, havendo, portanto, mais de um caminho para um pacote de dados trafegar da origem até o destino. Quando um pacote tem de viajar de uma rede para outra até chegar ao nó de destino, podem surgir diferentes problemas. Talvez a rede de destino não aceite o tamanho do pacote enviado ou talvez utilize um protocolo diferente. Caberá à camada de rede resolver esses problemas, fazendo com que redes heterogêneas possam se comunicar. f) Camada de Enlace de Dados Sua tarefa principal é pegar os pacotes de dados recebidos da camada de rede e transformá-los em quadros a serem trafegados pela rede, acrescentando informações como o endereço da placa de rede de origem, o endereço da placa de rede de destino, dados de controle, os dados propriamente ditos e o CRC10. Na Figura 2.5 é mostrado um formato de quadro genérico. 10 CRC (Cyclical Redundancy Check): Operação que consiste em somar todos os bytes de um pacote e enviar o resultado dentro do próprio pacote. A placa de rede do receptor verificará este resultado. 23 g) Camada Física O quadro de dados criado pela camada de enlace de dados é enviado para a camada física para serem convertidos em sinais elétricos e enviados através do cabo da rede. Os aspectos mais comuns são: o valor (em volts) para representar um bit 1 e um bit 0, o tempo (em microsegundos) que um bit deve durar, o fato da transmissão ser ou não realizada em duas direções, a forma como a conexão inicial será estabelecida e de que maneira ela será encerrada e a quantidade de pinos que precisará o conector da rede. O papel desta camada é desempenhado pela placa de rede. 2.5.2 - O Modelo de Referência TCP/IP Em meados da década de 1960 o departamento de defesa dos Estados Unidos criou uma rede WAN de pesquisa chamada ARPANET, que constituiu o ponto inicial da Internet. No começo da década de 1970 o crescimento da ARPANET forçou a criação de um novo modelo de referência. Esse modelo, mostrado na Figura 2.6, veio ficar conhecido como modelo de referência TCP/IP (Transmission Control Protocol/Internet Protocol), graças a seus dois principais protocolos constituintes. As camadas componentes do modelo são descritas a seguir [33]. Figura 2.5. Formato de quadro genérico. Figura 2.6. Modelo de referência TCP/IP. * Identificadores Dados Detecção / Correção de Erros * *: bits de sincronismo. APLICAÇÃO TRANSPORTE INTER - REDE Telnet, SMTP, HTTP, DNS... TCP ou UDP IP…. IEEE 802.2, IEEE 802.3…. Driver e placa de rede INTERFACE COM A REDE 24 a) Camada de Aplicação Como mostrado na Figura 2.6, a camada de aplicação do modelo TCP/IP equivale às camadas 5, 6 e 7 do modelo OSI e executa a comunicação entre os aplicativos e o protocolo de transporte. Na camada de aplicação operam diferentes protocolos de alto nível como: a.1) Telnet: protocolo de terminal virtual para efetuar login remoto em uma máquina de uma rede. a.2) Simple Mail Transfer Protocol (SMTP): protocolo de correio eletrônico. a.3) File Transfer Protocol (FTP): protocolo de transferência de arquivos entre hosts conectados à rede. a.4) HyperText Transfer Protocol (HTTP): protocolo de transferência padrão da Web. a.5) Domain Name System (DNS): protocolo utilizado para identificação de máquinas através de nomes em vez de endereços IP. A camada de aplicação comunica-se com a camada de transporte através de portas. As portas são identificadas através de números e as aplicações padrão usam sempre uma mesma porta. Por exemplo, o protocolo HTTP utiliza sempre a porta 80 e o SMTP, a porta 25. Outro aspecto importante do TCP é o conceito de socket. O socket é uma estrutura de software que vincula pontos finais de comunicação entre dispositivos de rede. O socket está associado com um número de porta e com o endereço do host na rede. b) Camada de Transporte Sua finalidade é pegar os dados enviados pela camada de aplicação e transformá-los em pacotes, a serem passados para a camada de rede, da mesma forma como acontece na camada de transporte OSI. Nesta camada operam dois protocolos, o primeiro deles, o TCP é um protocolo orientado à conexão confiável que permite a entrega sem erros de um fluxo de bytes originado de uma máquina determinada, em qualquer nó da inter-rede. O TCP divide o fluxo de bytes de entrada em mensagens e passa cada uma delas para a camada inter-rede. Outra tarefa do protocolo TCP é impedir que um transmissor rápido sobrecarregue um receptor lento com um volume de mensagens muito grande. 25 Outro protocolo que opera na camada de transporte é o User Datagram Protocol (UDP). O UDP é um protocolo sem conexão, não confiável, para aplicações que não necessitam nem de controle de fluxo, nem de manutenção da seqüência das mensagens enviadas. Ele é amplamente utilizado em aplicações onde a entrega imediata é mais importante do que a entrega precisa, como a entrega de dados de voz ou de vídeo. c) Camada Inter-Redes Sua tarefa é permitir que os hosts injetem pacotes em qualquer rede e garantir que eles sejam transmitidos independentemente do destino. É possível que os pacotes cheguem em uma ordem diferente daquela em que foram enviados, obrigando as camadas superiores a reorganizá-los. Deve-se observar que, nesse caso, a expressão inter-rede é utilizada no sentido genérico, muito embora essa camada esteja presente na Internet. A camada inter-redes define um formato de pacote oficial e um protocolo chamado de Internet Protocol (IP). A tarefa da camada inter-redes é, então, entregar pacotes IP onde eles são necessários. O roteamento de pacotes é uma questão de grande importância nessa camada, assim como evitar congestionamentos. d) Camada de Interface com a Rede Esta camada equivale às camadas 1 e 2 do modelo OSI e sua função é a de enviar os pacotes recebidos pela camada de inter-rede em forma de um quadro através da rede. 2.5.3 - Modelo ISO/OSI vs. TCP/IP O modelo OSI introduz três conceitos fundamentais: serviços, interfaces e protocolos. Provavelmente a maior contribuição do modelo OSI é tornar explícita a distinção entre esses três conceitos. Em contrapartida, o modelo TCP/IP não distinguiu com clareza a diferença entre serviço, interface e protocolo. Mas, ao contrário do que aconteceu com o modelo OSI, no TCP/IP, os protocolos vieram primeiro e o modelo foi criado com base neles. Os protocolos não tiveram problemas para se adaptar ao modelo [33].