You are on page 1of 4

DNP3

Arquitetura em Camadas O protocolo DNP3 implementado em camadas. Ao invs de, porm adotar o protocolo de 7 camadas OSI (Open System Interconnection), o protocolo DNP3 adere a um protocolo simplificado de 3 camadas proposto pela IEC (International Electrotechnical Commission) para implementaes mais simples, chamado de EPA (Enhanced Performance Architecture). O DNP3 extende o EPA ao adicionar uma quarta camada de pseudo-transporte que permite segmentao de mensagens. - Camada Fsica Camada dedicada ao meio fsico sobre o qual o protocolo comunicado - por exemplo lida com o estado do meio (livre ou ocupado) e sincronizao ao longo do meio (iniciar e parar). Comunmente o protocolo DNP3 especificado sobre uma camada fsica serial simples como RS232 ou RS-485 utilizando por meio fsico cabeamento de cobre, fibra ptica, transmisso por rdio ou satlite. Aplicaes mais recentes passam a implementar DNP3 sobre Ethernet. - Camada de Conexo de Dados (Data Link) Camada que gerencia a conexo lgica entre transmissores e receptores de informao e melhor as caractersticas de erro do canal fsico. No DNP3 isso garantido pelo incio de cada data link frame com um cabealho de data link e inserindo um CRC de 16-bit a cada 16 bytes do frame. O frame uma poro da messagem completa comunicada pela camada fsica. O tamanho mximo do data link frame de 256 bytes. Cada frame tem endereamento de origem de 16-bit e outro de 16-bit como destino, que tambm pode ser um endereo de broadcast (0xffff). A informao do endereo, juntamente com um cdigo inicial de 16-bit, o comprimento do frame, e um byte de controle do data link esto contidos dentro do cabealho de 10 bytes do data link. O byte de controle do data link indica o propsito do data link frame e o status do link lgico. Os valores possveis para o byte de controle do data link so: ACK, NACK, link precisa reincio (reset), link reiniciado (reset), solicitao de confirmao (ACK) do data link frame, solicitao de status do link e depoista do status do link. Quando uma *confirmao de data link* solicitada, o receptor deve responder com um ACK data link frame se o frame recebido e passa na verificao de CRC. Se a confirmao do data link no solicitada, nenhuma resposta do data link necessria. - Camada de Pseudo-Transporte Camada que segmenta as mensagens da camada de aplicao em diversos data link frames. Para cada frame, essa camada insere um cdigo de funo de byte nico que indica se o data link frame o primeiro frame da mensagem, o ltimo frame da mensage ou ambos (para mensagens de um nico frame). Este cdigo de funo ainda inclui um nmero de seqncia de frame que incrementa a cada frame e permite a camada de transporte detectar frames descartados. - Camada de Aplicao A camada de aplicao responde a mensagens completas recebidas (e passadas da camada de transporte), e constroi mensagens baseadas na necessidade de ou na disponibilidade de dados de usurio. As mensagens construdas so passadas camada de pseudo-transporte onde so segmentadas e passadas camada de data link e, eventualmente, comunicadas sobre a camada fsica. O comprimento total das mensagens recebidas indicada pela camada de pseudo-transporte

medida que gerencia os data link frames, cada um com seu comprimento indicado. Se a quantidade de dados a serem transmitidos excede o tamanho de uma nica mensagem da camada de aplicao, mltiplas mensagem podem ser criadas e transmitidas sequencialmente. Cada mensagem, porm, uma mensagem de camada de aplicao independente, sua nica associao com ourtas mensagens uma indicao em todas as mensagens menos na ltima que a informao continua na prxima mensagem. Por causa dessa possvel fragmentao de dados de aplicao, cada mensagem da camada de aplicao chamada de *fragmento* e a mensagem pode ser de *fragmento nico* ou de *mltiplos fragmentos*. Fragmentos de camada de aplicao de estaes DNP3 Master so tipicamente *requests* (requisies) de operaes em objetos de dados e fragmentos de camada de aplicao de estaes DNP3 slaves so tipicamente *responses* (retornos) aos requests. Uma estao DNP3 slave pode tambm transmitir uma mensagem sem uma request - uma *unsolicited response* (reposta no solicitada). Assim como na camada de data link, fragmentos de camada de aplicao podem ser enviados com uma request para confirmao. Uma *confirmao de camada de aplicao* indica que no somente a mensagem foi recebida mas tambm tratada (parsed) sem erros. Por outro lado, uma confirmao de camada de data link, ou ACK, indica somente que o data link frame foi recebido e passou verificao de erros CRC. Cada fragmento de camada de aplicao inicia com um *cabealho de camada de aplicao* seguido de um ou mais combinaes de cabealho de objeto ou dados de objeto. O cabealho de camada de aplicao contm uma indicao se o fragmento de uma mensagem de mltiplos fragmentos, contm uma indicao se uma confirmao de camada de aplicao foi solicitada pelo fragmento, contm uma indicao se o fragmento do tipo no solicitado, e contm um nmero de camada de aplicao que permite camada de aplicao receptora detectar fragmentos que esto fora de seqncia ou fragmentos descartados. O cdigo de funo do cabealho da camada de aplicao indica o propsito (ou operao requisitada) da mensagem e se aplica a todos os cabealhos de objetos e, assim, a toda informao dentro do fragmento de mensagem. Enquanto DNP3 permite mltiplos tipos de dados em uma nica mensagem, apenas permite uma nica requisio de operao nos tipos de dados dentro da mensagem. Alguns exemplos de cdigos de funo so: - confirmar (para confirmao de camada de aplicao); - ler e escrever; - selecionar e executar (para controles SBO - select-before-operate); - execuo direta (para controles sem SBO); - congelar e limpar (contadores); - reiniciar (frio e quente??); - habilitar e desabilitar mensagens no solicitadas; - atribuir classe. Organizao da Base de Dados As informaes so organizadas em tipos de dados, onde cada tipo de dado representa um grupo de objeto e incluem: - entradas binrias (apenas leitura de valores de bit nico);

- sadas binrias (valores de bit nico cujo status pode ser leitura ou que pode ser pulsado ou atribudo diretamente ou atravs de uma operao SBO); - entradas analgicas (apenas leitura de valores de bits mltiplos); - sadas analgicas (valores de bits mltiplos cujos status que podem ser leitura, ou que pode ser controlado diretamente ou por uma operao do SBO); - contadores; - hora e data (timestamp??); - objetos de transferncias de arquivos; - outros; Para cada tipo de dado, existe um ou mais ponto de dados. Um ponto de dado um valor nico de dados do tipo especificado pelo grupo do objeto. Dentro de cada grupo de objeto, existem variaes que so usadas para indicar diferentes mtodos para especificao de dados dentro do grupo de objeto, por exemplo o grupo de entradas analgicas aceita dados como valores integrais de 16-bit com sinal, valores integrais de 32-bit com sinal ou valores de ponto flutuante de 32-bits. A camada de aplicao pode conter mltiplos cabealhos de objetos. O cabealho do objeto pode especifica o grupo do objeto, a variao do grupo do objeto e um limite de pontos dentro da variao do grupo de objeto. Alguns cdigos de funo de cabealho de camada de aplicao, indicam referncias a outros objetos, se existe ou no informao na mensagem - mltiplos cabealhos de objetos, se presentes, seguem o anterior continuamente. DNP3 permite que faixas de pontos de objeto sejam especificadas de vrias maneiras. Requisies podem ser: - de todos os pontos do grupo; - de todos os pontos contnuos, com pontos de incio e fim determinados; - de uma quantidade mxima de pontos; - com uma lista de pontos. Para respostas, as faixas de pontos de objetos tipicamente consistem em uma faixa contnua de pontos com incio e fim determinados ou com uma lista de pontos especificada. Para uma lista de pontos, o nmero do ponto precede cada objeto. Modelo de Relatrios Muitos grupos de objetos tm correspondentes, mas separados, grupos de objetos com informao de mudana, que representa apenas os pontos que foram alterados especificamente para o grupo de objeto. Exemplo: grupo de objeto 1 representa entradas binrias (informaes estticas), grupo de objeto 2 representa variao de dados binrios. Quando uma mudana em um ponto do grupo de objeto 1 detectada, um evento de alterao no grupo de objeto criada. As alteraes detectadas geram mensagens menores e mais eficientes. Esse esquema chamado de Report-by-exception, ou RBE. Cada ponto alterado um timestamp pode ser associado e cada deteco de mudana considerada um evento de alterao (change event). A cada instante de tempo, possvel ter vrias alteraes para alguns pontos e nenhuma para outros. Grupos de objetos e pontos de dados no DNP3 podem ser organizados em classes, isso permite um

mtodo eficiente de requisitar dados. Uma simples (e pequena) mensagem pod er enviada para buscar todas as informaes em uma classe especfica (scanning for classes data). So definidas 4 classes no DNP3. - classe 0 representa informao esttica. - classes 1(++) a 3(--) representam diferentes prioridades para mudana de evento.

You might also like