Você está na página 1de 54

Redes Locais Industriais

Sistemas em Tempo Real


Prof. Jos Jean-Paul Z. De S.
Tavares

Sumrio
Introduo

Classificao Protocolos de Acesso ao Meio

No Determinsticos
Aloha

CSMA 1 persistente, p persistente e no persistente


CSMA/CD

Determinsticos
Mestre/Escravo
Token Passing
CSMA
Cabealhos Forantes
Comprimento de Prembulo
CSMA/DRC

Introduo
Redes de Difuso tem mtodos de acesso ao meio
compartilhados

Mensagens pendentes em cada estao devem ser entregues a seu


destino antes de um prazo limite (deadline) associado.

M1

M2

M3

DL = 10

DL = 15

DL = 50

End. 01

End. 02

End. 03

M4

M5

DL = 25

DL = 5

End. 04

End. 05

rramentos so compartilhados por todas as estaes. Como definir o acesso ao meio ?


Com coliso
em Coliso
rioridade

Sistemas em Tempo Real


Um STR um sistema computacional que deve reagir a estmulos (fsicos ou
lgicos) oriundos do ambiente dentro de intervalos de tempo impostos pelo
prprio ambiente.

A correo no depende somente dos resultados lgicos obtidos, mas tambm


do instante no qual so produzidos.

INTERFACE
Sistema

estmulo
SENSOR

Sistema

ATUADOR
resposta

Controlar

de
Controle

a
(Ambiente)

Como o Tempo de Resposta do sistema de controle est relacionado com a


estabilidade do sistema a controlar?

Sistemas em Tempo Real


Arquitetura do Software para Sistemas em Tempo Real
O sistema deve ter comportamento determinista (tempo de reao conhecido)
e, idealmente, permitir escalonamento timo global de mensagens.

Software

AP

AP

Aplicativo

Camada de Aplicao
Controle Lgico de enlace (LLC)
Controle de Acesso ao Meio (MAC)
Camada Fsica

Sistemas em Tempo Real


Identifique o uso das Camadas de Enlace e Acesso ao Meio nesse cdigo
/*
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
intpushButton=2;
voidsetup(){
Serial.begin(9600);
pinMode(pushButton,INPUT);
}
voidloop(){
intbuttonState=digitalRead(pushButton);
Serial.println(buttonState);
delay(1);
}

Sistemas em Tempo Real


Classificao dos Protocolos de Acesso ao Meio:
Alocao fixa: alocam o meio s estaes por determinados intervalos de tempo,
independentemente de haver ou no necessidade de acesso (ex.: TDMA = Time Division
Multiple Access);

Alocao aleatria: permitem acesso aleatrio das estaes ao meio (ex.: CSMA =
Carrier Sense Multiple Access ou Acesso Mltipli por Deteco de Portadora). Em caso
de envio simultneo por mais de uma estao, ocorre uma coliso e as estaes
envolvidas tem que transmitir suas mensagens aps a resoluo do conflito resultante
(protocolos de conteno);

Alocao controlada: cada estao tem direito de acesso apenas quando de posse de
uma permisso, que entregue s estaes segundo alguma seqncia predefinida (ex.:
Token-Passing, Master-Slaves);

Alocao por reserva: para poder usar o meio, as estaes tem que reservar banda com
antecedncia, enviando pedidos a uma estao controladora durante um intervalo de
tempo pr-destinado e este fim (ex.: CRMA = Cyclic Reservation Multiple Access);

Hbridos: consistem de 2 ou mais das categorias anteriores.

Sistemas em Tempo Real


Classificao com relao ao comportamento temporal:
protocolos deterministas: caracterizados pela possibilidade de definir um
tempo limite para a entrega de uma dada mensagem (mesmo que somente
em pior caso);

protocolos no deterministas: tempo de entrega no determinvel


(aleatrio ou probabilstico).

Sistemas em Tempo Real


Protocolos No Determinsticos
ALOHA:
Histrico:

Uni Hawai 1970

Rede via satlite

Interligao Centro de Computao


com terminais espalhados na ilha

Sistemas em Tempo Real


Protocolos No Determinsticos
ALOHA:
Dois canais de freqncia:

um para a difuso de mensagens do computador central para os terminais

outro dos terminais para o computador central

Possibilidade de coliso no segundo canal

Estratgia de acesso:

cada terminal somente pode ouvir canal de transmisso do computador


central

quando um terminal tem algo para transmitir ele transmite sem poder verificar
se o meio est livre

Sistemas em Tempo Real


Protocolos No Determinsticos
ALOHA:
Tcnica de deteco de coliso
nos terminais
1) relgio temporizador (time-out) para aguardar chegada do quadro de
reconhecimento da recepo
2) caso reconhecimento da recepo no seja recebido: retransmisso
no computador central
1)anlise do CRC

Sistemas em Tempo Real


Protocolos No Determinsticos
ALOHA:

Problema: O envio das mensagens no so sincronizados com o tempo


de avaliao de coliso

Sistemas em Tempo Real


Protocolos No Determinsticos
Slotted ALOHA:

Maximizao dos perodos de coliso

=> reduz tempo morto de canal

Tempo dividido pelo sistema central em intervalos (slots): terminais somente


podem iniciar transmisso no comeo de cada intervalo

Sistemas em Tempo Real


Protocolos No Determinsticos
Comparao ALOHA versus Slotted ALOHA:
Throughput quantidade de dados transferidos de um lugar a outro

Attempts so tentativas de envio

Sistemas em Tempo Real


Protocolos No Determinsticos
CSMA = Carrier Sense Multiple Access (Acesso Mltiplo por Deteco de
portadora) : baseia-se no conceito de escuta do meio de transmisso para a
seleo do direito de acesso a este.
CSMA p-persistente: estao que quer enviar dados escuta meio. Se canal livre,
envia quadro com probabilidade p. Seno, aguarda na escuta at que o meio
esteja livre. Caso particular: p=1.
CSMA no persistente: idem anterior, mas se canal ocupado, estao espera um
perodo de tempo aleatrio e escuta o canal novamente.

Sistemas em Tempo Real


Protocolos No Determinsticos
CSMA 1-persistente: faz melhor uso da banda, mas tem grande chance de gerar
colises

CSMA no persistente: faz pior uso da banda, mas tem menor probabilidade de gerar
colises

CSMA p-persistente (p<1): compromisso entre as solues anteriores.

np
P-p
1-p
tempo

Sistemas em Tempo Real


Protocolos No Determinsticos
CSMA/CD = Carrier Sense Multiple Access with Collision Detection.
Se mais de uma estao pronta para emitir uma mensagem com o meio livre, gera-se
uma coliso.

A primeira estao que detectar a coliso interrompe transmisso, reiniciando-a aps


um tempo aleatrio => improvvel ocorrncia de nova coliso.

receptor

emissor

emissor

emissor

Sistemas em Tempo Real


Protocolos No Determinsticos
Mtodos de acesso CSMA convencionais: tempo de reao no pode ser
exatamente determinado (no determinismo).

No se sabe de antemo:

1) se haver colises;

2) quantas colises seguidas podem ocorrer;

3) o tempo (aleatrio) de espera em caso de coliso.

Tempo de espera randomizado segundo algoritmo BEB (Binary


Exponential Backoff)

Sistemas em Tempo Real


Protocolos No Determinsticos
start

no

yes
nc = 0

Probabilidade de
coliso

Station
Ready ?

New
Frame ?

Ether
Silent ?

nc = nc+1
no

limit = 2nc-1
Wait=random [0,limit]

transmit
no
Collision ?

Trfego x
nmero
estaes

Sistemas em Tempo Real


Deteco da Coliso

Sistemas em Tempo Real


Deteco da Coliso

Tempo de propagao no meio:


Tempo mximo para deteco da coliso (Pior Caso):

Sistemas em Tempo Real


Protocolos No Determinsticos
Eficincia do CSMA/ CD

E= 1 / ( 1 +( 3.4 x x C / M),

onde C a taxa de transmisso e M o tamanho do quadro

Quanto maior a distncia, maior , menor a eficincia e maior o M


mnimo para a deteco de coliso

Quanto maior C, maior M e menor E concluso: distncia da rede pode


tambm ser determinada pelo mtodo de acesso ao meio

Sistemas em Tempo Real


Protocolos No Determinsticos

Sistemas em Tempo Real


Protocolos Determinsticos
Mtodos de acesso deterministas: tem tempo de resposta limitado e
determinvel (ao menos pior caso).

Podem ser classificados em:

1) mtodos com comando centralizado (ex.: Mestre-Escravos, rbitro


de barramento)
2) mtodos com comando distribudo (ex.: Token-Passing, variantes
deterministas do CSMA).

Sistemas em Tempo Real


Protocolos Determinsticos
Mestre Escravo

escravo

escravo

escravo

escravo

Sistemas em Tempo Real


Protocolos Determinsticos
Mestre Escravo

Uma das formas de se montar uma arquitetura mestre-escravo


com Arduino utilizando as entradas analgicas para

Sistemas em Tempo Real


Protocolos Determinsticos
Mestre Escritor Escravo Recebedor
Cdigo Mestre Escritor
// Wire Master Writer by Nicholas Zambetti
http://www.zambetti.com
#include <Wire.h>
voidsetup()
{
Wire.begin();// inicia i2c bus (endereo
opc para mestre)
}
bytex=0;
voidloop()
{
Wire.beginTransmission(4);// transmite ao
equip #4
Wire.write("x is "); // envia 5 bytes tipo
char
Wire.write(x); // envia 1 byte
(x=0)
Wire.endTransmission(); // para
transmisso
x++; // incremente x

Cdigo Escravo Recebedor


#include <Wire.h>
voidsetup(){
Wire.begin(4); // inicia i2c bus com endereo
#4
Wire.onReceive(receiveEvent);// registra evento como
escravo
Serial.begin(9600); // inicia canal serial para
sada
}
voidloop(){
delay(100);}
voidreceiveEvent(inthowMany)// define funo
receiveEvent
{
while(1<Wire.available())// para cada caracter
{charc=Wire.read();// receibebyte como um caracter
Serial.print(c); // imprime o caracter

Sistemas em Tempo Real


Protocolos Determinsticos
Mestre Leitor Escravo Enviador
Cdigo Mestre Leitor
#include <Wire.h>
voidsetup()
{
Wire.begin(); // inicia i2c bus
Serial.begin(9600);// inicia canal serial
para sada
}
voidloop()
{
Wire.requestFrom(2,6); // requer 6 bytes
do escravo #2
while(Wire.available()) // escravo deve
enviar mensagem at o tamanho definido
{
charc=Wire.read();// receibe um byte
como caracter
Serial.print(c); // imprime o caracter
}
delay(500);
}

Cdigo Escravo Enviador


#include <Wire.h>
voidsetup()
{
Wire.begin(2); // inicia i2c bus com endereo
#2
Wire.onRequest(requestEvent);// registra evento
}
voidloop()
{
delay(100);
}
voidrequestEvent() // define a funo requestEvent
{
Wire.write("hello ");// responde com menssagem de 6
bytes
// como esperado pelo mestre
}

Sistemas em Tempo Real


Protocolos Determinsticos
Mestre Escravo

Monte um programa que o Mestre solicita a ao de acionar cada porta


de sada do Escravo 3 a 6 (Escritor-Recebedor) e o Escravo informa ao
Mestre que a ao foi executada (Leitor-Enviador). Apenas com a
confirmao do Escravo o Mestre solicita o acionamento da porta
seguinte. Ao final o Mestre comanda o desligamento de cada porta na

Sistemas em Tempo Real


Protocolos Determinsticos
Token Passing
receptor

ficha

emissor

Sistemas em Tempo Real


Protocolos Determinsticos
Token Ring
Estao

TAP
Interface
p/ anel

anel unidirecional

Token

Sistemas em Tempo Real


Protocolos Determinsticos
Token Ring
divide o espao de comunicao em nmero inteiro de pequenos
segmentos

cabealho da mensagem circulando no segmento contm informao se


est vazio ou cheio

estao que quer transmitir aguarda slot vazio (token)

Sistemas em Tempo Real


Protocolos Determinsticos
Token Ring
Permisso para transmisso enviada
para anel (sem identificao de quem
recebe).

Possibilidade de mltiplos tokens.

Sistemas em Tempo Real


Protocolos Determinsticos
Token Ring

Monte um programa que


faa o Arduino se
comunicar entre si , via
canal serial, simulando a
comunicao token ring,
sendo o token igual ao
canal de recepo

Sistemas em Tempo Real


Protocolos Determinsticos
Token Ring
Exemplo de Comunicao Serial:
void Setup(){
Serial.begin(9600);}
void loop(){
String msg = ;// recebe a mensagem
if (Serial.available() > 0){ // se recebe alguma mensagem via
seria
while (Serial.available() >0) { // enquanto recebe mais que um
caracter
msg += char(Serial.read()); // armazena os dados em msg
delay (250);}
else {
Serial.println(msg);} // retransmite a mensagem

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA: Cabealhos Forantes (CSMA/NBA = CSMA
with Nondestructive Bitwise Arbitration).

Estaes enviam bit a bit um identificador da mensagem, que define prioridade


da mesma.

Cada mensagem tem que ter prioridade diferente das demais.

Se todos os bits do identificador so 0, prioridade mxima.

Camada fsica executa AND sobre cada bit enviado ao barramento (CD ativada
ao enviar um 1 e desativado ao enviar um 0).

Transmisso interrompida quando um 1 enviado e ocorrer coliso (0 lido).

Se identificador transmitido at o fim sem coliso, resto da mensagem


enviado.

Sistemas em Tempo Real


Protocolos Determinsticos
CSMA Cabealhos Forantes
100dados

Header doframe

Frame a enviar

N 4

N 0
000dados

N 1

N 2

N 3

001dados

010dados

011dados

Sistemas em Tempo Real


Protocolos Determinsticos
Para evitar monoplio do meio por n gerador de mensagem de alta
prioridade, espao entre quadros preenchido por campo de bits em 1
inserido no final de cada quadro.

O barramento s considerado livre para o mesmo n enviar nova


mensagem aps ter detectado que o espao interframes no foi
interrompido por um bit em 0.

Estao possuidora da mensagem de alta prioridade ter que esperar ao


menos o envio de uma mensagem de prioridade menor para tomar o
barramento para si novamente.

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA: Comprimento de Prembulo
A cada mensagem associado um prembulo com comprimento
diferente, que transmitido com CD desativada.

Aps trmino de envio do prembulo, CD reativada

Se h coliso, existe outra mensagem mais prioritria sendo enviada e


estao fica a espera de meio livre.

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA: Comprimento de Prembulo
A cada mensagem associado um prembulo com comprimento
diferente, que transmitido com CD desativada.

Aps trmino de envio do prembulo, CD reativada

Se h coliso, existe outra mensagem mais prioritria sendo enviada e


estao fica a espera de meio livre.

Sistemas em Tempo Real


Protocolos Determinsticos

CSMA Comprimento de Prembulo

Preambulo doframe

Frame a enviar

N 4

N 0

N 1

N 2

N 3

Sistemas em Tempo Real


Protocolos Determinsticos

CSMA Comprimento de Prembulo

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC (Deterministic Collision Resolution)

Determinismo garantido atravs de busca em rvore binria balanceada

Prioridades so atribudas a cada estao => ndices

Cada estao deve conhecer:

Status do barramento:

Livre

Ocupado com transmisso

Ocupado com coliso

Seu prprio ndice

Nmero total de ndices consecutivos alocados s fontes (Q)

Tamanho da rvore binria q = menor potncia de 2 maior ou igual a Q (ex.: Q = 12, q = 16)

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC (Deterministic Collision Resolution)

Operao como CSMA/CD at coliso

Em caso de coliso, iniciado perodo de resoluo por busca em rvore binria => poca

Estaes envolvidas se auto-classificam em dois grupos: Winners (W) ou Losers (L):

W = ndices entre [0,q/2[

L = ndices entre [q/2, q]

Estaes do grupo W tentam nova transmisso

Se nova coliso, nova diviso em grupos:

W = [0,q/4[

L = [q/4, q/2]

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC
Se no ocorrer nova coliso (s sobrou uma estao no grupo W), estao transmite seu frame de
dados

Estaes do grupo L desistem e aguardam trmino de transmisso bem sucedida de outro n


seguida de meio livre

Se grupo W vazio, busca revertida => nova subdiviso de ns a partir do ltimo grupo L:

W = [q/2, 3q/4[

L = [3q/4, q]

poca encerrada quando todas as estaes envolvidas na coliso original conseguiram transmitir
seus dados

Tempo de durao de uma poca pode ser calculado => determinismo!

Seqncia de concesso de direito de acesso ao meio = seqncia de ndices crescentes => ns


mais prioritrios transmitem primeiro !

Sistemas em Tempo Real


Protocolos Determinsticos

Exemplo Variante determinista de CSMA/ DRC


ndice 3

ndice 2

ndice 12

ndice 14

ndice 5

ndice 15

6 estaes de uma rede com 16 fontes enviam frames simultaneamente

ndices de cada estao conforme figura acima

Q = 16

q = 16 (24)

altura da rvore binria = log2 16 = 4

Sistemas em Tempo Real


Protocolos Determinsticos

Exemplo Variante determinista de CSMA/ DRC


1

[0,15]
[8,15]

[0,7]

2
[0,3]

[4,7]

[8,11]

10

[0,1]

[2,3]

[4,5]

[6,7]

[12,15]
13

11

12

[8,9]

[10,11]

14

15

[12,13] [14,15]

rvore binria balanceada completa para Q = 16

Sistemas em Tempo Real


Protocolos Determinsticos

Exemplo Variante determinista de CSMA/ DRC


0C
2,3,5,12,14,15
W= 2,3,5
L=12,14,15
8C
12,14,15
W=
L=12,14,15

1C
2,3,5
W= 2,3
L=5
2C
2,3
W=
L=2,3

7T
5

4C
2,3
W=2
L=3

3V

5T
2

10 C
12,14,15
W= 12
L=14,15

9V

12 C
14,15
W= 14
L=15

11 T
12
6T
3

13 T
14

Evoluo do Algoritmo

14 T
15

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC

O tempo at o inicio da transmisso da fonte com ndice 5 ser:

4 colises + 1 vazio = 5. slot-time

2 transmisses = 2.(tamanho quadro em slot-times)

Assumindo que cada quadro tem um tamanho fixo de 6 slot-times e considerando 1 slot-time
como 40 microssegundos, o tempo para incio da transmisso da mensagem da fonte com ndice 5
seria:

Tinicio 5 = 5.40 + 2.6.40 = 680 microssegundos (no ainda pior caso)

O tempo de durao total da poca ser:

7 colises = 7.slot-time

2 vazios = 2. slot-time

6 transmisses = 6 .(tamanho do quadro em slot-times)

T poca = 7.40 + 2.40 + 6.6.40 = 1800 microssegundos = 1.8 ms

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC

Clculo do tempo de pior caso pode ser formalizado como segue. Seja:

(v) = nmero de ramos da rvore binria percorridos por uma mensagem


proveniente de um n com ndice v

q = menor potncia de 2 maior ou igual ao maior ndice disponvel

(v) = nmero de potncias de 2 contidas em v

s = 1 slot-time (2 vezes o tempo de propagao do sinal na rede)

= tempo mximo de transmisso da uma mensagem no meio fsico (depende do


comprimento da mensagem em bits e da taxa de transmisso)

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC

Para uma mensagem participando de uma dada poca, temos que:

(v) = log2 q + v - (v)

Tespera (v) = (v).s + v.

Para o exemplo anterior, tomando uma mensagem da estao com ndice 5, temos:

q =16

v =5

(5) = 2

(5 = 22+20)

(5) = log2 16 + 5 - 2 = 7

T espera (5) = 7.s + 5. (7 colises e 5 transmisses)

Assumindo s = 40 microssegundos e = 6.s = 240 microssegundos, obteremos para o pior caso


de tempo de espera da mensagem da fonte com ndice 5 o valor de 1480 microssegundos.

Sistemas em Tempo Real


Protocolos Determinsticos
Variante determinista de CSMA/ DRC

O tempo de durao da poca, no pior caso, dado por:

T poca = (q-1).s + Q.

Para uma mensagem que chega a fila de emisso de uma fonte com ndice v em um
instante qualquer, o pior caso de tempo de espera maior, pois a nova mensagem pode
chegar na fila imediatamente aps o inicio de uma poca, da qual ela ainda no faz parte.
Neste caso, o pior caso do tempo de espera ser dado por:

T max espera (v) = T poca + (v).s + v

Sistemas em Tempo Real


Protocolos Determinsticos

Exemplo Variante determinista de CSMA/ DRC


M1

M2

M3

DL = 10

DL = 15

DL = 50

End. 01

End. 02

End. 03

M4

M5

DL = 25

DL = 5

End. 04

End. 05

Se o slot time de 60 ms e o tamanho de quadro de 10 slot-times, avalie se todas as estaes


iro transmitir as mensagens em tempo.

Sistemas em Tempo Real


Protocolos Determinsticos

Exemplo Variante determinista de CSMA/ DRC


ndice 3
Deadline:
1500 s

ndice 4
Deadline: 800
s

ndice 12
Deadline:
2500 s

ndice 7
Deadline:
1100 s

ndice 15
Deadline:
1800 s

ndice 8
Deadline:
1300 s

ndice 16
Deadline:
1700 s

ndice 9
Deadline:
1500 s

ndice 17
Deadline:
2500 s

Assumindo o slot-time de 40micro segundos e que o quadro tem tamanho fixo de 7 slot-times e que o deadline
se refere ao tempo mximo de envio da mensagem (sem aviso de recebimento), se pede:
a) O tempo de incio da transmisso da estao 15;

b) O tempo total de durao da poca no pior caso;


c) Quais das estaes enviaro as mensagens no prazo?
d) No pior caso possvel, se a estao 10 quiser enviar uma mensagem com deadline de 4s, essa
mensagem conseguiria ser enviada no prazo?

Você também pode gostar