• Nenhum resultado encontrado

Modelo em autômato temporizado

4.2 Modelo formal da rede CAN com offset dinâmico, relógios e barramento ideais

4.2.2 Modelo em autômato temporizado

O modelo é constituído por três autômatos (Figura 4.1): tarefa, controlador CAN e arbitragem. Para cada mensagem do sistema, a ferramenta UPPAAL gera automaticamente um autômato ta- refa e um autômato controlador CAN. Apenas um autômato arbitragem é gerado para o sistema. O código UPPAAL do modelo é apresentado na Seção C.1 do Apêndice C.

O autômato tarefa (Figura 4.1(a)) modela o comportamento temporal das atividades da ta- refa τmi relacionada a mensagem mi. O autômato possui um relógio local Tempo usado para

marcar o tempo de resposta e o valor dos seguintes atributos: offset Omi; período T m; tempo

de computação C e deadline Dm. A primeira instância da tarefa τmi é liberada no lugar Início

com um offset variando de 0 a T m unidades de tempo. O offset é modelado pela invariante de estado T empo <= T m e o guarda T empo >= 0. As próximas instâncias serão libera- das periodicamente no lugar EsperAtivTarefa. Após o tempo de offset, a transição para o lugar Exec_Tarefa será liberada e o relógio T empo será zerado. Esse lugar representa a tarefa em execução durante um tempo de computação C, modelado pela invariante T empo <= C e pelo guarda T empo == C. Quando o relógio T empo for igual a C unidades de tempo, a transição para o lugar Msg_Liberada será liberada e uma requisição para transmitir a mensagem mi será

enviada para o autômato controlador CAN (Figura 4.1(b)) usando o canal ReqTxMsg[i]!. O autômato permanecerá nesse lugar até o fim da transmissão da mensagem, que será comunicada pelo autômato controlador CAN por meio do canal RxMsg[i]?. Assim que a transmissão da mensagem for finalizada, a transição para o lugar committed MsgFim será liberada e, em se- guida, ocorrerá a transição para o lugar EsperAtivTarefa, onde permanecerá até iniciar um novo período, modelado pela invariante T empo <= T m e pelo guarda T empo == T m. Se o valor do relógio Tempo for maior ou igual ao deadline Dm, enquanto o autômato estiver no lugar Msg_Liberada, uma transição para o lugar N_Escalon ocorrerá, indicando que o deadline não foi satisfeito.

O autômato controlador CAN (Figura 4.1(b)) modela o comportamento temporal da men- sagem de dados de acordo com a especificação do protocolo CAN. O autômato possui um

(a) Tarefa. (b) Controlador CAN.

(c) Arbitragem.

relógio local Com usado para marcar o tempo de transmissão da mensagem de dados e o inter- valo entre mensagens (intermissão). Inicialmente, o autômato controlador CAN está no lugar inicial N_Req. Esse lugar representa o estado em que o controlador CAN do nó não rece- beu uma requisição de transmissão de mensagem. Quando o autômato receber uma requisição de transmissão de mensagem via o canal ReqTxMsg[i]? enviado pelo autômato tarefa, uma transição do lugar N_Req para o lugar committed C1 e, imediatamente, uma transição para o lugar BufferTx será liberada, o sinal TxMsg! será enviado para o autômato arbitragem (Figura 4.1(c)) e o array Arb[i], indexado com o valor do identificador da mensagem mi, será ajustado

para ’1’, indicando que a mensagem está pronta para entrar no processo de arbitragem. Assim que a mensagem vencer o processo de arbitragem, o autômato arbitragem sincronizará com o autômato controlador CAN via o canal Sucess_Arb[i]?, a transição para o lugar Tx_Msg será liberada e o relógio Com será zerado. O autômato permanecerá nesse lugar até o relógio Com marcar Cm unidades de tempo (modelado pela invariante de estado Com <= Cm e o guarda Com == Cm), indicando que a mensagem foi transmitida com sucesso. Então, a transição para o lugar IFS será liberada, o sinal RxMsg! será enviado para o autômato tarefa e o relógio Com e a variável Arb[i] serão zerados. O lugar IFS representa a intermissão com duração de três tempos de bit (T IF S = 3 ∗ τbit). Assim que o relógio Com marcar três tempos de bit, a

transição para o lugar committed N_Req será liberada e a informação de que o barramento está livre será enviada para o autômato arbitragem por meio do canal Ack[i]!.

O controle de acesso ao meio é modelado pelo autômato arbitragem (Figura 4.1(c)). O lugar inicial N_Req_Tx_Msg representa o estado onde não existe nenhuma mensagem pronta para ser transmitida. Assim que pelo menos um controlador CAN tiver alguma mensagem pronta para ser transmitida, o autômato receberá um sinal via o canal TxMsg? emitido pelo respectivo autômato controlador CAN. Então, a transição para o lugar committed Arbit será liberada e a variável ID será zerada. A variável ID, assim como a variável i (usada nos autômatos tarefa e controlador CAN) representam o identificador da mensagem mi. No lugar Arbit, a mensagem

com maior prioridade que requisitou uma transmissão será escolhida para ser transmitida. Para isso, o array Arb[ID] será verificado item por item, com o índice ID variando de 0 a n-1, onde n equivale ao número de identificadores (mensagens) do sistema. Os identificadores das mensa- gens são ordenados de forma crescente. A mensagem com maior prioridade possui ID = 0, e a mensagem com menor prioridade ID = n-1. Então, o primeiro elemento do array Arb[ID] com valor maior que 0 vencerá o processo de arbitragem, e um sinal via o canal Sucess_Arb[ID]! será enviado para o autômato controlador CAN que transmitirá a mensagem com identifica- dor ID. O autômato permanecerá no lugar Tx_Msg até receber o sinal de reconhecimento via Ack[ID]?, indicando que a mensagem foi transmitida com sucesso e que o barramento já está livre novamente para iniciar um novo processo de arbitragem. Então, a variável ID será zerada e o autômato retornará para o lugar Arbit, onde verificará se existe alguma mensagem

pendente para ser transmitida. Caso não exista, o autômato retornará para o seu lugar inicial N_Req_Tx_Msg.

Do ponto de vista da rede, as partes do sistema que foram modelados podem ser representa- das de modo simplificado pela Figura 4.2. Os três autômatos são representados por retângulos coloridos com os seus respectivos nomes (tarefa, controlador CAN e arbitragem). As conexões entre os autômatos são indicadas por setas rotuladas com o nome dos canais de sincronização (RxMsg, ReqTxMsg, Sucess_Arb, Ack e TxMsg). Os relógios (Tempo e Com) são indicados pelos seus nomes e setas dirigidas a partir do bloco Osc, que representa o circuito oscilador responsável pela temporização do nó, até o respectivo autômato.

Nó CAN 0 Barramento Tarefa Controlador CAN UP Transceiver Arbitragem ReqTxMsg[0] RxMsg[0] Osc Tempo Com Ack[0] TxMsg[0]

...

Nó CAN n-1 Sucess_Arb[0] Tarefa Controlador CAN UP Transceiver ReqTxMsg[n-1] RxMsg[n-1] Osc Tempo Com Ack[n-1] Sucess_Arb[n-1] TxMsg[n-1]

Figura 4.2: Representação da rede CAN com os componentes de cada nó e os três autômatos com os seus relógios e os seus canais de sincronização.