3.4 Rede de comunicação CAN
3.4.3 Análise dos tempos de resposta das mensagens
Nesta seção, apresenta-se a análise dos tempos de resposta no pior caso de mensagens CAN. A análise foi desenvolvida por Davis et al. (2007) baseada nos trabalhos de Tindell, Burns e Wellings (1994) e George, Rivierre e Spuri (1996). Essa análise será usada para determinar os tempos de resposta de mensagens CAN e os resultados serão comparados com os resultados obtidos usando as técnicas de verificação de modelos no Capítulo 5.
Notação e modelo das mensagens
Considere uma rede CAN com um único barramento e um conjunto com q mensagens m1,
m2,..., mq. Uma mensagem mi, onde i assume valores de 1 a q, consiste de um número infinito
de instâncias k ∈ Z+ = {0, 1, 2,...} contendo informações específicas. Assume-se que o con-
trolador de cada nó garante que a sua mensagem com maior prioridade armazenada no buffer de transmissão, entrará no processo de arbitragem assim que o barramento estiver livre. Essa suposição é compatível com o funcionamento dos controladores CAN. A variável i também indica a prioridade da mensagem mi.
Cada mensagem possui uma tarefa periódica relacionada τmi com período Tmi. Essa tarefa
armazena a mensagem no buffer de transmissão do controlador CAN do seu respectivo nó. Então, uma instância k de uma mensagem é ativada a cada instante ami = kTmi e liberada
(pronta para transmissão) assim que a tarefa relacionada armazená-la no buffer de transmissão. Essa tarefa gasta uma quantidade de tempo igual a Jmi, chamado de jitter de armazenamento,
que equivale ao tempo de resposta da tarefa τmi. Considera-se que não existe controle sobre
o instante de ativação da primeira instância de cada mensagem, ou seja, assim que o sistema começa a funcionar, a ativação da primeira instância das mensagens ocorre em um instante arbitrário, e que os relógios de cada nó são ideais.
Toda mensagem possui uma quantidade de bytes de dados bmi, um tempo de transmissão
Cmi e um requisito de tempo chamado de deadline relativo Dmi. Assume-se que o deadline
relativo de uma mensagem é menor ou igual ao período Tmi.
A instância k de uma mensagem mié liberada no instante lmi(k) determinado pela Equação
lmi(k) = Jmi(k) + kTmi (3.39)
O deadline absoluto dmi da instância k da mensagem mié determinado pela Equação 3.40.
dmi(k) = kTmi + Dmi (3.40)
O intervalo de resposta da instância k da mensagem mi é definido como o tempo entre o
instante de ativação ami(k) e o instante de finalização fmi(k) (chegada do último bit da mensa-
gem ao nó receptor) dessa instância, ou seja, o intervalo semi-aberto à direita [ami(k), fmi(k)).
O tempo de resposta rmi(k) dessa instância (Equação 3.41) é definido como o comprimento do
seu intervalo de resposta.
rmi(k) = fmi(k) − ami(k) (3.41)
Uma representação do modelo de mensagens está ilustrada na Figura 3.12.
t a (k)mi l (k)mi f (k)mi d (k)mi a (k+1)mi Jmi r (k)mi Dmi Tmi Ativação Liberação Liberada (Buffer Tx) Transmissão Não liberada
Figura 3.12: Representação do modelo de mensagens CAN. O tempo de resposta no pior caso Rmax
mi da mensagem mi equivale ao maior (Equação 3.42)
tempo de resposta de alguma de suas instâncias.
Rmaxmi = max(rmi(k)) (3.42)
Para finalizar o modelo, considera-se as seguintes suposições: o barramento nunca ficará ocioso, exceto se não existir mensagens prontas para serem transmitidas (liberadas) no buffer de transmissão dos nós da rede e os deadlines são críticos, ou seja, cada instância da mensagem deve ser finalizada antes do seu deadline absoluto. O conjunto com q mensagens ativadas periodicamente é escalonável, se e somente se, Rmax
mi ≤ Dmi, ∀ i = 1,...,q. Assume-se que
o nível de prioridade decresce de acordo com o aumento do número da mensagem, ou seja, a mensagem m1 possui a maior prioridade (nível 1) e a mensagem mq a menor prioridade (nível
Cálculo dos tempos de resposta no pior caso
O tempo de resposta no pior caso de uma mensagem mi é derivado da Equação 3.43.
Rmmaxi = Jmi + Wmi+ Cmi (3.43)
Onde Wmi, chamado de atraso de enfileiramento, é o tempo máximo que a mensagem mipoderá
esperar no buffer de transmissão do controlador antes de iniciar a transmissão, devido outras mensagens estarem ocupando o barramento.
O atraso de enfileiramento consiste de dois tipos de atraso: atraso de bloqueio, originado por uma mensagem com menor prioridade, que poderá estar no processo de transmissão quando a mensagem mi foi armazenada no buffer de transmissão do controlador; e o atraso de interfe-
rência, originado pelas mensagens com maior prioridade, que poderão ser transmitidas antes da mensagem mi.
O máximo atraso de bloqueio ocorre quando a maior mensagem com menor prioridade inicia a transmissão imediatamente antes da mensagem miser armazenada no buffer de transmissão.
A mensagem mideverá esperar até que o barramento esteja livre, antes de entrar no processo de
arbitragem. O máximo atraso de bloqueio (Bmi) é determinado pela Equação 3.44, onde lp(i)
corresponde ao conjunto de mensagens com menor prioridade que a mensagem mi.
Bmi = max
∀j ∈ lp(i)(Cmj) (3.44)
A determinação do atraso de enfileiramento de uma mensagem mi é baseada na defini-
ção do período ocupado com nível de prioridade - i (LEHOCZKY, 1990) e (HARBOUR; KLEIN; LEHOCZKY, 1991). Esse período é definido por um intervalo semi-aberto à direita, que inicia em algum instante tsquando uma mensagem com prioridade i ou maior é enfileirada no buffer
de transmissão do seu respectivo controlador CAN, e não existem mensagens com prioridade i ou maior esperando para serem transmitidas, as quais foram enfileiradas antes do instante ts. O
período é finalizado no instante tequando o barramento torna-se livre e não existem mensagens
com prioridade i ou maior esperando para serem transmitidas, as quais foram enfileiradas antes do instante te. Durante esse intervalo nenhuma mensagem com prioridade menor que i é capaz
de vencer a arbitragem e ser transmitida. O atraso de enfileiramento no pior caso para uma men- sagem mi com prioridade i, ocorre para alguma instância dessa mensagem enfileirada durante
o período ocupado que inicia imediatamente após o início da transmissão da maior mensagem com menor prioridade que i. O maior período ocupado com nível de prioridade - i inicia no chamado instante crítico (LIU; LAYLAND, 1973), instante onde a mensagem mi é armazenada
simultaneamente com todas as mensagens com maior prioridade, em seus respectivos buffers de transmissão.
O comprimento tmi do maior período ocupado com nível de prioridade - i é determinado
pela seguinte relação recursiva (3.45), onde hep(i) é o conjunto de mensagens com prioridade maior ou igual à mensagem mi.
t(x+1)mi = Bmi + X ∀j ∈ hep(i) & t(x)mi + Jmj Tmj ' Cmj (3.45)
O procedimento de iteração começa com um valor inicial t(0)
mi = Cmi, e é finalizado quando
t(x+1)mi = t
(x)
mi. Devido o lado direito da Equação 3.45 ser uma função monotônica não-decrescente
de tmi, a relação de recorrência convergirá se o fator de utilização Um(hep(i)) para mensagens
com prioridade maior ou igual a mi for menor ou igual a 1 (Equação 3.46).
Um(hep(i)) = X ∀j ∈ hep(i) C mj Tmj ≤ 1 (3.46)
Para determinar o maior atraso de enfileiramento de uma mensagem mié necessário calcular
e verificar qual é o maior atraso de todas as suas instâncias enfileiradas e transmitidas durante o maior período ocupado com nível de prioridade - i. O número de instâncias Qmi é derivado de
(3.47). Qmi = tmi+ Jmi Tmi (3.47) Na análise seguinte, a variável k será usada para representar uma instância da mensagem mi.
A primeira instância do período ocupado corresponde a k = 0, e a última instância, k = Qmi−1.
O atraso de enfileiramento da instância k da mensagem mi é determinado pela Equação 3.48,
onde hp(i) corresponde ao conjunto de mensagens com prioridade maior que a mensagem mi
e τbit (tempo de bit) representa as diferenças de tempo para o início da arbitração nos diferentes
nós, devido aos atrasos de propagação e tolerâncias do protocolo. Wm(x+1)i (k) = Bmi + kCmi+ X ∀j∈hp(i) & Wm(x)i(k) + Jmj + τbit Tmj ' Cmj (3.48)
A relação de recorrência começa com um valor de W(0)
mi(k) = Bmi + kCmi, e termina quando
Wm(x+1)i (k) = W
(x)
mi(k) ou Jmi + W
(x+1)
mi (k) − kTmi + Cmi > Dmi, onde no último caso, a
mensagem é não-escalonável. A relação de recorrência sempre convergirá se a condição do fator de utilização do sistema Um = Pqi=1
C
mi
Tmi
≤ 1 for satisfeita (SPURI, 1996). Onde q equivale ao número de mensagens do sistema.
A instância k da mensagem mi ocorre no instante kTmi − Jmi relativo ao início do período
ocupado. Então, o tempo de resposta da instância k da mensagem mi é determinado pela
Rmi(k) = Jmi+ Wmi(k) − kTmi+ Cmi (3.49)
Observe que o termo Wmi em (3.43) equivale ao termo Wmi(k) − kTmi em (3.49). Finalmente,
o tempo de resposta no pior caso da mensagem mi é derivado da Equação 3.50.
Rmmaxi = max
k=0...Qmi−1(Rmi(k)) (3.50)
Comentários
A análise apresentada na seção anterior para determinar os tempos de resposta no pior caso de mensagens CAN periódicas pode ser facilmente adaptada para determinar os tempos de resposta fim a fim de malhas de controle nas arquiteturas representadas pelas Figuras 2.5(a) e (b) do Capítulo 2. Para a arquitetura representada pela Figura 2.5(a), o jitter de liberação seria constante e igual a soma do tempo de computação das tarefas de aquisição e controle. Além disso, o tempo de computação da tarefa de atuação deverá ser somado com o tempo de resposta no pior caso (Equação 3.50). Uma adaptação semelhante pode ser feita para a arquitetura representada na Figura 2.5(b).