Conectando Sistemas Embarcados
Prof. Eduardo Augusto Bezerra
Faculdade de Informática, PUC-RS
Porto Alegre, Março de 2004
http://www.inf.pucrs.br/~eduardob/
2. Redes embarcadas
Laminas do capitulo 8 do livro do Wolf:
Um elemento de processamento (PE) pode ser tanto um dispositivo que executa um conjunto de instrucoes (ex. microprocessador, microcontrolador, DSP), quanto um dispositivo nao-programavel como por exemplo um ASIC.
Um sensor ou atuador tambem pode ser considerado um elemento de processamento, desde que seja capaz de se comunicar com outros elementos de processamento da rede utilizando um protocolo de comunicacao pre-definido.
Exemplo de sistema embarcado [BEZ01]
Diversas redes sao bloqueantes, uma vez que existem certas combinacoes de origem e destino para as quais mensagens nao podem ser enviadas simultaneamente.
O barramento (bus) e' o exemplo maximo de rede bloqueante uma vez que qualquer mensagem trafegando no barramento bloqueia mensagens dos demais nodos da rede.
A principal diferenca entre redes e barramentos de microprocessadores e' a forma como os protocolos de comunicacao sao implementados. Ambos necessitam handshaking para garantir que elementos de processamento nao interfiram com outros, mas nas redes normalmente o protocolo e' implementado em software. Microprocessadores utilizam implementacoes de barramentos em hardware para garantir uma rapida transferencia de dados e instrucoes de/para a CPU.
Em um sistema embarcado com apenas um elemento de processamento, um programa realiza uma leitura (de um sensor, por exemplo), sempre que precisa de dados.
Em redes com varios elementos de processamento, os nodos enviam dados mesmo sem nenhuma solicitacao dos usuarios do sistema (outros elementos de processamento).
O estilo de programacao data-push e' aconselhado para sistemas que enviam dados periodicamente. Isso e' util para reduzir o trafego na rede, uma vez que um elemento de processamento nao precisa solicitar o envio de um dado periodico para outro elemento de processamento. De tempos em tempos o dado e' enviado, mesmo sem requisicao (data-push).
Por exemplo, em um automovel um determinado sensor precisa ser amostrado periodicamente. No lugar de realizar essa solicitacao pelo dado, um elemento de processamento simplesmente e' interrompido periodicamente para tratar a chegada do dado enviado pelo sensor.